본문 바로가기

개발/Server Side

history 명령어 응용

1. history에 타임스탬프 출력하기

yklee@tyolee:~$ export HISTTIMEFORMAT='[%F %T] '
yklee@tyolee:~$ history 10
  400  [2010-02-11 11:13:06] export HISTTIMEFORMAT='%F %T'
  401  [2010-02-11 11:13:08] history
  402  [2010-02-11 11:13:26] export HISTTIMEFORMAT='[%F %T] '
  403  [2010-02-11 11:13:29] history
  404  [2010-02-11 11:14:04] history 10
  405  [2010-02-11 11:14:11] h1
  406  [2010-02-11 11:16:18] export HISTTIMEFORMAT='[%F %T] '
  407  [2010-02-11 11:16:21] history | more
  408  [2010-02-11 11:16:30] export HISTTIMEFORMAT='[%F %T] '
  409  [2010-02-11 11:16:32] history 10
yklee@tyolee:~$


2. Ctrl + R 로 history 검색
쉘에서 Ctrl + R 키를 누르면 다음과 같은 쉘이 보인다.

yklee@tyolee:~$
(reverse-i-search)`':

여기에 키워드를 입력하면 history 내역 중에 키워드를 포함하는 내용이 보인다. 

yklee@tyolee:~$
(reverse-i-search)`bash': history | grep bash

검색된 내용을 바로 실행하려면 거기서 엔터, 편집하려면 화살표 좌/우 키 아무거나 누름.

3. history 에서 특정 명령어 실행
yklee@tyolee:~$ history 10
  411  [2010-02-11 11:21:09] history | grep bash
  412  [2010-02-11 11:25:48] history
  413  [2010-02-11 11:26:00] history | grep bash
  414  [2010-02-11 11:27:18] history 10
  415  [2010-02-11 11:27:28] ls
  416  [2010-02-11 11:27:30] history
  417  [2010-02-11 11:27:32] ll
  418  [2010-02-11 11:27:35] ls -a
  419  [2010-02-11 11:27:40] history
  420  [2010-02-11 11:27:44] history 10
yklee@tyolee:~$ !415
ls
a.out  testdir.c  tok.c
yklee@tyolee:~$


4. history 내역에서 명령 숨기기
yklee@tyolee:~$ export HISTCONTROL=ignorespace

이렇게 하면 공백으로 시작하는 명령어는 무시하게 된다.

yklee@tyolee:~$ ls -l
합계 20
-rwxr-xr-x 1 yklee yklee 8448 2010-01-25 07:04 a.out
-rw-r--r-- 1 yklee yklee  407 2010-01-25 07:04 testdir.c
-rw-r--r-- 1 yklee yklee  849 2010-01-14 04:28 tok.c
yklee@tyolee:~$ pwd
/home/yklee
yklee@tyolee:~$  ls
a.out  testdir.c  tok.c
yklee@tyolee:~$  uname -a
Linux tyolee 2.6.31-17-generic-pae #54-Ubuntu SMP Thu Dec 10 17:23:29 UTC 2009 i686 GNU/Linux
yklee@tyolee:~$ history 5
  421  [2010-02-11 11:27:49] ls
  422  [2010-02-11 11:54:36] export HISTCONTROL=ignorespace
  423  [2010-02-11 11:54:39] ls -l
  424  [2010-02-11 11:54:40] pwd
  425  [2010-02-11 11:55:05] history 5
yklee@tyolee:~$


5. history 사용하지 않도록 설정
yklee@tyolee:~$ export HISTSIZE=0
yklee@tyolee:~$ history
yklee@tyolee:~$



6. 특정 명령어는 기록하지 않게 하기 - 자주쓰는 ls, pwd 등은 기록하지 않게 설정하고 싶을 수도 있음
yklee@tyolee:~$ export HISTIGNORE="pwd:ls"
yklee@tyolee:~$ pwd
/home/yklee
yklee@tyolee:~$ ls
a.out  testdir.c  tok.c
yklee@tyolee:~$ ls -l
합계 20
-rwxr-xr-x 1 yklee yklee 8448 2010-01-25 07:04 a.out
-rw-r--r-- 1 yklee yklee  407 2010-01-25 07:04 testdir.c
-rw-r--r-- 1 yklee yklee  849 2010-01-14 04:28 tok.c
yklee@tyolee:~$ uname -a
Linux tyolee 2.6.31-17-generic-pae #54-Ubuntu SMP Thu Dec 10 17:23:29 UTC 2009 i686 GNU/Linux
yklee@tyolee:~$ history 10
  398  unzip | grep t
  399  export HISTIGNORE="pwd:ls"
  400  ls -l
  401  uname -a
  402  history
  403  history 10
  404  export HISTIGNORE="pwd:ls"
  405  ls -l
  406  uname -a
  407  history 10
yklee@tyolee:~$