본문 바로가기

IT/리눅스

리눅스 사용했던 명령을 재사용하는 history

제 13장.

 

사용했던 명령을 재사용하는 history

 

 

 

 

 

학습목표/개요

 

  • 명령어 히스토리란?
  • 명령어 리스트 다른 파일에 저장하기
  • 명령어 재사용하는 가장 쉬운 방법
  • 화살표 키를 이용한 명령어 재사용
  • 저장된 명령어 리스트 탐색
  • 저장된 명령어 탐색하여 재사용 하기
  • 특정 문자열에 가장 가까운 명령어 재사용하기
  • 전문가들이 사용하는 명령어 재사용 방법
  • 명령어 히스토리와 시스템 보안

 

 

 

 

안녕하세요! 지토우에요.

오늘은 history 기능 활용에 대해 이야기 나누어 봅시다 ! ^_^

 

1. 명령어 히스토리란 무엇인가?

 

 우리는 리눅스 시스템을 관리하면서 수없이 많은 명령을 사용합니다.

관리 대상은 시스템이지만 관리작업의 수단은 리눅스 명령을 통해서 하게되는데요.

그 과정에서 우리는 이미 사용했던 명령어를 다시 반복해서 쓰는 경우가 아주 많지 않습니까?

짧은 명령어일때는 다시 쓰는 것이 어렵지 않지만, 한 행이 가득 찰 정도로 긴 명령어도 있고 그런 명령을 다시 사용할 때는 다시 불러서 쓰면 좋겠지요.

이 때 쓰는 것이 "명령어 히스토리" 입니다.

즉, 명령어 히스토리란 일정 갯수 이상 사용했던 명령어를 특정 파일에 저장해두고 필요할 경우에 다시 불러서 사용하는 것을 의미합니다.

 

 여기서 일정 갯수란 몇 개를 의미할까요? 자그마치 1000개나 됩니다.

특정 파일이란 각 사용자의 홈디렉토리에 있는 .bash_history 파일을 의미하는데요.

바로 이 파일에 사용자가 최근 사용한 천 개의 명령어들이 저장되어있는 것이죠.

 

 우리에게 리눅스의 사용환경을 매우 융통성 있게 만들어주는 것이 쉘변수이고,

많은 쉘변수 중에 HISTSIZE 라는 것이 있는데,

이것이 바로 해당 사용자의 명령어를 몇 개까지 저장해 둘 것인가를 결정하는 쉘변수 입니다.

 

 

 


 

 

 

2. 명령어 리스트 다른 파일에 저장하기

 

 원래 .bash_history 파일에 저장됐던 명령어 리스트들을 다른 파일로 저장할 수 있습니다.

 

 

w 라는 옵션을 사용하면 history의 결과를 지정된 파일에 모두 저장합니다.

즉, history의 결과가 ssparkcommand.txt 라는 파일에 저장된 것입니다.

그리고 more 명령어로 그 내용을 확인해 본 것 입니다.

 

 

 


 

 

 

 

3. 명령어 재사용하는 가장 쉬운 방법

 

" !! " 라는 것은 바로 직전에 사용했던 명령어를 재실행하는 명령어입니다.

 

 

위에서 했던 ls 명령어를 사용한 후 바로 !! 을 하면 바로 직전에 실행했던 ls를 다시 한 번 실행하는 것이죠.

 

즉, 직전 명령어를 다시 한 번 사용하려면 " !! " 을 사용하면 됩니다.

 

 

 


 

 

 

 

4. 화살표키를 이용한 명령어 재사용하기

 

키보드의 위쪽 화살표키를 한 번씩 누르면 가장 마지막에 사용했던 명령어부터 차례로 쉘프롬프트에 표시됩니다.

 

 

 


 

 

 

 

5. 저장된 명령어리스트 탐색하기

 

가장 쉬운 방법은 그냥 history 라고만 입력하는 것입니다.

 

 

그리고 history 뒤에 숫자를 지정해 그 수 만큼 최근에 사용했던 명령어를 출력하는 방법도 있습니다.

 

 

 

또는 history 명령어와 grep 명령어를 조합하여 사용하시면 원하는 문자열에 해당하는 명령어리스트를 확인할 수 있습니다.

가장 실무적인 사용 예라고 할 수 있어요.

 

 

 

 

 

 

 


 

 

 

 

6. 저장된 명령어를 탐색하여 재사용하는 방법

 

 history 명령어를 사용하여 지난 명령어와 명령어의 재사용번호 (저장번호)를 확인한 다음

"!번호"와 같은 형식으로 사용하면 명령어의 저장번호에 해당하는 명령어를 재실행합니다.

 

history | grep grep 라고 하면 현재까지 사용했던 명령어들 가운데 grep 이라는 (grep grep 중 파란색 부분)문자열이

들어간 명령어들을 찾아서 명령어 번호와 함께 표시해 줍니다.

이 때, 재사용하고자 하는 명령어가 있다면 "!명령어번호" 를 입력합니다.

위에서는 "!104" 를 입력하여 리스트에서 104번 명령어인 ps -ef | grep sshd 를 실행한 것입니다.

 

 

 


 

 

 

 

7. 특정 문자열에 가장 가까운 명령어 재사용하기

 

" !문자열 "과 같이 실행하면 지정한 문자열에 가장 가까운 이전 명령어를 찾아서 재사용할 수 있습니다.

 

 

 "history 10"으로 최근 사용했던 10개의 명령어 리스트를 확인합시다.

그리고 "!문자열"이라고 입력하면

출력된 명령어 리스트 가운데 지정한 "문자열"로 시작하는 가장 최근의 명령어를 재실행 합니다.

즉, "find 공개"를 재실행 한거죠.

 

 

 


 

 

 

 

8. 고수의 명령어 재사용법

 

!-n : 현재 명령행에서 n개수를 뺀 행의 명령어를 가리킵니다.

 

!?문자열[?] : 문자열을 가리키는 가장 최근의 명령어를 가리킵니다.

 

^문자열 1^문자열 2  : 최근 사용명령어 가운데 문자열 1 이 들어가는 명령어를 찾아서 문자열 1을 문자열 2로 치환하여 재실행합니다.