웹사이트 검색

초보자를 위한 Linux history 명령 자습서(예제 8개)


이 페이지에서

  1. Linux 기록 명령
  2. Q1. 역사 명령은 어떻게 작동합니까?\n
  3. Q2. 기록을 날짜와 시간으로 표시하는 방법은 무엇입니까?\n
  4. Q3. 기록 중지 기록 명령을 만드는 방법은 무엇입니까?
  5. Q4. 단일 명령을 기록하지 않도록 역사를 만드는 방법은 무엇입니까?\n
  6. Q5. 빠른 기록 검색을 수행하는 방법은 무엇입니까?\n
  7. Q6. 이전 명령을 실행하는 방법은 무엇입니까?\n
  8. Q7. 기록에서 출력의 중복 항목을 무시하는 방법은 무엇입니까?\n
  9. Q8. 기록을 지우는 방법?
  10. 결론

작업에 Linux 명령줄에서 도구와 스크립트를 실행하는 작업이 포함되어 있다면 매일 실행할 명령이 많을 것입니다. 명령줄을 처음 사용하는 사용자는 이전에 실행한 명령 목록을 제공하는 도구(더빙 기록)가 있다는 것을 알아야 합니다.

이 자습서에서는 이해하기 쉬운 몇 가지 예를 사용하여 history 명령의 기본 사항에 대해 설명합니다. 그러나 그 전에 여기에 있는 모든 예제가 Ubuntu 16.04LTS 시스템에서 테스트되었음을 언급할 가치가 있습니다.

리눅스 히스토리 명령어

명령줄 기록을 효과적으로 활용하는 방법을 알고 있다면 매일 많은 시간을 절약할 수 있습니다. 다음은 history 명령을 유용하게 사용할 수 있는 방법에 대한 좋은 아이디어를 제공하는 몇 가지 Q&A 형식의 예입니다.

Q1. 역사 명령은 어떻게 작동합니까?

기본 사용법은 간단합니다. history 명령을 실행하기만 하면 됩니다.

history

따라서 이전에 실행한 명령이 출력에 표시되는 것을 볼 수 있습니다. 출력 표시가 첫 번째 페이지에서 일시 중지되었는지 확인하기 위해 more 명령을 사용했음을 참고하십시오(히스토리의 전체 출력은 일반적으로 매우 깁니다).

Q2. 기록을 날짜와 시간으로 표시하는 방법은 무엇입니까?

history 명령이 각 명령의 실행 날짜와 시간을 표시하도록 하려면 다음과 같은 방법으로 HISTTIMEFORMAT 변수를 내보내면 됩니다.

export HISTTIMEFORMAT="%F %T: "

그게 다야. 이제 history 명령을 실행하면 출력에 날짜 및 시간 정보가 표시됩니다.

모든 명령어에 대해 동일한 날짜와 시간이 표시되는 경우 다음 설명을 통해 명확하게 알 수 있습니다.

If you set the HISTTIMEFORMAT in bash your new entries get stored in the history file with a 
timestamp, older commands that don't have a timestamp (those before you ever set HISTTIMEFORMAT
will display one and the same date-time-stamp (I assume the one from the first entry found with a
real timestamp).

This problem should solve itself after your complete history has been updated in a few days.

You can look in ~/.bash_history to see what is the first line that has a date-time-stamp.
Those are lines starting with a # followed by a (currently) 10 digit number.

Q3. 기록 중지 기록 명령을 만드는 방법은 무엇입니까?

시스템이 명령 기록을 저장하지 않도록 하는 상황이 발생하면 HISTSIZE 변수를 사용하여 이를 수행할 수 있습니다. 값이 0인 상태로 내보내기만 하면 됩니다.

다음 예를 참조하십시오.

보시다시피 history 명령을 실행해도 아무런 결과가 나오지 않습니다.

HISTFILESIZE 변수도 있습니다. 둘의 차이점은 다음과 같습니다.

HISTSIZE is the number of lines or commands that are stored in memory in a history list while your 
bash session is ongoing.

HISTFILESIZE is the number of lines or commands that (a) are allowed in the history file at startup
time of a session, and (b) are stored in the history file at the end of your bash session for use in
future sessions.

Q4. 단일 명령을 기록하지 않도록 역사를 만드는 방법은 무엇입니까?

이는 HISTCONTROL 변수를 ignorespace로 설정하여 수행할 수 있습니다. 이는 다음과 같은 방법으로 수행할 수 있습니다.

export HISTCONTROL=ignorespace

이제 히스토리에 기록하고 싶지 않은 명령을 실행할 때마다 선행 공백을 두고 실행하십시오.

Q5. 빠른 기록 검색을 수행하는 방법은 무엇입니까?

물론 grep 명령어를 사용하여 history 명령어로 생성된 출력에서 특정 키워드나 명령어를 검색할 수 있습니다. 그러나 훨씬 더 빠른 방법인 reverse-i-search도 있습니다.

매우 쉽습니다. 명령줄에서 CTRL+R을 누르기만 하면 프롬프트가 다음과 같이 표시됩니다.

이제 검색하려는 키워드를 입력하면 오른쪽 기록에서 일치하는 제안이 표시됩니다. 예를 들어, 나는 man(따옴표 없이)을 입력했고 내가 얻은 첫 번째 결과는 man apropos였습니다.

찾고 있는 것이 아닌 경우 CTRL+R을 다시 눌러 다음 일치 결과를 얻을 수 있습니다. 제 경우에 제가 얻은 다음 결과는 사람 찾기 검색이었습니다.

이 방법으로 계속 검색할 수 있습니다. 원하는 결과를 얻은 후 오른쪽 화살표 키를 누르면 프롬프트에 전체 명령이 표시됩니다.

이제 이 명령을 실행하거나 원하는 방식으로 사용할 수 있습니다.

Q6. 이전 명령을 실행하는 방법은 무엇입니까?

마지막으로 실행된 명령을 실행할 수 있는 두 가지 쉬운 방법이 있습니다. CTRL+P를 누르거나 다음 명령을 실행합니다.

!!

믿지 않습니까(특히 두 번째 방법)? 시도 해봐.

요구 사항이 두 번째 마지막 명령을 빠르게 실행해야 하는 경우 다음과 같은 방법으로 수행할 수 있습니다.

!-1

등등.

Q7. 기록에서 출력의 중복 항목을 무시하는 방법은 무엇입니까?

이것은 HISTCONTROL 변수를 ignoreboth 및 erasedups로 설정하여 수행할 수 있습니다. 다음과 같은 방법으로 할 수 있습니다.

echo HISTCONTROL=ignoreboth:erasedups

이제 history 명령을 실행하면 출력에 중복이 포함되지 않습니다.

Q8. 기록을 지우는 방법?

새로 시작할 수 있도록 기존 기록을 지우려면 -c 명령줄 옵션을 사용합니다.

history -c

결론

히스토리가 알아야 할 매우 중요한 명령이라는 데 동의할 것입니다. 이 자습서에서는 이 도구를 최대한 활용하기 위한 몇 가지 중요한 팁/요령에 대해 논의했습니다. 이를 연습한 후 자세한 내용은 도구 설명서 페이지로 이동하세요.