GNU/Linux >> Znalost Linux >  >> Linux

17 Linuxových příkazů by měl znát každý správce systému

Před několika měsíci jsem požádal komunitu přispěvatelů Enable Sysadmin, aby mi pomohli vytvořit seznam jejich nejdůležitějších příkazů. Po zpracování výsledků se 17 z příkazů ukázalo jako zásadních nebo alespoň velmi přínosných pro práci správce systému Linux. Takže bez dalšího zdržování se vrhněme na tyto.

Chcete se dozvědět více o síťových příkazech? Přečtěte si první část našeho seznamu hromadných příkazů  ]

najít —Tento příkaz je součástí findutils a umožňuje vlastní vyhledávací příkazy. Pokud jste například chtěli najít adresáře, které odpovídají konkrétnímu názvu, můžete použít něco takového:

find path/ -type d -iname '*dir_name*'

Můžete najít další informace o příkazu zde.

ls+xargs —Toto párování pro mě bylo nové; bylo to však opravdu zajímavé se učit a má některé aplikace, které mohou potenciálně změnit hru. xargs umožňuje spouštět další příkazy proti výstupu daného příkazu. Super základní příklad toho lze vidět při spárování s ls příkaz. Například, pokud jste chtěli cat všechny soubory uvedené v ls , můžete použít něco takového:

$ ls
1.file  2.file  3.file

$ ls | xargs cat
you are reading file 1
you are reading file 2 
you are reading file 3

Podívejte se na podrobný pohled na xargs z HowtoGeek
awk/sed/(e)grep —Toto trio bylo jmenováno vícekrát než kterýkoli jiný příkaz(y) naší komunity. Bylo úžasné vidět, jak důležité jsou tyto příkazy pro komunitu a pro systémové správce jako celek. Zaměřme se na grep první.
grep -Grep je úžasný, žádná lež. Pokud ještě neznáte grep (a buďme upřímní, je to přinejmenším možné, pokud jste v linuxovém příkazovém řádku noví), seznamte se s ním. grep je nástroj, který vám umožní filtrovat standardní výstup téměř čehokoli na příkazovém řádku. Můžete grep pro slova, která chcete najít, nebo je invertujte, abyste zobrazili vše, co NESHODUJE s vaším klíčovým slovem. Dokonce si něco málo povíme o velmi podobném nástroji, který rozšiřuje grep trochu. Zde je několik příkladů.
Chcete-li zobrazit všechny řádky v daném souboru, které obsahují například slovo „chyba“, udělali byste něco takového:

$ cat file.txt
This line contains an error.
This line contains a case sensitive ERROR
And this one is just an Error.
Then we have a warning.
and a WARNING
and then of course Warning.

$ grep error file.txt
This line contains an error.
$

To je to, co byste nazvali inkluzivní grep . Můžete to také zvrátit pomocí příznaku vyloučení. Řekněme, že chcete vidět všechny možnosti konfigurace v sshd config které nejsou zakomentovány, můžete udělat toto:

# grep -v \# /etc/ssh/sshd_config
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key

… snip ...

Subsystem sftp /usr/libexec/openssh/sftp-server
#

Stojí za zmínku, že grep rozlišuje velká a malá písmena, jako mnoho věcí v Bash. Takže pátrání po „chybě“ nenajde „Chyba“ nebo „CHYBA“. Můžete říct grep pro filtrování bez ohledu na velikost písmen pomocí -i vlajka.

$ grep -i eRRor file.txt
This line contains an error.
This line contains a case sensitive ERROR
And this one is just an Error.

To se bude shodovat u chyb, ERROR, erRoR nebo čehokoli, pokud jsou písmena stejná.

Nyní jsem řekl, že můžete použít grep filtrovat výstup jakéhokoli příkazu správně? Uděláte to s přesměrováním výstupu pomocí roury. To je opravdu užitečné pro věci, jako je filtrování protokolů, a to i v reálném čase s koncem -f .

   # tail -f /var/log/messages | grep -i error

Existuje mnohem více možností pro grep , včetně filtrování na základě souboru klíčových slov, regulárních výrazů, dokonce můžete výstup obarvit. Pokud se chcete dozvědět více, doporučuji vám seznámit se s manuálovou stránkou.

egrep —A co když chcete filtrovat více než jedno slovo? Vždy jsem používal egrep za to.

Řekněme, že chcete grep v případě chyby nebo varování můžete udělat něco takového:

$ egrep 'error|warning' file.txt
This line contains an error.
Then we have a warning.

egrep jsem si jistý, že bude podporovat další vzory, ale právě ten je ten, pro který jsem ho vždy používal, a zjistil jsem, že je velmi užitečný.

awkawk implementuje programovací jazyk AWK pro zpracování textu a je obzvláště dobrý při zpracování dat uspořádaných do sloupců. Tento příkaz je dostupný ve většině distribucí Linuxu, ne-li ve všech, a také ve všech ostatních operačních systémech UNIX.

Systémoví správci běžně používají awk pro extrahování dat ze souborů nebo z výstupu jiných příkazů v příkazovém řádku nebo skriptech Shell. Vyvolejte awk spuštěním příkazu poskytujícího akci mezi '{}' . Na sloupce můžete odkazovat jako na proměnné, například $1 pro první sloupec $2 , za druhé a tak dále. Ve výchozím nastavení awk používá jako oddělovač sloupců mezery, ale můžete použít jakýkoli znak, když jej zadáte příznakem -F .

Chcete-li například vytisknout vlastníka a skupinu, sloupce 3 a 4 ve výstupu ls -l , přesměrujte jeho výstup do awk takhle:

$ ls -l | awk '{ print $3,$4 }'
ricardo users
ricardo users
root root
...

Můžete také filtrovat řádky ze vstupu zadáním volitelného regulárního výrazu před akcí. Chcete-li například vytisknout všechny názvy hostitelů (sloupec 2) řádků začínajících číslem v /etc/hosts soubory, použijte awk takhle:

$ awk '/^[0-9]/ { print $2 }' /etc/hosts
localhost
sat6server
tower01.olab.home.ca
...

awk je všestranný příkaz, který podporuje celý programovací jazyk a umožňuje vám dělat mnoho věcí, jako je provádění výpočtů, podmíněnosti, transformace dat a další. Je to skvělá volba, která vám pomůže automatizovat vaše systémy a často je součástí skriptů shellu.

Další informace najdete v článku Příručka pro začátečníky koukání a příkaz man stránky.

sed —Příkaz sed —zkratka pro editor streamů — umožňuje filtrovat a upravovat proudy textu skriptovaným způsobem. Systémoví správci často používají sed ve skriptech Bash k transformaci textu z jiných příkazů nebo přímo ze souborů. Ve své nejzákladnější podobě sed vyhledává a nahrazuje text. Použijte jej například k nahrazení řetězce „stream“ řetězcem „text“ pocházejícím z potrubí, jako je tento:

$ echo "This is a test stream" | sed 's/stream/text/'
This is a test text

Text v souboru můžete také nahradit zadáním názvu souboru jako posledního parametru, například takto:

$ sed 's/pattern/replacement/' filename

Z bezpečnostních důvodů sed odešle výsledky do STDOUT bez úpravy souboru. Chcete-li uložit výsledky, můžete výstup přesměrovat do nového souboru. Můžete také změnit původní soubor na místě zadáním -i vlajka.

Ve výchozím nastavení sed změní pouze první výskyt vzoru v každém řádku. Chcete-li toto chování změnit a umožnit nahrazení všech výskytů vzoru, zadejte g možnost na konci sed příkazový výraz, jako je tento:

$ sed 's/pattern/replacement/g' filename

Kromě základního textového vyhledávání sed podporuje párování regulárních výrazů. Například použijte regulární výraz „[Ww]ord“ k nahrazení slov „Word“ i „slovo“ v každém řádku:

$ echo "Word word WORD" | sed 's/[Ww]ord/text/g'
text text WORD

Tento příkaz nabízí mnoho dalších možností, ale i při tomto základním použití můžete ušetřit spoustu času. Další informace o dalších možnostech získáte od man stránky pro sed .

sledovat —Tento příkaz umožňuje spouštět příkaz/program opakovaně v daném intervalu. Ve výchozím nastavení je interval každé dvě sekundy. Mnoho správců systému používá tento příkaz ke sledování různých systémových stavů nebo úkolů až do dokončení.
Pokud byste například chtěli sledovat využití paměti, můžete použít následující: watch -d free -m (-d volba zvýrazní hodnoty, které se liší od posledního spuštění).

vlnit —Tento příkaz umožňuje přenášet data na/ze serverů s mnohem více možnostmi než pouze HTTP/HTTPS. Funguje bez interakce uživatele a je velmi často vidět v situacích, kdy potřebujete provést volání REST API (GET, POST, PUT).

curl podporuje mnoho možností připojení k serverům, jako je SSL, pomocí cookies, obnovení přenosu souborů atd. Je to skoro, jako byste měli webový prohlížeč, který můžete spustit z příkazového řádku.

Níže uvedený příklad ukazuje curl pro jednoduché stažení souboru, ale s omezením šířky pásma:

curl -o myfile.tar.gz --limit-rate 20K https://myserver.example.com/bigfile.tar.gz

Jak je uvedeno v příručce, počet možností dostupných pro použití s ​​curl je mnoho. Některé z těch, které často používám, jsou:

  •  -s: spustit v tichém režimu (bez ukazatele průběhu)
  •  -k: povolit nezabezpečené připojení (pouze při připojení k internímu známému serveru, pro který se používá certifikát s vlastním podpisem)
curl -X POST --header "Content-Type: application/json" \
             --data '{"my_id": 5, "my_application": "moneymaker", "body": "showmethemoney"}' \
               https://myserver.example.com/posts

Ve výše uvedeném příkladu dělám POST a předávám záhlavítělo .

e-mailmail command je super úhledný nástroj, který uživateli umožňuje odesílat e-maily přímo z příkazového řádku, aniž by musel otevírat prohlížeč nebo vyhrazeného klienta. Na vašem počítači musíte mít lokálně spuštěný SMTP server, takže si toho musíte být vědomi.

Nainstalujte balíček:

 $ apt-get install mailutils

Chcete-li odeslat základní e-mail, můžete použít následující:

$ mail -s "Subject Line" [email protected]

Když stisknete Enter , budete vyzváni pomocí Kopie pole. Můžete přidat další příjemce nebo stačí stisknout Enter přeskočit. Poté napíšete svou zprávu. Po dokončení použijte Ctrl+D k odeslání zprávy k doručení. Po dokončení by to mělo vypadat takto:

$ mail -s "Subject Line" [email protected]
Cc: [email protected]
"Hello world" 
<Ctrl + D>

Další informace o tomto příkazu najdete v tomto skvělém článku.

tmuxtmux příkaz, což je terminálový multiplexer, umožňuje více oken uvnitř jednoho terminálového okna. Mezi okny můžete přeskakovat a dokonce je rozdělit do jednotlivých podoken, z nichž každé má své vlastní CLI. Kolem tmux jsme zveřejnili skvělý obsah a jak to používat, tak vám nechám odkaz na ten obsah. Další informace naleznete v tipech pro používání tmux.

sudo —Příkaz sudo je vaše cesta k vyšším oprávněním. Všichni správci systému musí vědět, jak tento příkaz používat, jak se liší od su (které mnozí používají místo sudo …špatný nápad) a jak zajistit přístup pomocí nezbytných účtů. Napsal jsem úvodní článek do sudo hodně zpět, kdy to může být užitečné.

sshssh (Secure Shell) příkaz umožňuje používat vzdálené pracovní protokoly pro přístup a manipulaci se servery přes síťové připojení. Pokud jste někdy pracovali na podpoře nebo vám v této věci pomohla podpora, technik podpory často používá ssh pro přístup k vašemu počítači nebo serveru.
Použití příkazů je docela jednoduché:

$ ssh username@hostname

Budete vyzváni k zadání hesla, a pokud poskytnete správné přihlašovací údaje, budete na cestě do požadovaného systému.

scp —Příkaz zabezpečeného kopírování (scp ) umožňuje uživateli kopírovat soubory do/ze vzdáleného systému. Budete potřebovat ssh povolena na obou koncích transakce a správná syntaxe příkazu. To vše a měli byste být připraveni jít. Syntaxe příkazu by měla vypadat nějak takto:

Chcete-li zkopírovat soubor ZE vzdáleného systému do aktuálního pracovního adresáře:

scp user@ip_of_remote :/file/path/of/file.txt . 

pkill —Tento příkazový nástroj nám umožňuje signalizovat procesy spuštěných programů. Proces můžete hledat podle názvu (úplného nebo částečného), uživatele atd. Existuje spousta možností pro použití této utility, ale ve výchozím nastavení příkaz posílá signál 15 (TERM) do všech PIDS vyhovujících vašim kritériím. Například:

$ pkill chrome

Tím by měly být ukončeny všechny instance prohlížeče Chrome spuštěné v počítači.

lsns —Tento příkaz, seznam jmenných prostorů (lsns ), dělá přesně to, co říká – uvádí jmenné prostory. Bláznivé, že? Každopádně je zde spousta možností, které můžete přidat: -J (formát json), -l (formát seznamu), -n (bez záhlaví) atd. Tento příkaz je součástí util-linux balení a je široce dostupné. Další informace o lsns nebo jmenné prostory obecně, přečtěte si tento článek od přispěvatele Steva Ovense 7 nejpoužívanějších jmenných prostorů Linuxu.

zrušit sdílení —Tento je také soustředěn kolem jmenných prostorů. Příkaz unshare spustí program v nově vytvořeném jmenném prostoru (prostorech). Ve výchozím nastavení bude nový jmenný prostor trvat pouze tak dlouho, dokud v něm běží programy. Další informace o tomto příkazu naleznete v man na vašem oblíbeném počítači se systémem Linux.

[ Chcete si vyzkoušet své schopnosti správce systému? Proveďte hodnocení dovedností ještě dnes. ]

Pokud dokážete začlenit tyto nástroje do svého pracovního postupu tam, kde dávají smysl, budete pro to lepším správcem systému. Pokud se některé z vašich oblíbených příkazů na seznam nedostaly, rádi bychom o nich slyšeli. Neváhejte a odešlete článek o svém oblíbeném příkazu, který jsme neuvedli, na adresu [email protected].


Linux
  1. 20 základních příkazů Linuxu pro každého uživatele

  2. 10 příkazů, které by měl znát každý uživatel Linuxu

  3. Systémové statistiky:Statistiky Linuxu, které je třeba znát

  1. 7 síťových příkazů Linuxu, které by měl znát každý správce systému

  2. Linux – Jak vědět, co dělat Grep v Dmesg?

  3. Seznam příkazů Linuxu, které by měl znát každý vývojář

  1. Zvuková témata v Linuxu:Co by měl vědět každý uživatel

  2. 3 dovednosti, které by měl přinést každý správce systému Linux

  3. 6 Možnosti příkazu OpenSSL, které by měl znát každý správce systému