Bash에서 Windows 스타일 명령 기록 탐색과 같은 기능을 어떻게 활성화합니까?

Bash에서 Windows 스타일 명령 기록 탐색과 같은 기능을 어떻게 활성화합니까?

개인적으로 저는 각 명령이 기록에서 해당 위치를 유지하고 마지막으로 실행된 명령으로 돌아갈 때 반드시 기록의 마지막 명령이 아닐 수도 있는 Windows 방식의 명령 기록 탐색(죄송합니다!)을 선호합니다.

이것이 말이 되는지 확실하지 않으므로 예를 들어 설명하겠습니다.

불다

one4개의 명령( , , , , ) 을 실행한다고 가정합니다 . 이후 명령 기록(가장 오래된 것부터 가장 최근까지)은 다음과 같습니다.twothreefour

  • one
  • two
  • three
  • four

이제 위쪽 키를 세 번 누르면 예상대로 four, 및 으로 돌아가게 됩니다 . Enter를 누르면 명령이 실행됩니다 . 이제 기록은 다음과 같습니다.threetwotwo

  • one
  • two
  • three
  • four
  • two

누르면 그걸 볼 수 있어요 two. 다시 누르면 four등등이 보입니다.

윈도우

동일한 4개의 명령(,,,, one)을 실행한다고 가정해 보겠습니다. 이후 명령 기록(가장 오래된 것부터 가장 최근까지)은 다음과 같습니다.twothreefour

  • one
  • two
  • three
  • four

이제 위쪽 키를 세 번 누르면 이전과 마찬가지로 , four및 으로 돌아가게 됩니다 . Enter를 누르면 명령이 실행됩니다 . 이제 다시 누르면 여전히 표시됩니다 . 그러나 역사는 여전히 이렇습니다.threetwotwotwo

  • one
  • two
  • three
  • four

이것은 내가 역사의 이전 순간으로 "점프백"했다는 것을 의미합니다. 이제 보기 one보기 three등을 누를 수 있습니다 .

이것이 왜 유용한가?

이는 일련의 명령을 실행한 후 다시 실행하려는 경우에 특히 유용합니다. 그것은 포함된다상당히더 적은 키 입력으로 전체 시리즈를 다시 실행하십시오.

Bash가 동일하게 동작하도록 하는 방법이 있습니까?

답변1

이것은 귀하의 질문에 직접적으로 대답하지는 않지만 결국 실제 대답이 없으면 도움이 될 수 있습니다.

일련의 명령을 실행한 경우:

$ one
$ two
$ three
$ four

$ history
1  one
2  two
3  thee
4  four

시퀀스를 다시 실행하려면 다음을 수행하면 됩니다.

!1; !2; !3; !4

또는 이전 명령이 성공한 경우에만 후속 명령을 실행하려는 경우:

!1 && !2 && !3 && !4

그러면 기록에 다음과 같은 항목이 표시됩니다.

$ history
1  one
2  two
3  three
4  four
5  one; two; three; four
6  one && two && three && four

그런 다음 시퀀스를 다시 실행하려면 화살표를 사용하거나 다음과 같이 사용할 수 있습니다.!5

관련 정보