Menekan masalah yang sama pada Fedora 33. Ini tampaknya karena memiliki alias yang ditentukan untuk sudo
di lingkungan saya:
$ alias sudo
alias sudo='\sudo '
Karena itu, entah bagaimana bash menyelesaikan alias yang diteruskan sebagai argumen ke sudo
alias, seperti yang ditunjukkan pada contoh di bawah:
$ alias foo='echo foo'
$ sudo foo
foo
Saya akan berharap untuk memiliki ini sebagai gantinya:
$ sudo foo
$ sudo: foo: command not found
Menghapus alias ini berhasil untuk saya. Alias ini dibuat oleh /usr/local/bin/alias.sh
, bagian dari synth-shell
proyek (https://github.com/andresgongora/synth-shell)
Seperti yang disebutkan oleh @scy unalias-ing vi dan vim adalah solusi untuk menjaga sudo="sudo " alias sehingga dapat digunakan dengan alias lainnya.
Memperluas jawabannya untuk berbagai cangkang:
ZSH Shell: Tambahkan ke .zshrc file (pengguna yang ingin Anda pengaruhi oleh perubahan)
- terletak di:
Untuk Fedora 33 Workstation(atau Server atau Distro OS non-atom lainnya):/home/$USER/.zshrc
Untuk Fedora CoreOS 33.x (atau Silverblue 33 atau Distro OS atom serupa lainnya):/var/home/$USER/.zshrc
- baris kode berikut:
[ "$(type -w vi)" = 'vi: alias' ] && unalias vi
[ "$(type -w vim)" = 'vim: alias' ] && unalias vim
BASH Shell: Tambahkan ke .bashrc file (pengguna yang ingin Anda pengaruhi oleh perubahan)
- terletak di lokasi yang sama, masing-masing ke lokasi spesifik OS/Distro untuk direktori home $USER (periksa arah untuk Fedora Workstation, dll...)
- kode berikut:
[ "$(type -t vi)" = 'alias' ] && unalias vi
[ "$(type -t vim)" = 'alias' ] && unalias vim
N.B. Mengenai ZSH Shell , solusi ini dapat menyelesaikan masalah serupa dengan aplikasi CLI lain yang berada dalam situasi inisialisasi serupa. Misalnya:mc (Komandan Tengah Malam). Sementara itu, mc tidak akan mengalami masalah seperti itu di BASH Shell .