Saya tahu bahwa ketika Anda menggunakan shell, satu-satunya perintah yang dapat digunakan adalah perintah yang dapat ditemukan di beberapa direktori yang diatur pada PATH. Bahkan saya tidak tahu bagaimana cara melihat dirs yang ada pada variabel PATH saya (dan ini adalah pertanyaan bagus yang bisa dijawab), yang ingin saya ketahui adalah:
Saya datang ke shell dan menulis:
$ lshw
Saya ingin tahu perintah pada shell yang dapat memberi tahu saya di mana perintah ini berada. Dengan kata lain, di mana "file yang dapat dieksekusi" ini berada?
Sesuatu seperti:
$ location lshw
/usr/bin
Siapa saja?
sumber
locate
hal itu dapat membantu menemukan file. Ini menggunakan database yang dikelola olehupdatedb
yang dijalankan dari pekerjaan cron. Karenalocate
mencari database daripada keseluruhan sistem file, ini jauh lebih cepat daripadafind
(yang bisa digunakan sebagai pilihan terakhir).type -a
bisa membingungkan. misalnya dalam kasusnvm
yang merupakan fungsi bash yang perlu saya lakukan:type -a nvm | head -n1
untuk mencari tahu apa sebenarnyanvm
.type -a
menampilkan definisi fungsi serta jenis yang dapat dieksekusi. Risiko menggunakanhead
adalah bahwa dalam kasus nama dengan lebih dari satu jenis, tipe tambahan tidak akan menjadi output. Anda mungkin ingin melihatnyatype -t
.Seperti ini:
Untuk melihat semua perintah yang cocok di jalur Anda:
sumber
which
bermasalah karena ada beberapa implementasi, banyak di antaranya melakukan hal yang salah sepenuhnya, dan yang lain tampaknya berfungsi dengan baik, tetapi memiliki kejutan aneh. Anda sebaiknya memilihtype
.type -a lshw
PATH
adalah variabel lingkungan, dan dapat ditampilkan dengan perintah gema:Ini adalah daftar jalur yang dipisahkan oleh karakter titik dua '
:
'The
which
perintah memberitahu Anda file yang yang dijalankan ketika Anda menjalankan perintah:terkadang yang Anda dapatkan adalah jalur menuju symlink; jika Anda ingin melacak tautan itu ke tempat eksekusi aktual, Anda dapat menggunakan
readlink
dan memberi output kepadawhich
:The
-f
parameter menginstruksikanreadlink
untuk terus mengikuti symlink rekursif.Ini contoh dari mesin saya:
sumber
sumber
Dalam TENEX C Shell, tcsh , seseorang dapat membuat daftar lokasi perintah, atau jika itu adalah perintah bawaan, menggunakan
where
perintah misalnya:sumber
Shell Korn
ksh
,, menawarkanwhence
built-in, yang mengidentifikasi shell built-in, makro, dll. Namun,which
perintah ini lebih portabel.sumber
whence -a
mirip dengan Bashtype -a
.Alternatif untuk
type -a
adalahcommand -V
Karena sebagian besar kali saya tertarik pada hasil pertama saja, saya juga menyalurkan dari kepala. Dengan cara ini layar tidak akan membanjiri kode jika ada fungsi bash.
sumber