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.
→
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.
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 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
<
: Viruleedungstdin
.>
: Viruleedungstdout
.|
: 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 ../
.
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 mv
kann 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
: eng Kopie vun enger Datei erstellen
cp my_source_file target_directorymy_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.
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
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
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 stdin
benotzt 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.
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.
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.
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.
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.
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
В ~/.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 -
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?
→
Source: will.com