현재 세션의 기록 만 확인하는 방법이 있습니까?


10

현재 세션에서만 명령 내역을 확인할 수있는 명령이나 다른 방법이 있는지 알고 싶었습니다.

답변:


12

history에 내장 bash할 수 있습니다와 함께 사용하면 파일 이름을 지정하는 -anrw플래그 및 -a플래그 설명 help history상태 :

이 세션의 히스토리 라인을 히스토리 파일에 추가

따라서 우리는 할 수 있습니다 :

~$ history -a this_session.history
~$ cat ./this_session.history 
history mysession.history 
cat mysession.history 
clear
history -a this_session.history

레코드의 경우 -w(파일에 기록 기록 opion) 전체 기록을 지정된 파일에 기록하므로 -a여기에서 (추가)를 선택하는 것이 좋습니다.


다른 수동 방법이 있습니다. 특히 ksh이없는 -a같은 플래그를 bash않지만, 무엇을 ksh 하고 mksh있습니까이다 HISTFILE(그리고 환경 변수 bash때문에, 너무, 그것을 가지고 bash많이 포함 ksh기능); 그건 그렇고,이 변수는 기본적으로 설정되어 있지 않습니다 (적어도 mksh우분투에서는 설정하지 않았습니다). 따라서 현재 세션을 다른 파일로 출력하기 위해 HISTFILE셸 구문에서 지정한 추가 환경 변수로 명령을 실행하는 것을 명령 앞에 추가합니다. 이렇게 :

bash-4.4$ HISTFILE='mykshfile.hist' ksh
$ echo 'Hello'
Hello
$ echo 'World'
World
$ 
bash-4.4$ cat ./mykshfile.hist 
�echo 'Hello'
echo 'World'

이것에서 볼 수있는 것은 그 ksh와 관련된 쉘이 일반 텍스트 대신 특수 문자로 기록을 출력 한다는 것입니다 bash. 따라서으로 해당 파일을 열 수 있습니다 ksh.

데비안 Almquist Shell 또는 Dash 인 UbuntuPOSIX /bin/sh 에는 fc내장 기능이 있습니다. 그러나 우분투 대시에 lib 디렉토리 편집하지 않고 컴파일 성능상의 이유로 우분투 개발자들이 의식적인 선택이 될 것입니다, 그래서 fc라인 편집을 필요로하는 다른 모드 (하지 않는 한 다시 컴파일 상자 밖으로 작동하지 않습니다 dash자신과 설치 lib-edit).


쉘 중립적 인 방법은 기존 도구로 세션기록 하거나 명령별로 기록하는 고유 한 기능 을 작성하는 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.