GNU/Linux >> LINUX-Kenntnisse >  >> Linux

20 einzeilige Linux-Befehle, die Sie Ihrer Toolbox hinzufügen können

Viele Linux-Benutzer haben ein nachhaltiges Erfolgserlebnis erlebt, nachdem sie einen besonders cleveren Befehl komponiert haben, der mehrere Aktionen in nur einer Zeile erreicht oder der es schafft, in einer Zeile das zu tun, was normalerweise 10 Klicks und ebenso viele Fenster in einer grafischen Benutzeroberfläche (GUI) erfordert. Abgesehen davon, dass sie legendär sind, sind Einzeiler großartige Beispiele dafür, warum das Terminal als ein so mächtiges Werkzeug gilt.

Am Ende dieses Artikels haben Sie:

  • Eine Liste mit 20 Befehlen, die Ihnen die Arbeit unter Linux erleichtern
  • Ein Verständnis der Möglichkeiten, einfache Befehle zu kombinieren, um leistungsfähigere Befehle zu erstellen
  • Mehr Spaß, als Sie vielleicht erwarten, diese Befehle auszuführen

Ohne besondere Reihenfolge der Wichtigkeit sind dies unsere 20 besten Einzeiler für das Linux-Terminal. Obwohl wir einige der längeren Befehle mit \ geteilt haben Symbol für eine bessere Lesbarkeit können Sie sie alle in einer einzigen Zeile in Ihrem Terminal eingeben, da es sich schließlich um Einzeiler handelt.

1. Wenden Sie einen Befehl auf Dateien mit unterschiedlichen Namen an

Die Shell {} Betreiber ist dafür großartig. Hier ist ein Beispiel mit drei Verzeichnissen, die in {} eingeschlossen sind :

$ mkdir -p -v /home/josevnz/tmp/{dir1,anotherdir,similardir}

2. Bearbeiten Sie eine Datei an Ort und Stelle

Möchten Sie eine Zeichenfolge in einer oder mehreren Dateien ersetzen, ohne einen Editor zu verwenden? Sicher, sed zur Rettung:

$ sed -i 's#ORIGINAL_VALLUE#NEW_VALUE#g' myfile1 myfile2

Aber warten Sie, Perl-Liebhaber werden Ihnen sagen, dass sie dasselbe tun können:

$ perl -p -i -e 's#ORIGINAL#NEW_VALUE#' myfile1 myfile2

3. Teilen Sie eine Datei schnell über einen Webserver

Heben Sie Ihre Hand, wenn Sie dies nicht mindestens einmal verwendet haben So teilen Sie schnell ein Verzeichnis:

$ cd $mydir && python3 -m http.server 8888

4. Finden Sie Fehler mit journalctl

Manchmal gehen Dinge kaputt. Sie können die neuesten Fehler mit einer Kombination aus journalctl finden , zusammen mit den klassischen Tools sort und 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"
[...]

In diesem Fall scheint der Docker-Daemon unzufrieden zu sein.

[ Laden Sie dieses eBook herunter, um sich auf Ihre Red Hat Remote Exam vorzubereiten. ]

5. Erstellen Sie eine Sicherungskopie per verschlüsselter Dateiübertragung

Verwenden Sie ssh und tar um sichere Backups zu erstellen. Sie passen zusammen wie Erdnussbutter und Marmelade:

$ tar --create --directory /home/josevnz/tmp/ --file - *| \
ssh raspberrypi "tar --directory /home/josevnz \
--verbose --list --file -"

Sie können den Backup-Auftrag durch Komprimierung und Verschlüsselung aufpeppen – genau wie das Hinzufügen von Zutaten zu Ihrem Sandwich.

6. Sofortige Dateien schreiben

Dies ist ein großartiger Trick, wenn Sie mehrzeilige Dokumente schreiben müssen:

$ cat<<DOC>/my/new/file
Line1
Line2
A $VARIABLE
DOC

Sie können auch einfach cat > file , und wenn Sie mit der Bearbeitung fertig sind, geben Sie einfach das EOF-Zeichen ein (Strg+D ):

[josevnz@dmaf5 temp]$ cat > testfile
This is a test
multiple lines
and here we go
[josevnz@dmaf5 temp]$ 

7. Suchen Sie nach einer Datei und schließen Sie einige Erweiterungen ein und andere aus

Dieses Beispiel verwendet grep Möglichkeit, nach bestimmten Dateien zu suchen. Es ist ziemlich schnell und leicht zu merken:

$ grep -R 'import' --include='*.java' --color MySourceCodeDir

Oder Sie versuchen es mit find Weise (verwenden Sie xargs um eine große Anzahl von Übereinstimmungen richtig zu handhaben):

$ find MySourceCodeDir/ -name '*.java' -type f -print| xargs \
grep --color 'import

Warum find , können Sie fragen? Sie können find kombinieren mit -exec um zuerst Aktionen für Ihre Dateien auszuführen und dann die Ergebnisse an den Filter weiterzugeben. Die Verarbeitungsmöglichkeiten sind hier endlos.

8. Speicher ohne top oder htop überwachen

Dieser betrügt fast. Es wiederholt einen Befehl wie free , alle fünf Sekunden und hebt die Unterschiede hervor:

$ watch -n 5 -d '/bin/free -m'

9. Festplattenpartitionsgrößen anzeigen

Verwenden Sie lsbk (Listenblock) und jq (um ein JSON auf der Befehlszeile zu manipulieren), um Partitionsinformationen anzuzeigen:

$ lsblk --json | jq -c '.blockdevices[]|[.name,.size]'
["loop0","55.5M"]
["loop1","156M"]
["loop2","32.3M"]
["zram0","4G"]
["nvme0n1","476.9G"]

10. Schnell einen Dateityp anzeigen

Das Was ist Funktion wird mit wi aufgerufen . Es teilt Ihnen schnell den Typ einer Datei mit.

So prüfen Sie eine einzelne Datei:

$ function wi { test -n "$1" && stat --printf "%F\n" "$1"; }

So prüfen Sie mehrere Dateien:

$ function wi { test "$#" -gt 0 && stat --printf "%n: %F\n" "$@"; }

HINWEIS :Funktionen sind überlegen und können die gleiche Arbeit wie ein Alias ​​erledigen.

11. Anzeige der Größe eines installierten RPM

Wenn Sie ein RPM-basiertes System haben, werden Sie früher oder später Ihre Abfragen formatieren. Hier ist ein Beispiel:

$ rpm --queryformat='%12{SIZE} %{NAME}\n' \
-q java-11-openjdk-headless

[ Trainieren und testen Sie unsere neuesten Kurse und Prüfungen von Red Hat Training &Certification:Red Hat Enterprise Linux Skills Path. ]

12. Zeigt die Gesamtgröße einer Gruppe von Dateien an

In diesem Fall die find Der Befehl fungiert als Filter, zeigt die Größe jeder Datei in Bytes an und schließlich die Gesamtgröße:

$ t=0; for n in $(find ~/Documents -type f -name '*.py' -print | xargs \
stat --printf "%s "); do ((t+=n)); done; echo $t

Oder, wenn Sie eine (bessere) Funktion wollen, versuchen Sie diesen Ansatz:

$ 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. Alle Git-Repositories in einem Verzeichnis aktualisieren

Sie wissen bereits, wie nützlich Git ist. Hier ist ein Trick, um Ihre Updates effizienter zu gestalten:

$ for i in */.git; do cd $(dirname $i); git pull; cd ..; done

14. Stellen Sie ein Webverzeichnis mithilfe von Containern bereit

Container sind heute von entscheidender Bedeutung. Dieser Einzeiler legt ein Verzeichnis über Podman offen:

$ podman run --rm -v .:/usr/share/nginx/html:ro,Z \
-p 30080:80 -d nginx

15. Prüfen Sie das Wetter

Finden Sie mit dieser Funktion heraus, ob Sie heute eine Jacke brauchen:

weather() { curl -s --connect-timeout 3 -m 5 http://wttr.in/$1; }

16. Zeigen Sie die Top 10 IP-Adressen an, die einen Webserver treffen

Hier ist eine Aufgabe, die Webadministratoren häufig mit Nginx verwenden (es funktioniert möglicherweise auch mit Apache), um die Top-10-Internetprotokolladressen zu ermitteln, die einen Webserver aus dem Zugriffsprotokoll treffen:

$ cat /var/log/nginx/access.log | cut -f 1 -d ' ' | sort | \
uniq -c | sort -hr | head -n 10

17. Runde Floats in Bash mit Pythons Hilfe

Sie können mit Python ziemlich coole Sachen machen, aber dieses Beispiel rundet nur Zahlen:

$ echo "22.67892" | python3 -c "print(f'{round(float(input()))}')"
23

18. Führen Sie einen Minirechner aus

Diese Funktion definiert einen Schnellrechner auf der Befehlszeile mit variabler Genauigkeit (der Standardwert ist 2). Es verwendet bc. Erstellen Sie die Funktion wie folgt:

$ function qqbc() { echo "scale=${2:-2}; $1" | bc -l

Führen Sie als Nächstes eine schnelle Berechnung durch:

$ qqbc "2/3"
.66

Falls Sie zusätzliche Genauigkeit benötigen, definieren Sie einfach einen zweiten Parameter:

$ qqbc "2/3" 4
.6666

Dieses Tool heißt qqbc weil es eine Verbesserung der alten Funktion qbc ist .

19. Konvertieren Sie eine CSV-Datei in JSON

Dieser Trick ist eine Modifikation dieses beliebten Rezepts zum Konvertieren von CSV-Dateien in das JSON-Format:

$ python3 -c \
"import csv,json,sys;print(json.dumps(list(csv.reader(open(sys.argv[1])))))" \
covid19-vaccinations-town-age-grp.csv

20. Befehle mit Docker installieren und ausführen

Wenn Sie Docker installiert haben und einen Befehl ausführen möchten, ohne eine Reihe von Abhängigkeiten auf Ihrem System zu installieren (während einer schnellen Ausführung), ist dies möglicherweise alles, was Sie brauchen:

$ docker run --rm --interactive curlimages/curl curl \
--verbose --location --fail --silent --output - \
https://example.com

Der Befehl führt die neueste Version von curl aus aus einem Behälter und entfernt ihn später. Beachten Sie, dass der Befehl mit einem Bindestrich endet (- ), was curl mitteilt an Ihr Terminal auszugeben. Die Möglichkeiten sind hier endlos.

Abschluss

Die Fähigkeit, leistungsstarke Kombinationen einfacher Befehle zu erstellen, ist einer der Gründe, warum Unix und Linux so beliebt sind.

Glücklicherweise. Es ist nicht schwer, diese Einzeiler zu lernen. Konzentrieren Sie sich darauf, sich daran zu erinnern, was ein einfacher Befehl bewirkt, und denken Sie dann darüber nach, wie Sie viele einfache Befehle kombinieren können, um ein leistungsstarkes Rezept zu erstellen.

Überprüfen Sie immer den man Seite oder verwenden Sie die info Befehl, um herauszufinden, was das Tool sonst noch kann. Sie werden überrascht sein zu erfahren, dass ein Tool alles kann, ohne es mit einem anderen Dienstprogramm zu kombinieren.

Es gibt viele Seiten im Internet mit vielen einzeiligen Beispielen. Wir hoffen, dass diese Beispiele Sie dazu anregen, selbst bessere Einzeiler zu schreiben.


Linux
  1. Fügen Sie Videos als Hintergrundbild auf Ihrem Linux-Desktop hinzu

  2. Linux-Befehle zum Anzeigen Ihrer Hardwareinformationen

  3. Begeben Sie sich in Ihrem Linux-Terminal auf ein Abenteuer

  4. 5 Linux-Befehle zur Fehlerbehebung im Netzwerk

  5. Meine 8 beliebtesten praktischen Linux-Befehle

Verwenden Sie Linux, um Ihre Steuern zu erledigen

So fügen Sie einen Benutzer zu Ihrem Linux-Desktop hinzu

Installieren Sie Nerd-Schriftarten, um Glyphen in Ihrem Code unter Linux hinzuzufügen

Erweitertes Kopieren – Fortschrittsbalken zu cp- und mv-Befehlen in Linux hinzufügen

Setzen Sie einen Timer auf Ihre laufenden Befehle mit dem Timeout-Befehl in Linux

Erlernen der Linux-Befehle „Benutzer löschen“ oder „Linux-Benutzer hinzufügen“.