더북(TheBook)

히스토리 확장은 빠르고 편리하지만, 한눈에 이해하기 어렵다. 그리고 정확한 값을 입력하지 않으면 의도치 않은 명령이 그대로 실행될 수 있다. 위의 예제를 다시 한 번 살펴보자. 만약 표현식 !-3을 입력하려다 오타를 내서 !-4를 입력했다면, 우리가 실행하려던 head 명령 대신 rm * 명령이 실행돼 홈 디렉터리의 파일을 모두 잃었을 것이다. 이런 위험을 방지하기 위해 수정자 :p를 사용해 표현식이 가리키는 명령을 바로 실행하기 전에 먼저 확인하는 것이 좋다.

$ !-3:p
head -n2 /etc/hosts       # 표현식이 가리키는 명령이 출력될 뿐 실행되지는 않는다

표현식이 가리킨 명령이 명령 히스토리에 추가되므로, 해당 명령을 실행해도 괜찮다면 다시 !!를 입력해 실행한다.

$ !-3:p
head -n2 /etc/hosts       # 표현식이 가리키는 명령이 출력되고 히스토리에 추가된다
$ !!                      # 이번에는 실제로 명령을 실행하자
head -n2 /etc/hosts       # 명령이 출력되고 실행된다
127.0.0.1      localhost
127.0.1.1      example.oreilly.com
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.