-
[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