현재 세션에 대한 배쉬 히스토리


15

어쩌면 나는 뭔가를 간과하고 있지만 현재 세션에서 현재 배쉬 기록을 얻는 방법이 있습니까?

내가 달리면

ssh host
$ pwd
$ ls
$ cd /tmp

나는 단지 그 세 가지 명령을보고 싶습니다.


당신은 history명령 을 확인 했 습니까 ??
Hackaholic

나중에 알고 history있지만 그것은 내 세션을 제공하지 않습니다
Mike

세션 사이에 저장된 양은 내가 기억하면 SAVEHIST 쉘 변수에 의해 제어됩니다. 따라서 마지막으로 저장 한 히스토리의 양이 ZERO 인 경우 현재 쉘 세션에 대한 히스토리를 얻습니다 (물론 하위 레벨은 아님)
mdpc

@mdpc, 어떤 문서를 읽고 있습니까? 배쉬 man 페이지에서 나는 savehist 변수에 만에 대한 참조 찾을 HISTSIZEHISTFILESIZE.
와일드 카드

답변:


15

약간 원형 교차로 :

history -a ~/current_history

현재 세션의 저장되지 않은 bash 기록을에 저장 ~/current_history하면 볼 수 있습니다.


이것은 작동하지만 여러 세션을 처리하지 못합니다 .. 나는 임의의 임시 파일을 만들어 저장할 수 있다고 생각했습니다.
Mike

1
@Mike는 아마도 쉘 PID와 연결된 이름을 사용합니다 ~/$$_history.
muru December

4
이것이 역사를 지우거나 정상적인 역사 절약에 영향을 미치지 않을 것이라는 점은 주목할 가치가 있습니다! 테스트하기 전까지는 확실하지 않았습니다. :)
NHDaly

history -a이전 히스토리와 함께 ~ / .bash_history에 던져 넣는 것이 더 편리하다는 것을 알았습니다. 히스토리가 컷오프보다 길면 문제가 될 수 있습니다. 이는 centos7 및 fedora 24 시스템에서 1000입니다.
Ray Foss 2016 년

0

나는 현재를 쓰고 싶다하는 문제를 가지고 historyA를 파일 여전히 항목이 주요 배쉬에 기록 싶어history

파일 을 첨부하여 다음 과 cat같이 해결했습니다 .

history -a current-history
cat current-history >> .bash_history

-1

사용 comp에 이미 지속 역사 전체 역사 (. 포함 현재 배쉬 세션)을 비교 .bash_history하고 현재 세션에 고유 한 그 라인을 인쇄 - 현재 배쉬 쉘을 시작부터 실행 된 명령 만 표시되어야합니다

comm -23 <( history | cut -c 8- ) ~/.bash_history

편집 : @Wildcard가 지적 했듯이이 명령은의 모든 배포에서 작동하지 않습니다 comm. Mac OS에서 이것을 테스트했습니다.

다음을 사용하는 동일한 아이디어의 변형 diff:

diff <( history | cut -c 8- ) ~/.bash_history | sed -n 's/^< //pg'

좋은 생각이지만 테스트에서 매우 신뢰할 수 없습니다. comm정렬 된 입력을 가정합니다. 그러나 Stack Exchange에 오신 것을 환영합니다! :)
와일드 카드

@Wildcard, 입력의 양쪽이 comm위의 예제에서 본질적으로 정렬되었습니다. 당신은 그것을 실행 했습니까? 그리고 현재 Bash 세션 기록을 생성하지 않았습니까?
Christian Kadner

예, 그랬습니다. 그리고 더의 내용 ~/.bash_history입니다 하지 분류,하지 history선행 행 번호가 제거되면 정렬 된 출력도 전혀 없습니다. (외에, comm숫자로 정렬 된 입력이 아닌 사전 순으로 정렬 된 입력이 필요합니다.)
Wildcard

comm그렇습니다. 제 예 에서 명령에 대한 두 가지 주장 은 사전 순으로 정렬되지 않고 동일한 순서로 진행되었습니다. 의 FreeBSD의 버전은 comm사전 식 정렬 된 입력이 필요하지 않습니다
기독교 Kadner

저는 Mac OS X를 사용하고 있습니다. 그것과는 아무 상관이 없습니다. 자세히 살펴보면, 메모리 내 히스토리 의 초기 명령 인 것으로 보이며 , 이후 다른 쉘이 종료 하여 히스토리 파일 에서 덮어 씁니다 .
와일드 카드
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.