bash에서 실행하지 않고 history에 명령 저장 arguments] 이제 타이핑하는 동안

명령을 실행하지 않고 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

참조 : Bash – 명령을 실행하지 않고 저장


답변

공백을 추가하고 | (파이프)을 입력하고 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,

즉, 다음과 같은 것을 확장 할 수 있습니다. !! 그 결과를 역사의 맨 아래에 저장하십시오.