명령어 입력을 편하게.. (readline팁)

잘 모르시는 분들을 위해서 readline에 대해 설명해 드리자면…
명령창에서 입력할 때 위쪽 화살표 누르면 히스토리 나오고 탭을 누르면 자동완성 되자나요?
그렇게 명령줄에서 편집하고 입력할때 자동으로 사용되어지는 라이브러리입니다.

  1. 명령줄 입력

~/.inputrc라는 파일이 readline설정 파일입니다.

#입력 모드를 vi로 선택 emacs도 가능
set editing-mode vi

~문자를 자동으로 확장하지 않음

set show-all-if-ambiguous off
#탭자동완성 때 대소문자를 가리지 않음
set completion-ignore-case on
#탭자동완성 때 나타내 줄 최대 갯수
set completion-query-items 150

입력모드가 vi로 되어 있으면, 입력시에 ESC누르면 vi의 일부 명령을 사용하실 수 있습니다.
여기서 h,j,k,l등으로 이동 및 x, c, d등의 명령을 사용하실 수 있습니다.
그리고 i명령이나 a명령으로 다시 편집모드로 돌아가실 수 있습니다.

  1. 히스토리 편집
    명령줄에서 sudo ls <위쪽방향키>를 누르시면 이전에 입력한 명령 중에서 sudo ls로 시작하는 명령이 나타납니다.
    여기서 위아래키로 이전명령을 보시면서 편집 및 입력이 가능합니다.

  2. 추가 팁
    shopt -s dotglob 하시면 와일드카드인 *가 .(dot)로 시작하는 파일까지 포함합니다.
    ~/.bashrc에 넣어주시면 되겠습니다.
    그리고 shopt -s nocaseglob하시면 와일드카드 사용시 대소문자를 구분하지 않습니다.

현재 디렉토리에 .dot, a, b 라는 세파일이 있을때… ls 명령 결과 비교

[code:364dnpnn]
shopt -s dotglob
/bin/ls ==> a, b
/bin/ls -a ==>., .., .dot, a, b
/bin/ls -A ==>.dot, a, b
/bin/ls -d ==> .
/bin/ls -d * ==> a, b
/bin/ls -dA * ==> .dot, a, b
/bin/ls -da * ==> .dot, a, b
shopt -u dotglob
/bin/ls ==> a, b
/bin/ls -a ==> . , .. ,.dot, a, b
/bin/ls -A ==> .dot, a, b
/bin/ls -d ==> .
/bin/ls -d * ==> a, b
/bin/ls -dA * ==> a, b
/bin/ls -da * ==> a, b
[/code:364dnpnn]