1. Grundlegende Befehle überprüfen
2. Skript
3 4. Alias
5. Bedingtes Urteil
6. Testurteil
1. Grundlegende Befehle überprüfen
shutdown --shutdown/restartexit --aktuelle Shell verlassen
rmdir --delete empty Verzeichnisse
du – Den vom Verzeichnis belegten Speicherplatz anzeigen
df – Die Speicherplatznutzung des gemounteten Dateisystems anzeigen
ln – Einen Link erstellen
cat – Zeigt den gesamten Inhalt der Datei an
head – Zeigt den Kopf der Datei an
tail – Zeigt das Ende der Datei an
less --Geteilter Bildschirm/Paginierung Dateiinhalt anzeigen
dirname --retrieve Directory
basename --retrieve file name
history --history command
1, ln
# ln -s [Ziel] [Quelle – Erstelle einen Softlink (symbolischer Link) # ln [Ziel] [Quelle] – Erstellen Sie einen festen Link
2. Katze
Verketten Sie den Inhalt der Dateien in der richtigen Reihenfolge und geben Sie ihn in der Standardausgabe aus. Derzeit muss es nur so verstanden werden, dass der Inhalt der Datei angezeigt wird # cat f1 -- Inhalt der Datei f1 auf dem Bildschirm anzeigen
# cat -n f1 -- Zeigen Sie den Inhalt der Datei an und fügen Sie die Zeilennummer hinzu
# cat -A f1 -- einige unsichtbare Zeichen und Positionsmarkierungen ausdrucken
3, Kopf
Lesen Sie den Kopf der Datei# head -n 3 /etc/passwd --Lesen Sie die ersten drei Zeilen der Datei
# head -n -3 /etc/passwd – Beim Lesen einer Datei die letzten drei Zeilen der Datei verwerfen;
# head -c 3 /etc/passwd – Die ersten drei lesen Zeilen der Dateibytes
# head -c 10m /dev/zero > f1 --Erstellen Sie eine 10M-Datei
4, tail
read Holen Sie sich das Ende der Datei
# tail -n 3 /etc/passwd – liest die letzten drei Zeilen der Datei
# tail -c 3 /etc/passwd – read die letzten drei Zeilen der Datei Drei Bytes
# tail -n +28 /etc/passwd – Alle Zeilen von Zeile 28 bis zum Ende der Datei lesen
# tail -f /etc/passwd – Verfolgen Sie Änderungen im Inhalt am Ende der Datei. Wird häufig verwendet, um Änderungen in Protokolldateien zu beobachten.
# set – o Verlauf – Befehlsverlaufsfunktion aktivieren, standardmäßig aufgezeichnet In der Datei ~/.bash_history
# set +o Verlauf – Befehlsverlaufsfunktion ausschalten
# Verlauf – Anzeige der letzte n Verlaufsbefehle
Hinweis: Die folgenden drei Variablen werden verwendet, um die Anzahl der Befehlsverläufe zu steuern und ob Zeitstempel aufgezeichnet werden sollen
# vim /etc/bashrc -- Im Allgemeinen in dieser Datei konfiguriert, kann die Benutzerebene in ~/ konfiguriert werden. bashrc
HISTSIZE=1000000 – Die maximale Anzahl der gespeicherten Datensätze
HISTFILESIZE=2000000 – Die maximale Größe des Befehls Verlaufsdatei
HISTTIMEFORMAT='[%Y-%m- %d %H:%M:%S] ' --Zeitstempelformat des Befehlsverlaufs
export HISTSIZE HISTFILESIZE HISTTIMEFORMAT -- Definieren Sie sie als Umgebungsvariablen
2. Skript
1. So führen Sie das Skript aus
# vim test.sh #!/bin/bash echo 'hello world'
# bash test .sh
# bash -x test.sh – Informationen zum Skriptausführungsprozess anzeigen
# sh test.sh
# Quelle test.sh
# test.sh
--Das Obige ist ebenfalls ein nicht standardmäßiges Ausführungsskript, und die Skriptdatei benötigt keine ausführbaren Berechtigungen. Das Folgende ist eine Standardausführung:
# head -n 1 test.sh
#!/bin /bash
# chmod a+x test.sh
# ./test.sh
Sie können das Skript direkt einfügen im PATH-Pfad und verwenden Sie ihn direkt als Befehl. Führen Sie
aus. Hinweis: Die Shell muss mit #! beginnen, ausgesprochen als sha-bang. Diese beiden Zeichen werden zur Identifizierung verwendet Der Dateityp wird verwendet, um dem System mitzuteilen, dass der Inhalt dieser Datei mit dem angegebenen -Interpreter interpretiert wird, und die Zeichenfolge nach # wird in ein Programm interpretiert, das zur Interpretation der aktuellen Datei verwendet wird. Wenn die Sha-Bang-Zeile nicht bereitgestellt wird, errät die aktuelle Shell automatisch eine, es ist jedoch nicht garantiert, dass die Ergebnisse den Erwartungen entsprechen. Daher ist es am besten, sie explizit anzugeben. Der laufende Prozess von ./test.sh:
1 Der Kernel liest das Skript, überprüft die Dateitypmarkierung und erhält den Interpretationspfad; >2 , der Kernel führt den Interpreter aus;
3 Nachdem der Interpreter ausgeführt wurde, öffnen Sie die Skriptdatei und erklären Sie seine Ausführung
Viele Interpreter, die mit Linux geliefert werden: #!/bin /bash; #!/bin/sh; #!/bin/sed; #!/bin/awk
Vier arithmetische Operatoren
+ - * /
$(()) $[] expr let
# echo $( ( 38%5)) --Nehmen Sie den Rest
# echo $[38/5] --Finden Sie den Quotienten
# echo $((10**2)) --The Quadrat von 10
2.1, expr
# expr 14 % 9 --Rest
# expr 34 / 9 --Quotienten finden
# expr 30 * 3 --Bei Verwendung des Multiplikationszeichens muss seine spezifische Bedeutung mit einem Backslash maskiert werden
# expr index "sarasara" a --Erfassen Sie die Position, an der sich das erste Zeichen und die Zahlenfolge befinden erscheint
# expr substr „das ist ein Test“ 3 5 – Schnapp dir die Zeichenfolge
# expr length „das ist ein Test“ – Berechne die Länge der Zeichenfolge
2.2.let
Das let-Berechnungstool wird zum Ausführen eines oder mehrerer Ausdrücke verwendet. Es ist nicht erforderlich, $ hinzuzufügen, um Variablen in der Variablenberechnung darzustellen. Wenn der Ausdruck Leerzeichen oder andere Sonderzeichen enthält, muss er in Anführungszeichen
gesetzt werden
# no=20
# let no++ --inkrementieren
# let no-- --dekrementieren
# let no+=10 --inkrementieren 10
# let no=no+10 --Dasselbe wie oben
# let no-=15 --um 15 verringern
# let a=5+4 --change There Es ist nicht nötig, das $-Symbol hinzuzufügen
# echo $a
3. Shell-Konfigurationsdatei
/etc/profile – globale Konfigurationsdatei ,
/etc/bashrc --Globale Konfigurationsdatei, die im Allgemeinen zum Definieren von Umgebungsänderungen verwendet wird
~/.bash_profile --Benutzerkonfigurationsdatei
~/.bashrc -- Benutzerkonfigurationsdatei
~/.bash_logout – Benutzerkonfigurationsdatei, die Datei wird gelesen, wenn die Login-Shell beendet wird
4. Shell-Typ
Nach Die Startmethoden von Shells können grob in die folgenden Typen unterteilt werden:
Login-Shell – Melden Sie sich über die Textschnittstelle an, z. B. su –; Die Shell-Konfigurationsdatei lautet wie folgt:
/etc/profile——~/.bash_profile——~/.bashrc——/etc/bashrc
Interaktive Shell – -Die Standard-Shell im Gnome-Terminal; lesen Sie die Reihenfolge der Shell-Konfigurationsdateien wie folgt:
~/.bashrc - /etc/bashrc
non -interaktive Shell --Shell zum Ausführen von Skripten
4.1 Legen Sie eine Variable v in ~/.bashrc fest, sodass die Variable nur in der interaktiven Shell
angezeigt werden muss
# vim ~/.bash_profile --identify shell Ob bei der Shell angemeldet werden soll
LOGINSHELL=1
# vim ~/.bashrc --Legen Sie die Variable nur fest, wenn Sie es sind nicht bei der Shell anmelden
if [ "$LOGINSHELL" != 1 ] ;then
v="nur interaktive Shell"
fi
5. Befehlspriorität
Alias> Externe Befehle
6. Shell-Sonderzeichen
Für die Shell haben einige Zeichen zusätzlich zu ihrer eigenen Bedeutung eine besondere Bedeutung, wenn sie in eine Zeichenfolge eingefügt werden sollen Enthält Sonderzeichen, muss die besondere Bedeutung der Sonderzeichen durch Anführungszeichen entfernt werden. Nachfolgend sind einige Sonderzeichen aufgeführt:
~ --Wenn nicht in Anführungszeichen gesetzt, wird es durch das Home-Verzeichnis der Shell ersetzt
& -- Stellen Sie das Programm zur Ausführung in den Hintergrund
$ --Dollar-Symbol, das zur Parametererweiterung verwendet werden kann
${} -- Variablenverarbeitung, die zur Parametererweiterung verwendet werden kann. Der Inhalt der Variablen kann ersetzt, gelöscht, extrahiert usw.
* – Sternchen, Platzhalter, entspricht allen Zeichen
--Fragezeichen, Platzhalter, entspricht jedem Zeichen
() --Befehlsgruppe
{} --Befehlsgruppe
"" --doppelte Anführungszeichen, Anführungszeichen; kann die Sonderbedeutung der meisten Sonderzeichen entfernen, außer $;`;!; außer
'' --einfaches Anführungszeichen, Anführungszeichen können die besondere Bedeutung von allen entfernen Sonderzeichen, außer sich selbst
– Äquivalent zum Quellbefehl; kann bei Verwendung für Verzeichnisnamen verwendet werden; stellt das aktuelle Verzeichnis dar
/ --slash, Pfadtrennzeichen, Stammverzeichnis
--Backslash kann verwendet werden, um die besondere Bedeutung eines einzelnen Zeichens zu entfernen, das sogenannte „Escape“. Es kann auch zur Darstellung von Sonderzeichen verwendet werden, z. B. Newline (n)
`` – Backticks, Befehle werden zuerst ausgeführt und haben die gleiche Bedeutung wie $ (); wenn eine Verschachtelung vorliegt, können Sie das ``-Symbol
$(()) und $[] --operators
: --empty command
--command Split berücksichtigt nicht das Ergebnis der vorherigen Befehlsausführung
; Terminator der Falloption
# --Comment
&& --Logisches UND; kann den Befehl teilen; muss berücksichtigt werden
|| --Logisches ODER; es ist nicht erforderlich, das Ausführungsergebnis des vorherigen Befehls zu berücksichtigen
------- --- ------------------ --- ---
# echo 'hello world;' "hello world;" -- Verwenden Sie drei Arten von Referenzen, um der besonderen Bedeutung des Entfernens von Leerzeichen zu entsprechen
3. Variablen
Vom aktuellen Benutzer angepasste Variablen; , andere Prozesse oder Kinder des aktuellen Prozesses Der Prozess ist ungültig
# a=123# echo $a# unset a --cancel the changes definition
2. Umgebungsvariablen
Der aktuelle Prozess ist gültig und kann von untergeordneten Prozessen aufgerufen werden
# env – Alle Umgebungsvariablen des aktuellen Systems anzeigen # set – Alle Umgebungen der aktuellen Systemvariablen und temporären Variablen anzeigen # echo $PATH – Zeigt den Inhalt der PATH-Variablen an # export hi=hello --Umgebungsvariablen definieren; während der Arbeit ändere ich im Allgemeinen gerne mehrere gängige Umgebungsvariablen in ~/.bash_profile
PATH – Suche nach betroffenen Befehlen
PS1 – Eingabeaufforderung TMOUT – Timeout-Zeit, Einheit ist S, wenn die Zeit abgelaufen ist, wird die interaktive Shell automatisch beendet; Am besten legen Sie es als schreibgeschützte Variable fest
# deklarieren -r TMOUT=60
HISTSIZE, HISTFILESIZE, HISTTIMEFORMAT --Befehlsverlauf
3. Systemvariablen
werden in Bash auch als integrierte Variablen bezeichnet. Die Shell selbst verfügt über einige feste Variablen
$# – Die Anzahl der Parameter, denen die folgt Skript$* – Alle Parameter nach dem Skript (wenn in doppelte Anführungszeichen eingeschlossen, werden sie als Zeichenfolge ausgegeben)
$@ – Alle Parameter nach dem Skript (in doppelten Anführungszeichen eingeschlossen). Anführungszeichen setzen oder die Grenzen jedes Parameters beibehalten)
$? – Der nach der Ausführung des vorherigen Befehls zurückgegebene Status
$$ – Die Prozessnummer des aktuellen Prozesses
$! --Die letzte im Hintergrund laufende Prozessnummer
!$ --Der letzte Befehl oder Parameter
!! --Der Verlauf des letzten Befehls
$0 – Der Programmname oder Prozess des aktuellen Programms
$1~$n – Positionsparametervariable
#!/bin/bash
echo „$0 = $0"
echo "$# = $#"
echo "$* = $*"
echo "$1 = $2"
echo „$7 = $7“
echo „$11 = ${11}“
# chmod a+x test.sh
# ./test.sh a b c
4. Variablendefinition
a. Standardmäßig gibt es keine Anforderungen für Variablentypen. Sie können der Variablen einen beliebigen Wert zuweisen, aber auf beiden Seiten des Gleichheitszeichens dürfen keine Leerzeichen stehen.
b Bei Variablennamen muss die Groß-/Kleinschreibung beachtet werden.
c oder spezielle Symbole
d. Speichern Sie das Ergebnis der Befehlsausführung in der Variablen
5. Rufen Sie die Variable
# a=$(hostname )
# A =123456789
# echo $A
# echo ${A:2:3}
6 🎜>
Array-Definition: Verwenden Sie Klammern, um ein Array zu definieren, und die Elemente in den Klammern werden durch Leerzeichen getrennt # array[0]=var1# array[ 1]=var2# array[2]=var3# array=(var1 var2 var3) --Entspricht den obigen drei Zeilen, definieren Sie array# echo ${array[0]} --take Den ersten Wert des Arrays# echo ${array[*]} --holt alle Werte des Arrays# echo ${array[@]} – dasselbe wie oben
7. „declare“ definiert typisierte Variablen
-i – behandelt Variablen als Ganzzahlen
-r – definiert schreibgeschützte Variablen
-x – Variablen in Umgebungsvariablen exportieren
-a – Variablen als Arrays behandeln
8. Interaktiv lesen, Variablen definieren
-p – -Prompt-Nachricht
-n --Anzahl der Zeichen
-t --Timeout
-s --Nicht anzeigen
4. Alias
Der Alias des Befehls bedeutet, wie der Name schon sagt, dass der Befehl unter einem anderen Namen ausgeführt werden kann. Es wird normalerweise verwendet, um die Befehlseingabe zu vereinfachen, dem Befehl einige Parameter hinzuzufügen oder einfach, um dem Befehl mehrere Zugriffsnamen hinzuzufügen.
# alias cp mv rm – Überprüfen Sie, ob die drei Befehle cp, mv und rm Aliase sind
# unalias rm – Löschen Sie den Alias rm
# alias cdyum = 'cd /data/yum' – Vereinfachte Eingabe
# alias rm='rm -i' – Parameter zum Befehl hinzufügen
– Normalerweise befindet sich der Alias in der Konfigurationsdatei ~/.bashrc
set in A pwd alias
# function pwd() { echo "this is a function" } – Erstellen Sie eine pwd-Funktion
# pwd – Führen Sie pwd aus und stellen Sie fest, dass die Ausgabe ein Alias ist
# unalias pwd – Löschen Sie den Alias, führen Sie pwd erneut aus und stellen Sie fest, dass die Ausgabe der Funktionsinhalt ist
# unset pwd – Löschen Sie die Funktion und führen Sie dann pwd aus. Der aktuelle Pfad der Ausgabe lautet
Also: Alias>Funktion>Interner Befehl>Externer Befehl
5. Bedingte Beurteilung
# vim test
------------------- --
if [condition];then
Befehl.. .
fi
------------------------------------
if [condition];then
Befehl...
else
Befehl...
fi
---------------- ------
if [Bedingung 1];then
Befehl1...
elif [Bedingung 2];then
Befehl2. ..
else
command3...
fi
------------------ ----
if [Bedingung 1];then
Befehl1...
if [Bedingung 2];then
Befehl2...
fi
else
if [Bedingung 3];then
command3...
elif [Bedingung 4];then
Befehl4...
else
Befehl5...
fi
fi
6. Testurteil
test == [richter]
1. Urteil darüber, ob die Datei existiert
# vim test.sh
#!/bin/bash
if test -e $1;then --ob es existiert;also -p;-c;-b;-L
if [ -f $1 ];then --Verwenden Sie [ beurteilen ], um
if test -f $1;then --ob es existiert und eine normale Datei ist
if test -d $1;then --ob es existiert und ein Verzeichnis ist
if test -S $1;then --ob es existiert und ist eine Socket-Datei
echo 'YES'
fi
# chmod a+x test.sh
# ./ test.sh [Pfad]
2. Beurteilung in Bezug auf Dateiberechtigungen
-r;-w;-x – ob es Lese-, Schreib- und Ausführungsberechtigungen gibt Berechtigungen
-u --Ob es suid gibt
-g --Ob es sgid gibt
-k --Ob es t bit gibt
-s --Ob es sich um eine leere Datei handelt, -s bedeutet Nicht leer;! -s Leere Datei
3. String-Beurteilung
= --Wenn es gleich ist, muss es Leerzeichen auf beiden Seiten geben auch sein: ==
!= --true if not equal
-z string--true if the length of the string is null
-n string-- Länge der Zeichenfolge Wahr, wenn nicht Null
if test $num1 = $num2;then
if [ $num1 = $num2 ];then
if [ -n $num1 ];then
4. Numerische Beurteilung
-eq -- gleich true
-ne – Wahr, wenn nicht gleich
-gt – Wahr, wenn größer als
-ge – Wahr, wenn größer oder gleich
-lt – True, wenn kleiner als
-le – True, wenn kleiner oder gleich
if test $[num1] -eq $[num2];then
if [ $[num1] -eq $[num2] ];then
5. Logisches Urteil
-a und && - logisches UND
-o und || - logisches ODER
! --Non
Priorität: mit>oder>Non
if test -e $1 -o -e $2;then -- Bestimmen Sie, ob eine Datei vorhanden ist
if [ -e $1 -o -e $2 ];then -- Das Gleiche wie oben
if test ! -e $1 -o ! -e $2;then --Beurteilen Sie, dass die beiden Dateien nicht gleichzeitig existieren
if [ ! -e $1 -o ! $2 ];then -- Wie oben
Das obige ist der detaillierte Inhalt vonTeilen Sie einige grundlegende Kenntnisse über den Betrieb und die Wartung von Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!