Bash에서 편집된 기록 줄을 어떻게 재설정할 수 있나요?

Bash에서 편집된 기록 줄을 어떻게 재설정할 수 있나요?

Bash에서는 위쪽(아래쪽) 화살표를 눌러 기록을 탐색할 수 있습니다. 그런 다음 명령을 실행하기 전에 수정할 수 있습니다. 때로는 명령을 잘못 수정하여 원래 기록에 있던 명령으로 재설정하고 싶을 때도 있습니다. 이를 수행할 수 있는 방법이 있습니까?

빈 줄을 실행한 다음 다시 기록을 탐색해 보았으나 관련 줄이 편집된 상태로 남아 있습니다.

답변1

실행 취소는 Cx Cu(또는 C-_, C-/를 입력해야 할 수도 있음)입니다.

답변2

bash 기록을 포함하는 파일은 "~/.bash_history"입니다. 적절하게도(적어도 우분투에서는 다른 버전에서는 다를 수 있습니다). 즐겨 사용하는 텍스트 편집기로 열면 됩니다. 각 사용자는 자신만의 .bash_history 파일을 가지고 있어야 합니다. 또한 앞의 "."에 유의하십시오. 이는 숨겨진 파일임을 의미하므로 -a와 함께 사용하지 않는 한 파일 브라우저나 ls 명령으로 표시되지 않습니다.

답변3

이 바인딩은 실행되지 않은 기록 변경이 원본을 덮어쓰는 것을 방지합니다.

bind 'set revert-all-at-newline on'

예:

  1. 실행하다ls
  2. 위쪽 화살표 누르기
  3. -Al라인에 추가
  4. 아래쪽 화살표 누르기
  5. Return 키를 누르세요(변경 사항을 취소하려면).

이 바인딩이 없으면: 실행되지 않았더라도
ls기록에서 로 대체됩니다 .ls -Al

이 바인딩을 사용하면
실행되지 않은 항목은 ls -Al사라지고 ls남아 있습니다.

분명히 이것은 실행되지 않은 기록 변경이절대저장됩니다(zsh의 기본 동작과 유사). 원본만 복원하고 싶으신 경우때때로, 다른 답변 중 하나를 선택해야 합니다.

관련 정보