번호 매기기 기록 명령을 어떻게 편집 할 수 있습니까? history | grep ‘string’ 내 히스토리에서 히스토리 라인

자주 변경 사항을 검색합니다 history | grep 'string'

내 히스토리에서 히스토리 라인 번호와 함께 명령 목록을 얻습니다.)

history | grep 'git'

  755  git status
 1535  git push origin master
 1570  git merge origin/one-146
 1667  git reset --hard origin/master

!nnn예를 들어 다음 과 같이 한 번에 명령을 기억하고 실행할 수 있습니다 .

!755
git status
# On branch master
nothing to commit, working directory clean

내 질문은 : 번호가 매겨진 기록 명령을 리콜하고 편집을 위해 명령 줄에 머물러 있고 그대로 그대로 ‘실행’ 하지 않고 실행 !하여 몇 가지 peform presing return을 변경할 수 있습니까?



답변

이후 다른 접근 방식을 채택했습니다. ![line-number]:p

명령문을 인쇄하여 실행 기록에 추가하지만 실제로 실행하지는 않습니다. 그런 다음 위쪽 화살표를 사용하여 원하는대로 변경하십시오.

이 텍스트를 hg별칭 ( alias hg='history | grep ') 과 결합 하여 일부 텍스트를 기반으로 기록 명령을 호출합니다.

예:

$ hg checkout

17140   git checkout README.rdoc
17143   git checkout master
17201   git checkout README.rdoc
17204   git checkout master
17923   git checkout .bashrc
18151   git checkout v311

나는뿐만 아니라 이것을 사용 ctrlr가끔 1 개 라인이에 바로 출력이 아닌 주어진 문자열을 훑어의 즉각적인 목록을 확인하는 것을 선호하기 때문에 (역 역사 검색) ctrlr을 보여줍니다. 그런 hg [string]다음 위 ![line-number]search_stringhg checkout그림과 같이하십시오.


답변

histverify 옵션 을 설정하면 ( 예 :

shopt -s histverify

그러면 모든 실행 기록 대체가 즉시 실행되는 대신 편집을 위해 제공됩니다. 그런 다음 명령을 실행하기 위해 Enter입력 한 후 한 번이 아니라 두 번 눌러야 !755합니다.

을 사용하여 임의의 텍스트를 기록 목록에 넣을 수 있습니다 history -s. 이것을 결합 fc -nl하여 특정 기록 항목을 나열하십시오.

history -s "$(fc -nl 755 755)"

그런 다음을 눌러 Up현재 최신 기록 항목을 불러옵니다.


답변

Ctrl+를 사용하여 기록을 다시 검색 할 수 있습니다 R. 히스토리 항목이 길면 마우스 (키보드가 아닌 검색을 중지 함)를 사용하여 명령의 일부를 복사하여 붙여 넣어 다시 편집하십시오.

@rijsg가 언급했듯이 (왼쪽 및 오른쪽) 화살표 또는 동등한 키를 사용하여 검색을 중지하고 편집을 시작할 수 있습니다.


답변

명령 행에서 vi 편집기를 사용하도록 .bashrc 파일을 구성하면 명령 행 편집이 훨씬 덜 복잡해집니다.

1 일 1 회 “set -o vi” 가 활성화되면 “<esc> k” 를 누른 다음 “k”를 계속 눌러 기록 파일을 그대로 올릴 수 있습니다. 항목을 지나갈 경우 “j”를 사용하십시오. 내려갑니다 .

참고 : vi를 사용할 때 두 가지 모드가 있습니다 : command 및 edit 명령 모드로 들어가려면 ESCAPE KEY ONCE를 누른 다음 a, A, i, I 등을 삽입하십시오.

vi의 간단한 커서 패드 : left = h, down = j, up = k, right = l
http://linuxmeister.net/vi/vi-Summary.jpg

이 작업을 수행하는 데 필요한 모든 항목을 http://linuxmeister.net/Notes/bashrc-simple.html에 추가 했습니다.

따라서 위의 매우 유용한 정보를 바탕으로 “역사”를 사용하고 “역사”에서 한 줄을 호출하지 않고 실행할 수있었습니다. (포스트 감사합니다!)

shopt가 나열되고 histverify가 “off”인 경우 a! 즉시 실행됩니다.

.bashrc에 추가했거나 다음을 입력 한 경우 : shopt -s histverify , a! 예를 들어 다음과 같이 편집 할 수 있습니다.

history
    1  more .bashrc
    2  history
    3  shopt
    4  . ./.bashrc
    5  shopt | grep hist
    6  history
    7  alias
    8  history
    9  shopt
   10  history

->! 5

! 5를 누르면 다음 명령이 나타나지만 실행되지는 않습니다

histverify가 “on”인 경우 ###

shopt | grep hist
cmdhist         on
histappend      on
histreedit      off
histverify      on
lithist         off

Linus와 Richard는 UNIX를 활용하기 위해 Linux 및 GNU 도구를 만들었습니다. vi 편집기 (Bill Joy가 작성)는 UNIX 및 Linux의 모든 배포에서 마스터 할 수있는 최상의 도구 중 하나입니다.

다른 모든 명령 행 편집기를로드해야하며 추가 소프트웨어가 필요합니다. Linux에서 Firefox, Thunderbird 및 OpenOffice 이외의 GUI를 사용하는 것은 1968 VW Beetle로 Diesel 4×4를 ​​견인하는 것과 같습니다 … 작동하지만 확실하지 않습니다.

Kernigan이 GUI에 대해 말한 것을 기억하십시오. “당신이 보는 것이 전부입니다.”


답변

echo !number

그런 다음 위쪽 화살표를 누르고 단어를 제거 echo하고 나머지를 편집하십시오. Enter 키를 눌러 실행하십시오.