sudo 사용 시 Bash 매개변수 완성

sudo 사용 시 Bash 매개변수 완성

저는 CetnOS 6을 사용하고 있는데 sudo.

이 문제를 발견했습니다https://superuser.com/questions/804128/bash-hints-does-not-work-after-sudo-or-man현재 다음 작품을 볼 수 있습니다:

  • yu[tab]완료 yum하고 다른 탭을 누르면 다른 yum 명령이 제안됩니다.
  • yum upg[tab]yum upgrade필요에 따라 자동 완성
  • sudo yu[tab]sudo yum예상대로 자동으로 완료됩니다.
  • sudo yum upg[tab] 자동완성 안함아무것도 조언하지 않습니다.

sudo를 사용해도 매개변수 완성을 어떻게 달성할 수 있나요?

( yum이것은 모든 CentOS에서 작동하기 때문에 예제로만 사용하고 있습니다. 결과는 다른 명령에서도 동일합니다.)


내 시스템에 대한 일부 정보:

$ uname -a
Linux server 2.6.32-642.6.1.el6.x86_64 #1 SMP Wed Oct 5 00:36:12 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

$ bash --version
GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)

$ yum list installed | grep completion
bash-completion.noarch  1:1.3-7.el6        @epel

$ cat .bashrc
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions
complete -cf sudo

답변1

이는 완벽한 해결 방법은 아니지만 sudo 명령 complete -cf sudo에 추가하면 .bashrc자동으로 완료됩니다.

하지만 이렇게 해도 아무런 조치를 취하지 않습니다.정확히일반적인 탭 완성과 같습니다. 예를 들어, 그것을 사용한다면 sudo cd [tab]쓸모없는 가능성이 많이 생길 것입니다. 즉, 파일 이름이 표시될 것입니다... 누가 파일에 CD를 넣고 싶습니까?

그러나 대부분의 경우 다음과 같은 명령이 완료됩니다.sudo yum upd[tab]

관련 정보