Linux 터미널에서 Bash 명령 히스토리를 선택적으로 탐색하는 방법 [중복]


9

모든 사람은 터미널에서 위쪽 및 아래쪽 화살표 키가 사용 된 명령의 내역을 탐색하는 데 사용된다는 것을 알고 있습니다.

터미널을 매일 사용하는 경우 명령 기록이 여러 가지 명령의 긴 목록이되어 탐색이 덜 쉬워 질 수 있습니다. 예를 들어 한 달 전에 iwconfig결정된 매개 변수 세트와 함께 매개 변수 세트를 사용했다고 가정 해 봅시다 (예를 들어, 단지 예입니다. 지금 당장 엉망이 될 필요는 없습니다). 어떻게 특정 명령을 기억할 수 있습니까? 수백 가지의 히스토리 명령을 다시 탐색 할 필요없이 모든 인수와 매개 변수가

history이전에 사용한 명령 목록을 사용 하고 해당 목록 !n에서 n 명령 을 다시 실행하는 데 사용할 수 있지만 기록이 커지면 실용적이지 않습니다.

가장 이상적인 것은 단축키를 사용하여 기록을 탐색 할 수 있지만 명령 줄에 이미 입력 한 내용이 포함 된 인스턴스 사이를 탐색하는 것입니다. 예를 들어, 입력 한 후 iwconfig일부 키 (PgUp 및 PgDown?)를 사용하여 iwconfig로 시작하는 항목을 탐색하십시오 .

그것이 불가능하다면, 또한 같은 목록을 인쇄 할 좋은 것 history할 일을하지만 그건 단지 내가 이미 (나는 의심 입력 한 내용을 포함 history하고 grep관련된 명령하지만 올바른 구문에 대해 잘 모르겠어요) 그러나 이전 핫키 솔루션이 가장 좋습니다.

답변:


12

Ctrl+를 사용하여 기록을 검색 R한 다음 검색 문자열을 입력 할 수 있습니다 (예 : iw찾기 iwconfig). 그런 다음 위 / 아래 화살표 키를 사용하여 해당 시점에서 기록을 계속 탐색하거나 Ctrl+를 R다시 눌러 이전 항목을 찾을 수 있습니다.


잘 작동하는지 잘 모르겠습니다. Ctrl + R을 누르고 type을 입력 iwconfig하면 인스턴스가 포함 된 인스턴스가 표시되지만 (최신 일 필요는 없음) 화살표 키를 사용하면 문자열이 포함 된 항목뿐만 아니라 모든 항목을 탐색합니다. 히스토리처럼 아래쪽에서 시작하는 대신 탐색을 시작하기 위해 기록에서 특정 지점을 선택하는 것 같지만 그 점을 제외하면 탐색은 항상 동일합니다. 내가 뭘 놓 쳤니?
Sekhemty

나는 그것이 중요하지 않다고 생각하지만, 경우에 따라 konsole터미널 에뮬레이터를 사용하고 있습니다.
Sekhemty

죄송합니다. 이전 경기를 찾는 방법에 대한 답변을 업데이트했습니다.
Stefan Seidel

5

약간의 연습을 마친 후 해결 방법을 사용하는 방법을 찾았습니다.

필터링 된 목록을 인쇄하기 위해 올바른 구문을 일치 시켰습니다 history | grep iwconfig(결국 그렇게 어렵지는 않았습니다). !n이제는 읽기 쉬운 필터링 된 목록과 함께 사용할 수 있습니다 .


3
추가 트릭 : 사용 !n:p. 이전 명령을 실행하지 않고 인쇄하여 기록에 다시 넣습니다. 그런 다음 한 번의 위쪽 화살표 스트로크로 이동하면 편집 할 수 있습니다. 이 같은 다른 바보 트릭이 많이있다 : ss64.com/bash/history.html이
방황 논리

3

Stefan의 답변에 대해서는 언급 할 수 없지만 일반적으로 Ctrl + R을 계속 눌러야합니다. 자세한 내용은 이 페이지 를 참조하십시오.


2

"ctrl + r"을 누르고 검색 문자열을 입력하십시오.

찾고있는 것이 아니라면 다시 "ctrl + r"

발견되면 Enter 키를 눌러 실행하거나 오른쪽 화살표-> 키를 눌러 사용하기 전에 편집하십시오.

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