Mnoho uživatelů Linuxu zažilo trvalý pocit úspěchu po sestavení obzvláště chytrého příkazu, který dosahuje více akcí na jediném řádku nebo který dokáže na jednom řádku udělat to, co obvykle vyžaduje 10 kliknutí a tolik oken v grafickém uživatelském rozhraní (GUI). Kromě toho, že se jedná o legendu, jsou jednolinky skvělými příklady toho, proč je terminál považován za tak mocný nástroj.
Na konci tohoto článku budete mít:
- Seznam 20 příkazů, které vám usnadní práci na Linuxu
- Pochopení možností kombinace jednoduchých příkazů k vytvoření výkonnějších příkazů
- Spouštění těchto příkazů je zábavnější, než byste čekali
Bez jakéhokoli konkrétního pořadí důležitosti, toto je našich 20 nejlepších jednotných linek pro terminál Linux. Ačkoli jsme některé delší příkazy rozdělili pomocí \
symbol pro snadnější čitelnost, můžete je všechny zadat na jeden řádek v terminálu, protože koneckonců jsou to jednořádkové.
1. Použijte příkaz na soubory s různými názvy
Shell {}
operátor je na to skvělý. Zde je příklad se třemi adresáři uzavřenými v {}
:
$ mkdir -p -v /home/josevnz/tmp/{dir1,anotherdir,similardir}
2. Upravte soubor na místě
Chcete nahradit řetězec v jednom nebo více souborech bez použití editoru? Jistě, sed
na záchranu:
$ sed -i 's#ORIGINAL_VALLUE#NEW_VALUE#g' myfile1 myfile2
Ale počkejte, milovníci Perlu vám řeknou, že mohou udělat totéž:
$ perl -p -i -e 's#ORIGINAL#NEW_VALUE#' myfile1 myfile2
3. Rychle sdílejte soubor pomocí webového serveru
Zvedněte ruku, pokud jste to alespoň jednou nepoužili pro rychlé sdílení adresáře:
$ cd $mydir && python3 -m http.server 8888
4. Najděte chyby pomocí journalctl
Někdy se věci zlomí. Nejnovější chyby můžete najít pomocí kombinace journalctl
, spolu s klasickými nástroji sort
a uniq
:
$ journalctl --no-pager --since today \
--grep 'fail|error|fatal' --output json|jq '._EXE' | \
sort | uniq -c | sort --numeric --reverse --key 1
898172 "/usr/bin/dockerd"
752 "/usr/local/sbin/node_exporter"
30 "/usr/bin/gnome-shell"
26 "/usr/bin/cat"
22 "/usr/libexec/gsd-media-keys"
[...]
V tomto případě se zdá, že démon Docker je nešťastný.
[ Stáhněte si tuto e-knihu a připravte se na vzdálenou zkoušku Red Hat. ]
5. Proveďte zálohu pomocí šifrovaného přenosu souborů
Použijte ssh
a tar
pro vytváření bezpečných záloh. Hodí se k sobě jako arašídové máslo a želé:
$ tar --create --directory /home/josevnz/tmp/ --file - *| \
ssh raspberrypi "tar --directory /home/josevnz \
--verbose --list --file -"
Úlohu zálohování můžete přidat pomocí komprese a šifrování – stejně jako přidávání přísad do sendviče.
6. Zápis okamžitých souborů
Toto je skvělý trik, když potřebujete psát víceřádkové dokumenty:
$ cat<<DOC>/my/new/file
Line1
Line2
A $VARIABLE
DOC
Můžete také jednoduše cat > file
a po dokončení úprav zadejte znak EOF (Ctrl+D ):
[josevnz@dmaf5 temp]$ cat > testfile
This is a test
multiple lines
and here we go
[josevnz@dmaf5 temp]$
7. Vyhledejte soubor a zahrňte některé přípony a vylučte jiné
Tento příklad používá grep
způsob vyhledávání konkrétních souborů. Je to docela rychlé a snadno zapamatovatelné:
$ grep -R 'import' --include='*.java' --color MySourceCodeDir
Nebo můžete zkusit find
způsobem (použijte xargs
správně zpracovat velký počet zápasů):
$ find MySourceCodeDir/ -name '*.java' -type f -print| xargs \
grep --color 'import
Proč find
, můžete se zeptat? find
můžete kombinovat s -exec
nejprve provést akce s vašimi soubory a poté předat výsledky filtru. Možnosti zpracování jsou zde nekonečné.
8. Monitorujte paměť bez top nebo htop
Tenhle je skoro podvádění. Opakuje příkaz, například free
, každých pět sekund a zvýrazní rozdíly:
$ watch -n 5 -d '/bin/free -m'
9. Zobrazit velikosti diskových oddílů
Použijte lsbk
(blok seznamu) a jq
(pro manipulaci s JSON na příkazovém řádku) pro zobrazení informací o oddílu:
$ lsblk --json | jq -c '.blockdevices[]|[.name,.size]'
["loop0","55.5M"]
["loop1","156M"]
["loop2","32.3M"]
["zram0","4G"]
["nvme0n1","476.9G"]
10. Rychlé zobrazení typu souboru
Co je funkce se volá pomocí wi
. Rychle vám sdělí typ souboru.
Kontrola jednoho souboru:
$ function wi { test -n "$1" && stat --printf "%F\n" "$1"; }
Kontrola více souborů:
$ function wi { test "$#" -gt 0 && stat --printf "%n: %F\n" "$@"; }
POZNÁMKA :Funkce jsou nadřazené a mohou dělat stejnou práci jako alias.
11. Zobrazení velikosti nainstalovaných RPM
Pokud máte systém založený na RPM, dříve nebo později své dotazy naformátujete. Zde je příklad:
$ rpm --queryformat='%12{SIZE} %{NAME}\n' \
-q java-11-openjdk-headless
[ Trénujte a otestujte si naše nejnovější kurzy a zkoušky z kurzu Red Hat Training &Certification:Red Hat Enterprise Linux. ]
12. Zobrazení celkové velikosti skupiny souborů
V tomto případě find
příkaz funguje jako filtr, zobrazuje velikost každého souboru v bajtech a nakonec ukazuje celkovou velikost:
$ t=0; for n in $(find ~/Documents -type f -name '*.py' -print | xargs \
stat --printf "%s "); do ((t+=n)); done; echo $t
Nebo, pokud chcete funkci (lepší), zkuste tento přístup:
$ function size { t=0; test -d "$1" && for n in $(find $1 \
-type f -name '*.py' -print| \
xargs stat --printf "%s "); do ((t+=n)); done; echo $t; }
size $mydir
13. Aktualizujte všechna úložiště Git v adresáři
Už víte, jak užitečný je Git. Zde je trik, jak být s aktualizacemi efektivnější:
$ for i in */.git; do cd $(dirname $i); git pull; cd ..; done
14. Vystavte webový adresář pomocí kontejnerů
Kontejnery jsou dnes kritické. Tento jednořádkový odhaluje adresář přes Podman:
$ podman run --rm -v .:/usr/share/nginx/html:ro,Z \
-p 30080:80 -d nginx
15. Podívejte se na počasí
Pomocí této funkce zjistíte, zda dnes potřebujete bundu:
weather() { curl -s --connect-timeout 3 -m 5 http://wttr.in/$1; }
16. Zobrazte 10 nejčastějších IP adres zasahujících webový server
Zde je úkol, který mohou weboví administrátoři často používat s Nginxem (může také fungovat s Apache) k získání 10 nejčastějších adres internetového protokolu zasahujících webový server z protokolu přístupu:
$ cat /var/log/nginx/access.log | cut -f 1 -d ' ' | sort | \
uniq -c | sort -hr | head -n 10
17. Round plave v Bash s pomocí Pythonu
S Pythonem můžete dělat docela skvělé věci, ale tento příklad pouze zaokrouhluje čísla:
$ echo "22.67892" | python3 -c "print(f'{round(float(input()))}')"
23
18. Spusťte mini kalkulačku
Tato funkce definuje rychlou kalkulačku na příkazovém řádku s proměnnou přesností (výchozí hodnota je 2). Používá bc. Vytvořte funkci takto:
$ function qqbc() { echo "scale=${2:-2}; $1" | bc -l
Dále proveďte rychlý výpočet:
$ qqbc "2/3"
.66
V případě, že potřebujete další přesnost, stačí definovat druhý parametr:
$ qqbc "2/3" 4
.6666
Tento nástroj se nazývá qqbc
protože jde o vylepšení staré funkce qbc
.
19. Převeďte CSV na JSON
Tento trik je modifikací tohoto oblíbeného receptu na převod souborů CSV do formátu JSON:
$ python3 -c \
"import csv,json,sys;print(json.dumps(list(csv.reader(open(sys.argv[1])))))" \
covid19-vaccinations-town-age-grp.csv
20. Nainstalujte a spusťte příkazy pomocí Docker
Pokud máte nainstalovaný Docker a chcete spustit příkaz bez instalace hromady závislostí na vašem systému (při rychlém spuštění), může být vše, co potřebujete:
$ docker run --rm --interactive curlimages/curl curl \
--verbose --location --fail --silent --output - \
https://example.com
Příkaz spustí nejnovější verzi curl
z nádoby a později ji odstraní. Všimněte si, že příkaz končí pomlčkou (-
), který říká curl
pro výstup na váš terminál. Možnosti jsou zde nekonečné.
Sbalit
Schopnost vytvářet výkonné kombinace jednoduchých příkazů je jedním z důvodů, proč jsou Unix a Linux tak populární.
Naštěstí. není těžké se tyto jednovrstvé naučit. Zaměřte se na zapamatování toho, co dělá jednoduchý příkaz, a pak přemýšlejte o tom, jak můžete smíchat mnoho jednoduchých příkazů, abyste vytvořili účinný recept.
Vždy zaškrtněte man
nebo použijte info
příkaz, abyste zjistili, co ještě nástroj umí. Možná vás překvapí, že jeden nástroj dokáže vše, aniž by jej kombinoval s jiným nástrojem.
Na internetu je mnoho stránek se spoustou jednořádkových příkladů. Doufáme, že vás tyto příklady povedou k napsání lepších vlastních jednořádkových linií.