10 Unix naredbi koje bi svaki korisnik Maca i Linuxa trebao znati

GUI su izvrsni - ne bismo željeli živjeti bez njih. Ali ako ste korisnik Maca ili Linuxa i želite maksimalno iskoristiti svoj operativni sustav (i pritiske tipki), dugujete sebi da se upoznate s Unixovim naredbenim retkom. Pokaži i klikni prekrasno je kad god trebaš nešto učiniti jednom ili dvaput. Ali ako trebate ponoviti taj zadatak mnogo puta, naredbeni redak je vaš spasitelj.

Naredbeni redak je prozor u punu, nevjerojatnu snagu vašeg računala. Ako se čeznete osloboditi ograničenja GUI-ja ili mislite da je programiranje ili administriranje udaljenih strojeva u vašoj budućnosti, tada je učenje Unix naredbenog retka definitivno za vas.

Ne brinite ako vam se Unixove naredbe čine kao čarobne začaranosti ili ako vam tajanstvene unutrašnjosti sustava ne mogu doći. Nije ih toliko teško naučiti, a ovaj će vam članak dati 10 osnovnih naredbi koje su vam potrebne za početak. Uskoro će te tajnovite žice biti druga priroda.

Osnove ljuske

Školjka Unix naredbenog retka približno je jednaka naredbenom prozoru u sustavu Microsoft Windows (cmd ili PowerShell). Naredbe kroz koje prolazimo u nastavku funkcionirat će na bilo kojem sustavu sličnom Unixu, uključujući Linux, Darwin (temelj MacOS-a), FreeBSD, pa čak i Windows s nečim poput Git Bash ili nove Bash ljuske u sustavu Windows 10. Opcije i izlaz razlikuju se blago, ali ne biste trebali imati problema s razumijevanjem.

Prvo morate otvoriti ljusku, koja se ponekad naziva i terminalni prozor. Unix distribucije to često stavljaju pod administracijske ili sistemske izbornike. U MacOS-u ćete terminal pronaći u Applications> Utilities> Terminal. Kada ga pokrenete, vidjet ćete otprilike ovako:

Ovaj zaslon, iz MacOS-a 10.11, tipičan je za većinu ljuski u GUI-ju. Na vrhu prozora vidimo vrstu ljuske, u ovom slučaju Basha (Bourne Again Shell, što je zadana ljuska u MacOS-u i većini Linux distribucija), i veličinu prozora. Unutar prozora nalazi se upit, u ovom slučaju konfiguriran za prikaz imena stroja ( Mercury), imena trenutnog radnog imenika (ovdje tilda ~, što je skraćenica za korisnikov kućni direktorij), imena korisnika, i na kraju promptni simbol ($). Imajte na umu da će se vaš upit promijeniti dok se krećete po datotečnom sustavu ili ako postanete drugačiji korisnik na svojem računalu (kao što je root ili superkorisnik da biste pokrenuli administrativne naredbe). Upit prikazuje ove podatke, tako da možete lako znati gdje ste i tko ste na bilo kojem stroju.

Vrijedno je znati da postoje dva glavna okusa ljuske Unixa: Bourne i C ljuska. Bourne i tvrtka izvedeni su iz izvornog AT&T Unixa, dok je C školjka poticala sa Kalifornijskog sveučilišta u Berkeleyu i BSD Unixa. Općenito su derivati ​​ljuske Bourne i C dobri za interaktivni rad na terminalu. POSIX standardna ljuska, kornova ljuska, ona je koju biste željeli koristiti za pisanje vlastitih programa u ljusku, koja se naziva skripte. Za primjere u ovom vodiču koristimo ljusku Bash.

Okoliš ljuske

Jedna od prvih činjenica koju je trebalo razumjeti o radu na Unixovom naredbenom retku je da ljuska djeluje u svom okruženju. Razumijevanje načina upravljanja okolinom ljuske važan je dio postajanja učinkovitim u naredbenom retku. Pogledajmo okruženje pomoću envnaredbe:

Ne brinite se zbog razumijevanja svih varijabli okoline sada, ali znajte da su one tamo. Već biste trebali prepoznati nekoliko varijabli. Na primjer, SHELL=/bin/bashkaže nam da koristimo Bash ljusku. HOME=/Users/nunezodređuje mjesto korisničkog kućnog direktorija. Možete mijenjati ili stvarati varijable okruženja, a to ćete često činiti. Evo primjera postavljanja varijable okruženja koja se zove FOOi prikazivanja njezine vrijednosti:

Kao što vidite, prema dogovoru stavljamo varijable velikim slovima. Obratite posebnu pozornost na to kako referenciramo varijable okoline kada ih koristimo u naredbama, s prethodnim $. $Govori naredbi koristiti vrijednost varijable. Bez $je echonaredba gore bi jednostavno ispisati naziv varijable, FOO.

Unix naredbe

Neovisno o tome koju ljusku koristite, kad god u ljusku upišete naredbu, izvršit će se izvršavanje Unix programa. Filozofija dizajna Unix-a je stvoriti programe koji dobro rade jednu stvar i povezati ih (ili "povezati") da bi odradili koristan posao. Pogledajmo jednostavan primjer za brojanje broja datoteka u direktoriju / etc (kasnije ćemo vidjeti kako preći u direktorij / etc):

Ovaj slijed naredbi ilustrira dva važna pojma: cjevovod i opcije. lsNaredba (ekvivalent dirnaredbu u sustavu Windows) prikazuje sadržaj direktorija i  wc(broja riječi) broj riječi. Primjećujete li okomitu traku između njih? To je lik lule. Cijev uzima izlaz prve naredbe i usmjerava ga kao ulaz drugoj naredbi. U Unixu možete povezati neograničeni broj naredbi povezivanjem cijevi cijevima.

Druga stvar koju treba primijetiti su opcije date svakoj naredbi. U Unix, opcije tradicionalno ima prefiks jednog crtica karaktera -. Ove opcije naredbenog retka mijenjaju ponašanje naredbe. U ovom primjeru, -l opcija to lsznači izlaz sadržaja direktorija u "dugačkom" formatu, dok –lopcija to wcznači brojanje "redaka" umjesto riječi. Na engleskom se ova naredba može čitati:

Navedite broj redaka u trenutnom direktoriju, a zatim ih pošaljite programu za brojanje riječi da broji broj redaka.

Te opcije naredbenog retka često nadjačavaju zadane postavke postavljene u okolini. Ako želite promijeniti način na koji se naredba ponaša trajno, možete automatski podesiti varijablu okruženja kada se prijavite. Mnoge naredbe omogućuju kombiniranje opcija u jednom nizu - na primjer, ls -laali druge ne. O svim opcijama naredbe možete saznati provjerom njezinog priručnika ili "man stranica" (o čemu ćemo raspravljati u nastavku).

Učenje i korištenje opcija naredbenog retka velik je dio učinkovitosti na Unixovom naredbenom retku. Neke naredbe imaju toliko mogućnosti da dokumentacija ide na desetke stranica. Neka vas to sada ne brine. Često vam je potrebno samo nekoliko opcija za izvršavanje zadanog zadatka, a mnoge se opcije koriste samo prilikom pisanja programa na jeziku ljuske.

Priručnik

Nakon što shvatite osnove naredbenog retka i okruženja, možemo početi dublje zaranjati u sustav. Prvo mjesto treba započeti s priručnikom.

Jedan od lijepih aspekata Unixa je visoka kvaliteta dokumentacije. Postoji dokumentacija za korisnike, administratore sustava i programere. Dokumentaciji pristupate mannaredbom. Počnimo s čitanjem priručnika za priručnik (unesite man manu naredbeni redak):

Priručnici su podijeljeni u osam odjeljaka koji se malo razlikuju ovisno o tome jeste li na Unix-u BSD / Linux / Mac ili System V. Korisno je započeti s čitanjem uvoda u svaki odjeljak, a to možete učiniti sa zakletvom poput man -s 1 intro, što znači da potražite odjeljak 1 kako biste pronašli stranicu s uputama pod nazivom „uvod“:

Ako niste sigurni što zapovijedam što tražite, možete probati -fi -kmogućnosti. će vam reći funkciju naredbe ako joj znate ime, dok će navesti imena relevantnih naredbi na temelju jedne ili više ključnih riječi. Obje će opcije pretražiti ugrađenu bazu podataka (ako je konfigurirana; obično je ima) i vratiti sva podudaranja. Na primjer, prikazat će se stranice s uputama koje počinju s nizom :man –f command man –k hint man –k bzerbz

Datotečni sustav

Mnogo je naredbi povezanih s datotečnim sustavom Unix, jer je on srž operativnog sustava. Ranije smo vidjeli jednog od njih ls, koji navodi datoteke u direktoriju:

lsNaredba može biti najčešće korištena naredba od svega, a ima mnogo opcija za podešavanje svoj izlaz. Jedna od opcija koju ćete odmah htjeti znati je ls -a(nabroji sve). Ovo će otkriti datoteke s točkama (datoteke ili direktoriji čija imena počinju točkom ili točkom), a koje su prema zadanim postavkama skrivene. Te datoteke ili direktoriji obično sadrže informacije o konfiguraciji ili datoteke dnevnika za Unix sustav. Datoteka .bash_history, na primjer, bilježi sve naredbe koje unesete u naredbeni redak.

Druga naredba koja će vam trebati odmah je cdnaredba koju koristite za promjenu direktorija. To je slično istoj naredbi u sustavu Windows, ali s važnom razlikom. U Unixu se svi pogoni (uređaji) pojavljuju kao jedan pogon. Dok biste u sustavu Windows svoje slike mogli imati na vanjskom tvrdom disku koji se prikazuje kao E :, u Unixu taj pogon može biti / home / user / pictures. Svim datotekama u Unix sustavu pristupa se putem koji započinje s / (korijenski direktorij), a različite tvrde diskove možete montirati na različite točke datotečnog sustava prema vašim potrebama.

Prije nego što počnete lutati po datotečnom sustavu, dopustite mi da vam predstavim još jednu naredbu koja će vam trebati: pwd(ispis radne mape). Budući da se u rastućem sustavu datoteka potencijalno može izgubiti mnogo mjesta, ove vam naredbe omogućuju brzo utvrđivanje mjesta na kojem ste. Prebacimo direktorije na mjesto gdje se čuvaju datoteke konfiguracije sustava i provjerimo naše mjesto:

Napominjemo da možete koristiti cdnaredbu bez argumenata za brzi povratak u svoj kućni direktorij. Još jedan savjet: The ~se može koristiti kao prečac za upućivanje na vaš kućni direktorij u Bashu i C ljusci. 

U ovom trenutku znate kako se kretati po datotečnom sustavu i navesti sadržaj direktorija. Sada nam je potreban način za čitanje datoteka pohranjenih u njima. Danas većina sustava dolazi s lessnaredbom za to. lessprikazat će datoteku stranicu po stranicu i omogućiti vam navigaciju pomoću naredbi Vi (pritisnite jza pomicanje prema dolje, kza pomicanje prema gore, hza pomoć i qza izlaz iz datoteke).

Pogledajmo što se nalazi u našoj / etc / passwd datoteci unošenjem less /etc/passwd:

Datoteka passwd navodi korisničke račune u Unix sustavu, zajedno s njihovim ID brojevima korisnika i grupa, njihovim matičnim direktorijom i stazom do odgovarajuće naredbe ili ljuske. Međutim, na MacOS-u ćete u passwdu pronaći samo račune sistemskih usluga. To je zato što su ljudski korisnici konfigurirani pod Korisnici i grupe u MacOS-ovim System Preferences.

Prostor na disku

Ponestaje prostora na disku postupni je postupak koji bi mogao potrajati godinama, ali svejedno vas može zateći. Dvije su naredbe pomoću kojih možete provjeriti slobodni prostor i odrediti koje datoteke spajaju vaš disk: du(upotreba diska) i df(bez diska). Oboje imaju -hopciju (čitljivu ljudima). Da biste shvatili koliko je vaš disk pun, upotrijebite dfnaredbu:

Za sada fokusirati na %iusedi mounted onstupaca. To pokazuje da je moj kućni direktorij pun 92 posto, pa bih ga vjerojatno trebao očistiti. Ali kako da znam gdje se sav prostor koristi? Za to dusluži:

Za ovaj sam primjer krenuo sa zakletvom koja ograničava izlaz na prvih 10 redaka. Inače duće se navesti svaki direktorij na stroju, što bi lako moglo biti previše za shvatiti. Iz ovog popisa možete vidjeti koliko prostora zauzima svaki direktorij. Mogli biste vidjeti i kako bismo, ulančavanjem nekoliko naredbi, mogli lako sastaviti skriptu koja će navesti 10 najboljih direktorija po korištenju prostora. Naredba koja nam treba za sortiranje rezultata je naravno sortnaredba.

Budući da MacOS-ova verzija sortne može rukovati dus ljudskim čitljivim izlazom, koristio sam -mopciju za duprikaz upotrebe diska u megabajtima (upotrijebite -gili -kopciju za prikaz u gigabajtima ili kilobajtima). Opcije -ni -rza sortsortiranje rezultata numerički i obrnutim redoslijedom, tako da će se najveći direktoriji pojaviti na vrhu popisa.

Superkorisnici, su i sudo

Brojne naredbe odnose se na administraciju sustava. Pokušajte tipkati man -s 8 introza uvod u njih. Ja ću vam dati jednu bitnu naredbu za administraciju sustava ovdje: su. Ovo znači "super korisnik" i odnosi se na administrativnog korisnika ili root račun. Sve datoteke koje pripadaju sustavu u vlasništvu su ovog korisnika i morat ćete postati taj korisnik da biste izvršili administraciju.

Povezana naredba, sudoomogućuje vam da postanete super korisnik za jednu naredbu. Zašto koristiti sudoumjesto su? Jer najbolja praksa nalaže da ne trčite okolo kao korijenski korisnik, sa moći da slučajno nanesete nepopravljivu štetu. Uvijek ćete htjeti učiniti sve što možete kao normalan korisnik i postati super korisnik samo kada to trebate. Točno kako steknete super korisničke privilegije ovisit će o vašoj Unix distribuciji. Pogledajmo kako to sufunkcionira na MacOS-u:

A? Siguran sam da sam ispravno upisao lozinku. Ovdje se dogodilo da moj trenutni korisnik nunez, nema dozvolu za to su. Na nekim Unixima to znači da korisnik mora biti u wheelgrupi, a na ostalim sustavima (uključujući MacOS) korisnik mora biti u sudoersdatoteci.

Idemo završiti dodajući nunezda sudoers, koji će vam dati okus uređivanje datoteka iz komandne linije. Moćni korisnici pjevaju pohvale urednicima Emacs i Vi i potičem vas da ih isprobate, ali ovdje ćemo koristiti Nano. Nano je lako naučiti i koristiti, a MacOS i mnogi Linux distribucijski sustavi dolaze s već instaliranim.