ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Linux] 커맨드라인 특수문자 명령어
    서버 2017. 3. 14. 21:10

    1. !! - 쌍느낌표 (Double exclamation)

    바로 직전에 사용한 명령어를 실행합니다.

    $ cat file1
    1111111111111111111111
    22222222222222222
    end
    $ !!
    cat file1 # 이전에 실행된 명령어를 보여줌
    1111111111111111111111
    22222222222222222
    end

    !!:^, !!:$, !!:* 응용

    ^, $, * 에 대한 설명은 아래에서 확인할 수 있습니다.

    $ echo '1' '2' '3' 
    1 2 3
    $ echo !!:^ # !!= 이전명령어 , := ~의, ^= 첫 번째 argument 즉 이전명령어의 첫 번째 argument를 호출
    echo '1'
    1
    $ echo !!:$ # !!= 이전명령어 , := ~의, $= 마지막 argument 즉 이전명령어의 마지막 argument를 호출
    echo '3'
    3
    $ echo !!:* # !!= 이전명령어 , := ~의, *= 전체 argument 즉 이전명령어의 전체 argument를 호출
    echo '1' '2' '3'
    1 2 3

    2. ! - 느낌표 (Exclamation)

    !history의 고유번호

    history 명령어를 입력하면 고유의 식별번호가 존재하는데 느낌표+식별번호를 입력하면 해당 번호의 명령어가 실행됩니다.

    $ history
    ...
    1721  sudo su
    1722  ll
    1723  cat file1
    1724  history
     
    $ !1723
    cat file1 # 1723번에 존재하는 명령어 실행
    1111111111111111111111
    22222222222222222
    end

    !-history의 고유번호 순번

    !-2의 의미는 마지막 명령어로부터 뒤로 두번 째 명령어를 재호출 한다는 의미입니다.

    $ !-2
    cat file1 # history의 마지막에서 두 번째 명령어 실행
    1111111111111111111111
    22222222222222222
    end

    !^, !$, !* 이전 명령어의 argument 실행

    !^: 이전 명령어의 첫 번째 argument

    !$: 이전 명령어의 마지막 argument

    !*: 이전 명령어의 전체 argument

    $ ls -la company
    total 20
    drwxr-xr-x 5 root root 4096 Dec 12 09:12 .
    drwxr-xr-x 8 root root 4096 Mar 14 20:06 ..
    drwxr-xr-x 2 root root 4096 Dec 12 09:12 bin
    drwxr-xr-x 3 root root 4096 Jan 20 09:52 pkg
    drwxr-xr-x 6 root root 4096 Jan 20 09:52 src
     
    $ ls !*
    ls -la company # 전체 argument 실행
    total 20
    drwxr-xr-x 5 root root 4096 Dec 12 09:12 .
    drwxr-xr-x 8 root root 4096 Mar 14 20:06 ..
    drwxr-xr-x 2 root root 4096 Dec 12 09:12 bin
    drwxr-xr-x 3 root root 4096 Jan 20 09:52 pkg
     
    $ ls !^
    ls -la # 첫 번째 argument 실행
    total 32912
    drwxr-xr-x  8 root     root         4096 Mar 14 20:06 .
    drwxr-xr-x 23 root     root         4096 Mar 14 13:28 ..
    drwxr-xr-x  5 root     root         4096 Dec 12 09:12 company
    -rw-r--r--  1 root     root     32976929 Jan 20 10:01 company.tar.gz
     
    $ ls !$
    ls company # 마지막 argument 실행
    bin  pkg  src

    ![keyword] 이전 명령어의 keyword로 실행

    keyword로 실행된 명령어 중 가장 최근 명령어를 찾아서 재 실행합니다.

    $ ls company
    bin pkg src
    $ vi aaaa
    ...
    $ !ls
    bin pkg src

    3. {} - 중괄호 (Brace)

    커맨드라인에서 콤마는 파일명을 나열하고 명령에게 인수로 전달합니다. 

    $ sudo mkdir test{1,2,3}
    $ ll
    ...
    drwxr-xr-x  2 root     root         4096 Mar 14 20:54 test1/
    drwxr-xr-x  2 root     root         4096 Mar 14 20:54 test2/
    drwxr-xr-x  2 root     root         4096 Mar 14 20:54 test3/

    4. ? - 물음표 (Question)

    파일명을 생성하게 하는 특수문자입니다. 이 문자는 기존의 파일명에 있는 문자 하나에 해당됩니다.

    $ echo test?
    test1 test2 test3

    5. * - 별표 (Asterisk)

    물음표와 비슷한 기능을 수행하지만 어떤 개수의 문자열에도 대응할 수 있습니다.

    $ echo test*
    test test1 test1123 test2 test3

    6. [] - 대괄호 (Square bracket)

    문자 주위를 둘러싼 괄호 기호 []는 각각의 문자를 포함하는 파일명을 검색하게 합니다.

    $ echo test[13]
    test1 test3
    $ echo test[1-3]
    test1 test2 test3 


    댓글