마지막 명령의 인수로 명령을 실행하십시오.


34

명령을 실행할 때 때로는 마지막 명령의 인수를 사용하여 명령을 실행해야 할 수도 있습니다. 어떻게 할 수 있습니까?

물론, 화살표 키의 사용을 제외하고 Del키 : ... DelDelDel... Del<new_command>.

답변:


45

예를 들어이 명령을 실행하면

mkdir long_path_here/new_dir

최근에 만든 디렉토리로 가고 싶을 것입니다. 다음 "바로 가기"를 사용하여이 작업을 수행 할 수 있습니다.

  • cd Esc.- cd을 누른 Esc후을 누른 후 .(동시 아님). 이전 명령에 인수가 없으면 이전 명령 자체를 얻게됩니다.
  • cd !*-이 경우 previuos 명령에서 모든 인수를 얻습니다. 이전 명령에 인수가 없으면 아무 것도 얻지 못합니다.
  • cd Alt+ .-를 입력 cd한 후 Alt와를 .동시에 누릅니다 . 실제로이 방법을 사용하고 .(을 놓지 않고)을 계속 누르면 Alt기록에서 모든 명령에 대한 마지막 인수가 표시됩니다. 명령에 인수가 없으면 명령 자체를 얻게됩니다.

일반적으로 <command> Esc.또는 <command> !*또는 <command> Alt+ ..


와우, 당신은 내가 몇 년 안에 낭비하게 될 수백 시간을 절약했습니다
pranavk

32

이전 명령의 모든 인수 또는 마지막 인수 만 원하는 경우 몇 가지 단축키가 있습니다.

  • 모든 주장에 대해 : <command> !*
  • 마지막 논쟁의 경우 : <command> !$

예 :

ls foo/ bar/
ls !* # Gives the results of ls foo/ bar/

ls foo/ bar/
ls !$ # Gives the results of ls bar/

이전 명령의 인수 목록에서 단일 인수를 원하면 <command> !!:<argNumber>

예:

ls foo/ bar/ baz/
ls !!:2 # Gives the results of ls bar/
ls foo/ bar/ baz/
ls !!:1 # Gives the results of ls foo/

2
!단일 arg 버전에는 하나만 필요합니다 ( 예 :) !:2. 기본 배쉬를 가정합니다.
belacqua 2016

3
!^대신에 사용할 수도 있습니다 !:1.
Paddy Landau

7

언급 !*하고 !$좋은 일이지만, 약간의 편집을해야 할 때 readline 단축키가 도움이됩니다!

예를 들어 셀 수없이 ... DelDelDel... Del를 누르면 Ctrl-a(줄의 시작 부분으로 점프) Alt+d(단어 끝으로 삭제)

자세한 정보를 원하면 man readline검색하십시오 Default key bindings.


4

n이전 명령에서 th 인수 를 가져 오려면 Alt+ n+를 입력하십시오 Alt_. 예를 들면 다음과 같습니다.

$ echo 1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10

echo다음에 입력 Alt2Alt_하면 다음 프롬프트에서이를 알려줍니다.

$ echo 2

적중 한 후의 "스크린 샷" Alt2은 다음과 같습니다.

(arg: 2) echo

이전 명령의 인수를 연속해서 Alt_얻기 위해 여러 번 반복 할 수 있습니다 n.

또 다른 유용한 아이디어는 alias를 정의하는 것입니다 r="fc -s". 그런 다음 명령 대체를 수행 할 수 있습니다.

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