기록 명령을 실행하는 방법이 있습니까?

기록 명령을 실행하는 방법이 있습니까?

예를 들어:

[root@ip-10-0-7-125 ~]# history | grep free
  594  free -m
  634  free -m | xargs | awk '{print "free/total memory" $17 " / " $ 8}'
  635  free -m
  636  free -m | xargs | awk '{print "free/total memory" $9 " / " $ 10}'
  736  df -h | xargs |  awk '{print "free/total disk: " $11 " / " $9}'
  740  df -h | xargs |  awk '{print "free/total disk: " $11 " / " $8}'
  741  free -m | xargs | awk '{print "free/total memory: " $17 " / " $8 " MB"}'

636 명령을 다시 입력하지 않고, 히스토리 636과 같은 숫자와 함께 입력하는 방법이 있는지 궁금합니다.

답변1

Bash에서는 그게 !636전부입니다.

답변2

네, 이것을 '역사적 확장'이라고 합니다. 바라보다

LESS='+/^HISTORY EXPANSION' man bash

자세한 내용을 확인하세요.

느낌표 뒤에 숫자를 사용하는 것이 가장 간단한 사용 방법일 것입니다.

!636

그러나 기록 번호를 모르더라도 마지막으로 실행된 명령을 직접 실행할 수도 있습니다.

!!

또는 두 명령을 모두 실행할 수 있습니다.

!-2

그러나 내가 가장 자주 사용하는 형식은 마지막 명령의 마지막 인수를 반복하는 것입니다.

echo this text goes into a file > /tmp/afile.txt
cat !$

아니면 파일을 검사한다고 가정해 보겠습니다. 탭 완성을 사용하면 다음을 수행할 수 있습니다.

ls -l /really/long/path/to/some/file
less !$

다시,매뉴얼 페이지 읽기자세한 내용은:

LESS='+/^HISTORY EXPANSION' man bash

답변3

좋은 점입니다. 기록을 먼저 보고 싶지 않다면 숫자 등을 적어 두세요.

Bash에서(그리고 다른 경우에도):

ctrl-r something 

( ctrl-r="대화형 역방향 검색")( something=이전 명령의 일부)

그러면 포함된 최신 기록 라인이 표시됩니다 something. 이전 행을 얻으려면 이전 행을 얻을 때마다 ctrl-r을 다시 (별도로) 수행하십시오.

전임자:

ctrl-r  10

"10"이 포함된 최신 기록 줄(예: $10예제에서는 가 포함된 줄)을 표시한 다음 ctrl-r찾고 있는 기록 줄이 검색될 때까지 다시 표시합니다.

원하는 줄이 나타나면 Enter실행하세요(또는 편집할 수도 있습니다. 줄의 시작 부분, 줄 끝으로 이동 arrow keys, backspace, 및 :를 사용하여 커서부터 끝까지 "종료"). line (=삭제+버퍼에 저장), : 버퍼에서 이전에 삭제된 비트를 복원하는 등)ctrl-actrl-ectrl-kctrl-y

앞으로 검색하고 싶다면(ctrl-s)먼저 XON을 비활성화해야 합니다.: 바라보다https://stackoverflow.com/a/791800/1841533:

"다음을 실행하여 XON/XOFF를 비활성화하세요.

stty -ixon

"(그러면 터미널을 정지하지 않고 Ctrl-S를 사용할 수 있습니다)

답변4

가지다HSTR-Ctrl-R 역방향 검색보다 나은 명령 hstrbash대화형 명령 선택:zsh

hstr 대화형 기록 명령 예

대화형이므로 명령을 실행하기 전에 검색하고 편집할 수 있습니다.

Ubuntu에서는 hstr다음 줄을 사용하여 설치할 수 있습니다.

sudo add-apt-repository ppa:ultradvorka/ppa && sudo apt-get update && sudo apt-get install hstr && hstr --show-configuration >> ~/.bashrc && . ~/.bashrc

또는 단계별로:

sudo add-apt-repository ppa:ultradvorka/ppa
sudo apt-get update
sudo apt-get install hstr

hstrFedora, RHEL 또는 CentOS에 설치:

sudo dnf install hstr -y

macOS의 경우 homebrew:

brew install hstr

...그런 다음 구성합니다.

hstr --show-configuration >> ~/.bashrc

이는 기본 Ctrl-R 동작을 대체합니다.

hstr --show-configurationBash 구성 파일에 무엇이 추가될지 결정하려면 실행하세요 .

Github 프로젝트 홈페이지에서 더 많은 구성 옵션을 사용할 수 있습니다. https://github.com/dvorka/hstr

관련 정보