Kuinka käyttää which-komentoa Linuxissa

Linuxin which-komento helpottaa suoritettavien tiedostojen löytämistä PATH-ympäristömuuttujasta. Opas kattaa syntaksin, käytön, esimerkit ja rajoitukset tehokkaan käytön tueksi.
Linux antaa sinulle täydellisen hallinnan siitä, miten työskentelet, muokkaamisesta järjestelmän hallintaan. Yksi kätevä työkalu, joka voi tehdä kokemuksestasi sujuvampaa, on komento which
. Se auttaa sinua löytämään nopeasti suoritettavan tiedoston tarkan sijainnin etsimällä hakemistot, jotka on listattu $PATH
muuttujassa. Tässä oppaassa selitämme, miten which-komento toimii, tutkimme sen syntaksia ja vaihtoehtoja sekä käymme läpi käytännön esimerkkejä, jotka auttavat sinua käyttämään sitä tehokkaasti.
Ymmärrä which-komennon syntaksi ja toiminta
Komento which
Linuxissa auttaa löytämään suoritettavan tiedoston tietylle komennolle. Se etsii hakemistoja, jotka on listattu PATH-ympäristömuuttujassa. Tämä komento näyttää, mikä tiedosto suoritetaan, kun käytät komentoa. Se palauttaa seuraavanlaisen tuloksen:
0
, kun kaikki ilmoitetut komennot löytyvät ja ovat suoritettavissa.1
, jos jokin tai useampi komento puuttuu tai ei ole suoritettavissa.2
, jos käytetään väärää vaihtoehtoa.
Yleinen syntaksi which-komennon käyttämiseen Linuxissa on:
which [tiedosto1] [tiedosto2] ...
Korvaa [tiedosto1]
ja [tiedosto2]
niillä suoritettavilla tiedostoilla, joita haluat etsiä.
Miksi meidän pitäisi käyttää which-komentoa
On monia syitä käyttää which-komentoa Linuxissa. Esimerkiksi se auttaa meitä selvittämään, onko komento todellinen suoritettava, alias vai symbolinen linkki. Lisäksi se näyttää suoritettavan tiedoston tarkan sijainnin. Se mahdollistaa myös puuttuvien tai ristiriitaisten komentojen tunnistamisen PATH-muuttujassa. Lisäksi which-komennon käyttö varmistaa, että oikea versio käynnistyy, kun useita versioita on olemassa.
Kuinka käyttää which-komentoa Linuxissa
Katsotaanpa joitakin esimerkkejä nähdäksemme, kuinka which-komento toimii käytännössä:
Esimerkki 1: Löydä suoritettavan tiedoston polku
Voimme käyttää which-komentoa selvittääksemme, mihin kansion suoritettava tiedosto on tallennettu:
which grep
Se palauttaa koko polun, kuten "/usr/bin/grep", joka osoittaa suoritettavan tiedoston tarkan sijainnin.
Esimerkki 2: Etsi useamman komennon polut
Voimme määrittää useita komentoja samanaikaisesti which-komennolla tarkistaaksemme niiden vastaavat polut:
which awk sed cat touch
Tämä komento noutaa awk
, sed
ja cat
komentojen polut vastaavasti:
Esimerkki 3: Näytä kaikki komennon instanssit
Oletusarvoisesti which
palauttaa vain ensimmäisen osuman, joka löytyi PATHista. Voimme kuitenkin suorittaa which-komennon -a
vaihtoehdolla löytääksemme kaikki komennon esiintymät:
which -a cat
Tämä komento luettelee kaikki sijainnit, joissa cat
löytyy PATHista:
Voit tarkistaa niiden tiedot suorittamalla ls-komennon -lh
vaihtoehdolla. Tämä näyttää, ovatko molemmat tiedostot todellisia suoritettavia vai kopioita eri sijainneista:
ls -lh /usr/bin/cat && ls -lh /bin/cat
Yllä oleva kuvakaappaus näyttää kaksi identtistä komentoa eri sijainneissa, molemmat 35KB kokoisia ja suoritettavia.
Esimerkki 4: Tarkista, onko komento olemassa
Voimme käyttää which-komentoa tarkistaaksemme tietyn komennon olemassaolon:
which cats
Jos komentoa ei ole, ei tulosta näy, kuten yllä olevassa kuvakaappauksessa, ja poisto-osa on nolla.
Esimerkki 5: Tunnista symboliset linkit
Järjestelmässä voi olla useita versioita samasta ohjelmasta, mutta jotkut instanssit saattavat olla symbolisia linkkejä todellisten binääritiedostojen sijaan. Löytääksesi symboliset linkit, suorita vain which-komento -a
vaihtoehdolla:
which -a crontab
Seuraavaksi tarkista tiedostojen yksityiskohdat ls
komennolla:
ls -lh /usr/bin/crontab && ls -lh /bin/crontab
Jos tuloksessa on ->
, se tarkoittaa, että tiedosto on symbolinen linkki, joka osoittaa toiseen sijaintiin.
Esimerkki 6: Poista
Shellin sisäiset komennot
which
-komento näyttää vain ulkoisia suoritettavia tiedostoja eikä näytä shellin sisäisiä komentoja. Se auttaa meitä tunnistamaan, minne ohjelma on asennettu järjestelmään. Esimerkiksi seuraava komento palauttaa vain polun ls:lle, koska read on sisäinen shell-komento:
which ls read
Which-komennon rajoitukset
which
-komennolla on useita rajoituksia, jotka tekevät siitä vähemmän luotettavan tietyissä tilanteissa. Esimerkiksi se näyttää vain ulkoiset suoritettavat tiedostot eikä tunnista sisäisiä komentoja kuten cd
tai read
. Lisäksi se ei pysty erottamaan binaarisia ja symbolisia linkkejä. Komento etsii tiukasti vain $PATH
-muuttujassa lueteltuja hakemistoja, mikä tarkoittaa, että se ei voi löytää ohjelmia, jotka on tallennettu muualle. Myöskään se ei tarjoa tietoja kuten tiedostotyyppi, oikeudet tai versio. Jos komento ei löydy, se ei kuitenkaan näytä virheilmoitusta, vaan palauttaa yksinkertaisesti tyhjää.
Näiden rajoitusten voittamiseksi voit valita vaihtoehtoisen komennon, kuten whereis, type
tai ls
.
Where vs. Which -komento
where
ja which
-komennot auttavat molemmat löytämään tiedostoja, mutta niillä on eri tarkoituksia. where
-komentoa käytetään pääasiassa Windowsissa ja joissakin Unix-tyyppisissä järjestelmissä. Se löytää sekä tiedostot että hakemistot ja listaa kaikki osumat järjestelmän PATH:ssa.
which
-komento on erityinen Unix-tyyppisille järjestelmille. Se etsii vain suoritettavia tiedostoja $PATH
-muuttujassa luetelluista hakemistoista. Oletuksena se palauttaa ensimmäisen osuman, mutta lisäämällä which -a
listataan kaikki osumat.
Esimerkiksi where node
-komennon suorittaminen Windowsissa näyttää kaikki sijainnit, joissa nodea löytyy. Linuxissa which gcc
palauttaa ensimmäisen polun, jossa gcc-kääntäjä sijaitsee.
Vaikka which
-komento tarjoaa useita toimintoja, siitä puuttuu yhä joitakin ominaisuuksia. Tämä voidaan kuitenkin korvata käyttämällä vaihtoehtoista komentoa, kuten aiemmin käsiteltiin. Lisäksi which
-komento tunnistaa vain suoritettavat tiedostot $PATH
:ssa. Jos skriptiäsi tai ohjelmaasi ei löydy, se ei ehkä ole saanut suoritusoikeuksia. Varmista siis, että skripti on hakemistossa, joka on lueteltu $PATH
:ssa, ja että sillä on suoritusoikeudet.
Nyt kun olet lukenut Kuinka käyttää which-komentoa Linuxissa loppuun, kutsumme sinut tutustumaan lisää Linux-kategoriaan. Löydät sieltä muita mielenkiintoisia artikkeleita, jotka laajentavat tietojasi ja pitävät sinut ajan tasalla. Älä lopeta lukemista ja löytämistä!
Vastaa