리눅스 시스템에서 사용하는 명령을 요약해 보기 위해서는 얼마간의 명령과 함께 각 명령을 연결하는 몇 가지 파이프만 있으면 된다. 히스토리 버퍼에 최근 1,000개 또는 2,000개의 명령어를 보존한다면 명령 요약 작업이 지루해질 수도 있다. 이번 기사에서는 명령 사용을 요약하고 가장 자주 사용된 명령을 일목요연하게 볼 수 있는 편리한 방법을 제공한다. ⓒ Getty Images Bank
일단 일반적인 명령 히스토리에 표시되는 내용은 다음과 같다는 점을 염두에 두자. 명령 시퀀스 번호 다음에 명령이 표시되고, 그 뒤에 인수가 따라온다.
91 sudo apt-get install ccrypt
^
+-- command
HISTSIZE 설정을 따르는 히스토리 명령은 보존되는 명령의 수를 결정한다. 500개나 1,000개 또는 이보다 많을 수 있다. 현재 보존되는 명령의 수가 마음에 들지 않는다면 .bashrc 또는 다른 시작 파일에서 HISTSIZE 설정을 추가하거나 바꾸면 된다.
$ echo $HISTSIZE
1000
$ history | wc -l
1000
$ grep HISTSIZE ~/.bashrc
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
많은 수의 명령을 저장할 때 가장 큰 이점 가운데 하나는 명령을 일일이 기억하거나 다시 입력할 필요 없이 예전에 사용했던 명령을 손쉽게 다시 실행할 수 있다는 것이다. 또한 현재 진행 중인 작업에서 거쳐온 과정을 간편하게 되돌아보는 데도 유용하다. history 명령만 단독으로 사용하면 다음과 같은 내용이 표시된다. 가장 오래된 명령이 가장 위에 나온다.
$ history
7 vi tasks
8 alias
9 echo $HISTTIMEFORMAT
10 history
11 date
…
가장 최근 명령을 보려면 기록된 명령의 맨 아래로 가야 한다.
$ history | tail -4
1007 echo $HISTSIZE
1008 history | wc -l
1009 history
1010 history | tail -4
tail 명령을 사용해 .bash_history 파일의 맨 아래를 보는 방법도 있지만 history 명령이 전반적으로 더 유용하고, 번호가 함께 표시되므로 예를 들어 !1010을 입력해 편리하게 명령을 다시 실행할 수도 있다.
사용한 명령(예를 들어 vi 및 echo)의 요약을 준비하려면 먼저 awk를 사용해 히스토리에 저장된 나머지 각 명령에서 이 정보를 분리해야 한다.
$ history | awk '{print $2}'
vi
alias
echo
history
date
…
히스토리의 명령 목록을 sort 명령으로 전달해 알파벳 순서로 명령을 묶는다면 결과는 다음과 같다.
$ history | awk '{print $2}' | sort
7z
7z
alias
apropos
cd
cd
…
그 다음 sort 명령의 출력을 uniq-c로 전달하면 각 명령이 사용된 횟수가 계산된다.
$ history | awk '{print $2}' | sort | uniq -c
2 7z
1 alias
2 apropos
38 cd
21 chmod
…
마지막으로 두 번째 sort 명령을 추가해 명령 그룹 수를 역순으로 정렬하면 가장 많이 사용된 명령이 가장 먼저 표시된다.
$ history | awk '{print $2}' | sort | uniq -c | sort -nr
178 ls
95 vi
63 cd
53 sudo
41 more
…
이렇게 하면 자신이 가장 많이 사용하는 명령이 무엇인지 알 수 있지만, 다음과 같은 설정을 통해 히스토리 파일에 넣지 않도록 의도적으로 생략한 명령은 여기에 포함되지 않는다.
HISTIGNORE="pwd:clear:man:history"
기록이 변경되는 경우
기본 히스토리 형식의 경우 history 명령 출력의 첫 번째 필드는 각 명령의 시퀀스 번호이며, 두 번째 필드는 사용된 명령이다. 이런 이유로 앞서 나온 모든 awk 명령은 $2를 표시하도록 설정됐다.
리눅스 시스템에서 사용하는 명령을 요약해 보기 위해서는 얼마간의 명령과 함께 각 명령을 연결하는 몇 가지 파이프만 있으면 된다. 히스토리 버퍼에 최근 1,000개 또는 2,000개의 명령어를 보존한다면 명령 요약 작업이 지루해질 수도 있다. 이번 기사에서는 명령 사용을 요약하고 가장 자주 사용된 명령을 일목요연하게 볼 수 있는 편리한 방법을 제공한다. ⓒ Getty Images Bank
일단 일반적인 명령 히스토리에 표시되는 내용은 다음과 같다는 점을 염두에 두자. 명령 시퀀스 번호 다음에 명령이 표시되고, 그 뒤에 인수가 따라온다.
91 sudo apt-get install ccrypt
^
+-- command
HISTSIZE 설정을 따르는 히스토리 명령은 보존되는 명령의 수를 결정한다. 500개나 1,000개 또는 이보다 많을 수 있다. 현재 보존되는 명령의 수가 마음에 들지 않는다면 .bashrc 또는 다른 시작 파일에서 HISTSIZE 설정을 추가하거나 바꾸면 된다.
$ echo $HISTSIZE
1000
$ history | wc -l
1000
$ grep HISTSIZE ~/.bashrc
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
많은 수의 명령을 저장할 때 가장 큰 이점 가운데 하나는 명령을 일일이 기억하거나 다시 입력할 필요 없이 예전에 사용했던 명령을 손쉽게 다시 실행할 수 있다는 것이다. 또한 현재 진행 중인 작업에서 거쳐온 과정을 간편하게 되돌아보는 데도 유용하다. history 명령만 단독으로 사용하면 다음과 같은 내용이 표시된다. 가장 오래된 명령이 가장 위에 나온다.
$ history
7 vi tasks
8 alias
9 echo $HISTTIMEFORMAT
10 history
11 date
…
가장 최근 명령을 보려면 기록된 명령의 맨 아래로 가야 한다.
$ history | tail -4
1007 echo $HISTSIZE
1008 history | wc -l
1009 history
1010 history | tail -4
tail 명령을 사용해 .bash_history 파일의 맨 아래를 보는 방법도 있지만 history 명령이 전반적으로 더 유용하고, 번호가 함께 표시되므로 예를 들어 !1010을 입력해 편리하게 명령을 다시 실행할 수도 있다.
사용한 명령(예를 들어 vi 및 echo)의 요약을 준비하려면 먼저 awk를 사용해 히스토리에 저장된 나머지 각 명령에서 이 정보를 분리해야 한다.
$ history | awk '{print $2}'
vi
alias
echo
history
date
…
히스토리의 명령 목록을 sort 명령으로 전달해 알파벳 순서로 명령을 묶는다면 결과는 다음과 같다.
$ history | awk '{print $2}' | sort
7z
7z
alias
apropos
cd
cd
…
그 다음 sort 명령의 출력을 uniq-c로 전달하면 각 명령이 사용된 횟수가 계산된다.
$ history | awk '{print $2}' | sort | uniq -c
2 7z
1 alias
2 apropos
38 cd
21 chmod
…
마지막으로 두 번째 sort 명령을 추가해 명령 그룹 수를 역순으로 정렬하면 가장 많이 사용된 명령이 가장 먼저 표시된다.
$ history | awk '{print $2}' | sort | uniq -c | sort -nr
178 ls
95 vi
63 cd
53 sudo
41 more
…
이렇게 하면 자신이 가장 많이 사용하는 명령이 무엇인지 알 수 있지만, 다음과 같은 설정을 통해 히스토리 파일에 넣지 않도록 의도적으로 생략한 명령은 여기에 포함되지 않는다.
HISTIGNORE="pwd:clear:man:history"
기록이 변경되는 경우
기본 히스토리 형식의 경우 history 명령 출력의 첫 번째 필드는 각 명령의 시퀀스 번호이며, 두 번째 필드는 사용된 명령이다. 이런 이유로 앞서 나온 모든 awk 명령은 $2를 표시하도록 설정됐다.