[Buchmark] Bash fir Ufänger: 21 nëtzlech Kommandoen

D'Material, d'Iwwersetzung vun deem mir haut verëffentlechen, ass fir déi geduecht, déi d'Linux Kommandozeil beherrschen wëllen. D'Fäegkeet dëst Tool effektiv ze benotzen kann vill Zäit spueren. Besonnesch wäerte mir iwwer d'Bash Shell an 21 nëtzlech Kommandoen schwätzen. Mir wäerten och schwätzen iwwer wéi Dir Kommando Fändelen a Bash Aliasen benotzt fir d'Type vu laangen Instruktiounen ze beschleunegen.

[Buchmark] Bash fir Ufänger: 21 nëtzlech Kommandoen

Liest och an eisem Blog eng Serie vu Publikatiounen iwwer Bash Scripten

D 'Begrëffer

Wéi Dir léiert mat der Linux Kommandozeil ze schaffen, fannt Dir vill Konzepter déi hëllefräich sinn ze navigéieren. E puer vun hinnen, wéi "Linux" an "Unix", oder "Shell" an "Terminal", sinn heiansdo duercherneen. Loosst eis iwwer dës an aner wichteg Begrëffer schwätzen.

Unix ass e populäre Betribssystem dee vu Bell Labs an den 1970er entwéckelt gouf. Hire Code war zougemaach.

Linux ass de beléifsten Unix-ähnlechen Betribssystem. Et gëtt elo op villen Apparater benotzt, dorënner Computeren.

Opluedstatioun (Terminal), oder Terminal Emulator ass e Programm deen Zougang zum Betribssystem gëtt. Dir kënnt verschidde Terminalfenster zur selwechter Zäit opmaachen.

Shell (Shell) ass e Programm deen Iech erlaabt Kommandoen an enger spezieller Sprooch un de Betribssystem ze schécken.

Bash steet fir Bourne Again Shell. Et ass déi allgemeng Shellsprooch déi benotzt gëtt fir mam Betribssystem ze interagéieren. Och d'Bash Shell ass de Standard op macOS.

Kommando Linn Interface (Command Line Interface, CLI) ass eng Method fir Interaktioun tëscht enger Persoun an engem Computer, mat deem de Benotzer Kommandoe vun der Tastatur aginn, an de Computer, deen dës Kommandoen ausféiert, weist Messagen an Textform fir de Benotzer. D'Haaptnotzung vum CLI ass fir aktuell Informatioun iwwer verschidden Entitéiten ze kréien, wéi Dateien, a fir mat Dateien ze schaffen. D'Command Line Interface soll vun der grafescher User Interface (GUI) ënnerscheeden ginn, déi haaptsächlech d'Maus benotzt. D'Command Line Interface gëtt dacks einfach als Kommandozeil bezeechent.

Schrëft (Skript) ass e klenge Programm deen eng Sequenz vu Shellbefehle enthält. Scripte ginn op Dateie geschriwwe, si kënnen ëmmer erëm benotzt ginn. Wann Dir Skripte schreift, kënnt Dir Variablen, Conditioune, Loops, Funktiounen an aner Funktiounen benotzen.

Elo wou mir déi wichteg Begrëffer ofgedeckt hunn, wëll ech drop hiweisen datt ech hei d'Begrëffer "Bash", "Shell" an "Kommandolinn" austauschbar benotzen, souwéi d'Begrëffer "Verzeichnis" an "Dossier".

Standard Baachen, déi mir hei benotzen ass de Standard-Input (Standard-Input, stdin), Standardausgang (Standardausgang, stdout) a Standardfehlerausgang (Standardfehler, stderr).

Wann am Beispill Kommandoen déi hei drënner ginn, fannt Dir eppes wéi my_whatever - dat heescht datt dëst Fragment duerch eppes vun Ärem ersat muss ginn. Zum Beispill den Numm vun enger Datei.

Elo, ier Dir mat der Analyse vun de Kommandoen viru geet, un deenen dëst Material gewidmet ass, kucke mer hir Lëscht an hir kuerz Beschreiwungen.

21 Bash Kommandoen

▍ Informatiounen ze kréien

  • man: Weist de Benotzerguide (Hëllef) fir de Kommando.
  • pwd: weist Informatioun iwwer den Aarbechtsverzeechnes.
  • ls: weist den Inhalt vun engem Verzeechnes.
  • ps: Erlaabt Iech Informatiounen iwwer Lafen Prozesser ze gesinn.

▍ Dateisystem Manipulatioun

  • cd: Aarbechtsverzeichnis änneren.
  • touch: eng Datei erstellen.
  • mkdir: e Verzeechnes erstellen.
  • cp: Kopie eng Datei.
  • mv: Eng Datei réckelen oder läschen.
  • ln: e Link erstellen.

▍I/O Viruleedung a Pipelines

  • <: Viruleedung stdin.
  • >: Viruleedung stdout.
  • |: d'Output vun engem Kommando op den Input vun engem anere Kommando gefouert.

▍ Dateien liesen

  • head: liesen den Ufank vun der Datei.
  • tail: Enn vun der Datei liesen.
  • cat: Liest e Fichier a dréckt säin Inhalt op den Ecran, oder verbënnt Dateien.

▍ Dateien läschen, Prozesser stoppen

  • rm: E Fichier läschen.
  • kill: stoppen de Prozess.

▍Sich

  • grep: Sich no Informatiounen.
  • ag: fortgeschratt Kommando fir Sich.

▍ Archivéieren

  • tar: Archiven erstellen a mat hinnen schaffen.

Loosst eis iwwer dës Befehle méi detailléiert schwätzen.

Team Detailer

Fir unzefänken, loosst eis d'Befehle beschäftegen, d'Resultater vun deenen an der Form erausginn stdout. Normalerweis erschéngen dës Resultater an enger Terminalfenster.

▍ Informatiounen ze kréien

man command_name: weist de Kommandoguide, dh Hëllefsinformatioun.

pwd: weist de Wee op den aktuellen Aarbechtsverzeichnis. Am Laf vun der Aarbecht mat der Kommandozeil muss de Benotzer dacks genee erausfannen, wou hien am System ass.

ls: weist den Inhalt vun engem Verzeechnes. Dëse Kommando gëtt och zimlech dacks benotzt.

ls -a: weisen verstoppte Fichieren. Fändel hei applizéiert -a Kommandoen ls. D'Benotzung vu Fändelen hëlleft d'Behuele vun de Kommandoen ze personaliséieren.

ls -l: Weist detailléiert Informatioun iwwer Dateien.

Notéiert datt Fändelen kombinéiert kënne ginn. Zum Beispill - wéi dëst: ls -al.

ps: View Lafen Prozesser.

ps -e: Weist Informatioun iwwer all Lafen Prozesser, net nëmmen déi mat der aktueller Benotzer Shell assoziéiert. Dëse Kommando gëtt dacks an dëser Form benotzt.

▍ Dateisystem Manipulatioun

cd my_directory: änneren Aarbechtsverzeechnes op my_directory. Fir een Niveau am Verzeechnesbaum erop ze réckelen, benotzt my_directory relativ Wee ../.

[Buchmark] Bash fir Ufänger: 21 nëtzlech Kommandoen
cd Kommando

touch my_file: Fichier Kreatioun my_file laanscht de gegebene Wee.

mkdir my_directory: en Dossier erstellen my_directory laanscht de gegebene Wee.

mv my_file target_directory: plënneren Fichier my_file an den Dossier target_directory. Wann Dir den Zilverzeichnis spezifizéiert, musst Dir den absolute Wee dohinner benotzen (an net eng Konstruktioun wéi ../).

D'Equipe mvkann och benotzt ginn fir Dateien oder Ordner ëmbenennen. Zum Beispill kann et esou ausgesinn:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: eng Kopie vun enger Datei erstellen my_source_file an et an engem Dossier target_directory.

ln -s my_source_file my_target_file: e symbolesche Link erstellen my_target_file pro Fichier my_source_file. Wann Dir de Link ännert, wäert d'Original Datei och änneren.

Wann de Fichier my_source_file wäert geläscht ginn, dann my_target_file wäert bleiwen. Fändel -s Kommandoen ln erlaabt Iech Linken fir Verzeichnisser ze kreéieren.

Loosst eis elo iwwer I/O Viruleedung a Pipelines schwätzen.

▍I/O Viruleedung a Pipelines

my_command < my_file: ersetzt de Standard Input Datei Descriptor (stdin) pro Datei my_file. Dëst kann nëtzlech sinn wann de Kommando op e puer Input vun der Tastatur waart, an dës Donnéeën sinn schonn an enger Datei gespäichert.

my_command > my_file: redirectéiert d'Resultater vum Kommando, dh wat normalerweis eragoen stdout an Ausgang op den Ecran, op eng Datei my_file. Wann de Fichier my_file existéiert net - et gëtt geschaf. Wann d'Datei existéiert, gëtt se iwwerschriwwen.

Zum Beispill, nodeems de Kommando ausgefouert gouf ls > my_folder_contents.txt eng Textdatei gëtt erstallt mat enger Lëscht vun deem wat am aktuellen Aarbechtsverzeechnes ass.

Wann amplaz vum Symbol > benotzen d'Konstruktioun >>, dann, virausgesat datt d'Datei, op déi den Ausgang vum Kommando ëmgeleet gëtt, existéiert, gëtt dës Datei net iwwerschriwwen. D'Donnéeë ginn um Enn vun dëser Datei bäigefüügt.

Loosst eis elo d'Datepipelineveraarbechtung kucken.

[Buchmark] Bash fir Ufänger: 21 nëtzlech Kommandoen
Den Ausgang vun engem Kommando gëtt an den Input vun engem anere Kommando gefüttert. Et ass wéi eng Päif mat engem aneren ze verbannen

first_command | second_command: conveyor Symbol, |, gëtt benotzt fir den Ausgang vun engem Kommando op en anere Kommando ze schécken. Wat de Kommando op der lénker Säit vun der beschriwwener Struktur schéckt stdout, Falen an stdin Kommando riets vum Pipeline Symbol.

Op Linux kënnen d'Donnéeën iwwer all gutt geformte Kommando pipelined ginn. Et gëtt dacks gesot datt alles am Linux eng Pipeline ass.

Dir kënnt verschidde Befehle mat dem Pipeline Symbol ketten. Et gesäit esou aus:

first_command | second_command | third_command

[Buchmark] Bash fir Ufänger: 21 nëtzlech Kommandoen
Eng Pipeline vu verschiddene Kommandoen kann mat enger Pipeline verglach ginn

Bedenkt datt wann de Kommando lénks vun der Symbol |, Ausgaben eppes un stdout, wat se erausgëtt ass direkt verfügbar als stdin zweet Equipe. Dat ass, et stellt sech eraus datt, mat der Pipeline, mir mat der paralleler Ausféierung vu Kommandoen ze dinn hunn. Heiansdo kann dëst zu onerwaarte Resultater féieren. Detailer iwwer dëst kënne gelies ginn hei.

Loosst eis elo iwwer d'Liesen vun Daten aus Dateien schwätzen an se um Bildschierm weisen.

▍ Dateien liesen

head my_file: liest Linnen vum Ufank vun enger Datei an dréckt se op den Ecran. Dir kënnt net nëmmen den Inhalt vun de Dateien liesen, awer och wat d'Befehle erausginn stdinbenotzt dëse Kommando als Deel vun der Pipeline.

tail my_file: liest Linnen vum Enn vun der Datei. Dëse Kommando kann och an enger Pipeline benotzt ginn.

[Buchmark] Bash fir Ufänger: 21 nëtzlech Kommandoen
De Kapp (Kapp) ass virun, an de Schwanz (Schwanz) ass hannert

Wann Dir mat Daten schafft mat der Pandas Bibliothéik, dann d'Befehle head и tail sollt Iech vertraut sinn. Wann dat net de Fall ass, kuckt op déi uewe genannte Figur, an Dir wäert se einfach erënneren.

Bedenkt aner Weeër fir Dateien ze liesen, loosst eis iwwer de Kommando schwätzen cat.

Equipe cat entweder dréckt den Inhalt vun enger Datei op den Ecran, oder verbënnt verschidde Dateien. Et hänkt dovun of wéivill Dateien un dëse Kommando weiderginn wann se opgeruff ginn.

[Buchmark] Bash fir Ufänger: 21 nëtzlech Kommandoen
Kaz Kommando

cat my_one_file.txt: Wann eng eenzeg Datei un dëse Kommando weidergeleet gëtt, gëtt se aus stdout.

Wann Dir et zwee Dateien oder méi Dateien gitt, da verhält et sech anescht.

cat my_file1.txt my_file2.txt: Nodeems Dir e puer Dateien als Input kritt hutt, verbënnt dëse Kommando hiren Inhalt a weist wat geschitt ass stdout.

Wann d'Resultat vun der Dateikoncatenatioun als neie Fichier gespäichert muss ginn, kënnt Dir den Bedreiwer benotzen >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Loosst eis elo schwätzen iwwer wéi Dir Dateien läscht an d'Prozesser stoppen.

▍ Dateien läschen, Prozesser stoppen

rm my_file: Fichier läschen my_file.

rm -r my_folder: läscht en Dossier my_folder an all d'Dateien an Ordner déi et enthält. Fändel -r weist datt de Kommando am rekursive Modus leeft.

Fir ze verhënneren datt de System all Kéier wann e Fichier oder Dossier geläscht gëtt eng Bestätegung freet, benotzt de Fändel -f.

kill 012345: Stoppt de spezifizéierte Lafprozess, gëtt et Zäit fir graziéis auszeschalten.

kill -9 012345: Forcéiert de spezifizéierte Lafenprozess ofzeschléissen. View Fändel -s SIGKILL heescht d'selwecht wéi de Fändel -9.

▍Sich

Dir kënnt verschidde Befehle benotze fir no Daten ze sichen. Besonnesch - grep, ag и ack. Loosst eis Bekanntschaft mat dëse Kommandoen ufänken mat grep. Dëst ass en Zäit-getest, zouverlässeg Kommando, deen awer méi lues ass wéi anerer an net sou bequem ze benotzen wéi se sinn.

[Buchmark] Bash fir Ufänger: 21 nëtzlech Kommandoen
grep Kommando

grep my_regex my_file: Recherchen my_regex в my_file. Wann e Match fonnt gëtt, gëtt de ganze String fir all Match zréckgezunn. Default my_regex als regulär Ausdrock behandelt.

grep -i my_regex my_file: D'Sich gëtt op eng case-onsensibel Manéier gemaach.

grep -v my_regex my_file: gitt all Zeilen zréck déi net enthalen my_regex. Fändel -v heescht Inversioun, et gläicht de Bedreiwer NOT, a ville Programméierungssprooche fonnt.

grep -c my_regex my_file: Gitt Informatioun iwwer d'Zuel vun de Matcher fir de gesichte Muster zréck, deen an der Datei fonnt gëtt.

grep -R my_regex my_folder: mécht eng rekursiv Sich an all Dateien, déi am spezifizéierten Dossier sinn an an den Ordner, déi an deem nestéiert sinn.

Loosst eis elo iwwer d'Equipe schwätzen ag. Si koum méi spéit grep, et ass méi séier, et ass méi bequem domat ze schaffen.

[Buchmark] Bash fir Ufänger: 21 nëtzlech Kommandoen
ag Kommando

ag my_regex my_file: Retour Informatiounen iwwert Linn Zuelen, an d'Linnen selwer, an deem Matcher fonnt goufen mat my_regex.

ag -i my_regex my_file: D'Sich gëtt op eng case-onsensibel Manéier gemaach.

Equipe ag automatesch d'Datei veraarbecht .gitignore an ausgeschloss aus der Ausgab wat an den Ordner oder Dateien an där Datei opgezielt ass. Et ass ganz bequem.

ag my_regex my_file -- skip-vcs-ignores: Inhalt vun automatesche Versiounskontrolldateien (wéi .gitignore) gëtt bei der Sich net berücksichtegt.

Zousätzlech, fir d'Equipe ze soen ag op wéi eng Dateiweeër Dir wëllt aus der Sich ausschléissen, kënnt Dir e Fichier erstellen .agignore.

Am Ufank vun dëser Sektioun hu mir de Kommando ernimmt ack. Équipë ack и ag ganz ähnlech, kënne mir soen datt se 99% austauschbar sinn. Allerdéngs ass d'Equipe ag schafft méi séier, dofir hunn ech et beschriwwen.

Loosst eis elo iwwer d'Aarbecht mat Archiven schwätzen.

▍ Archivéieren

tar my_source_directory: concatenates Dateien aus engem Dossier my_source_directory an eng eenzeg Tarball Datei. Esou Dateie si nëtzlech fir grouss Sätze vu Dateien un een ze transferéieren.

[Buchmark] Bash fir Ufänger: 21 nëtzlech Kommandoen
tar Kommando

D'Tarball-Dateien, déi vun dësem Kommando generéiert ginn, sinn Dateie mat der Extensioun .tar (Tape Archiv). D'Tatsaach, datt d'Wuert "Tape" (Band) am Numm vum Kommando verstoppt ass an an der Extensioun vun den Nimm vun de Dateien déi et erstellt, weist wéi laang dëse Kommando existéiert.

tar -cf my_file.tar my_source_directory: erstellt eng Tarball Datei mam Numm my_file.tar mat Dossier Inhalt my_source_directory. Fändel -c steet fir "schafen" (Schafung), an de Fändel -f als "Datei" (Datei).

Fir Dateien aus ze extrahieren .tar-Datei, benotzt de Kommando tar mat Fändelen -x ("Extrait", Extraktioun) an -f ("Datei", Datei).

tar -xf my_file.tar: Extrait Dateien aus my_file.tar an den aktuellen Aarbechtsverzeichnis.

Loosst eis elo schwätzen iwwer wéi Dir kompriméiert an dekompriméiert .tar- Dateien.

tar -cfz my_file.tar.gz my_source_directory: hei benotzt de Fändel -z ("zip", Kompressiounsalgorithmus) weist datt den Algorithmus sollt benotzt ginn fir Dateien ze kompriméieren gzip (GNUzip). Dateikompressioun spuert Disk Space wann Dir esou Dateien späichert. Wann d'Fichier'en geplangt sinn, zum Beispill, un aner Benotzer ze transferéieren, dréit dëst zu engem méi séieren Download vun esou Dateien bäi.

Unzip Datei .tar.gz Dir kënnt e Fändel derbäi -z zum Extrait Inhalt Kommando .tar-Dateien, déi mir uewen diskutéiert hunn. Et gesäit esou aus:

tar -xfz my_file.tar.gz
Et soll feststellen, datt d'Equipe tar Et gi vill méi nëtzlech Fändelen.

Bash Alias

Bash Aliasen (och Aliasen oder Ofkierzungen genannt) sinn entwéckelt fir ofkierzte Nimm vu Kommandoen oder hir Sequenzen ze kreéieren, d'Benotzung vun deenen amplaz regelméisseg Kommandoen d'Aarbecht beschleunegt. Wann Dir en Alias ​​hutt bu, déi de Kommando verstoppt python setup.py sdist bdist_wheel, dann fir dëse Kommando ze ruffen, ass et genuch fir dësen Alias ​​​​ze benotzen.

Fir sou en Alias ​​​​ze kreéieren, füügt just de folgende Kommando un d'Datei ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Wann Äre System d'Datei net huet ~/.bash_profile, da kënnt Dir et selwer mat dem Kommando erstellen touch. Nodeems Dir den Alias ​​erstallt hutt, start den Terminal nei, duerno kënnt Dir dësen Alias ​​benotzen. An dësem Fall ersetzt den Input vun zwee Zeechen den Input vu méi wéi dräi Dutzend Zeeche vum Kommando, dee fir Versammlungen Python Packagen.

В ~/.bash_profile Dir kënnt Aliasen fir all dacks benotzt Kommandoen derbäi.

▍ Resultater

An dësem Post hu mir 21 populär Bash Kommandoen ofgedeckt a geschwat iwwer d'Erstelle vun Kommando Aliasen. Wann Dir un dësem Thema interesséiert sidd - kuck eng Serie vu Publikatiounen dem Bash gewidmet. et ass Dir fannt eng pdf Versioun vun dëse Publikatiounen. Och, wann Dir Bash léiere wëllt, denkt drun datt, wéi mat all anere Programméierungssystem, Praxis de Schlëssel ass.

Léif Lieser! Wéi eng Kommandoen, déi nëtzlech sinn fir Ufänger, géift Dir zu deenen bäidroen, déi an dësem Artikel diskutéiert goufen?

Liest och an eisem Blog eng Serie vu Publikatiounen iwwer Bash Scripten

[Buchmark] Bash fir Ufänger: 21 nëtzlech Kommandoen

Source: will.com

Setzt e Commentaire