Ohjelmointi

10 Unix-komentoa jokaisen Mac- ja Linux-käyttäjän tulisi tietää

GUI: t ovat hienoja - emme halua elää ilman niitä. Mutta jos olet Mac- tai Linux-käyttäjä ja haluat saada kaiken irti käyttöjärjestelmästäsi (ja näppäinpainalluksistasi), olet sen velkaa itsellesi tutustua Unix-komentoriviin. Osoita ja napsauta on upeaa aina, kun joudut tekemään jotain kerran tai kahdesti. Mutta jos sinun on toistettava tämä tehtävä monta kertaa, komentorivi on pelastajasi.

Komentorivi on ikkuna tietokoneen täydelliseen ja mahtavaan tehoon. Jos kaipaat päästä irti graafisen käyttöliittymän rajoituksista tai luulet, että etäkoneiden ohjelmointi tai hallinta on tulevaisuutesi, Unix-komentorivin oppiminen on ehdottomasti sinulle.

Älä huoli, jos Unix-komennot näyttävät maagisilta loitsuilta tai järjestelmän salaperäiset sisäosat näyttävät käsittämättömiltä. Niitä ei ole niin vaikea oppia, ja tämä artikkeli antaa sinulle 10 välttämätöntä komentoa aloittaaksesi. Ennen pitkää nuo salaperäiset merkkijonot ovat toinen luonne.

Kuoren perusteet

Unix-komentorivin kuori vastaa suunnilleen Microsoft Windowsin komentoikkunaa (cmd tai PowerShell). Alla käydyt komennot toimivat kaikissa Unix-tyyppisissä järjestelmissä, mukaan lukien Linux, Darwin (MacOSin perusta), FreeBSD ja jopa Windows, jossa on jotain Git Bashia tai Windows 10: n uutta Bash-kuorta. Vaihtoehdot ja ulostulo vaihtelevat hieman, mutta sinun ei pitäisi olla vaikeuksia ymmärtää niitä.

Ensinnäkin sinun on avattava kuori, jota kutsutaan joskus pääteikkunaksi. Usein Unix-jakelut asettavat tämän Hallinta- tai Järjestelmä-valikkojen alle. MacOSissa pääte löytyy kohdasta Sovellukset> Apuohjelmat> Pääte. Kun käynnistät sen, näet jotain tällaista:

Tämä MacOS 10.11: n näyttö on tyypillinen useimmille käyttöliittymän kuoreille. Ikkunan yläosassa näemme kuorityypin, tässä tapauksessa Bash (Bourne Again Shell, joka on oletuskuori MacOS: ssa ja useimmissa Linux-jakeluissa), ja ikkunan koon. Ikkunan sisällä on kehote, joka on tässä tapauksessa määritetty näyttämään koneen nimi (Elohopea), nykyisen työhakemiston nimi (tässä tilde, ~, joka on lyhenne käyttäjän kotihakemistolle), käyttäjän nimi ja lopuksi kehotussymboli ( $). Huomaa, että kehotteesi muuttuu, kun siirryt tiedostojärjestelmässä tai jos sinusta tulee eri käyttäjä koneellasi (kuten pääkäyttäjä tai pääkäyttäjä hallinnollisten komentojen suorittamiseksi). Kehote näyttää nämä tiedot, joten voit helposti kertoa missä ja kuka olet millä tahansa koneella.

On syytä tietää, että Unix-kuorella on kaksi päämausta: Bourne- ja C-kuori. Bourne ja yritys olivat peräisin alkuperäisestä AT&T Unixista, kun taas C-kuori kotoisin Kalifornian yliopistosta Berkeleyssä ja BSD Unixista. Yleensä Bourne- ja C-kuorijohdannaiset ovat hyviä vuorovaikutteiseen työhön terminaalissa. POSIX-vakiokuori, Korn-kuori, on se, jota haluat käyttää omien ohjelmien kirjoittamiseen komentotulkkiin, nimeltään komentosarjat. Käytämme Bash-kuorta tämän opetusohjelman esimerkeissä.

Kuoriympäristö

Yksi ensimmäisistä ymmärretyistä asioista Unix-komentorivillä työskentelyssä on, että kuori toimii omassa ympäristössään. Shell-ympäristön hallinnan ymmärtäminen on tärkeä osa tehokkuutta komentorivillä. Katsotaanpa ympäristöä käyttämällä env komento:

Älä murehdi ymmärtää kaikkia ympäristömuuttujia nyt, mutta tiedä, että ne ovat siellä. Sinun tulisi tunnistaa muutama muuttuja jo. Esimerkiksi, KUORI = / bin / bash kertoo meille, että käytämme Bash-kuorta. HOME = / Käyttäjät / nunez määrittää käyttäjän kotihakemiston sijainnin. Voit muuttaa tai luoda ympäristömuuttujia, ja teet niin usein. Tässä on esimerkki kutsutun ympäristömuuttujan asettamisesta FOO ja näytetään sen arvo:

Kuten näette, muuttujat laitetaan yleisesti isoilla kirjaimilla. Ota erityisesti huomioon, kuinka viittaamme ympäristömuuttujiin, kun käytämme niitä komennoissa, edellisen kanssa $. $ käskee komentotulkin käyttämään muuttujan arvoa. Ilman $, kaiku yllä oleva komento yksinkertaisesti tulostaa muuttujan nimen, FOO.

Unix-komennot

Riippumatta siitä, mitä komentotulkkia käytät, saat komentoriviin komenton, kun Unix-ohjelma suoritetaan. Unixin suunnittelufilosofiana on luoda ohjelmia, jotka tekevät yhden asian hyvin, ja ketjuttaa (tai "putkia") niitä yhdessä tekemään hyödyllistä työtä. Tarkastellaan yksinkertaista esimerkkiä tiedostojen määrän laskemiseksi / etc-hakemistossa (näemme, kuinka siirtyä / etc-hakemistoon myöhemmin):

Tämä komentosarja kuvaa kahta tärkeää käsitettä: putkisto ja vaihtoehdot. Ls komento (vastaa ohj komento Windowsissa) näyttää hakemiston sisällön ja WC (sanamäärä) sanojen lukumäärä. Huomaa pystysuora palkki niiden välillä? Se on putkihahmo. Putki ottaa ensimmäisen komennon lähdön ja ohjaa sen toisen komennon tulona. Voit ketjuttaa minkä tahansa määrän komentoja yhteen Unixissa liittämällä ne toisiinsa putkilla.

Toinen huomattava asia on kullekin komennolle annetut vaihtoehdot. Unixissa vaihtoehdoissa on perinteisesti etuliite yhdellä viivamerkillä, -. Nämä komentorivivalinnat muuttavat komennon käyttäytymistä. Tässä esimerkissä - vaihtoehto Ls tarkoittaa hakemiston sisällön tulostamista "pitkässä" muodossa, kun taas –L vaihtoehto WC tarkoittaa "rivien" laskemista sanojen sijaan. Englanniksi tämä komento voidaan lukea:

Luetteloi nykyisen hakemiston rivien määrä ja lähetä ne sitten sanamääräohjelmaan rivien määrän laskemiseksi.

Usein nämä komentorivivalinnat ohittavat ympäristössä asetetut oletusasetukset. Jos haluat muuttaa komennon pysyvää käyttäytymistä, voit asettaa ympäristömuuttujan automaattisesti sisäänkirjautumisen yhteydessä. Monien komentojen avulla voit yhdistää vaihtoehdot yhdeksi merkkijonoksi - esimerkiksi ls -la- mutta toiset eivät. Voit oppia kaikista komennon vaihtoehdoista tarkistamalla sen käsikirjan tai "man sivut" (joista keskustelemme alla).

Komentorivivaihtoehtojen oppiminen ja käyttö on suuri osa tehokkuutta Unix-komentorivillä. Joillakin komennoilla on niin paljon vaihtoehtoja, että dokumentaatio kulkee kymmenille sivuille. Älä anna sen huolestuttaa sinua nyt. Tarvitset usein vain muutaman vaihtoehdon tietyn tehtävän suorittamiseen, ja monia vaihtoehtoja käytetään vain kirjoitettaessa ohjelmia shell-kielellä.

Opas

Kun ymmärrät komentorivin ja ympäristön perusteet, voimme alkaa sukeltaa syvemmälle järjestelmään. Ensinnäkin aloitetaan käsikirjan kanssa.

Yksi Unixin hienoista puolista on dokumentaation korkea laatu. Asiakirjoja on käyttäjille, järjestelmänvalvojille ja ohjelmistokehittäjille. Pääset dokumentaatioon mies komento. Aloitetaan lukemalla käyttöoppaan käyttöopas (kirjoita mies mies komentorivillä):

Oppaat on jaettu kahdeksaan osaan, jotka vaihtelevat hieman sen mukaan, onko käytössäsi BSD / Linux / Mac vai System V-tyyppinen Unix. On hyödyllistä aloittaa lukemalla kunkin osan johdanto, ja voit tehdä sen loitsulla, kuten mies -s 1 esittely, mikä tarkoittaa etsimällä osiosta 1 manuaalinen sivu nimeltä "intro":

Jos et ole varma mitä komentoa etsit, voit kokeilla -f ja -k vaihtoehtoja. mies - f komento kertoo komennon toiminnon, jos tiedät sen nimen mies –k vihje luetteloi merkityksellisten komentojen nimet yhden tai useamman avainsanan perusteella. Molemmat vaihtoehdot etsivät sisäänrakennettua tietokantaa (jos se on määritetty; sillä on yleensä) ja palauttavat kaikki ottelut. Esimerkiksi, mies –k bzer näyttää merkkijonolla alkavat manuaaliset sivut bz:

Tiedostojärjestelmä

Unix-tiedostojärjestelmään liittyy monia komentoja, koska se on käyttöjärjestelmän ydin. Näimme yhden heistä aiemmin: Ls, jossa luetellaan tiedostot hakemistossa:

Ls komento voi olla yleisimmin käytetty komento kaikista, ja sillä on monia vaihtoehtoja tuloksen säätämiseen. Yksi vaihtoehto, josta haluat tietää heti, on ls -a (listaa kaikki). Tämä paljastaa "piste" -tiedostot (tiedostot tai hakemistot, joiden nimi alkaa pisteellä tai pisteellä), jotka ovat oletusarvoisesti piilotettuja. Nämä tiedostot tai hakemistot sisältävät yleensä kokoonpanotietoja tai lokitiedostoja Unix-järjestelmälle. Esimerkiksi .bash_history-tiedosto kirjaa kaikki komentoriville kirjoittamasi komennot.

Toinen komento, jota tarvitset heti, on CD komento, jolla muutat hakemistoja. Tämä muistuttaa samaa komentoa Windowsissa, mutta sillä on tärkeä ero. Unixissa kaikki asemat (laitteet) näkyvät yhtenä asemana. Kun taas Windowsissa kuvat saattavat olla ulkoisella kiintolevyllä, joka näkyy nimellä E:, Unixissa kyseinen asema voi olla / home / user / pictures. Kaikkiin Unix-järjestelmän tiedostoihin pääsee polun kautta, joka alkaa / / (juurihakemisto), ja voit liittää erilaisia ​​kiintolevyjä tiedostojärjestelmän eri kohtiin tarpeidesi mukaan.

Ennen kuin aloitat vaeltamisen tiedostojärjestelmässä, haluan esitellä toisen tarvitsemasi komennon: pwd (tulosta työhakemisto). Koska kasvavassa tiedostojärjestelmässä on mahdollisesti paljon eksymispaikkoja, näiden komentojen avulla voit nopeasti selvittää sijaintisi. Vaihdetaan hakemistot sijaintiin, jossa järjestelmän kokoonpanotiedostot säilytetään, ja tarkistetaan sijaintimme

Huomaa, että voit käyttää CD komento ilman argumentteja palata nopeasti kotihakemistoon. Toinen vinkki: ~ voidaan käyttää pikakuvakkeena viittaamaan kotihakemistoon sekä Bash- että C-kuoressa.

Tässä vaiheessa osaat liikkua tiedostojärjestelmässä ja luetteloida hakemistojen sisällön. Nyt tarvitaan tapa lukea niihin tallennetut tiedostot. Nykyään useimpien järjestelmien mukana tulee Vähemmän komento tähän. Vähemmän näyttää tiedoston sivukohtaisesti ja antaa sinun navigoida Vi-komennoilla (paina j liikkua alas, k siirtyä ylös, h saada apua, ja q poistuaksesi tiedostosta).

Katsotaanpa, mikä on tiedostossa / etc / passwd kirjoittamalla vähemmän / etc / passwd:

Passwd-tiedostossa luetellaan Unix-järjestelmän käyttäjätilit sekä niiden käyttäjä- ja ryhmätunnusnumerot, kotihakemisto ja vastaavan komennon tai kuoren polku. MacOS: ssa kuitenkin passwd-tiedostossa on vain järjestelmätilitilit. Tämä johtuu siitä, että ihmiskäyttäjät on määritetty MacOS: n Järjestelmäasetusten Käyttäjät ja ryhmät -kohdassa.

Levytila

Levytilan loppuminen on asteittainen prosessi, joka voi viedä vuosia, mutta voi silti saada sinut turhaan. On kaksi komentoa, joita voit käyttää vapaan tilan tarkistamiseen ja määrittämään, mitkä tiedostot pitävät levyäsi: du (levyn käyttö) ja df (levytön). He molemmat ottavat a -h vaihtoehto (ihmisen luettavissa). Käytä levyä, jotta saat käsityksen levyn täyttöasteesta df komento:

Keskity toistaiseksi %käytin ja asennettu sarakkeita. Tämä osoittaa, että kotihakemistoni on 92 prosenttia täynnä, joten minun pitäisi todennäköisesti puhdistaa se. Mutta mistä tiedän missä tilaa käytetään? Se on mitä du on:

Tässä esimerkissä käytin loitsua, joka rajoittaa ulostulon ensimmäisiin 10 riviin. Muuten du listaa kaikki koneen hakemistot, joita voi helposti olla liian vaikea ymmärtää. Tästä luettelosta näet, kuinka paljon tilaa kukin hakemisto kuluttaa. Saatat myös nähdä, kuinka ketjuamalla muutama komento yhteen, voimme helposti koota komentosarjan, jossa luetellaan 10 parasta hakemistoa tilankäytön mukaan. Komento, jonka meidän on lajiteltava lähtö, on tietysti järjestellä komento.

Koska MacOS: n versio järjestellä ei voi käsitellä duIhmisen luettavana tulostena käytin -m vaihtoehto du näyttää levyn käyttö megatavuina (käytä -g tai -k gigatavuina tai kilotavuina). -n ja -r vaihtoehtoja järjestellä lajittele tulosteet numeerisesti ja päinvastaisessa järjestyksessä, joten suurimmat hakemistot näkyvät luettelon yläosassa.

Pääkäyttäjät, su ja sudo

Useat komennot liittyvät järjestelmän hallintaan. Yritä kirjoittaa mies -s 8 esittely heille esitettäväksi. Annan sinulle yhden järjestelmänhallinnan välttämättömän komennon: su. Tämä tarkoittaa "superkäyttäjä" ja viittaa järjestelmänvalvojan käyttäjään tai juuritiliin. Kaikki järjestelmään kuuluvat tiedostot ovat tämän käyttäjän omistuksessa, ja sinun on oltava tämä käyttäjä, jotta voit suorittaa järjestelmänvalvonnan.

Aiheeseen liittyvä komento, sudo, avulla voit tulla yhden käyttäjän pääkäyttäjäksi. Miksi käyttää sudo sijasta su? Koska paras käytäntö määrää, ettet juokse pääkäyttäjänä, sillä sinulla on valta vahingossa vahingoittaa vahingoittumattomasti. Haluat aina tehdä kaiken mahdollisen tavallisena käyttäjänä ja tulla superkäyttäjäksi vain silloin, kun tarvitset. Se, miten pääkäyttäjän käyttöoikeudet hankitaan, riippuu Unix-jakelustasi. Katsotaan miten su toimii MacOS:

Huh? Olen varma, että kirjoitin salasanan oikein. Tässä on tapahtunut, että nykyinen käyttäjäni, nunez, ei ole lupaa su. Joillakin Unix-laitteilla tämä tarkoittaa, että käyttäjän on oltava pyörä ryhmän ja muissa järjestelmissä (mukaan lukien MacOS) käyttäjän on oltava sudoers tiedosto.

Lopetetaan lisäämällä nunez että sudoers, joka antaa sinulle maun tiedostojen muokkaamisesta komentorivillä. Tehokäyttäjät laulavat Emacs- ja Vi-toimittajien kehuja, ja kehotan teitä kokeilemaan niitä, mutta käytämme tässä nanoa. Nano on helppo oppia ja käyttää, ja MacOS ja monet Linux-distrot ovat mukana jo asennettuna.