Konteks: Saya mencoba membuat aplikasi secara otomatis mulai ketika saya masuk. Untuk ini saya perlu memilih path
untuk aplikasi.
Inilah jalan yang sudah saya telusuri:
/sbin
/usr/sbin
/usr/local/bin
/usr/share/
Jika ini dapat membantu, aplikasi yang saya coba cari disebut " ScreenCloud " dan saya mengunduhnya dari Ubuntu Software Center.
Tetapi saya tidak dapat menemukannya, apakah ada cara saya bisa tahu di mana diinstal perangkat lunak tertentu? Karena walaupun saya menemukan yang ini, saya ingin menghindari masalah yang sama di masa depan.
.deb
paket tetapi Anda perlu menambahkan PPA.screencloud.sh
menjadiscreencloud
dan curiga itu dipindahkan dari/opt
. Bagian dari jawaban saya menunjukkan bagaimanatype
danwhich
tidak akan menemukanscreencloud
tetapilocate
akan menemukan .screencloud.sh
sebenarnya masih ada tetapi saya tidak yakin bagaimana ini berbeda dariscreencloud
fakta bahwa.sh
file tersebut adalah skrip danscreencloud
bukan. Saya benar-benar tidak terbiasa dengan aplikasi ini. Di bawah/usr/bin/
ada ascreencloud
, ascreencloud.sh
, dan jugascreencloud-
diikuti oleh semacam nomor versi seperti apagimp
adanya.Jawaban:
Temukan jalur yang dapat dieksekusi
Cara terbaik
type executable
Lihatlah pertanyaan ini untuk mempelajari lebih lanjut tentang bagaimana
type
menjadi lebih baik. (Terima kasih, komentar!)Cara lain
whereis executable
which executable
Perintah-perintah itu hanya mencari dalam variabel PATH (
echo $PATH
), sehingga mereka tidak valid dalam beberapa kasus (fungsi bawaan, alias, atau fungsi bash, dan banyak lagi).sumber
type
lebih disukaiwhich
karena shell builtin dan dapat menentukan apakah suatu perintah adalah alias. Itu juga baru bagi saya!type
lebih disukai: Mengapa tidak menggunakan "yang"? Lalu apa yang harus digunakan?which
memang bermanfaat dalam konteks spesifik skrip shell. Di luar konteks itu, bagaimanapun,type
hampir selalu merupakan pilihan yang lebih baik.Temukan lokasi perintah di dalam atau di luar jalur
Asumsikan Anda ingin menemukan lokasi
uname
, program yang mencantumkan informasi sistem. Jika Anda ingin tahu direktori apa yang disimpan oleh perintah tingkat atas, Anda memiliki sejumlah opsi:Temukan keunggulannya
Opsi terakhir
locate
mengembalikan semua file yang berisiuname
tidak hanya program yang dijalankan dari command prompt.Keuntungannya
locate
adalah ia akan menemukan perintah tidak di jalur pencarian Anda.type -a
(lebih disukai daripada sederhanatype
) danwhich
hanya akan menemukan perintah di jalur pencarian Anda. Untuk melihat jalur pencarian Anda gunakanecho $PATH
.Ambil contoh jawaban ini di Cara memulai screencloud? :
The
locate screencloud
perintah akan menemukannya tetapiwhich screencloud
dantype -a screencloud
tidak akan karena:screencloud.sh
dan hanyalocate
pencarian perintah pada kecocokan parsial./opt/screencloud
mungkin tidak ada di jalur pencarian.which
dantype
hanya mencari file yang dapat dieksekusi di jalur pencarian.Catatan: Ini adalah jawaban yang lebih lama. ScreenCloud modern disebut dengan
screencloud
.Temukan keunggulan daripada
find
perintah itu bisa ratusan atau bahkan ribuan kali lebih cepat. Juga menjalankanfind
mulai dari/
akan memberikan banyak kesalahan izin yang tidak akan Anda alamilocate
.Temukan kelemahannya
Jika Anda baru saja menginstal program hari ini, Anda perlu menggunakan
sudo updatedb
untuk memperbarui basis data loc.sumber
Gunakan perintah berikut untuk daftar semua
$PATH
direktori Anda :Gunakan perintah berikut untuk menemukan path lengkap untuk
screencloud
:Jika Anda menggunakan
apt
,,apt-get
atau Ubuntu Software Center untuk menginstal paket, Anda dapat menggunakan perintah berikut untuk menemukan path lengkap:Dengan asumsi Anda menggunakan repositori ini , Anda harus dapat menemukan
screencloud
di/usr/bin/
.Path lengkapnya adalah:
atau
Namun, jika Anda menggunakan toko snapcraft sesuai dengan tautan yang Anda berikan dalam pertanyaan Anda, maka jalurnya akan berada di bawah direktori berikut:
Info lebih lanjut
Juga, harap diingat bahwa Ubuntu peka huruf besar-kecil sehingga Anda harus menggunakan semua huruf kecil tanpa huruf besar.
sumber
/snap/bin
!