답변:
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 인 Ubuntu 의 POSIX /bin/sh
쉘 에는 fc
내장 기능이 있습니다. 그러나 우분투 대시에 lib 디렉토리 편집하지 않고 컴파일 성능상의 이유로 우분투 개발자들이 의식적인 선택이 될 것입니다, 그래서 fc
및 라인 편집을 필요로하는 다른 모드 (하지 않는 한 다시 컴파일 상자 밖으로 작동하지 않습니다 dash
자신과 설치 lib-edit
).
쉘 중립적 인 방법은 기존 도구로 세션 을 기록 하거나 명령별로 기록하는 고유 한 기능 을 작성하는 것입니다.