루트로 기록 된 동안 자동 완성 기능이 작동하지 않습니다


23

나는 정말로 나를 괴롭히는 것을 발견했다. 우분투에서 자동 완성 기능은 매력처럼 작동하지만 루트로 로그인 su하면 tab자동 완성 기능이 때때로 나타납니다.

왜 그렇게 작동합니까? 그것을 바꿀 수 있습니까?


실제로 루트로 로그인하거나 sudo su를 사용하고 있습니까?
Marty Fried

@MartyFried 예 나는 diong sudo su입니다. 차이점은 무엇입니까?
Patryk

그것은 나를 위해 일하는 것 같습니다, 당신은 그것이 작동하지 않을 때, 우리가 복제 할 수있는 특정 인스턴스를 제공 할 수 있습니까?
ste_kwr 2019

1
@lordmonkey : 어쩌면 아무도 모르겠습니다. 나는 su 또는 sudo su 자체가 내가 기억하지 못하는 방식으로 약간 다르다고 생각하므로 동일한 조건에서 이것을 확인할 수 있기를 원했습니다. 그것은 작동하는 것처럼 보이지만 "때때로"라고 말 했으므로 다시 한 번 확인하고 재현 할 수 있도록 제안하거나 사용자를 속이는 다른 일이 없는지 확인하십시오 (예 : 사용자 오류-야, 그것은 모두에게 일어난다! :)
Marty Fried

답변:


41

/root/.bashrc이 줄에 대한 파일을 확인하십시오

if [ -f /etc/bash_completion ]; then
  . /etc/bash_completion
fi

존재하지 않는 경우 선호하는 텍스트 편집기를 사용하여 파일 끝에 추가하십시오.


내 .bashrc는 언급 된 행을 포함했지만 주석 처리되었습니다. 주석 처리를 제거하고 새 .bashrc를 소스 화하십시오. 상황이 지금 꽤 좋아 보인다.
Ankit

bash_completion라인은, 내 경우에는 적어도, 그것은이 주장하기 때문에, 주석 처리 된 bash_completion이미 활성화되어 /etc/bash.bashrc있지만, 그 파일 라인이 주석하는 것도있다. etc파일 의 주석을 해제하는 대신 에서 행의 주석을 해제하는 것이 좋습니다 /root/.bashrc.
Peregring-lk

7

어떤 Ubuntu 버전을 사용했는지 언급하지 않았습니다.

  • bash-completion패키지가 설치되어 있는지 확인하십시오 .

    sudo apt-get install bash-completion
  • 다음을 사용하여 로그인하면 광산이 작동합니다. sudo -i


루트의 .bashrc를 제거하는 요점은 무엇입니까?
geirha 2016 년

다음 로그 아웃 / 로그인시 기본 .bashrc가 재생성 될 것이라고 생각합니다. 또는 자동 완성을위한 일종의 "비활성화"를 포함 할 수도 있습니다 (가능한지 알 수 없음). 나는 그것을 적어 둔 실제 이유를 기억할 수 없습니다.
Savvas Radevic 2016 년

2
아니요, 새로운 .bashrc것이 생성 /etc/bash_completion되지 않으며 소스되지 않으며 bash의 기본 완성 만 사용할 수 있습니다.
geirha

확인, 편집 및 제거되었습니다. 입력 해 주셔서 감사합니다! 궁금하지만 만약 ~ / .bashrc에 할 수있는 "unsource"파일 또는 경우 disable-completion계속 사용할 수 있습니다 : superuser.com/questions/37148/...
사바스 Radevic

3

우분투 13.10를 들어, 확인 /etc/bash.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

그들은 논평 될지도 모른다. 주석을 해제하면 작동합니다.


0

이것이 효과가 있음을 발견했습니다 (위의 답변과 유사하지만 비틀림)

편집해야 할 파일 (적어도 12.04 인 경우)은 /root/.bashrc입니다. 내 일반 사용자는 자동 완성은 잘되었지만 내 루트는 그렇지 않다는 점을 감안할 때 이것은 의미가 있습니다.

어쨌든 해당 파일에서 필요한 코드를 모두 찾았지만 주석 처리되었습니다.

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
#if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    #. /etc/bash_completion
#fi

주석 처리를 제거했습니다.

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

저장되었고 잘 작동했습니다.

이것이 누군가를 돕기를 바랍니다.


0

Linux Mint 18 (Xenial 기반)에서 bashrc를 편집해야합니다.

sudo nano /etc/bash.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

그게 다야.

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