터미널 자동 완성이 제대로 작동하지 않습니다


56

apt-ghitting 후 와 같은 명령을 입력하기 시작 tab하면 쉘은에 명령을 완료 apt-get하지만 install, 같은 명령의 두 번째 부분에서는 insta, hitting 과 같은 문자를 입력하면 명령 tab이 완료되지 않습니다 install.

또 다른 예 : 내가 sudo타격을 입력 한 후에도 tab아무것도 완료되지 않습니다. 예를 들면 : sudo apt-ge[ tab] 그리고 아무것도 없습니다.

미니 iso (40MB 네트워크 설치 프로그램)를 사용하여 Ubuntu를 설치 했으므로 놓친 구성이있을 수 있습니다!

이 코드를 내 코드에 추가 .bashrc했지만 여전히 작동하지 않습니다.

if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

또한의 권한을 확인했으며 .bashrc-rw-r--r--입니다.

또한 변경 사항을 새 환경에 적용하는 데 .bashrc사용하여 이후 변경 사항을 소싱 source .bashrc하지만 여전히 효과는 없습니다.

나는 xfce4-terminal그것이 bash가 아닌 터미널 일 것이라고 생각했다.

그러나 편집 :

~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml

그리고 변화 :

<property name="&lt;Super&gt;Tab" type="string" value="switch_window_key"/>

에:

<property name="&lt;Super&gt;Tab" type="string" value="empty"/>

아무런 차이도 없습니다.

답변:


83

bash-completion 특정 명령에 대한 사용자 정의 완료를 가능하게하는 bash 스크립트 세트입니다.

이것은 파일과 디렉토리뿐만 아니라 명령을위한 것입니다. 따라서 명령의 일부를 입력하면 쳐서 Tab자동 완성 명령을 얻습니다.

설치

1 단계 : bash-completion 설치

$ sudo apt-get install bash-completion

그리고 follwing 명령으로 다시 설치하면 작동하는 경우가 있습니다.

$ sudo apt-get install --reinstall bash-completion

2 단계 :.bashrc 파일 에서 bash-completion 활성화

귀하의 gedit ~/.bashrc컨텐츠를 열고 해당 컨텐츠가 존재하지 않는 경우 컨텐츠를 추가하고 저장하십시오.

# enable bash completion in interactive shells
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

중요 : 변경 후 당신은 당신의 소스 필요 ~/.bashrcsource ~/.bashrc하거나 터미널을 다시 엽니 다. 지금 수정해야합니다.


1
~ / .bashrc 파일에 위의 코드 블록을 추가하면 효과가 있음을 확인하고 싶습니다. 하나의 의견; 실제로 로그 아웃했다가 다시 로그인 할 필요가 없습니다. 작업을 종료하고 싶지 않을 수도 있습니다 source ~/.bashrc.
nullgeppetto

터미널이 작동하려면 터미널을 다시 열어야했습니다!
Gilberto Albino

2
완료가 갑자기 작동하지 않아 위의 단계를 수행해도 문제가 해결되지 않습니다. 문제를 해결하는 방법에 대한 아이디어가 있습니까? 우분투 16.04에서
Gudlaugur Egilsson

1
2 단계는 나를 위해 그것을합니다. 또는에서 템플릿을 얻을/etc/skel/.bashrc
Hendy 이르 완

1
@SergioIvanuzzo 어떤 문제가 있는지 잘 모르겠다면이 unix.stackexchange.com/q/219342/72456을 참조 하십시오. 그렇지 않으면 문제에 대한 자신의 질문을여십시오.
αғsнιη

27

사례가 터미널 탭에서 작동하지 않는 경우 Xfce,

해결책은 다음과 같습니다.

  1. 열기 Application Menu> Settings> Window Manager.
  2. Keyboard탭을 클릭 하십시오.
  3. Switch window for same application설정을 지우십시오 .

동일한 응용 프로그램의 스위치 창을 지우는 방법

나는 해결책을 발견했습니다 여기에


허용 된 차일을 시도했지만 모든 것이 이미 제자리에있었습니다. 이것은 실제로 나를위한 해결책이었습니다.
user1226868

같게. 좋은 힌트.
cerebrou

정말 감사합니다, 나는 이것에 대해 정말로 마음을 잃고있었습니다.
더스틴 Cowles

2
여전히 2018 년 5 월 현재 필요한 솔루션입니다.
clifgray

고마워요
MMH

3

자동 완성을 지원하지 않는 쉘에있을 수도 있습니다 (예 : Bourne Shell | SH). BASH 자동 완성을 원한다면 셸을 전환하고 명령 대신 BASH (Bourne Again SHell)라고 말하십시오.

chsh -s /bin/bash

출처 : Ubuntu Wiki-쉘 변경


1

필자의 경우 스크립트를 실행하려고했지만 ./myScript.sh입력 ./my[tab]이 자동 완성되지 않았습니다.

파일에 실행 권한을 추가해야했고 자동 완성이 작동했습니다.

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