명령을 실행하지 않고 bash 기록에 저장하는 방법이 있습니까?
예 :
$ cmd [a long list of arguments]
이제 타이핑하는 동안 나는 다른 것을 먼저하고 싶다는 것을 기억합니다.
나는 뭔가를 가질 수 있을까?
$ cmd [a long list of arguments][some-key-strokes]
그리고 이것은 실제로 실행되지는 않지만 bash 히스토리로 들어가서 나중에 사용할 수 있습니까?
답변
더 좋은 방법이있을 수 있지만 역사 확장을 사용할 수 있습니다. :p
수정자를 실행하지 않고 현재 주석 행을 인쇄합니다. !#
현재 줄입니다. %
그 자체로는 아무것도 일치하지 않을 것이다.
$ cmd [arguments] !#%:p
답변
사용 -s
옵션을 history
명령:
history -s cmd arg1 arg2
에 대한 호출 history -s
편리하게도, 명령 기록에 추가되지 않으므로, 기록에서 실행 한 것처럼 보입니다. cmd
실제로 이렇게하지 않고.
답변
보통 이것은 다음에 의해 수행됩니다.
echo 'cmd [a long list of arguments]' >> /home/you/bash_history
기록의 이름은 시스템마다 다를 수 있습니다. 따라서 HISTFILE
환경 변수
무엇이 :
echo 'cmd [a long list of arguments]' >> "$HISTFILE"
답변
일반적으로 나는 라인을 주석으로 변환하기 위해 라인의 처음에 #를 추가한다.
#cmd [a long list of arguments]
나는이 방법을 선호한다. 왜냐하면 당신은 # 3을 사용하여 그것을 할 수 있기 때문이다.
^a#<ENTER>
^ a는 현재 선의 시작에 간다
# 코멘트를 추가합니다.
ENTER는 주석을 실행합니다.
답변
그 상황에서, 나는 그 줄 앞에 #을 붙이고 Enter를 누른다.
… 또는 키 조합을 사용하십시오. ESC #
bind -p | grep -i 'insert-comment' # "\e#": insert-comment
답변
공백을 추가하고 | (파이프)을 입력하고 Enter 키를 누른 다음 Ctrl-C ‘를 누릅니다.
( 공간 , | , 들어가다 , Ctrl + 기음 )
이 명령은 | (백 스페이스로 간단히 제거 할 수 있습니다.) 처음에는 # 대신 #을 사용합니다 (제거하는 것이 더 지루할 수 있음).
면책 조항 : 이것은 항상 작동하는지 모르겠습니다! 자신의 책임하에 사용하십시오!
$ cmd [긴 인수 목록] |
& gt; Ctrl + C
$ 쪽으로
$ cmd [긴 인수 목록] |
답변
이 줄을 사용해보십시오 :
history -s -p $COMMAND
에서 help
:
The -p option means to perform
history expansion on each ARG and display the result,
즉, 다음과 같은 것을 확장 할 수 있습니다. !!
그 결과를 역사의 맨 아래에 저장하십시오.