유닉스(Unix) / 리눅스(Linux) 기본명령어

By | 6월 18, 2008

(1) ls [옵션]-list라고 하며, 파일 및 디렉토리 목록을 본다.

     -옵션: -a, -all => 디렉토리 내의 모든 파일 출력
     -l, --format=long => 파일정보(파일종류, 퍼미션, 사이즈)를 표시
     -s, --size => 1k 블록 단위로 파일 크기 표시
     -F => 파일 이름뒤에 파일형식을 표시(/은 폴더, *은 파일)
     -t, --sort=time => 최근 파일부터 출력
     -c, --time => 파일 최근 변경 시간에 따라 정렬해서 출력
     -color => 파일 종류에 따라 색상 표시
     -R(recursive) => 현재 작업 디렉토리와 하위 디렉토리 모두 출력
     --help => 도움말
 

   Tip. Xdefault: X-term의 환경설정

     bash_history: 입력한 명령어 내용이 저장되는 파일이다. 방향키 위를 누르면 프롬프트에서 전에
     입력한 명령어가 나타난다.

bash_profile: 도스의 autoexec.bat 파일과 유사한 기능을 가진 파일이다.

bashrc: 알리아스(alias) 정보를 가지고 있는 파일이다. 알리아스로 리눅스 기본 명령어를
     도스 명령어로 바꾸어 쓸수 있다. (ex. alias dir='ls -aINF --color =auto' 이렇게 사용할수 있다.)

ls *은 모든 것을 의미하며, ?는 하나의 문자에 대해서 상질할 때 사용한다.
     ls * 하면 바로 밑 하위디렉토리까지 나온다.

(2) chmod [augo][+-=][rwx] 파일명 - 사용자에 대한 파일의 접근을 제한한다.

     - [augo]: a => all, u => 소유자(user), g => 그룹(group), o => 그밖(other)
        [+-=]: + => 추가, - => 삭제, = => 지정
        [rxw]: r => read, w => write, e => execute

     - 또는 8진수모드로 할수 있다. 421로 표현된다는 것이다.
        예를 들면 chmod 755 파일명 => 소유자 권한(rwx), 그룹권한(rx), 그밖(rx) 이렇게 되는 것이다.

Tip. umask: 초기 권한에서 umask로 설정한 값을 빼줌으로써,
자신의 환경에 새로운 초기권한을    적용하게 된다.

chown [소유자] 파일명 - 파일의 소유자를 다른 사용자로 변경한다.
(root권한만 사용할수 있는 명령어이다.)

       chgrp [그룹이름] 파일명 - 파일의 그룹을 다른 그룹으로 변경한다.

(3) cp [옵션] 원본 파일(디렉토리) 대상 파일(디렉토리) - 파일이나 폴더를 복사한다.

- 옵션: -a => 원본 파일의 속성, 링크 정보들을 유지하면서 복사
     -b => 복사할 대상을 덮어쓰거나 지울 때를 대비하여 백업 파일 만듦
     -d => 심볼릭 파일 자체를 심볼릭 정보와 함께 복사할 때
     -f => 복사할 파일이 존재할 때 삭제하고 복사
     -i => 복사할 파일이 존재할 경우 복사할것인지 물음
     -l => 디렉토리가 아닌 경우 복사 대신 하드 링크로 만듦
     -p => 원본파일의 소유, 그룹, 권한, 허용 시간을 보존한 채로 복사
     -r => 서브 디렉토리 내에 있는 모든 파일까지 통째로 복사
     -s => 디렉토리가 아닌 경우 복사 대신 심볼릭 링크로 만듦
     -u => 대상 파일보다 원본 파일이 새로운 것일 때 복사

* 하위폴더까지 모두 복사하면서 덮어쓰기
=> cp -rf 원본경로 대상경로

* 원래 -f 옵션을 주면 무조건 덮어쓰기를 해야 하는데, 이것이 되지 않을 경우가 있다.
보통 cp의 alias로 'cp -i'를 주었을 경우인데, 이것을 해제하기 위해서는 다음과 같이
cp 명령 앞에 \를 붙여주면 된다.
       => \cp -rf 원본경로 대상경로
(4) rm [옵션] 파일명 - 불필요한 파일을 삭제한다.

- 옵션: -d => directory 삭제 (단, 그 디렉토리가 비어있을경우에만 사용가능)
     -f => 삭제할 것인가라는 메시지 없이 그대로 강제 삭제
     -i => 삭제 시 일일이 삭제할 것인지 물음
     -r => 하위 디렉토리를 포함한 파일들을 모두 삭제
     -v => 삭제되기 전의 파일들을 보여줌

(5) cd 디렉토리명 - 현재 디렉토리에서 다른 디렉토리로 경로를 변경하고자 할 때 쓰인다.

Tip. 점(.) 한 개는 현재 디렉토리를 의미, 점(..) 두 개는 현재디렉토리에서 상위디렉토리를 의미한다.
     ~는 자신의 계정 디렉토리 위치를 의미한다. $HOME도 ~와 똑같은 말이다.

(6) mkdir [옵션] 생성디렉토리명 - 새로운 디렉토리를 만든다.

- 옵션: -p => 지정한 하위 디렉토리까지 한번에 생성
        (ex. mkdir -p /babo/sarang 이럼 두 개의 디렉토리가 만들어진 것이다.)

(7) rmdir [옵션] 디렉토리명 -디렉토리를 삭제한다.

- 옵션: -p => 지정한 하위 디렉토리까지 한번에 삭제(mkdir -p 랑 똑같은 효과이다.)

(8) mv [옵션] 원본 파일(디렉토리) 대상 파일(디렉토리)
- 파일을 다른디렉토리로 옮기거나 이름을 바꿀 때 사용

     - 옵션: -b => 파일이 지워지기 전에 백업 파일을 만듦
     -f => 대상 파일이 있더라도 파일을 강제로 삭제
     -i => 대상 파일이 있는 경우 덮어쓸 것인가 물어봄
     -u => 대상 파일보다 원본 파일이 최신 것일 때 업그레이드
     -v => 파일 옮기기 전의 과정을 보여 줌

(9) df [옵션] - 하드 디스크의 용량이 얼마나 남아있는지 확인하는 명령어

- 옵션: -a => 디폴트로 생략된 0 블록 크기의 파일 시스템도 보여줌
     -i => 파일 크기를 블록 대신 inode로 디스크 정보를 보여줌
     -k => 파일 크기를 킬로바이트(kb)로 보여줌
     -T => 파일 시스템의 종류와 함께 디스크 정보를 보여줌
     -t => fstype 값을 가진 파일 시스템에 대한 디스크 정보
     -h => 쉬운 용량 표시 단위로 표기(예 : 1G 250M 1K)
    ex) df -h
    ex) df -h .

(10) du [옵션] - 해당 디렉토리의 사용한 디스크 용량에 대한 정보를 본다.

- 옵션: -a => 해당 경로에 대한 사용한 디스크 용량 표시
     -k => 용량 표시 단위를 킬로바이트(kb)로 표시
     -m => 용량 표시를 메가 바이트(mb)로 표시
     -h => 쉬운 용량 표시 단위로 표기(예 : 1G 250M 1K)
    ex) du -sh 폴더명
    ex) du -sh *


(11) cat [옵션] 파일명- 텍스트 파일을 만들거나 파일내용을 출력해준다.

- 옵션: -e => -vE 옵션과 똑같은 효과
     -b => 공백 라인을 제외한 모든 라인에 행 번호를 붙임.
     -n => 출력하는 파일 내용들에 대해서 번호 매김
     -t => -vT 옵션과 똑같은 효과
     -v => LFD와 TAB을 제외한 컨트롤 문자 출력
     -E => 각 라인 끝에 $ 표시
     -T => ‘^I' 로 TAB 문자를 표시

Tip. cat > test : test의 기존 내용을 지우고 새로운 내용을 추가한다.
           cat >> test: test에 기존 내용밑에 내용을 추가한다.

(12) find [경로] [옵션] 파일명 -원하는 파일을 찾는다.

- 옵션: -amin n => n분전에 마지막으로 액세스된 파일
     -atime n => n*24시간 전에 마지막으로 액세스된 파일
     -cmin n => n분 전에 마지막으로 변경된 파일
     -ctime n => n*24시간 전에 마지막으로 변경된 파일
     -empty => 비어 있는 파일이나 디렉토리
     -name <pattern> => 패턴으로 주어진 파일
     -newer 파일 => “파일” 보다 최신의 파일

Tip. 내가 자주 사용하는 명령어 find .(or /) -name 파일명 -print
           현재디렉토리 or 루트디렉토리에서 파일명에 해당하는것들을 보여달라는 말이다.

    ex) 하위 디렉토리 파일 갯수 조회 : find . -type f | wc -l
            => alias로 만들기 : alias cnt='_(){ find $1 -type f | wc -l; }; _'

    ex) 여러 개의 파일에서 특정 문자열 검색 : find . -name "debug.log" | xargs grep -n "NullPointer" | wc -l
 
(13) ps [-] [옵션] - 작동중인 프로세스 상태 체크하기

-옵션: -l => 긴 포맷으로 출력
     -u => 실행한 유저와 실행 시간을 표시
     -j => “job"형식으로 표시
     -s => 시그널 포맷으로 표시
     -m => 메모리 정보 표시
     -a => 다른 유저의 프로세스 현황 표시
     -x => 터미널 제어 없이 프로세스 현황 표시

Tip. 주로 ps -ax 이런식으로 많이 쓴다.

(14) mount [-fnrvw] [-t fs 유형] [-a 옵션] 장치디렉토리

-옵션: -v => 자세한 출력 모드
     -f => 실제로 마운트 하지 않고 마운트 가능한지 점검
     -n => /etc/mtab 파일에 저장없이 마운트 하기
     -r => 읽기만 가능하도록 마운트
     -w => 읽기/쓰기 모두 가능하도록 마운트
     -t vfstype => -t 뒤에 파일 시스템(cdrom:iso9660, floopy:msdos,ext2 등) 유형을 지정함.

Tip. 시스템이 부팅될 때 자동적으로 mount 되는 장치( HDD, FDD, 기타)
            /etc/fstab => 시스템이 부팅될 때 자동적으로 mount될 장비 리스트 파일
            /etc/mtab => 시스템에 mount 되어 있는 장치들의 정보가 들어있는 파일

(15) mkfs [-t 형태] [fs-옵션] 장치명 [블록] - 리눅스 파일 시스템 만들기

//이부분은 잘 모르겠음
fsck.ext3 [-t 파일시스템유형] 파일시스템 - 리눅스 파일 시스템을 점검하고 복원시킴
     (리눅스는 자동으로 커널 부팅시에 파일시스템을 자동으로 체크하고, 파일시스템이 손상이 입었을 때 점검하고 복구한다. 만약 커널 부팅과정에서 자동적으로 파티션 결함을 복구하지 못한 경우엔 부팅이 완료된 후에 수동으로 fsck.ext3 명령으로 복구해야 된다. ex. fsck.ext3 /dev/hda)
//

(16) who - 시스템 사용자를 확인한다.

     -옵션: -i => idle time과 함게 사용자 출력함
     -m => who 명령을 실행한 사용자 표시(who am I랑 똑같은 명령이다.)
     -q => 사용자 이름과 사용자 수 출력
     -w, -T => 각 사용자의 메시지 설정 상태 출력

(17) kill [옵션] 프로세스ID - 실행중인 프로세스를 재활성화하거나 완전히 죽이고자 할 때 쓴다
     -옵션: -1, -HUP => 프로세스를 재활성화
     -9 => 프로세스를 강제로 죽임

(18) man [리눅스명령어] - 리눅스 명령어 매뉴얼 보기

(19) su [계정명] - 일시 로그인
su ~ [계정명] - (권한까지 포함한) 로그인

(20) grep - 파일내에서 특정항목을 찾는다.

(21) more [파일명] - 한화면이 넘는 파일내용을 화면 단위로 보여준다.

| - 파이프 앞의 실행 결과가 파이프 뒤의 입력으로 작용
      ex) ls -al /dev | more => dev폴더의 리스트를 페이지 단위로 보여준다.

(22) echo <문자열> - 한줄의 문자열 출력하기

ex) echo hello! => hello! 라고 출력된다.

(23) tar
     - 확장명이 gz(타블소스)로 되어있다면, tar xvzf 파일명 이렇게 풀면된다.
        압축은 tar cvzf 파일명 이렇게 하면된다.

- 확장명이 bz2로 되어있다면, tar xvjf 파일명 이렇게 풀면 된다.
        압축은 tar cvjf 파일명 이렇게 하면 된다.
 



(24)
source [파일명] - 환경설정 파일 (ex:.bash_profile) 등을 수정한 후 적용하기

ex) source .bash_profile

(26) 시스템 종료, 재부팅 명령
- 시스템 종료 : halt, shutdown -h now, init 0
- 재부팅 : reboot, shutdown -r now, init 6

       * init 명령에 사용하는 runlevel

    0 : 시스템 중지 

 

    1 : 단일 사용자,single mode,network 사용불가 

    2 : 사용되지 않음 

    3 : 다중사용자,multiuser,기본적인 실행레벨 

    4 : 사용되지 않음 

    5 : X 윈도우 시스템 

    6 : 시스템 재시작,reboot 기능  

 
(27) less - 페이징이 있는 cat 이라고 보면 된다.

보통 'less -FX 파일명' 형식으로 사용한다. 
line number를 보고 싶으면 N 옵션을 추가한다.

 
 
 

출처: http://blog.naver.com/puhahaha02?Redirect=Log&logNo=150030159777

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments