답변:
고전적인 역사 확장 또는 Readline 처리에 대해 이야기하고 있습니까? cd !$
다음 입력 줄에서 이전 줄의 마지막 인수를 대체 M-.하거나 M-_Readline을 사용하여 줄을 바꿉니다.
cd !$
. "클래식 히스토리 확장 또는 리드 라인 처리"당신이 무슨 뜻인지 정확히 이해하지 못합니다 ...
!$
는 역사 확장입니다 . 쉘은 명령을 구문 분석 할 때이를 처리합니다. 미디엄-. readline 키 입력입니다. readline은 누른 각 키를 처리하는 라이브러리이며 M-를 눌렀 음을 알 수 있습니다. 마지막 명령의 마지막 인수를 자동으로 입력합니다
귀하의 질문이 명령 기록에 액세스하는 것에 관한 것이라면,이 유명한 명령을 사용해보십시오
history
Ctrl+ 을 시도 r하고 최근에 입력 한 것을 기억하려는 명령을 입력하기 시작할 수도 있습니다 .
(reverse-i-search)`cd ': cd mydir/data/
ESC명령을 선택하거나 종료하려면 누르 십시오. 이것은 적어도 SuSE에서 작동합니다. 다른 배포판에 대해 확실하지 않습니다.
history | grep ...
!
vi
명령 줄을 관리하는 데 사용 하는 것에 대해 읽었습니다 . 정말 멋지다. vi를 사용하여 쉘 명령 편집
Alt+ 만큼 간단합니다.
$ mkdir lasdfjalsdkjf
$ cd
Alt + .
$ cd lasdfjalsdkjf
<kbd></kbd>
태그를 사용 하여 키를 둘러싸십시오.
<kbd>
bash를 사용하는 경우 pushd
및을 제안 popd
합니다. 디렉토리 스택을 만들어 빠르게 찾아 볼 수 있습니다. 이 예제를보십시오 :
PWD:~$ pushd /opt/google/chrome/resources/
/opt/google/chrome/resources ~
PWD:/opt/google/chrome/resources$ pushd /etc/cron.daily/
/etc/cron.daily /opt/google/chrome/resources ~
PWD:/etc/cron.daily$ pushd /opt/pac/lib/method/
/opt/pac/lib/method /etc/cron.daily /opt/google/chrome/resources ~
PWD:/opt/pac/lib/method$ popd
/etc/cron.daily /opt/google/chrome/resources ~
PWD:/etc/cron.daily$ popd
/opt/google/chrome/resources ~
PWD:/opt/google/chrome/resources$ popd
~
PWD:~$
$
시연 할 때 유용하다는 것을 알고 있습니다 pushd
.)
관련 메모에서 bash에서 histverify를 사용하는 것이 좋습니다. 이것을 ~ / .bashrc에 넣으십시오.
shopt -s histverify
이렇게하면! $ 또는 다른 히스토리 기능을 확장 한 후 bash가 명령을 인쇄하게되며 실제로 실행하기 위해 Enter 키를 다시 누르기 전에 명령을 볼 수 있습니다. 나를 위해, 위생 검사는 때때로 추가 키를 누를 가치가 있습니다. 내가 cd foo
아닌 명령을 실행하고 있는지 확인하고 싶습니다 rm -rf foo
...
나는 종종 Ctrl-R접근 방식을 사용합니다 Alt-.(이 시나리오는 귀하가 설명하는 시나리오에 적합합니다). 때때로! $를 사용할 것입니다.
이들은 매우 유용한 범용 기술입니다.
그러나 특정 질문을 해결하려면 다음을 수행하십시오.
디렉토리를 만들고 CD에 직접 CD를 넣는 것은 일반적인 조합으로 마무리하는 기능이 유용합니다.
function mcd {
local newdir='_mcd_command_failed_'
if [ -d "$1" ]; then # Dir exists, mention that
echo "$1 exists..."
newdir="$1"
else
if [ -n "$2" ]; then # We've specified a mode
command mkdir -p -m $2 "$1" && newdir = "$1"
else # Plain old mkdir
command mkdir -p "$1" && newdir="$1"
fi
fi
builtin cd "$newdir" # No matter what, cd into it
}
용법: mcd thisismyfolder
쉘이 readline (의 경우 bash
)을 사용한다면 ATL+를 .함께 누르는 것과 같은 일을 할 수 있습니까?
로부터 GNU Readline와 문서 :
yank-last-arg (M-. 또는 M-_)
이전 명령 (이전 히스토리 항목의 마지막 단어)에 마지막 인수를 삽입하십시오. 인수를 사용하면 yank-nth-arg와 똑같이 행동하십시오. yank-last-arg에 대한 연속적인 호출은 히스토리 목록을 다시 돌아가서 각 라인의 마지막 인수를 차례로 삽입합니다.
cd this<TAB>