Pertanyaan Bagaimana cara melihat perintah yang melekat pada alias bash?


Misalkan saya memiliki alias di shell bash. Apakah ada perintah sederhana untuk mencetak perintah apa alias yang akan dijalankan?


258
2018-02-07 03:24


asal




Jawaban:


Itu type builtin berguna untuk ini. Ini tidak hanya akan memberi tahu Anda tentang alias, tetapi juga fungsi, builtins, kata kunci, dan perintah eksternal.

$ type ls
ls is aliased to `ls --color=auto'
$ type rm
rm is /bin/rm
$ type cd
cd is a shell builtin
$ type psgrep
psgrep is a function
psgrep () 
{ 
    ps -ef | { 
        read -r;
        echo "$REPLY";
        grep --color=auto "$@"
    }
}

342
2018-02-12 09:52



apa yang harus dilakukan ketika sebuah alias mengandung LEBIH alias? - user251046
@ user251046 terus menggunakan type sampai kamu memukul sesuatu selain dari sebuah alias ... - geirha
Saya suka jawaban ini karena type akan mengurai / menafsirkan tanda kutip apa pun, sehingga Anda dapat memastikan bahwa tanda kutipnya benar. - wisbucky


Ketik saja alias saat di prompt Shell. Ini harus menghasilkan daftar semua alias yang aktif saat ini.

Atau, Anda bisa mengetik alias [command] untuk melihat apa alias tertentu alias ke, sebagai contoh, jika Anda ingin mencari tahu apa ls alias di-alias, bisa Anda lakukan alias ls.


127
2018-02-07 03:30



Atau ketik alias ls untuk mencari tahu apa yang khusus ls adalah alias. - poolie
@poolie Memang. Saya pikir pertanyaannya adalah untuk melihat semua alias, itulah sebabnya saya tidak menjelaskan lebih lanjut tentang perintah alias. - Thomas Ward♦
sementara ini berfungsi untuk alias, itu tidak bekerja jika Anda telah mendefinisikan fungsi shell kustom. type Namun, bekerja dalam kedua kasus. - Sujay Phadke


Saya sangat suka Ctrl+Alt+E seperti yang saya pelajari dari jawaban ini. Ini "memperluas" baris perintah yang diketik saat ini, yang berarti melakukan ekspansi alias (antara lain).

Apa artinya? Ternyata alias apa pun, yang mungkin saat ini ditulis pada baris perintah, ke dalam apa singkatan alias.

Misalnya, jika saya mengetik:

$ ls

lalu tekan Ctrl+Alt+E, itu berubah menjadi

$ ls --time-style=locale --color=auto

51
2018-02-13 17:52



memiliki ini yang setara pada distro lain? - sepehr
@sepehr Bekerja di Debian, saya menganggap itu adalah fitur bash dan harus bekerja pada distribusi apa pun. - Der Hochstapler
Anda benar, itu bekerja pada bash tapi saya punya zsh dan itu tidak berhasil sayangnya. - sepehr
sangat membantu. Saya memiliki tujuan berbeda untuk memperluas salah satu perintah bash sebelumnya yang dicatat dalam riwayat dengan, yaitu,! 394, sehingga saya dapat mengeditnya terlebih dahulu sebelum mengeksekusi - XXL
Bagaimana mencapai hal ini di bash OSX? - Govind Rai


Jawaban yang benar adalah menggunakan array BASH_ALIASES, misalnya:

$ echo ${BASH_ALIASES[ls]}
ls -F --color=auto --show-control-chars

6
2018-01-13 12:12



Saya menemukan ini berguna dalam situasi di mana saya ingin akses terprogram ke pernyataan yang sebenarnya alias tanpa barang-barang yang berguna manusia di sekitarnya. - M. Justin
Sangat bermanfaat, terima kasih! - Noldorin
ini tidak berfungsi di zsh - ProGrammar
@ProGrammar pertanyaannya adalah tentang bash - untuk zsh Anda harus mencari pertanyaan tentang zsh - noonex


Anda bisa menggunakan which perintah.

Jika Anda menetapkan alias untuk ls sebagai ls -al lalu ketikkan which ls, kamu akan lihat:

ls: aliased to ls -al.


1
2017-08-05 07:36



bash tidak punya which perintah. - geirha
Tidak bekerja untuk saya .. - Chiel ten Brinke
Ini bekerja untukku. Terima kasih - Indrajeet Gour
which adalah cara yang buruk untuk mencari alias seperti yang dijelaskan di sini: unix.stackexchange.com/questions/10525/…   Itu bahkan tidak bekerja untuk saya untuk alias di bash pada Ubuntu. - Sujay Phadke