위 / 아래 화살표를 사용하여 명령 기록을 탐색 할 수 있습니다.
Matlab과 같은 일부 IDE에서 무언가를 입력 한 다음 화살표 키를 누르면 입력 한 내용으로 시작하는 기록 명령 만 스크롤합니다. 정말 편리하지만 쉘 터미널에서는 작동하지 않습니다.
쉘 터미널에서 비슷한 기능을 얻는 방법이 있습니까? 그리고 터미널 사용 효율을 높이기위한 다른 팁이 있습니까?
위 / 아래 화살표를 사용하여 명령 기록을 탐색 할 수 있습니다.
Matlab과 같은 일부 IDE에서 무언가를 입력 한 다음 화살표 키를 누르면 입력 한 내용으로 시작하는 기록 명령 만 스크롤합니다. 정말 편리하지만 쉘 터미널에서는 작동하지 않습니다.
쉘 터미널에서 비슷한 기능을 얻는 방법이 있습니까? 그리고 터미널 사용 효율을 높이기위한 다른 팁이 있습니까?
답변:
당신이 찾고있는 것은입니다 CtrlR.
입력 CtrlR한 다음 원하는 명령의 일부를 입력합니다. 배시는 첫 번째 일치 명령을 표시합니다. 계속 입력 CtrlR하면 bash는 이전 일치 명령을 순환합니다.
기록에서 뒤로 검색하려면 CtrlS대신 입력하십시오 . ( CtrlS그렇게 작동하지 않으면 XON / XOFF 흐름 제어를 비활성화해야 할 수도 있습니다 stty -ixon
. 그렇게하려면을 실행하십시오 .)
이 내용은의 "검색 중"에 설명되어 man bash
있습니다.
Ctrl-Q
Ctrl-S
흐름 제어를 먼저 끄지 않고 적중 하여 터미널을 정지 시킨 경우 정지 상태를 종료합니다 .
이것들을 당신의 ~/.inputrc
:
"\e[5~": history-search-backward
"\e[6~": history-search-forward
이들은하게 Page Up하고 Page Down당신이 원하는대로 동작합니다. (일부 배포판에서는 이미 구성되어 있습니다.) 개인적으로 이러한 방법은 Ctrl+ R또는 보다 편리합니다 history
.
~/.inputrc
또는 /etc/inputrc
환경 변수 $INPUTRC
가 참조하는 파일은 bash (쉘)를 포함하여 readline을 사용하는 모든 응용 프로그램의 행 편집 구성 파일입니다. bash의 매뉴얼 페이지에서 이러한 키워드 중 하나를 검색하여 자세한 내용을 확인하십시오. \e[5~
/ \e[6~
는 대부분의 터미널 에뮬레이터에서 Page Up / Down 키로 생성 된 이스케이프 시퀀스입니다. 이를 보려면 cat
명령을 실행 한 다음이 키를 누르십시오 (이스케이프 바이트는 터미널 ^[
에서 inputrc에서로 \e
표시됨).
echo $INPUTRC
비어 있습니다. 나는 Ubuntu 14.04를 사용하고있다
"\e[A": history-search-backward
와"\e[B": history-search-forward
^ r / ^ s 역사 i- 검색 외에도 :
alt.이전 명령의 마지막 "워드"를 커서에 삽입합니다. 이전 명령에서 마지막 단어를 얻으려면 반복하십시오. 그러나 후행 &
은 백그라운드 명령의 마지막 단어로 계산됩니다.
이 슈퍼 편리 mkdir foo
, cd
고도 점. 위로 화살표 ^ A, ALT-D (순방향 단어 삭제)보다 더 빠르게 cd
.
마지막 두 번째 단어를 얻으려면 esc
-
2
alt+.
(즉, emacs 스타일의 숫자 인수를 사용 alt+.
하여 끝까지 시작합니다. 음수는 처음부터 앞으로 카운트합니다.) 그러나 이것은 일반적으로 가치가있는 것보다 더 문제가 많습니다. 어느 시점에서 마우스와 복사 / 붙여 넣기, 또는 위쪽 화살표와 ^ w / ^ y 부분에 도달하는 것이 더 빠릅니다 (아래 참조).
터미널이 올바르게 / 적절하게 설정되어 있으면 ctrl-left 및 ctrl-right가 단어 단위로 앞뒤로 이동합니다. 그렇지 않다면, 적어도 alt-b와 alt-f는 같은 일을 할 것입니다.
ctrl- /는 실행 취소입니다. 약간 오버 슈트 할 때 취소 할 수있는 경우 자동 반복을 사용하여 단어를 훨씬 효율적으로 삭제할 수 있습니다.
명령의 더 강력한 믹싱 / 매칭은 Emacs에서와 같이 작동하는 킬 링을 사용하여 발생합니다. ctrl-y는 마지막 ctrl-w / ctrl-u / ctrl-backspace / alt-d를 붙여 넣습니다. 오래된 텍스트를 순환하려면 alt-y입니다.
킬링 링 항목에 여러 개의 ctrl-w 또는 행의 항목이 있습니다. 두 가지를 제거하고 나중에 하나만 붙여 넣으려면 왼쪽 및 오른쪽 화살표 또는 무언가를 사용하여 항목을 분리하십시오.
이 모든 것들을 결합하면
alt+r
일부를 삭제하기 전의 상태로 복원합니다.>
역사의 끝으로 이동 (즉, 아래쪽 화살표 모든 방법을) 위로의 중앙에 있던 명령에 얻을.다른 대화식 사용 팁 :
사용 가능 shopt -s globstar
하므로 **/*.c
현재 디렉토리를 포함하여 재귀 적입니다. 때로는 대화식 사용에 편리하지만 일반적 find -name '*.c' -exec foo {} +
으로 더 좋습니다.
bash 스크립트를 작성하면 shopt -s extglob
대화식 쉘에서도 활성화 하는 것이 편리합니다 . 당신은 것입니다 가끔 좋아하는 물건에 대한 사용 발견 *.!(c|h)
이 .c 또는 .H로 끝나지 않는 파일과 일치합니다.
당신이 좋아하는 별칭을 찾아 ls -l
, less
그 밖의 무엇이든 당신은 많이 할. ( cp -i
, mv -i
,와 rm -I
의 습관을하지 마십시오. 좋네요 따라 선택적 RM을 수행하는 그들. GNU의 RM의 -I 모든 인수에 대해 한 번 요청합니다.)
나는 좋아한다 alias m=less
( "더보기"). 내가 한 less
로 설정 ,및 .이전 / 다음 파일에 바인딩 ( lesskey
). 기본값은 자동 반복과 함께 사용할 수없는 다중 키 누르기 순서입니다.
GNU 화면에서 모든 것을하고 싶습니다. Konsole (또는 내가 시도한 다른 터미널 에뮬레이터)의 탭 보트보다 번호가 매겨진 화면 창을 추적하는 것이 더 쉽다는 것을 알았습니다. 아직 모르는 screen
경우 tmux가 새롭고 덜 무섭기 때문에 배우십시오.
다른 쉘과 동일한 cwd로 새 쉘을 여는 기능과 같은 것을 얻으려면 cd / pushd / popd에 대한 사용자 정의 후크를 cds 8
사용하여 화면 창 8의 쉘이 사용하는 디렉토리를 cd로 할 수 있습니다 . 화면 세션이 하나만있는 한 화면 세션 외부의 쉘에서도 작동합니다.
gnome-terminal
KDE로 전환하기 전에 Ubuntu 14.04에서 즉시 사용할 수 있다고 생각합니다 . 관련 옵션은 터미널 설정, esc-prefix 대 high-bit 및 기타 설정에 있습니다. 그들 중 일부는 ssh를 통해 나를 위해 완벽하게 작동하지 않습니다. (예 : ctrl 왼쪽 / 오른쪽 화살표 키의 이스케이프 코드를 섞으면 5D
문자 그대로 나타납니다)
내가 일반적으로 사용하는 수단은 history
명령을grep
IE :
history | grep <command im looking for>
그러면 해당 명령을 포함하여 입력 한 명령의 번호 기록이 표시되며 다음을 사용할 수 있습니다.
!<number listed in history command>
그 명령을 다시 실행하십시오.
IE :
history | grep history
142 history
143 history | grep lvresize
568 history | grep echo
570 history | grep echo
571 history | grep history
뒤에 :
!571
반복 할 것이다 history | grep history
!
역사 대체가 덜 안전하다는 것을 의미한다고 생각 합니다.
cona zsh
대신에 사용 하는 bash
것이 괜찮다면 oh-my-zsh 를 사용하십시오.
여기에는 명령 기록을 통한 아래쪽 화살표 탐색이 포함되어 있습니다. 또한 텍스트를 이미 입력 한 경우 (Mathlab과 같은) 동일한 탐색이 가능합니다.
편집 : 또한 별칭 및 테마와 같은 개발자 중심의 내용도 포함합니다. 이러한 추가 기능으로 인해 배포판을 더 크고 더 복잡하게 사용할 수 있습니다.
oh-my-zsh
많은 물건이 들어 있습니다. 당신은 말할 수도 있습니다 :이 정확한 기능은 필요한 설정이 특정 설정이나 앱 일 때 해당 배포판에 포함됩니다.
~ / .bashrc에 다음 별명을 추가하십시오.
alias h='history | awk '"'"'{$1="";print}'"'"' |sed "s/^ *//" |grep -v "^h " | sort | uniq | grep'
사용법 : h fire
명령 목록에 fire 포함 됩니다 . 또는 fire로h ^fire
시작하는 명령 목록을 얻습니다 .
이것은 일련의 명령을 동시에보고 싶을 때 유용합니다.
그건 그렇고, '"'"'
추악하지만 작은 따옴표로 작은 따옴표를 피할 수있는 다른 방법을 찾을 수 없습니다.
h="history | awk '{\$1=\"\"; print}'
작동해야합니다. 또는 함수를 작성하고 호출하십시오.
fish
;) 와 같은 기능을 제공하는 쉘을 간단히 사용할 수 있습니다 .