본문 바로가기
Unix/공부하기

Unix 명령어 모음

by 놀러와요 2019. 9. 10.
반응형

[디렉토리 계층 구조]

 

  * 홈 디렉토리 :     ~

  * 현재 디렉토리 :  .

  * 상위 디렉토리 :  ..

  * 하위 디렉토리 : 이름

 

[기초 명령어]

 

 * banner        - 화면에 큰 문자를 출력                   ex) banner unix

 * date            - 날짜와 시간을 출력                      

 * clear           - 화면을 깨끗이 지움

 * man            - 명령에 대한 설명 출력                  ex) man clear               // 정보 끝내기 q

 * passwd      - 패스워드 변경

 * logout , exit, ctrl+d      -  로그아웃

 

[디렉토리 다루기]

 

 * file + 파일명                       -  파일의 성격이나 형식 보기

 * pwd                                 - 현재 디렉토리의 절대경로 표시 (print working directory)

 * cd                                   - 디렉 토리 변경 (change directory)

 

             cd ..              - 상위 디렉토리로 이동

             cd ../test        - 상위 디렉토리 아래에 있는 test 디렉토리로 이동

             cd ~test         - test 계정의 홈 디렉토리로 이동

             cd ~/test        - 자신의 홈 디렉토리 아래에 있는 test 디렉토리로 이동

             cd /test          - 루트 디렉토리 아래에 있는 test 디렉토리로 이동

 

 * ls                 - 디렉토리의 파일 목록 확인(list)

 

             옵션 : a , A , l , d , F , R

             ls              - 현재 디렉토리의 파일 목록을 출력

             ls /            - 루트 디렉토리의 파일 목록을 출력

             ls -a          - 현재 디렉토리의 숨김 파일을 포함하여 모든 파일 목록 출력

             ls -A          - 현재 디렉토리의 숨김 파일을 포함하여 모든 파일 목록 출력하되 . 와 .. 제외한다.

             ls -a /        - 루트 디렉토리의 숨김파일을 포함하여 모든 파일 목록 출력

             ls -a test    - 현재 디렉토리 하위디렉토리인 test 디렉토리의 모든 파일 목록 출력(숨김파일 포함)

             ls -l           - (long) 파일의 상세 정보 출력

             ls -d          - 지정한 디렉토리 자체의 정보 출력

             ls -ld         - 현재 디렉토리 자체의 상세 정보 출력

             ls -ld /       - 루트 디렉토리 자체의 상세 정보 출력

             ls -i           - 첫번째 행에 inode 번호 출력

             ls -ai         - 현재 디렉토리의 숨김 파일을 포함하여 모든 파일목록을 출력하되 첫번 째 행에 inode 번호도 출력한다.

             ls -F          - 파일의 종류 표시하여 출력( *:실행 파일 , / : 디렉토리 , @ : 심볼릭 링크 )

             ls -R          - 하위 디렉토리 목록까지 출력

 

             ls -l

               =>  drwxr-xr-x   23 root root    4096  2월 27 18:38 var

 

                   d : 파일 종류 ( - : 일반파일 , d : 디렉토리 파일 , l : 심볼릭 링크 파일 , b,c,p,s)

                   rwxr-xr-x : 접근 권한

                   23 : 하드 링크 수

                   root : 파일의 소유자

                   root : 파일이 속한 그룹

                   4096 : 파일 크기(바이트)

                   2월 27일 18:38 : 파일이 마지막으로 수정된 시간

                   var : 파일 이름

 

 * mkdir         :  디렉토리를 생성

 

             mkdir unix                         - unix 디렉토리 생성

             mkdir unix temp test           - 여러개 디렉토리 생성

             mkdir -p unix/temp/test      - 하위 디렉토리 생성 (p 옵션을 통해서 생성한다.)

 

 * rmdir          : 디렉토리를 삭제 (디렉토리가 반드시 비어 있어야 한다)

 

             rmdir unix                         - unix 디렉토리 삭제

             rmdir -p unix/temp/test      - 하위 디렉토리 포함하여 삭제

 

[파일 내용 보기]

 

  * cat            -  파일의 내용을 연속 출력

 

             cat /Unix/test.txt               - Unix 디렉토리내에 test.txt 파일의 내용을 연속적으로 출력한다.

             cat -n /Unix/test.txt           - Unix 디렉토리내에 test.txt 파일의 내용을 행번호 붙여 연속적으로 출력한다.

 

 * more          - 화면 단위로 파일 내용을 출력

 

            more +5 /Unix/test            - Unix 디렉토리내에 test 파일의 내용을 5행 이후부터 화면단위로 출력한다.

          

            -- 계속 -- 나오는 부분에서

            spacebar             - 다음 페이지

            b                         - 이전 페이지

            enter                   - 한줄 단위

            q                        - 즉시 종료

            /문자열               - 문자열 찾기

 

 * tail            - 파일의 뒷부분 몇 행을 출력한다.(로그, 접근 정보 볼 때 마지막을 보기때문에 사용)

 

           tail +10 /boot/log           - boot 디렉토리내에 log 파일의 내용을 10행부터 끝까지 출력한다.

           tail -5 log                     - log 파일의 뒷부분 5행이 출력된다(기본 값은 10 이다)

           tail -f  log                     - log 파일 출력이 종료 되지 않고 주기적으로 감시하여 변화 확인시 출력된다.

                                              - ctrl+c 로 명령을 종료 시킨다.

 

[파일 복사]

 

  * cp             - 파일이나 디렉토리를 복사한다.        

 

             cp file1 file2                - 파일을 파일로 복사

             cp -i file1 file2             - 파일명2가 기존에 존재할 경우 덮어쓸 것인지 물어봄

             cp f1 f2 f3 dir1             - f1 f2 f3 파일을 dir1 디렉토리에 복사한다.

             cp -r dir1 dir2             - 디렉토리 복사

             cp -ri dir1 dir2            - 덮어쓸것인지 물어보면서 디렉토리 복사


 

[파일 삭제]

 

  * rm            - 파일과 디렉토리를 삭제한다.

 

             rm file                         - 파일을 삭제한다.

             rm file1 file2                 - 여러파일을 삭제한다.

             rm -i file                      - 파일삭제시 정말 삭제할 것인지 확인한다.

             rm -r dir                      - 디렉토리를 삭제할때

 

[파일 이동]

 

  * mv            - 파일의 이름을 바꾸거나 다른 디렉토리로 이동시킬 때

 

            mv file1 file2                 - 현재 디렉토리의 file1을 file2로 이름을 바꾸어 이동한다.

            mv -i file1 file2              - 기존 file2 파일이 있을 경우 덮어 쓸 것인지 물어본다.

            mv file1 dir1/file2           - 현재 디렉토리의 file1 을 dir1 디렉토리내의 file2로 이름을 바꾸어 이동

            mv dir1/file1 dir2/file2 .   - 두 파일을 현재 디렉토리로 이동한다.

 

[파일 링크]

 

  * ln            -  하드 링크 파일이나 심볼릭 링크 파일을 만들 때 사용한다.

                   -  하드 링크는 원본 파일에 붙인 새로운 이름이고,

                   - 심볼릭 링크 파일은 윈도우의 바로가기 아이콘 처럼 원본을 가리키는 특수한 파일이다.

 

             ln  test Intest            - 하드 링크 생성

             ln -s test Intest         - 심볼릭 링크 파일 생성

 

[파일 생성 및 수정 시간 변경]

 

  * touch        - 빈 파일을 생성하거나 파일의 마지막 접근 시간이나 수정 시간을 변경하는 명령이다.

 

             touch t1 t2 t3                   - 여러 빈 파일을 생성

             touch t1                         - t1 을 현재 시간으로 변경

             touch -t 200704201740  t1  - t1의 파일 수정 시간을 2007년 4월 20일 17:40 분 으로 변경

             touch -t t1 t2                   - t2의 파일 수정 시간을 t1 파일 기준으로 변경

             touch -a -t 03100001 test  - 접근 시간만 변경

             touch -m -t 03100001 test - 수정 시간만 변경

             ls -ul                             - 접근 시간 확인하기

 

[vi 사용 명령어]

         

* vi 시작과 종료
    - 시작
                vi [파일명...]  : 파일명을 지정하지 않으면 빈파일이 열린다.
    - 종료
                :q  : vi에서 작업한 것이 없을때 그냥 종료
                :q!  : 작업한 내용을 저장하지 않고 종료
                :w [파일명] : 작업한 내용을 저장만 한다. 파일명을 지정하면 새 파일로 저장한다.
                :wq, :wq! [파일명]: 작업한 내용을 저장하고 vi 종료, 파일명을 지정하면 파일명 생성 후 저장된다.
                ZZ  : 작업한 내용을 저장하고 vi 종료

 

* 입력 모드로 전환
                i : 커서 앞에 입력한다(현재 커서 자리에 입력).
                a : 커서 뒤에 입력한다(현재 커서 다음 자리에 입력).
                o : 커서가 위치한 행의 다음 행에 입력한다.
                I : 커서가 위치한 행의 첫 컬럼으로 이동해 입력한다.
                A : 커서가 위치한 행의 마지막 컬럼으로 이동해 입력한다.
                O : 커서가 위치한 행의 이전 행에 입력한다.

 

* 커서 및 화면이동
                h,j,k,l : 커서를 왼,아래,위,오른쪽 으로 이동시킨다.
                ^ 또는 0: 커서를 현재 행의 처음으로 이동시킨다.
                $ : 커서를 현재 행의 마지막으로 이동시킨다.
                - : 커서를 이전 행의 처음으로 이동시킨다.
                + 또는 Enter : 커서를 다음 행의 처음으로 이동시킨다.
                H,M,L : 커서를 화면의 맨 위, 중간, 맨 아래 행으로 이동시킨다.
                w : 커서를 다음 단어의 첫 글자 위치로 이동시킨다.
                b : 커서를 앞 단어의 첫 글자 위치로 이동시킨다.
                e : 커서를 다음 단어의 마지막 글자 위치로 이동시킨다.

 

* 화면이동
                ctrl + u : 반 화면 위로 이동시킨다.
                ctrl + d : 반 화면 아래로 이동시킨다.
                ctrl + b : 한 화면 위로 이동시킨다.
                ctrl + f : 한 화면 아래로 이동시킨다.
                ctrl + y : 화면을 한 행만 위로 이동시킨다.
                ctrl + e : 화면을 한 행만 아래로 이동시킨다.

 

* 수정 및 삭제


 - 내용 수정하기(입력모드 esc)
                 r  : 커서가 위치한 문자를 다른 문자로 수정한다.
                 cw, #cw : 커서의 위치부터 현재 단어의 끝까지 수정한다.

                        (#에는 수정할 단어의 수를 지정, 3cw는 커서 위치부터 3단어 수정)
                 s, #s : 커서의 위치부터 ESC 키를 입력할 때까지 수정한다

                        (#에는 수정할 문자의 수를 지정, 5s는 커서 위치부터 5글자 수정)
                 cc : 커서가 위치한 행의 내용을 모두 수정한다.
                 C : 커서의 위치부터 행의 끝까지 수정한다.


 - 내용 삭제하기
                 x, #x : 커서가 위치한 문자를 삭제한다.(#은 삭제할 문자 수, 예를 들어 3x 하면 3글자 삭제)
                 dw, #dw : 커서 위치의 단어를 삭제한다.(#은 삭제할 단어 수)
                 dd, #dd : 커서가 위치한 행을 삭제한다.(#은 삭제할 행의 수)
                 shift+d(D) : 커서 위치부터 행의 끝까지 삭제한다.
                 u : 방금 수행한 명령을 취소한다.
                 U : 해당 행에서 한 모든 명령을 취소한다.
                 :e! : 마지막으로 저장한 내용 이후의 것을 버리고 새로 작업한다.

 

* 복사하기 / 붙이기 / 잘라내기 명령
                yy, #yy  : 커서가 위치한 행을 복사한다(#에는 복사할 행의 수 지정)
                p  : 커서가 위치한 행의 아래쪽에 붙인다.
                P  : 커서의 위치한 행의 위쪽에 붙인다.
                dd, #dd  : 커서가 위치한 행을 잘라둔다(#에는 잘라둘 행의 수 지정)

                "ayy  : 네임트 버퍼에 저장 ("a, "b, "c .... "z)

 

* 범위 지정 명령키
                %  : 첫 줄에서 마지막 줄까지(파일내의 모든 줄)
                .,$  : 커서가 있는 행부터 마지막 행까지 지정한다.
                10,20  : 10행부터 20행까지 지정한다.

 

* 마지막행 모드에서 복사와 잘라내기
                :#y  : #으로 지정한 행을 복사(:10y -> 10행을 복사) 
                :<범위>y : 범위로 지정한 행을 복사
                :#d  : #으로 지정한 행을 삭제
                :pu  : 현재 행 다음에 버퍼내용 붙이기

 

* vi 검색 명령키
                /문자열  : 문자열을 아래 방향으로 검색한다.
                ?문자열  : 문자열을 위 방향으로 검색한다.
                n  : 원래 찾는 방향으로 다음 문자열을 찾는다.
                N  : 역방향으로 다음 문자열을 찾는다.

 

* 마지막행 모드에서 바꾸기 기능
                :s/문자열1/문자열2/  : 커서가 위치한 줄에서만 문자열1을 문자열2로 바꿈
                :%s/문자열1/문자열2/g  : 파일 전체에서 모든 문자열1을 문자열2로 바꾼다
                :<범위>s/문자열1/문자열2/gc :

                     <범위> 안의 모든 행에 대해서 각 문자열1을 문자열2로 바꿀 때 수정할지 여부를 묻는다.

 

* 파일 읽어오기 / 여러파일 편집
                :r 파일명  : 지정한 파일을 현재 커서 위치에 삽입
                :e 파일명  : 현재 파일 대신 지정한 파일을 읽음
                :n   : vi 시작시 여러 파일을 지정할였을 경우 다음 파일로 이동

 

* vi에서 쉘 명령 실행
                :!명령   : vi를 중단하고 지정한 명령 수행(vi로 돌아올때 : Enter)
                :sh   : vi를 잠시 빠져나가서 쉘을 수행(vi로 돌아올때 : exit)

 

* 알아두면 유용한 명령키들
                ctrl + l  : 화면을 다시 출력한다.(깨졌을때)
                ctrl + g  : 현재행을 마지막 행에 출력한다.
                shift + j(또는 J) : 현재 행과 아래 행을 연결하여 하나의 행으로 만듦
                .   : 바로 직전에 했던 명령을 반복한다.
                ~   : 현재 커서 위치의 한 문자를 소문자 혹은 대문자로 전환한다.

 

* vi 환경설정
                :set nu   : 파일 내용의 각 줄에 줄 번호 표시(보이기만 할 뿐 저장은 되지 않는다.)
                :set nonu  : 줄번호 취소
                :set showmode  : 현재 모드를 표시한다.
                :set noshowmode  : 현재 모드 표시를 감춘다.

 

 

출처: http://annehouse.tistory.com/367

반응형