Programování

10 příkazů Unix, které by měl každý uživatel systému Mac a Linux znát

GUI jsou skvělá - nechtěli bychom bez nich žít. Pokud ale používáte Mac nebo Linux a chcete ze svého operačního systému (a svých klávesových zkratek) vytěžit maximum, dlužíte si seznámení s příkazovým řádkem Unixu. Kliknutí a kliknutí je skvělé, kdykoli potřebujete něco udělat dvakrát nebo dvakrát. Pokud ale potřebujete tento úkol opakovat mnohokrát, je vaším zachráncem příkazový řádek.

Příkazový řádek je oknem do plné a úžasné síly vašeho počítače. Pokud toužíte vymanit se z omezení grafického uživatelského rozhraní nebo si myslíte, že programování nebo správa vzdálených počítačů je ve vaší budoucnosti, pak je učení příkazového řádku Unix určitě pro vás.

Nedělejte si starosti, pokud se příkazy Unixu zdají být kouzelnými zaklínadly nebo se záhadné vnitřní části systému zdají být mimo váš dosah. Není těžké se je naučit a tento článek vám poskytne 10 základních příkazů, které potřebujete, abyste mohli začít. Netrvalo dlouho a tyto tajemné struny budou druhou přirozeností.

Shell základy

Shell příkazového řádku Unix je zhruba ekvivalentní příkazovému oknu v Microsoft Windows (cmd nebo PowerShell). Příkazy, kterými procházíme níže, budou fungovat na jakémkoli systému podobném Unixu, včetně Linuxu, Darwinu (základ MacOS), FreeBSD a dokonce i Windows s něčím jako Git Bash nebo nový shell Bash ve Windows 10. Možnosti a výstup se liší trochu, ale neměli byste mít problém je pochopit.

Nejprve musíte otevřít shell, který se někdy nazývá okno terminálu. Distribuce Unixu to často vkládají pod nabídky Správa nebo Systém. V systému MacOS najdete terminál v části Aplikace> Nástroje> Terminál. Když jej spustíte, uvidíte něco jako toto:

Tato obrazovka z MacOS 10.11 je typická pro většinu skořápek v grafickém uživatelském rozhraní. V horní části okna vidíme typ shellu, v tomto případě Bash (Bourne Again Shell, což je výchozí shell v MacOS a většině linuxových distribucí), a velikost okna. Uvnitř okna je výzva, v tomto případě nakonfigurovaná pro zobrazení názvu stroje (Rtuť), název aktuálního pracovního adresáře (zde tilda, ~, což je zkratka pro domovský adresář uživatele), jméno uživatele a nakonec symbol výzvy ( $). Pamatujte, že vaše výzva se bude měnit, když se budete pohybovat v systému souborů nebo se stanete jiným uživatelem ve vašem počítači (například root nebo superuživatel za účelem spouštění administrativních příkazů). Výzva zobrazuje tyto informace, takže můžete snadno zjistit, kde a kdo jste na jakémkoli počítači.

Stojí za to vědět, že unixový shell má dvě hlavní příchutě: Bourne a C shell. Bourne a společnost pocházeli z původního systému AT&T Unix, zatímco shell C pochází z University of California v Berkeley a BSD Unix. Deriváty prostředí Bourne a C jsou obecně dobré pro interaktivní práci na terminálu. Standardní prostředí POSIX, prostředí Korn, je prostředí, které byste chtěli použít pro psaní vlastních programů v prostředí zvaných skripty. Pro příklady v tomto výukovém programu používáme prostředí Bash.

Prostředí prostředí

Jedním z prvních faktů o práci na příkazovém řádku Unixu je, že shell pracuje ve svém vlastním prostředí. Pochopení toho, jak ovládat prostředí prostředí, je důležitou součástí zvyšování efektivity na příkazovém řádku. Pojďme se podívat na životní prostředí pomocí env příkaz:

Nebojte se pochopit všechny proměnné prostředí hned, ale vězte, že tam jsou. Měli byste již rozpoznat několik proměnných. Například, SHELL = / bin / bash říká, že používáme shell Bash. HOME = / Uživatelé / nunez určuje umístění domovského adresáře uživatele. Můžete změnit nebo vytvořit proměnné prostředí a často tak učiníte. Zde je příklad nastavení proměnné prostředí s názvem FOO a zobrazení jeho hodnoty:

Jak vidíte, podle konvence vkládáme proměnné do velkých písmen. Zvláštní pozornost věnujte tomu, jak odkazujeme na proměnné prostředí, když je používáme v příkazech, s předchozím $. The $ řekne tlumočníkovi příkazů, aby použil hodnotu proměnné. Bez $echo výše uvedený příkaz jednoduše vytiskne název proměnné, FOO.

Unixové příkazy

Bez ohledu na to, jaký shell použijete, kdykoli zadáte příkaz do shellu, způsobíte spuštění unixového programu. Filozofií designu Unixu je vytvářet programy, které dokážou dobře dělat jednu věc, a spojit je (nebo „propojit“) dohromady, aby mohli dělat užitečnou práci. Podívejme se na jednoduchý příklad, jak spočítat počet souborů v adresáři / etc (uvidíme, jak se později přesuneme do adresáře / etc):

Tato sekvence příkazů ilustruje dva důležité pojmy: piping a options. The je příkaz (ekvivalent příkazu dir příkaz ve Windows) zobrazí obsah adresáře a toaleta (počet slov) počet slov. Všimli jste si svislé čáry mezi nimi? To je charakter potrubí. Trubka převezme výstup prvního příkazu a nasměruje jej jako vstup do druhého příkazu. V Unixu můžete zřetězit libovolný počet příkazů propojením jednoho s druhým pomocí rour.

Druhou věcí, kterou si musíte všimnout, jsou možnosti dané každému příkazu. V systému Unix mají možnosti tradičně předponu s jedním znakem pomlčky, -. Tyto možnosti příkazového řádku mění chování příkazu. V tomto příkladu -l možnost je znamená výstup obsahu adresáře ve formátu „long“, zatímco –L možnost toaleta znamená spočítat „řádky“ místo slov. V angličtině lze tento příkaz číst:

Seznamte počet řádků v aktuálním adresáři a poté je odešlete do programu počítání slov a spočítejte počet řádků.

Tyto možnosti příkazového řádku často přepíší výchozí hodnoty, které jsou nastaveny v prostředí. Pokud chcete změnit způsob, jakým se příkaz chová trvale, můžete nastavit proměnnou prostředí automaticky při přihlášení. Mnoho příkazů umožňuje kombinovat možnosti do jednoho řetězce - například ls -la—Ale jiní ne. O všech možnostech příkazu se můžete dozvědět kontrolou jeho manuálu nebo „manuálových stránek“ (o nichž pojednáváme níže).

Učení a používání možností příkazového řádku je velkou součástí efektivity příkazového řádku Unixu. Některé příkazy mají tolik možností, že dokumentace běží na desítkách stránek. Nenechte se tím teď znepokojovat. K provedení dané úlohy často potřebujete jen několik možností a mnoho možností se používá pouze při psaní programů v prostředí shellu.

Manuál

Jakmile pochopíte základy příkazového řádku a prostředí, můžeme se začít ponořit hlouběji do systému. První místo, kde je třeba začít, je manuál.

Jedním z příjemných aspektů Unixu je vysoká kvalita dokumentace. K dispozici je dokumentace pro uživatele, správce systému a vývojáře softwaru. Přístup k dokumentaci získáte pomocí muž příkaz. Začněme čtením příručky k příručce (zadejte muž muž na příkazovém řádku):

Příručky jsou rozděleny do osmi částí, které se mírně liší podle toho, zda používáte systém Unix typu BSD / Linux / Mac nebo System V. Je užitečné začít přečtením úvodu do každé části a můžete to udělat se zaklínadlem jako muž-1 intro, což znamená hledat v sekci 1 a najít manuální stránku nazvanou „intro“:

Pokud si nejste jisti, jaký příkaz hledáte, můžete zkusit -F a -k možnosti. muž – f příkaz vám řekne funkci příkazu, pokud znáte jeho název chlape náznak zobrazí seznam příslušných příkazů na základě jednoho nebo více klíčových slov. Obě možnosti prohledají integrovanou databázi (pokud byla nakonfigurována; obvykle má) a vrátí všechny shody. Například, muž – k bzer zobrazí ruční stránky, které začínají řetězcem B z:

Systém souborů

Existuje mnoho příkazů souvisejících se systémem souborů Unix, protože je jádrem operačního systému. Jednoho z nich jsme viděli dříve: je, který uvádí seznam souborů v adresáři:

The je příkaz může být nejčastěji používaným příkazem ze všech a má mnoho možností, jak upravit jeho výstup. Jednou z možností, o které budete hned vědět, je je -a (seznam všech). Tím se odhalí „tečkované“ soubory (soubory nebo adresáře, jejichž názvy začínají tečkou nebo tečkou), které jsou ve výchozím nastavení skryté. Tyto soubory nebo adresáře obvykle obsahují informace o konfiguraci nebo soubory protokolu pro systém Unix. Například soubor .bash_history zaznamenává všechny příkazy, které zadáte na příkazovém řádku.

Další příkaz, který hned budete potřebovat, je CD příkaz, který používáte ke změně adresářů. To se podobá stejnému příkazu ve Windows, ale s důležitým rozdílem. V systému Unix se všechny jednotky (zařízení) zobrazují jako jedna jednotka. Zatímco ve Windows můžete mít své obrázky na externím pevném disku, který vypadá jako E:, v Unixu může být tento disk / home / user / pictures. Ke všem souborům v systému Unix se přistupuje cestou, která začíná na / (kořenový adresář) a můžete připojit různé pevné disky v různých bodech systému souborů podle svých potřeb.

Než začnete putovat po systému souborů, dovolte mi představit další příkaz, který budete potřebovat: pwd (vytisknout pracovní adresář). Protože v rostoucím systému souborů je potenciálně mnoho míst, kde se můžete ztratit, umožňují vám tyto příkazy rychle určit, kde se nacházíte. Přepneme adresáře do umístění, kde jsou uloženy konfigurační soubory systému, a ověříme naše umístění:

Všimněte si, že můžete použít CD příkaz bez argumentů pro rychlý návrat do domovského adresáře. Další tip: The ~ lze použít jako zkratku pro odkaz na váš domovský adresář v prostředí Bash i C.

V tomto okamžiku víte, jak se pohybovat v systému souborů a vypsat obsah adresářů. Nyní potřebujeme způsob, jak číst soubory v nich uložené. V dnešní době většina systémů přichází s méně příkaz pro toto. méně zobrazí stránku po stránce a umožní vám procházet pomocí příkazů Vi (stiskněte j pohybovat se dolů, k posunout nahoru, h získat pomoc a q soubor opustíte).

Podívejme se, co je v našem souboru / etc / passwd zadáním méně / etc / passwd:

Soubor passwd obsahuje seznam uživatelských účtů v systému Unix spolu s jejich identifikačními čísly uživatelů a skupin, jejich domovským adresářem a cestou k odpovídajícímu příkazu nebo prostředí. V systému MacOS však v hesle najdete pouze účty systémových služeb. Je to proto, že lidské uživatele jsou konfigurovány v části Uživatelé a skupiny v systémových předvolbách systému MacOS.

Místo na disku

Nedostatek místa na disku je postupný proces, který může trvat roky, ale přesto vás může zaskočit. Existují dva příkazy, pomocí kterých můžete zkontrolovat volné místo a určit, které soubory zabíjejí váš disk: du (využití disku) a df (bez disku). Oba berou a -h možnost (čitelná pro člověka). Chcete-li zjistit, jak plný je váš disk, použijte df příkaz:

Prozatím se zaměřte na %Použil jsem a namontována na sloupce. To ukazuje, že můj domovský adresář je z 92 procent plný, takže bych ho asi měl vyčistit. Jak ale zjistím, kde se celý prostor využívá? To je to du je pro:

V tomto příkladu jsem šel se zaklínadlem, které omezuje výstup na prvních 10 řádků. v opačném případě du zobrazí seznam všech adresářů na stroji, což by mohlo být snadno pochopitelné. Z tohoto seznamu vidíte, kolik místa zabírá každý adresář. Také byste mohli vidět, jak spojením několika příkazů dohromady můžeme snadno sestavit skript, který by uváděl seznam 10 nejlepších adresářů podle využití prostoru. Příkaz, který potřebujeme k seřazení výstupu, je samozřejmě třídit příkaz.

Protože verze systému MacOS třídit nezvládne duLidsky čitelný výstup, použil jsem -m možnost pro du pro zobrazení využití disku v megabajtech (použijte -G nebo -k možnost zobrazení v gigabajtech nebo kilobajtech). The -n a -r možnosti pro třídit seřaďte výstup číselně a v obráceném pořadí, takže největší adresáře se zobrazí v horní části seznamu.

Superuživatelé, su a sudo

Řada příkazů souvisí se správou systému. Zkuste psát muž-8 intro pro seznámení s nimi. Zde vám dám jeden základní příkaz pro správu systému: su. To znamená „super uživatel“ a odkazuje na administrativního uživatele nebo účet root. Všechny soubory patřící do systému jsou vlastněny tímto uživatelem a budete se muset stát tímto uživatelem, abyste mohli provádět správu.

Související příkaz, sudo, umožňuje stát se superuživatelem jediného příkazu. Proč použít sudo namísto su? Protože osvědčené postupy diktují, že nebudete pobíhat jako uživatel root, s pravomocí způsobit nenapravitelnou škodu náhodou. Jako normální uživatel budete vždy chtít udělat vše, co je v vašich silách, a stát se superuživatelem, pouze když to potřebujete. To, jak přesně získáte superuživatelská oprávnění, bude záviset na vaší unixové distribuci. Uvidíme jak su funguje na MacOS:

Co? Jsem si jist, že jsem heslo zadal správně. Stalo se zde to, že můj současný uživatel, nunez, nemá oprávnění k su. U některých unixů to znamená, že uživatel musí být v kolo skupina a na jiných systémech (včetně MacOS) musí být uživatel v sudoers soubor.

Dokončíme to přidáním nunez na sudoers, který vám dá ochutnat úpravy souborů na příkazovém řádku. Zkušení uživatelé zpívají chválu editorů Emacs a Vi a doporučuji vám, abyste je vyzkoušeli, ale použijeme zde Nano. Nano se snadno naučí a používá a MacOS a mnoho linuxových distribucí přicházejí s již nainstalovaným.