●리눅스의 특징
-Server System으로 운영적합
-ID와 PASSWD가 필요
-Root User (super user ): default user 계정및 시스템관리
-각 사용자별 home directory 존재
-각 사용자별 환경설정파일 존재( .bashrc  .bash_profile  .bash_logout )
-다양한 network protocol 지원
-신속한 개발, 자유로운 변형가능 : Open Source
-multi-user & multi-job system
 
●부트 디스크 생성 방법
    ①#mount -t iso9660 /dev/cdrom /mnt/cdrom
    ②#cd /mnt/cdrom
    ③#cd images
    ④#dd if=booting of=/dev/fd0 rbs=1440k
 
●IP 설정하기
    ①#ifconfig
    ②#netconfig
    ③#/etc/init.d/network restart
 
●리눅스 제거하기
    ①리눅스 환경: fdisk 명령어를 이용하여 리눅스 설치 파티션 삭제
                   이후 LILO 정보 제거
                   #/sbin/lilo -u
    ②윈도우 환경: fdisk 실행하여 non-DOS 파티션 제거
                   이후 LILO 정보 제거
                   c:\>fdisk /mbr    ( Window98 CD를 이용해서 마스터부트레코드 삭제 )
 
●리눅스 종료하기
shutdown -h now == halt == init0
shutdown -r now == reboot == init6
shutdown -c  == shutdown 취소
shutdown -r 20 ==20분후 shutdown
 
 
●원격지 접속할 때
① #ssh se37@210.102.185.234   <--ssh를 이용
② #telnet 210.102.185.145  <--telnet을 이용
<실행결과>          
login:se39            
passwd:linux123       
 
●디렉토리 분류
/           : 루트디렉토리
/bin        : 기본명령어
/dev        : 장치를 쓸때 필요한 특수 파일 위치
/etc        : 환경 설정 파일 위치
/home       : 일반 사용자의 홈 디렉토리
/lib        : 공유 라이브러리와 커널 모듈이 위치
/lost+found : 부팅할 때 파일시스템에 이상이 있는지 진단, fsck 명령어에 의해 사용
              파일 시스템 복구후 복구된 파일이 저장됨
/mnt        : cd-rom 과 플로피 장치에 대한 마운트 포인트를 제공
/opt        : 크기가 큰 리눅스 패키지 설치함
/root       : 시스템 관리자 홈디렉토리
/sbin       : 시스템 운영에 필요한 명령어 위치
/tmp        : 임시 파일을 저장하는 위치
/usr        : 패키지 설치시 이 디렉토리에 설치됨
/var        : 가변 자료가 저장, 메일,로그 등등
/usr/bin    : 응용프로그램 설치시 일반 사용자 명령어가 추가됨
/usr/sbhin  : 응용프로그램 설치시 관리자 명령어가 추가됨
/var/log    : 시스템 로그 파일
/var/spool/mail : 서버의 메일 임시보관 장소
 
●파일에 따른 속성
 #ls -al
<실행화면>
drwxr-xr-x       5     Root      Root     4096     5월10일    9:15       ..  
  허가권        링크수  사용자   그룹     파일크기  생성날짜   생성시간  파일명
d(디렉토리) -(일반파일) l(심볼릭 링크 파일) s(소켓파일) b(블록디바이스용특수파일)  c(문자파일)
 #chmod 644 aaa  <---aaa 파일을 permission을 바꿈
 #chmod go+x aaa <---aaa 파일에 실행권한 추가
r=읽기(4)    w=쓰기(2)     x=실행(1)
디렉토리 생성시 기본 permission은 = 755
파일     생성시 기본 permission은 = 644
이유? umask 022 이기 때문..
 #umask 022   <--umask명령으로 permisson값 바꿀 수 있음.
umask022 <--기본설정
umask002 이면 디렉토리는=775  파일은=664
 
●etc/passwd 파일구조  (사용자 관리 파일)
userID  : password  :  UID  :  GID  :  full-name  :  home directory  :  shell
root    :   x       :   0   :   0   :   생략가능  :  /root           :  /bash
●etc/grorp   (그룹 관리 파일)
●etc/shadow  (비밀번호 관리 파일)
 
 
●기본 명령들
 #man ls (메뉴얼 확인, 빠져나올땐 q 입력 , 비슷한것:whatis ,apropos)
 #info ls(메뉴얼 자세히 확인)
 
 #ls  (디렉토리 내의 파일 목록을 보는 명령어)
 #ls -a (모든 파일 보기,숨기파일표시)
 #ls -l (자세하게 보기)
 #ls -d (디렉토리만 보기)
 #ls -R (하위디렉토리의 파일까지 보기)
 
 #cd  (디렉토리 변경)
 #cd /home/oversky/www  (절대경로로 디렉토리 변경)
 #cd ..(상대경로로 디렉토리 변경)
 #cd / (루트 디렉토리로 이동)
 #cd . (현재디렉토리)
 #cd .. (상위디렉토리)
 #cd ~ (계정의 홈 디렉토리)
 
 #pwd (현재 디렉토리 표시)
 #id  (현재 사용자 정보를 자세히 확인)
 #whoami (현재 사용자 확인)
 #finger (현재 텔넷 서비스 접속 사용자를 확인)
 #w (현재 텔넷 서비스 접속 사용자를 확인)
 #whom (현재 텔넷 서비스 접속 사용자를 확인)
 #users (현재 텔넷 서비스 접속 사용자를 확인)
 #groups (현재 소속되어 있는 그룹확인)
 
 #mkdir (디렉토리 생성)
 #mkdir -p (하위디렉토리까지 생성)
 #rmdir (디렉토리 삭제..주의 디렉토리가 비어있어야함)
 #rmdir -p (하위디렉토리까지 삭제)
 
 #cp 원파일명  새파일명 (복사)
 #cp -i (복사여부 물어봄 자동지정됨)
 #cp -r (디렉토리 또는 디렉토리내의 파일까지 복사)
 #cp -a (소유권을 유지하면서 복사)
 
 #rm (파일 삭제)
 #rm -rf aaa (디렉토리및 파일 강제 삭제)
 
 #cat test(파일 내용 화면출력)
 #cat > test (파일을 만듦, ctrl+z 로 빠져나옴)
 #cat >> test (파일 내용 뒷 부분에 추가)
 #touch bbb (bbb라는 파일 생성,기존 파일의 수정날짜 변경 가능)
 
 #more test (파일 내용을 페이지 단위로 출력,페이지이동 space 바)
 #less test (파일 내용을 페이지 단위로 출력, 빠져나오기 q 사용)
 #wc -l test (파일의 워드 카운드, 라인수를 출력해줌)
 #ls -al | more (파이프로 인해 왼쪽명령어가 오른쪽 입력값으로 사용)
 #grep aaa aaa.txt (aaa.txt 파일에서 aaa 단어만 선택하여 출력)
 #grep a* (a로시작하는 모든 문자 출력,?는 한문자)
 
 #ps (프로세스 상태 확인)
 #ps -a (전체 사용자의 모든 프로세스 출력)
 #ps -x (터미널에 종속되지 않은 프로세스출력)
 #ps -u (사용자이름과 프로세스 시작 시간을 출력)
 #ps -aux
<실행결과>
USER    PID       %CPU    %MEM    VSZ    PSS    TTY    STAT    START    TIME    COMMAND
사용자 프로세서ID cpu점유율 메로리점유율        터미널번호 상태 시작시간        명령어위치
 #kill -9 1234 (프로세스 종료)
 #jobs (현재 작업 목록을 출력함.bg백그라운드설정(&) fg포그라운드설정  ctrl+z )
 #history (명령어 목록 보기. -w 파일명 :저장한 파일에 history 목록을 저장
                            -a :현재 접속시 사용한 목록을 .bash_history 파일에 저장)
 
 #alias ls='ls -al'(명령어를 간단하게 축약하여 사용할 때 쓰임, .bashrc에정의)
 
●멀티 부팅 만들기
 #vi /etc/lilo.conf
<실행화면>
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=120
message=/boot/message
lba32
default=windows   <----디폴트 설정
image=/boot/vmlinuz-2.2.17-8wl2
        label=linux
        read-only
        root=/dev/hda2
other=/dev/hda1
        label=windows   <----디폴트 설정
        table=/dev/hda
 
lilo 리눅스 로더 - lilo.conf 리로 설정파일,  Grub 최신 <- 부트로더
 # lilo   (lilo  설정 확인 명령어)
added linux
added windows *   <---디폴드 설정됨
 
●ftp
 #ftp 210.102.185.145 (접속방법)
 #ftp ftp.bora.net (접속방법)
<실행화면>
Name  : anonymous  <---ID 계정이 없을 경우,  익명 계정으로 접속
Passwd :           <---사용자의 이 메일 주소 입력
ftp>get 060411a  (파일 하나만 다운로드 할때 get 사용)
ftp>mget 06*     (파일 여러개를 다운로드 할때 mget 사용)
ftp>hash         (다운 과정을 “###” 표시해주는 명령어)
ftp>ascii     (text파일 다운로드할 때 설정)
ftp>binary    (동영상등 실행파일 다운로드 때 설정)
ftp>bye    (빠져나옴)
 #mc  <---mc를 이용한 ftp 접속
파일 다운로드는 F5 키를 이용함
 
●vi 에디터 사용법
<입력모드>
i  현재 커서위치에서 입력         o  현재 커서 아래 행에서 입력
I  현재 커서 행의 앞에서 입력     O  현재 커서 윗 행에서 입력
a  현재 커서 뒤에서 입력          <shift>+j 커서 다음 행을 현재 행에 결합
A  현재 커서 행의 뒤에서 입력     u 한 단어씩 복구   U 변경한 전체 내용을 복구
x  현재 문자 삭제(delete)       ~   대문자 소문자 변환             (      처음
X  한문자 삭제(backspace)       yy  현재 행을 복사                 )      끝
dw 오른쪽 단어 삭제             nyy  현재 커서 아래로 n행 복사     {      문단의 처음
db 왼쪽 단어 삭제               p    현재 커서 아래로 붙여넣기     }      문단의 끝
dd 커서 위치한 행 삭제
 
<명령모드>
h  왼쪽으로 한문자 이동      ^  현재 행 처음으로 이동        <ctrl>+f   다음 페이지 이동
j  위로 한 행이동            $  현재 행 끝으로 이동          <ctrl>+b   이전 페이지 이동
k  아래로 한 행 이동         <Enter> 다음 행의 처음으로 이동       d$   현재부터 끝까지 삭제
l  오른쪽으로 한문자 이동                   dG  현위치에서 전부삭제  d1G 현재커서의 앞부분삭제       
   G  파일의 마지막행으로 이동   w  다음 단어 처음으로 이동
   1G 1행으로 이동               b  이전 단어 처음으로 이동
   nG n행으로 이동               e  다음 단어 끝으로 이동
%s/window/linux/g  단어치환
g/bash/s/ba/c/g    일부단어치환
 
<ex모드>
:q    종료     :q!  강제종료    :w  저장    :w!  강제저장   :wq 저장하고 종료  :wq! 강제저장후 종료
:w 파일명 (다른파일명으로 저장)     :1,20 w 파일명(1~20행까지만 저장)
:set number(행번호표시)     :set nonu (행번호표시 지우기)
 
●시스템 관련 명령어
 #fsck /  (파일시스템을 점검한다)
 #sync    (주기억장치와 HDD간의 동기를 맞춰준다.)
 #wall    (현재 모든 텔넷 접속자에게 broadcast메시지를 보낸다)
 #wall reboot 3 minute (텔넷 접속자 모두에게 메시지 전달)
 # last | more ( 라부팅 흔적 보여줌 )
 #useradd 옵션   (사용자 추가)
  userid : x: UID : GID : full : 디렉토리 : 쉘
             -u    -g(-G) -c        -d       -s  <- (-G) - 세컨드 그룹
              -m:홈디렉토리생성   X-p:password 지정
 #useradd -u 5000 -g 5000 -c "Test User" -d /home/testuser -s /bin/csh -m testuser
 # cat /etc/passwd <- 방금 만든 파일 확인
 #groupadd -g 2000 student  <- 그룹 2000 생성, 2000은 그룹번호
 #cat /etc/group - 그룹 확인
 # groupadd -u 3000 student
groupadd: invalid option -- u       <- u라는 옵션은 존재하지 않음
usage : groupadd [-g gid [-o]] [-r] [-f] group <- groupadd 에서 사용할 수 있는 옵션 표시
 
 # whereis csh  (c쉘의 저장파일 위치 찾기)
1.6. passwd 옵션
 * passwd 다음에 아무 옵션도 치지 않으면 자기 자신의 root 패스워드를 바꾸게 된다.
 # passwd test
 Changing password for user test
 New UNIX password : 123
 BAD PASSWORD : it's WAY too short <- 패스워드가 짧다.
 Retype new UNIX password : 123 <- 변경할 패스워드 재입력
 passwd: all authentication tokens updated successfully
 * MD5 : 패스워드가 255자 까지 늘어남
 * shadow password : 패스워드를 shadow에 복사해서 사용
 # passwd -d test <- 다음에 사용자가 접속시 패스워드 직접 지정
 Changing password for user test
 Removing password for user test
 passwd : Success
 # passwd -l test  (시스템에 접속하지 못하도록함) (해제 -u 옵션)
 Changing password for
 
* halt:*13221:0:99999:7::: <- 쉐도우로 passwd 파일을 열었을 때
        passwd
 
 # passwd -u test <- 패스워드를 푼다.
 # su -test <- 사용자의 지정셀 확인, 사용자의 아이디로 새롭게 로그인
 # su test <- root 유저 상태에서 사용자 잠시 바꿈
 # whoami <- 자신이 누구인지 확인
 # su -s /bin/bash test <- 내가 지정한 쉘로 사용, 사용자의 아이디로 접속
 
1.7.userdel 옵션
 # userdel -r test <- 홈디렉토리까지 삭제
 # groupdel student <- student 그룹 삭제
 
 # groupadd -g 5000 test
 # groupmod -g 6000 test <- test 5000번 그룹의 G아이디값을 6000으로 변경
 # cat /etc/group | grep test
test:x:6000:
 # groupmod -n testgroup test <- test그룹의 이름을 testgroup으로 변경
 # cat /etc/group | grep test   <---!c  :c로 시작했던 명령 다시 실행
testgroup:x:6000:
 # groupdel testgroup
 
*init.d  init=초기화 .d=daemon=서비스를위해 대기하는 상주 프로그램
*daemon : 시스템과 클라이언트를 연결 또는 호환하는 프로그램
 
 # cd /etc/init.d <- 시작 스트립트 (init) <- 시작
 # ls <- 데몬을 보여줌
 #/etc/init.d/mysqld start <- mysqld 데몬 시작
Starting MySQL:
 #/etc/init.d/mysqld restart <- mysqld 데몬 다시 시작
Stopping MySQL:
Starting MySQL:
 # ps -aux|grep mysql <- mysqld 데몬이 실행되고 있는지 확인
 # kill -l <- 죽일수 잇는 프로세서를 보여준다.
 # kill -9 3129 <- 3129 프로세서를 죽일때 사용 (-9)가 가장 강한 옵션
 # ps -ax|grep mysql <- 실행되고 있는 mysqld 데몬 프로세서 확인
 # kill -9 3206 <- 3206 프로세서를 죽일때 사용
* # !p <- 전에 사용했던 명령어중에 p 로 시작되는 명령 실행
* # !! <- 바로전에 사용했던 명령어 재실행
 # killall mysqld <- mysqld 데몬을 다 삭제
* # killall <- 만 사용하면 여러가지 사용가능한 옵션 출력
 # killall -l <- killall에서 사용할 수 있는 옵션 출력
 
1.13. mkfs의 옵션
 # mkfs -t ext2 /dev/fd0 <- ext2를 fd0으로 포맷
  파일시스템이 만들어 진다 그후 mount 해야함.
 
1.14. fsck 의 옵션
 # fsck -y / <- (-y)는 뭔가 물어볼때 자동으로 yes로 대답하게 됨
1.15. mount의 옵션
 # cd /floppy
 # ls
 # mount /dev/fd0 /mnt/floppy <- mount 설정
 # cd /mnt/floppy <- lost*found floppy
 # more /etc/fstab <- 현재 시스템에 자동으로 기록되어 있는 것들
1.16 umount의 옵션
 # umount /mnt/floppy <- mount 해제
 # mount /dev/cdrom <- cdrom을 마운트함, cdrom이 있어야 한다.
 # mount <- fstab에 들어있음,
 # mount /dev/fd0 <-
 
1.18 gzip의 옵션
 #tar -cvf data.tar 0* <---파일을 묶음.
 #tar -tvf data.tar  <---묶어진 파일을 보여줌.
 #tar -xvf data.tar  <---묶어진 파일을 풀때.
 
 #tar -cvzf data.tar.gz 0* <---파일을 묶고 압축함.
 #tar -tvzf data.tar.gz  <---묶어지고 압축된 파일을 보여줌.
 #tar -xvzf data.tar.gz  <---묶어지고 압축된 파일을 풀때.
 
*파일타입을 알아보는 명령어: #file data.tar.gz
 
 # gzip -v data.tar <--- 파일을 압축한다.
실행결과:data.tar:    89.6%--replaced with data.tar.gz
 # gzip -dv data.tar.gz <--- 파일을 압축을 푼다.(gunzip 파일압축해제)
 #gunzip data.tar.gz
 
* # compress -v data.tar <--- compress로 압축한다.
실행결과:data.tar:    --replaced with data.tar.Z Compression: 88.68%
* # uncompress -v data.tar.Z <--- 압축을 푼다.
 
* # rm -rf 0* <- 0으로 시작하는 파일 다 삭제
* # rm -rf *gz <- gz로 끝나는 파일 다 삭제
 
1.20. rpm(redhat package maneger)의 옵션
 
i-설치모드
U-업그레이드 모드
e-삭제모드  -e --nodeps (의존성문제 무시 삭제)
q-질의모드 (설치목록을 조회함)

 # rpm -qa |grep mysql <- mysql패키지를 다 보여줌
 # rpm -qR mysql-3.23.38-2wm ?? <- 모르겠다아
 # rpm -qi mc <- mc 패키지에 대한 정보
 # rpm -ql mc <- mc 패키지에 포함된 모든 파일명 출력
 # rpm -Va <- 검증 옵션, 한참 걸림
 
1.21. df의 옵션 :파티션정보와 사용량을 백분율로 표기한다.
 # df -T <- 파일시스템 유형 출력
 # df -k <- k옵션을 쓰지 않으면 block단위로 나타내서 알아보기 힘듦.
그 외의 시스템 관련 명령어
 #pstree
 #uname -a :시스템의 이름 커널버전 등등
 #ifconfig -a :ip주소확인
 #ping ip주소:원격지 네트워크 확인명령어
 #netstat :네트워크 상태 명령어
 #netstat -r :게이트웨이 확인 명령어
 #router :netstat -r명령과 같음.게이트 확인 명령
 #echo $HOME  :계정명 바꿔줌
 #set
 #export TEST=1000
 #echo $TEST
 #date 04161900 :MMDDHHmm
 # rdate -s time.bora.net    :자동으로 시간을 맞춰줌
 # dmesg | less  :부팅과정 보여주는 명령어
 # write  :채팅
 # egrep "rootlftp" /etc/passwd  여러개의 단어를 찾을수있다
 #split  -b:byte당잘라서파일을생성  -c:글자단위 -l:숫자단위
 #split -100 /etc/passwd
실행화면:xab   xaa  xac  :100개 줄단위로 파일이 만들어짐

 

출처 : http://onemind.kr/97

 

'프로그래밍언어 > Linux' 카테고리의 다른 글

쉘 스크립트 문법  (0) 2014.02.07
vi 명령어 모음  (0) 2014.02.03
ubuntu sd카드 인식  (0) 2013.10.22
linux deb,rpm,bin 설치하기  (0) 2013.10.14
ubuntu 터치패드, 마우스 설정  (0) 2013.10.14
Posted by w우주z
,