; $pwd;ls Führen Sie den rechten Befehl aus, unabhängig davon, ob der linke Befehl einen Fehler verursacht oder erfolgreich ist.
&& $ls prog/ruby && pwd Führen Sie den zweiten Befehl nur aus, wenn der erste Befehl erfolgreich ausgeführt wurde
Der zweite Befehl wird nur ausgeführt, wenn der erste Befehl nicht erfolgreich ausgeführt wird.
() $(date;pwd;ls)>kekka.log Befehle zusammen ausführen
$echo $DATE > 31. August $echo '$DATE' >$DATE Es wird als Zeichenfolge ausgegeben.
$echo $DATE > 31. August $ echo "Das heutige Datum ist $ DATE"
Das heutige Datum ist der 31. August. ''Gleich wie. Der variable Teil von $ wird als Variable ausgegeben.
$ echo "Das aktuelle Verzeichnis ist 'pwd'."
Das aktuelle Verzeichnis ist / home / lpic.
$ echo "Das aktuelle Verzeichnis ist $ (pwd) '."
Das aktuelle Verzeichnis ist / home / lpic.
Das Befehlsergebnis kann ausgegeben werden. Es wird empfohlen, da es einfacher ist zu verstehen, wie man unten schreibt.
less
Tastenbedienung | Erläuterung |
---|---|
Leertaste | Scrollen Sie einen Bildschirm nach unten |
b Taste | Ein Bildschirm nach oben scrollen |
/ | Abwärtssuche |
? | Suche nach oben |
ls | wc -l Übergeben Sie das Ausführungsergebnis des Befehls ls an die Standardeingabe von wc.
dmesg|less Übergeben Sie Kernel-Nachrichten an weniger Standardeingaben.
$ls -l > filelist Tragen Sie das Anzeigeergebnis in die Dateiliste ein.
$ls -l >> filelist Anzeigeergebnis am Ende der Dateiliste hinzugefügt.
< $grep "lpic" <target.txt>result.txt Standardeingabe
$cat > sample.txt <<EOF Ausgabe bis EOF eingegeben wird.
2> $find / -name "*.tmp" 2> error.log Speichern Sie nur die Fehlerausgabe in einer Datei.
cat cat file1 file2 > newfile Anwendung: Schreiben Sie Datei1 Datei2 kontinuierlich in die neue Datei
Möglichkeit | Erläuterung |
---|---|
-n | Anzeige mit Zeilennummer |
nl Textdateien mit Zeilennummern anzeigen.
tail Zeigen Sie 10 Zeilen der letzten Zeile an.
Möglichkeit | Erläuterung |
---|---|
-n Anzahl der Zeilen | Zeigen Sie nur die angegebene Anzahl von Zeilen an |
-f | Echtzeitanzeige. Aktualisieren, wenn es während der Anzeige hinzugefügt wird.(ctrl+Beenden Sie mit c) |
tr $cat /etc/hosts | tr 'a-z' 'A-Z' Konvertieren Sie alle Kleinbuchstaben in der Datei in Großbuchstaben und Kat
split $split -100 sample.txt s_sample.
sample.txt s_sample.aa s_sample.ab s_sample.ac
Trennen Sie sample.txt alle 100 Zeilen in andere Dateien. (Dateinamen enden mit aa, ab, ac ...)
Befehl | Erläuterung |
---|---|
md5sum | Geben Sie den Hashwert über MD5 aus |
sha1sum | |
sha256sum | |
sha512sum |
$sha1sum sample.txt SHA1-Hashwert der Datei sample.txt anzeigen
grep $grep -i ab sample.txt
$grep -v '^#' /etc/httpd/conf/httpd.conf Wird ohne die Zeile mit # am Anfang angezeigt (auskommentieren). (^: Regulärer Ausdruck für das erste Zeichen)
Möglichkeit | Erläuterung |
---|---|
-i | Suche ohne Berücksichtigung der Groß- und Kleinschreibung |
-v | Zeigen Sie Linien an, bei denen die Muster nicht übereinstimmen |
vi
Eingabemodus
Befehl | Erläuterung |
---|---|
i | Geben Sie Text vor dem Cursor ein |
a | Geben Sie nach dem Cursor Text ein |
I | Bewegen Sie den Cursor auf das erste Zeichen der Zeile und geben Sie den Text unmittelbar davor ein |
A | Bewegen Sie den Cursor an das Ende der Zeile und geben Sie den Text unmittelbar danach ein |
o | Fügen Sie eine leere Zeile unter der aktuellen Zeile ein und geben Sie Text in diese Zeile ein |
O | Fügen Sie eine leere Zeile über der aktuellen Zeile ein und geben Sie Text in diese Zeile ein |
Befehlsmodus
Befehl | Erläuterung |
---|---|
h | Bewegen Sie ein Zeichen nach links |
l | Bewegen Sie ein Zeichen nach rechts |
k | Gehen Sie eine Zeile nach oben |
j | Gehen Sie eine Zeile nach unten |
o | Gehen Sie zum Anfang der Zeile |
$ | Gehen Sie zum Ende der Zeile |
H | Gehen Sie zum Anfang der Zeile am oberen Bildschirmrand |
L | Gehen Sie zum Anfang der Zeile am unteren Bildschirmrand |
gg | Gehen Sie zur ersten Zeile der Datei |
G | Gehen Sie zur letzten Zeile der Datei |
nG | Gehen Sie zu Zeile n der Datei |
:n | Gehen Sie zu Zeile n der Datei |
Bewegen Sie 5 Zeichen in 5 Stunden nach links
Befehl | Erläuterung |
---|---|
:q | Beenden, ohne in einer Datei zu speichern |
:q! | Beenden Sie das Programm, ohne zu speichern, was Sie bearbeiten |
:wq | Speichern Sie den zu bearbeitenden Inhalt und beenden Sie ihn |
:w | Überschreiben und speichern Sie die Datei mit dem zu bearbeitenden Inhalt |
:e! | Stellen Sie den zuletzt gespeicherten Inhalt wieder her |
:!Befehl | Führen Sie den Shell-Befehl aus, ohne vi zu beenden |
:r!Befehl | Fügen Sie das Ausführungsergebnis des Shell-Befehls ein |
:! Sie können den Befehl ls ausführen, während ls vi ausführt.
vi Befehl bearbeiten
Befehl | Erläuterung |
---|---|
dd | Aktuelle Zeile löschen |
dw | Löschen Sie von einem Cursor zum nächsten Wort |
yy | Kopieren Sie die aktuelle Zeile in den Puffer |
:w | Überschreiben und speichern Sie die Datei mit dem zu bearbeitenden Inhalt |
p | Fügen Sie den Inhalt des Puffers unterhalb der aktuellen Zeile ein |
P | Fügen Sie den Inhalt des Puffers über der aktuellen Zeile ein |
x | Löschen Sie das Zeichen an der Cursorposition(delete) |
X | Löschen Sie das Zeichen vor der Cursorposition(backspace) |
Löschen Sie 5 Zeilen von der Cursorposition mit 5dd.
vi Suchbefehl
Befehl | Erläuterung |
---|---|
/ | Suchen Sie von der Cursorposition aus rückwärts |
? | Suchen Sie von der Cursorposition aus rückwärts |
n | Suchen nach |
N | Suchen nach(Richtung umkehren) |
:noh | Kandidaten hervorheben |
:%s/A/B/ | Ersetzen Sie die erste gefundene Zeichenfolge A durch die Zeichenfolge B. |
:%s/A/B/g | Ersetzen Sie alle Zeichenfolgen A durch Zeichenfolgen B. |
Befehl | Erläuterung |
---|---|
:set nu | Zeilennummer anzeigen |
:set nonu | Zeilennummer ausblenden h |
:set ts=Tab-Breite | Tab-Breiteを数値で指定する |
gzip
Befehl | Erläuterung |
---|---|
-d | Extrahieren Sie die komprimierte Datei |
-c | Ausgabe auf Standardausgabe |
-r | Komprimieren Sie alle Dateien im Verzeichnis |
$gzip datafile Datei komprimieren
$gzip -r sampled Komprimieren Sie alle Dateien im abgetasteten Verzeichnis einzeln
$gzip -c datafile >datafile.gz Komprimiert Verlassen des Ordners vor der Komprimierung
$bzip2 datafile bzip dauert länger als gzip, hat aber eine höhere Komprimierungseffizienz. (Option -d zur Dekomprimierung hinzufügen)
$xz datafile xz dauert länger als bzip, hat aber eine höhere Komprimierungseffizienz. (Option -d zur Dekomprimierung hinzufügen)
zcat,bzcat,xzcat $zcat sample.gz Überprüfen Sie die komprimierte Textdatei, ohne sie zu dekomprimieren.
tar Sie können Dateien und Verzeichnisse in einer einzigen Archivdatei kombinieren und extrahieren. Entspricht der gzip-Komprimierung mit der Option z.
Befehl | Erläuterung |
---|---|
-c | Erstellen Sie ein Archiv |
-x | Dateien aus dem Archiv extrahieren |
-t | Überprüfen Sie den Inhalt des Archivs |
-f Dateiname | Geben Sie den Namen der Archivdatei an |
-z | gzip-Komprimierung/Einsatz |
-j | bzip2-Komprimierung/Einsatz |
-J | xz Komprimierung/Einsatz |
-v | Detaillierte Informationen anzeigen |
-u | Fügen Sie nur neuere Dateien mit demselben Namen in das Archiv ein |
-r | Dateien zum Archiv hinzufügen |
-N | Zielt nur auf Daten ab, die neuer als das angegebene Datum sind |
-M | In mehrere Geräte aufteilen |
-delete | Dateien aus dem Archiv löschen |
tar cvf /dev/st0 /home Erstellen Sie eine Archivdatei für / home in / dev / st0
tar xvzf software.tar.gz Extrahieren Sie die Archivdatei in das aktuelle Verzeichnis.
tar tf /dev/sdb1 Zeigen Sie den Inhalt des Archivs in / dev / sb1 an.
tar xvf /dev/sdb1 var/log/secure /var
cpio $ls | cpio -o >/tmp/backup Sichern Sie das aktuelle Verzeichnis als / tmp / backup-Datei.
dd $dd if=/dev/sdb of=/dev/sdc Geben Sie den Inhalt der mit / dev / sdb verbundenen Festplatte unverändert an / dev / sdb aus.
Der Befehl dd kann den Inhalt von Geräten wie Festplatten und CD-ROMs unverändert verarbeiten. Der Befehl cp kopiert nur die Datei.
Befehl | Erläuterung |
---|---|
-if | Geben Sie die Eingabedatei an |
-of | Geben Sie die Ausgabedatei an |
chmod
Möglichkeit | Erläuterung |
---|---|
-R | Ändern Sie die Berechtigungen aller Dateien im angegebenen Verzeichnis |
Ziel | Erläuterung |
---|---|
u | Inhaber |
g | Gruppe |
o | Andere Benutzer |
a | Alle Nutzer |
Operation | Erläuterung |
---|---|
+ | Berechtigungen hinzufügen |
- | Berechtigungen entfernen |
= | Geben Sie Berechtigungen an |
Art der Erlaubnis | Erläuterung |
---|---|
r | Leseberechtigung |
w | Schreibberechtigung |
x | Ausführungsberechtigung |
s | SUID or SGID |
t | Klebriges Stück |
$chmod go+w samplefile Geben Sie Gruppen und anderen Benutzern Schreibberechtigung
$chmod o-rw samplefile Entfernen Sie die Schreibausführungsberechtigung von anderen Benutzern
$chmod 644 samplefile Geändert zu 644
SUID,SGID Kann mit der Autorität des Eigentümers der SUID-Datei ausgeführt werden
chmod u+s samplefile
Es gelten SGID-Gruppenzugriffsrechte.
Selbst wenn Sie über eine Schreibberechtigung verfügen, können Sie keine Dateien löschen, die anderen Benutzern als Ihnen gehören.
chmod o+t sampledir
umask Das Standardzugriffsrecht ist festgelegt.
$umask 0002
Der Standardwert ist 777 für Verzeichnisse und 666 für Dateien minus umask.
d→775 file→664
chown
Möglichkeit | Erläuterung |
---|---|
-R | Ändern Sie den Eigentümer des angegebenen Verzeichnisses und aller darin enthaltenen Dateien |
Verweisen Sie in jeder Datei auf dieselbe Entität. $ln file.original file.link_hard
Gibt den Ort unter dem Link an. (Abkürzung) $ln -s file.original file.link_hard
ls -l Überprüfen Sie den erstellten Link.
Fügen Sie der Kopie des symbolischen Links d hinzu.
cp -d file.link_sym file.link3
Wenn nicht hinzugefügt, wird die Link-Quelldatei kopiert. cp file.link_sym file.link2
top Prozessüberwachung Beenden Sie mit Q.
updatedb & Die Verarbeitung kann im Hintergrund durch Hinzufügen von & ausgeführt werden.
jobs Sie können die laufenden Jobs mit dem Befehl jobs überprüfen.
Ich möchte, dass Sie es weiter machen, wenn Sie Ihren Platz für eine lange Zeit verlassen. Wenn Sie möchten, dass es auch dann ausgeführt wird, wenn Sie sich abmelden. Nohub hinzufügen. $nohup updatedb &
Wenn Sie den aktuell ausgeführten Job im Hintergrund ausführen möchten. Pause mit Strg + z → bg 1 (1 ist die Jobnummer, Jobs) Wenn Sie den Hintergrund in den Vordergrund stellen möchten, fg
free Speicherverfügbarkeit
Möglichkeit | Erläuterung |
---|---|
-m | Anzeige in MB |
-s Sekunden | In bestimmten Intervallen weiter anzeigen |
uptime Durchschnittliche Belastung usw.
uname Betriebssystemprüfung
uname -a Detailansicht
watch watch -n 10 uptime Führen Sie die Betriebszeit alle 10 Sekunden aus.
nice Prioritätsspezifikation beim Ausführen eines Befehls. $nice -n -10 updatedb
find $find /root -name "*.txt" Suche nach Dateinamen
Suchformel | Erläuterung |
---|---|
-Name Dateiname | Suche nach Dateinamen |
-Datum und Uhrzeit | Suche nach letzter Zugriffszeit |
-Datum und Uhrzeit der Uhrzeit | Suche nach der letzten Aktualisierungszeit |
-Dauerwelle Zugriffsrechte | Suche nach Zugriffsrecht |
-Größe Größe | Suche nach Dateigröße |
-Typ Dateityp | Suche nach Dateityp f:Datei l:Symbolisch d:Verzeichnis |
-Benutzer Benutzername | Suche nach Dateibesitzer |
Übereinstimmende Dateien anzeigen | |
-Befehl exec || ; | Befehl zum Abgleichen von Dateien ausführen |
-ok Befehl || ¥; | Befehl zum Abgleichen von Dateien ausführen(Mit Bestätigung) |
$find /data -type f -mtime -1 Suchen Sie nach Dateien, die am letzten Tag aktualisiert wurden
$find /usr/bin -type f -perm -u+s Suchen Sie nach Dateien mit SUID im Verzeichnis / usr / bin.
$find /tmp -user student Suchen Sie das Dateiverzeichnis, dessen Besitzer Student ist.
$find -atime +30 -exec rm {}¥; Suchen und löschen Sie Dateien, auf die seit mehr als 30 Tagen nicht mehr zugegriffen wurde.
$alias ls='ls -l' Sie können dem Befehl einen Alias geben. $alias lsless='ls -l|less'
$unalias lsless Geben Sie den festgelegten Alias frei
$function lslink(){ls -l|grep '^l';} Die lslink-Funktion, die nur symbolische Links anzeigt (beginnend mit l)
$function lslink(){ls -l $1 | grep '^1';} Argument mit $ 1. Sie können ein Verzeichnis usw. in das Argument einfügen.
$declare -f lslink Nur definierte Funktionen anzeigen.
unset lslink Lslink-Funktion entfernt.
Datei | Erläuterung |
---|---|
/etc/profile | Wird beim Login ausgeführt und von allen Benutzern referenziert |
/etc/bash.basic | Wird ausgeführt, wenn Bash gestartet und von allen Benutzern referenziert wird |
/etc/bashrc | ~/.Referenziert von bashrc. Referenziert von Beginn der Bash. |
~/.bash_profile | Wird beim Login ausgeführt |
~/.bash_login | ~/.bash_Wenn kein Profil vorhanden ist, wird es beim Anmelden ausgeführt |
~/.profile | ~/.bash_Profil auch~/.bash_Wenn keine Anmeldung vorhanden ist, führen Sie diese bei der Anmeldung aus |
~/.bashrc | Wird ausgeführt, wenn die Bash beginnt |
~/.bash_logout | Wird beim Abmelden ausgeführt |
Ausführen (erfordert Leseberechtigung) $bash lsld
$source lsld
$. lsld
(Ausführungserlaubnis erforderlich) chmod a+x lsld $./lsls Es wird mit dem Dateinamen ausgeführt, wie er ist.
Variablennamen | Erläuterung |
---|---|
$0 | Name der Shell-Skriptdatei(vollständigen Pfad) |
$1 | Erstes Argument |
$2 | Zweites Argument. Unter $ 3 $ 4 $ 5 |
$# | Anzahl der Argumente. |
$@ | Alle Argumente(Raum begrenzt) |
$* | Alle Argumente(Das Trennzeichen ist das durch die Umgebungsvariable IFS angegebene) |
Normale Beendigung → 0 Abnormale Beendigung → außer 0
$echo $? 2
Der Rückgabewert wird $? Zugewiesen.
Testbefehl
Bedingter Ausdruck | Ausführungsergebnis |
---|---|
Dateiformattest | |
-f-Datei | (Ausgenommen Verzeichnisse etc.)True, wenn eine Datei vorhanden ist |
-d Verzeichnis | True, wenn es ein Verzeichnis gibt |
-r Datei | True, wenn die Datei vorhanden und lesbar ist |
-w Datei | True, wenn die Datei vorhanden und beschreibbar ist |
-x-Datei | True, wenn die Datei vorhanden und ausführbar ist |
-s Datei | True, wenn eine Datei größer als 0 ist |
-L-Datei | True, wenn es eine Datei gibt, die eine symbolische Verknüpfung darstellt |
Testen der Dateieigenschaften | |
-E-Datei | True, wenn eine Datei vorhanden ist |
Datei 1-nt Datei 2 | True, wenn Datei 1 eine neuere Änderungszeit als Datei 2 hat |
Datei 1-ot Datei 2 | True, wenn Datei 1 älter als Datei 2 ist |
Numerischer Test | |
Nummer 1-Gleichung Nummer 2 | True, wenn Nummer 1 und Nummer 2 gleich sind |
Nummer 1-ge Nummer 2 | True, wenn Nummer 1 größer oder gleich Nummer 2 ist |
Nummer 1-GT Nummer 2 | True, wenn Nummer 1 größer als Nummer 2 ist |
Nummer 1-le Nummer 2 | True, wenn Nummer 1 kleiner oder gleich Nummer 2 ist |
Nummer 1-Nummer 2 | True, wenn Nummer 1 kleiner oder gleich Nummer 2 ist |
Nummer 1-ne nummer 2 | True, wenn Nummer 1 und Nummer 2 nicht gleich sind |
String-Test | |
-n Zeichenfolge | True, wenn die Länge der Zeichenfolge größer als 0 ist |
-z-Zeichenfolge | True, wenn die Länge der Zeichenfolge 0 ist |
Zeichenfolge 1=String 2 | True, wenn die beiden Zeichenfolgen gleich sind |
Zeichenfolge 1!=String 2 | True, wenn die beiden Zeichenfolgen nicht gleich sind |
Testen Sie die logische Verknüpfung | |
!Bedingungen | Bedingungenが偽であれば真 |
Bedingung 1-a Bedingung 2 | True, wenn beide bedingten Ausdrücke wahr sind(and) |
Bedingung 1-o Bedingung 2 | True, wenn einer der bedingten Ausdrücke wahr ist(or) |
wenn bedingter Ausdruck then Ausführungserklärung 1 else Ausführungserklärung 2 fi
Case case $1 in 1)echo "January";; 2)echo "February";; esac
read Sie können den Namen von der Standardeingabe hören. echo -n "Who are you?:" Benutzername lesen ← Fragen Sie den Benutzer hier echo "Hallo, $ username!" ← Wird hier verwendet
Erste Zeile des Shell-Skripts #!/bin/bash
Datei, für die ein Benutzerkonto festgelegt ist /etc/passwd
Gruppe /etc/group
useradd useradd -c "Linux User" -d /home/linux -s /bin/bash linuxuser
Möglichkeit | Ausführungsergebnis |
---|---|
-c Kommentar | Kommentarfeld angeben |
-d Verzeichnis | Geben Sie das Ausgangsverzeichnis an |
-s Weg | Geben Sie die Standard-Shell an |
cron
crontab Es befindet sich im Verzeichnis / var / spool / cron.
Möglichkeit | Ausführungsergebnis |
---|---|
-e | Crontab bearbeiten(Nicht direkt mit vi usw. öffnen.) |
-l | Inhaltsanzeige |
-r | Datei löschen |
-i | Bestätigen Sie beim Löschen |
-u Benutzername | Bearbeiten Sie die Crontab-Datei mit dem Benutzernamen(Nur Root-Benutzer) |
Format Befehl Minute, Stunde, Tag, Monat, Tag
Feld | Ausführungsergebnis |
---|---|
Tag | 0-Ganzzahl bis 7(0,7:Sonntag bis 6. Samstag) |
15 23 * * * /usr/local/bin/backup (Beginnt jeden Tag um 23:15 Uhr)
0 9,12 * * 1 /usr/local/bin/syscheck (Beginnt am Montag um 09:00 und 12:00 Uhr)
0 */2 * * * /usr/local/bin/syscheck (Beginnen Sie alle 2 Stunden)
at Einmalige Planung $at 5:00 tomorrow at>/usr/local/sbin/backup at> ^ D ← Geben Sie zum Beenden Strg + D ein.
systemd Es kann nach einer bestimmten Zeit von einem Ereignis aktiviert werden.
mail [-s Betreff] [Ziel-E-Mail-Adresse oder Benutzername]
mail -s samplemail student Hallo Student! ← Körper . EOT
mail Überprüfen Sie die empfangene Mail
ping
Möglichkeit | Ausführungsergebnis |
---|---|
-c mal | Senden Sie Pakete eine bestimmte Anzahl von Malen |
-Ich Intervall | Angegebenes Intervall(Sekunden)Schicken Sie jede Tasche |
traceroute Zeigt die Route an, die das Paket zum angegebenen Host zurücklegt.
hostname Zeigen Sie den aktuellen Hostnamen an.
Wenn Sie einen Hostnamen angeben, ändern Sie den Hostnamen.
netstat Zeigen Sie verschiedene Informationen zum Netzwerk an. Überprüfen offener Ports usw.
nc Cat-Befehl im Netzwerk
$nc -l -p 12345 -o listen.log Es überwacht Port 12345 und gibt die empfangenen Daten an die Datei listen.log aus.
$nc centos7.example.com 12345<data.txt Geben Sie den Inhalt der Datei data.txt an Port 12345 des Hosts aus.
ifconfig Bestätigen Sie die IP-Adresse.
/etc/resolv.conf
/etc/nsswitch.conf Wählen Sie die Reihenfolge der Priorisierung von Hosts oder DNS-Servern.
host Kennen Sie die IP des Hosts. Kennen Sie den Host von IP.
nmap
$nmap www.example.net Sie können die offene Portnummer und den Dienstnamen (ssh, http) überprüfen.
Überprüfen Sie regelmäßig. #find / -perm -u+s -ls
#touch /etc/nologin Durch das Erstellen einer Nologin-Datei sind andere Anmeldungen als root verboten.
scp Name der Quelldatei der scp-Kopie [Benutzername @] Zielhost kopieren: [Name der Zieldatei kopieren]
scp /etc/hosts sv3.example.jp:/tmp Kopieren Sie / etx / hosts des lokalen Hosts nach / tmp des Remote-Hosts sv3.example.jp.
scp [Benutzername @] Quellhost kopieren: Name der Quelldatei kopieren Name der Zieldatei kopieren
$scp sv3.example.jp:/etc/hosts . Kopieren Sie / etc / hosts des Remote-Hosts sv3.example.jp in das aktuelle Verzeichnis.
$scp data.txt [email protected]: Kopieren Sie die Datei data.txt des lokalen Hosts in das Home-Verzeichnis des fred-Benutzers des Remote-Hosts sv3.example.jp
Recommended Posts