Fedora 33 で同じ問題が発生しています。これは、sudo
にエイリアスが定義されていることが原因のようです。 私の環境では:
$ alias sudo
alias sudo='\sudo '
このため、何らかの形で bash は引数として渡されたエイリアスを sudo
に解決します。 以下の例に示すように、エイリアス:
$ alias foo='echo foo'
$ sudo foo
foo
代わりにこれを期待していたでしょう:
$ sudo foo
$ sudo: foo: command not found
このエイリアスを削除するとうまくいきました。このエイリアスは /usr/local/bin/alias.sh
によって作成されました 、 synth-shell
の一部 プロジェクト (https://github.com/andresgongora/synth-shell)
@scy が言及したように、vi と vim の unalias-ing は、sudo="sudo " エイリアスを維持するための回避策であり、他のエイリアスと一緒に使用できます。
さまざまなシェルに対する回答の拡張:
ZSH シェル: .zshrc に追加します ファイル (変更の影響を受けたいユーザーの)
- 所在地:
Fedora 33 ワークステーション (またはサーバーまたは別の非アトミック OS ディストリビューション) の場合:/home/$USER/.zshrc
Fedora CoreOS 33.x (または Silverblue 33 または他の同様のアトミック OS ディストリビューション) の場合:/var/home/$USER/.zshrc
- 次のコード行:
[ "$(type -w vi)" = 'vi: alias' ] && unalias vi
[ "$(type -w vim)" = 'vim: alias' ] && unalias vim
BASH シェル: .bashrc に追加します ファイル (変更の影響を受けたいユーザーの)
- $USER のホーム ディレクトリの OS/ディストリビューション固有の場所と同じ場所にあります (Fedora ワークステーションなどの指示を確認してください...)
- 次のコード:
[ "$(type -t vi)" = 'alias' ] && unalias vi
[ "$(type -t vim)" = 'alias' ] && unalias vim
追伸 ZSH シェルについて 、このソリューションは、同様の初期化状況にある他の CLI アプリケーションで同様の問題を解決できます。例:mc (真夜中の司令官)。一方、MC BASH Shell ではそのような問題はありません .