Heim > Betrieb und Instandhaltung > Betrieb und Wartung von Linux > Grundlagen des Linux-Systems (1)

Grundlagen des Linux-Systems (1)

PHP中文网
Freigeben: 2017-06-20 11:18:49
Original
1828 Leute haben es durchsucht
Terminal:
Die Ausrüstung, die Benutzer verwenden müssen, um mit dem Host zu interagieren;
Physisches Terminal: direkt mit dem lokalen Monitor und Tastaturgerät verbunden; /dev/console
Virtuelles Terminal: verbunden mit dem Physische Terminals, die in der Software über dem Terminal virtualisiert sind, starten standardmäßig 6 virtuelle Terminals
Strg+Alt+F#: [1,6]
Grafikterminal: Ein virtuell in Software implementiertes Terminal, das an ein physisches Terminal angeschlossen ist, aber zusätzlich eine Desktop-Umgebung bereitstellt
Gerätedatei Pfad: /dev/tty#
Simuliertes Terminal:
Befehlszeilenschnittstelle, die unter der grafischen Oberfläche geöffnet wird, basierend auf dem SSH-Protokoll oder dem Telnet-Protokoll usw. Remote geöffnete Schnittstelle
Gerätedatei: /dev/pts/# [0,oo)
Aktuelles Endgerät anzeigen: tty
Interaktive Schnittstelle: Nach dem Starten des Terminals eine interaktive Anwendung an das Endgerät anhängen
GUI:
X-Protokoll, Fenstermanager, Desktop
Desktop:
GNOME (C, gtk)
KDE (C++, qt)
XFCE ( Light Scale Desktop)
CLI:
Shell-Programm:
sh (bourn)
csh
tcsh
ksh (Korn)
bash (Bourn Again Shell), GPL
zsh
Zeigt die aktuell verwendete Shell an:
# echo ${SHELL}
Alle derzeit vom System verwendeten Shells anzeigen:
# cat /etc/shells
Eingabeaufforderung: prompt
[root@localhost ~ ]#
[root@localhost ~]: PS1
prompt:
admin : #
Normaler Benutzer: $
Befehl:
Enter Geben Sie den Befehl ein und drücken Sie die Eingabetaste:
fordert das Shell-Programm auf, das ausführbare Programm oder den Code zu finden, der dem eingegebenen Befehl entspricht, und es nach der Analyse an den Kernel zu senden, um Ressourcen für die Ausführung zuzuweisen es verhält sich wie ein oder mehrere Prozesse.
Es gibt zwei Arten von Befehlen, die ausgeführt werden können die Shell:
Eingebaute Befehle: von der Shell bereitgestellt und in einer bestimmten Befehlsform bereitgestellt
Externe Befehle: unter einer bestimmten Dateisystempfad des aktuellen Systems Es gibt eine entsprechende ausführbare Programmdatei
wo ist
unterscheiden interne oder externe Befehle:
# type COMMAND
Befehl ausführen:
Befehlsformat:
BEFEHL [OPTIONEN...] [ARGUMENTE...]
Optionen: Wird zum Aktivieren oder Deaktivieren verwendet eine oder mehrere Funktionen des Befehls ;
Kurze Option: -c, zum Beispiel: -l, -h
Mehrere kurze Optionen können kann mit dem Befehl verwendet werden, zum Beispiel -l - h, kann als -lh
lange Option geschrieben werden: --word, zum Beispiel: --long, --human-; lesbare
Parameter: Das Aktionsobjekt des Befehls
stellt dem Befehl Daten zur Verfügung
Hinweis:
1. Mehrere Optionen, Parameter und Befehle sollten durch Leerzeichen getrennt werden
2. Befehlsausführung abbrechen: Strg+c
Dateisystem:
C:Programmeoffice11wordword.exe
/etc/sysconfig/network-scripts/ifcfg-eth0
Dateien haben zwei Arten von Daten:
Metadaten: Metadaten
Daten: Daten
1. Bei Dateinamen muss die Groß-/Kleinschreibung beachtet werden.
2. Alle anderen Zeichen als
4 sind alle versteckten Dateien >
Pfad:
Absoluter Pfad: der Pfad ausgehend vom Stammverzeichnis;
Relativer Pfad: der Pfad ausgehend vom aktuellen Verzeichnis Standort;
Darstellung des aktuellen Standorts:
(1) ./: ./sysconfig/network-scripts
(2) Lassen Sie die obigen Symbole weg: sysconfig/network-scripts
..: Zeigt das übergeordnete Verzeichnis des aktuellen Verzeichnisses an
Aktuelles Verzeichnis: aktuelles Verzeichnis, auch Arbeitsverzeichnis genannt
pwd: Arbeitsverzeichnis drucken
LSB: Linux Standard Base
Befehlsübersicht: ls, cd, type, tty, cat, which, whereis, pwd , echo
Befehl:
(1) Dateisystembezogen:
Verzeichnisverwaltung
Dateiverwaltung
Dateianzeige
Dateibearbeitung
(2) Bezogen auf die Systemverwaltung:
Hilfe zu Linux-Befehlen erhalten
Externe Befehle: Es gibt ein ausführbares Programm, das sich in einem bestimmten Verzeichnis des Dateisystems befindet
welches, wo ist
Der Pfad, in dem das Shell-Programm nach ausführbaren Programmdateien sucht, ist in der Umgebungsvariablen PATH definiert;
# echo $PATH
Hinweis: Von links nach rechts
Format: BEFEHL [OPTIONEN...] [ARGUMENTE...]
Interner Befehl:
# help COMMAND
Externer Befehl:
(1) # COMMAND --help
# COMMAND -h
(2) Handbuch (manuell)
# man COMMAND
(3) Informationsseite
# info BEFEHL
(4) Hilfedokument des Programms selbst
README
INSTALLIEREN
ChangeLog
(5) Offizielle Programmdokumentation
Offizielle Website: Dokumentation
( 6) Offizielle Dokumentation der Verteilung
(7) Google
Intern Befehlshilfe:
# help COMMAND
Hash-Befehl:
Externer Befehl, der von der Shell durchsucht wird. Die Pfadergebnisse werden im kv-Speicher (Schlüsselwert) zwischengespeichert >
Befehlsverlauf verwalten;
Beim Anmelden an der Shell werden die in der Befehlsverlaufsdatei aufgezeichneten Befehle gelesen: ~/.bash_history
Der neu ausgeführte Befehl nach der Protokollierung in der Shell werden nur im Cache aufgezeichnet; diese Befehle werden an die Befehlsverlaufsdatei „angehängt“, wenn der Benutzer den Verlauf verlässt;
-a: Die Verlaufsliste der neu ausgeführten Befehle in dieser Sitzung an die Verlaufsdatei anhängen.
-d: Den angegebenen Befehl löschen im Verlauf;
-c: Befehlsverlauf löschen
Schnellbedienung:
!#: Aufrufverlauf Der #. Befehl
!string: Rufen Sie den neuesten Befehl auf, der mit string im Verlauf beginnt; 🎜>!!: der vorherige Befehl
Externer Befehlshilfezugriff:
(2) man BEFEHL
Manpages: /usr/share/man
man1 ... man8
man1: Benutzerbefehl
man2: Systemaufruf
man3: C-Bibliotheksaufruf
man4: Gerätedatei und Spezialdatei
man5: Konfigurationsdateiformat
man6: Spiel
man7: Verschiedenes
man8: Verwaltungsbefehle
Hinweis: Einige Tasten verfügen über Hilfehandbücher in mehr als einem Kapitel ;
Um das Handbuch im angegebenen Kapitel anzuzeigen: man # COMMAND
Man-Befehlskonfigurationsdatei: /etc /man.config
MANPATH /PATH/TO/SOMEWHERE: Geben Sie den neuen Speicherort für die manuelle Dateisuche an
# man -M /PATH/TO/SOMWHERE COMMAND: Durchsuchen Sie die Handbuchseite nach dem COMMAND-Befehl an der angegebenen Stelle und zeigen Sie ihn
Absatzbeschreibung in der Hilfe an Handbuch:
NAME
SYNOPSIS
BESCHREIBUNG
OPTIONEN
BEISPIELE
AUTOR
FEHLER MELDEN
SIEHE AUCH
SYNOPSIS:
[]: optionaler Inhalt
<> ;: Erforderlicher Inhalt
a|b: Wählen Sie einen der beiden
... : Der gleiche Inhalt kann mehrmals erscheinen
So bedienen Sie den man-Befehl:
Leertaste, ^V, ^f, ^F: Scrollen Sie zum Ende der Datei; b, ^B: Drehen Sie den Bildschirm zum Anfang der Datei;
d, ^D: Den halben Bildschirm an das Ende der Datei drehen;
u, ^U: Den halben Bildschirm an den Anfang der Datei drehen;
RETURN, ^N, e, ^E oder j oder ^J: zum Ende der Datei drehen. Eine Zeile umdrehen
y oder ^Y oder ^P oder k oder ^K: Eine Zeile zum Anfang der Datei umdrehen
q: Beenden;
#: Zur Zeile # springen
1G: Zurück zum Anfang der Datei
G: Gehe zu das Ende der Datei
Textsuche:
/KEYWORD:
Verwenden Sie die durch KEYWORD angegebene Zeichenfolge, um von der aktuellen Position bis zum Ende der Datei zu suchen. Bei den Zeichen wird die Groß-/Kleinschreibung nicht beachtet.
n: Nächstes A
N: Vorherige
?KEYWORD:
Eine durch KEYWORD angegebene Zeichenfolge. Als Schlüsselwort suchen von der aktuellen Position bis zum Anfang der Datei; bei den Zeichen wird die Groß-/Kleinschreibung nicht beachtet; n: Gleiche Richtung wie beim Suchbefehl, weiter
N: Die entgegengesetzte Richtung zum Suchbefehl, die vorherige
(3) info
info COMMAND
(4) Hilfedokument des Programms selbst
/usr/share /doc/ COMMAND-VERSION
(5) Offizielle Programmdokumentation
(6 ) Release-Version Offizielle Dokumentation für
(7) Google
(8) slideshare
Grundbefehl:
Datum:
Datum [OPTION]... [+FORMAT]: Anzeige
FORMAT: Formatsymbol
%D
%F
%T
 Datum [ MMDDhhmm[[ CC]YY][.ss]]: Einstellungen
                                                                                           🎜>hh: Stunden
                                                                                                                                                🎜>CCYY: Vierstellig. Jahr
                                                                                                                                                                            >
Systemuhr: Timing, das vom Linux-Kernel anhand der Betriebsfrequenz der CPU durchgeführt wird
Hardware Uhr:
hwclock: Hardware-Uhr anzeigen
- s, --hctosys
-w, --systohc
cal: Kalender
Verzeichnisbezogene Befehle:
Aktuelles Verzeichnis oder ArbeitsverzeichnisHome-Verzeichnis, Home-Verzeichnis: HOME
root: /root
Normaler Benutzer: /home/USERNAME
/home/tom
~: Home-Verzeichnis des Benutzers
cd:
cd oder cd ~: Zurück zum Home-Verzeichnis des aktuellen Benutzers
cd ~USERNAME: Wechseln zu Das Home-Verzeichnis des angegebenen Benutzers
cd -: Zwischen dem vorherigen Verzeichnis und dem aktuellen Verzeichnis hin und her wechseln
.
..
Zugehörige Umgebungsvariablen:
PWD : speichert den aktuellen Verzeichnispfad;
OLDPWD: den letzten Verzeichnispfad;
pwd: zeigt das aktuelle Verzeichnis an
ls: list
zeigt die Dateiliste unter dem angegebenen Pfad an; >
ls [OPTION]... [DIR]...
-a, --all: Alle Dateien anzeigen, einschließlich versteckter Dateien;
-l: Langformat
-rw-r--r-- 1 root root 44800 14. August 14:32 install.log
-rw-r--r--:
Die erste Ziffer links: Dateityp
-, d, l, b, c, p, s
Die nächsten 9 Ziffern von
: Zugriffserlaubnis, perm
Anzahl: die Häufigkeit, mit der die Datei fest verknüpft wurde
Linkes Stammverzeichnis: der Eigentümer der Datei
Rechtes Stammverzeichnis: Die Gruppe der Datei
44800: Die Größe der Datei
14. August 14:32: Die Zeitpunkt der letzten Änderung der Datei
install.log: Dateiname
-h, --human-readable: Einheitenumrechnung
-d: Zeigt verwandte Attribute des Verzeichnisses selbst an; wird normalerweise zusammen mit -l verwendet; --r, --reverse: Invertiert anzeigen order
-R, --recursive: rekursiv
stat /PATH/TO/SOMEFILE: Ruft die angegebenen Dateimetadaten von
Dateianzeigebefehl ab: cat, tac
cat [OPTION]... [DATEI] ...
-E: Zeilenabschlusszeichen anzeigen$
-n: Nummer jede angezeigte Zeile
Befehl zum Anzeigen des Dateiinhaltstyps: Datei
Datei /PATH/TO/SOMEWHERE
Echo-Befehl: echo
-n: automatisches Hinzufügen von Zeilenumbrüchen deaktivieren;
-e: Escape-Zeichen verwenden;
n: Zeilenumbruch
t: Tabulatorzeichen
echo „$VAR_NAME“: Variablen werden ersetzt, doppelte Anführungszeichen stellen schwache Referenzen dar
echo „$VAR_NAME“: Variablen werden nicht ersetzt , starke Referenzen
welche: Zeigt den Programmdateipfad an, der dem Befehl entspricht
welcher [OPTION] BEFEHL
--skip-alias: Anzeige von Aliasen unterdrücken
whatis:
Verwenden Sie den Befehl mkwhatis, um das aktuelle System zu speichern. Alle Hilfehandbücher und entsprechenden Schlüsselwörter werden als Datenbank erstellt.
Systemverwaltungsbefehle:
Herunterfahren:
Halt, Ausschalten, Herunterfahren, Initialisierung 0
Neustart:
Neustart, Herunterfahren, Init 6
Bezogen auf die Benutzeranmeldung:
who, whoami, w
Linux-Dateisystem:
Root-Dateisystem (rootfs):
Root-Dateisystem
LSB, FHS: (FileSystem Heirache Standard)
/etc, /usr, /var, /root, /home, /dev
/boot: Speicherverzeichnis der Bootdatei, Kerneldateien (vmlinuz), Bootloader (Bootloader, Grub) werden darin gespeichert dieses Verzeichnis;
/bin: Grundlegende Befehle für alle Benutzer können nicht mit unabhängigen Partitionen verknüpft werden, die beim Start des Betriebssystems verwendet werden;
/sbin: Grundlegende Befehle für die Verwaltung; können nicht mit unabhängigen Partitionen, Programmen verknüpft werden, die beim Start des Betriebssystems verwendet werden;
/lib: grundlegende gemeinsam genutzte Bibliotheksdateien und Kernel Moduldateien (/lib/modules);
/lib64: Zusätzlicher gemeinsam genutzter Bibliotheksdateispeicherort für x86_64-Systeme
/etc: Konfigurationsdateiverzeichnis (reine Textdatei);
/home/USERNAME: Home-Verzeichnis des normalen Benutzers;
/root: Home-Verzeichnis des Administrators;
/media: Mountpunkt für tragbare mobile Geräte
CD-ROM
USB
/mnt: temporärer Dateisystem-Mountpunkt;
/dev: Gerätedatei und spezieller Dateispeicherort; b: Blockgerät, Direktzugriff
c: Zeichengerät, linearer Zugriff
/opt: Der Installationsort von Drittanbieteranwendungen
/srv: Daten, die von auf dem System ausgeführten Diensten verwendet werden; >
/tmp: temporärer Dateispeicherort;
/usr: universelle freigegebene, schreibgeschützte Daten;
bin: Eine Anwendung, die bereitgestellt wird, um sicherzustellen, dass das System über vollständige Funktionen verfügt > lib64:
include: Header-Dateien von C-Programmen;
share: strukturierte unabhängige Daten, wie doc, man, usw.;
lokal: Installationsort von Drittanbieteranwendungen
bin, sbin, lib, lib64 usw., teilen
/var: variable Datendateien
cache: Anwendungs-Cache-Datenverzeichnis;
lib: Anwendungsstatus-Informationsdaten;
local: zum Speichern variabler Daten für Anwendungen unter der
Sperre : Datei sperren
log: Protokollverzeichnis und -datei
opt: dediziert für /opt Die Anwendung speichert variable Daten
run: Daten im Zusammenhang mit dem laufenden Prozess; werden normalerweise zum Speichern der PID-Datei des Prozesses verwendet
spool: Anwendungsdatenpool
tmp: temporäre Daten speichern, die zwischen zwei Systemneustarts generiert wurden;
/proc: Ein virtuelles Dateisystem, das zur Ausgabe von Kernel und Prozess verwendet wird Informationen;
/sys: Ein virtuelles Dateisystem, das zur Ausgabe von Informationen zu Hardwaregeräten auf dem aktuellen System verwendet wird;
/selinux: Sicherheit erweitertes Linux, der Speicherort von Selinux-bezogenen Sicherheitsrichtlinien und anderen Informationen;
Anwendungen unter Linux Komponenten von:
Binärdateien: /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
Bibliotheksdateien: /lib , /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
Konfigurationsdateien: /etc, /etc/DIRECTORY, /usr/local/etc
Hilfedateien: /usr/share/man, /usr/share/doc, /usr/local/share/man, /usr/local/share /doc
Dateityp unter Linux:
- (f): Gewöhnliche Datei
d: Verzeichnisdatei;
b: Blockgerät
c: Zeichengerät; 🎜>l: symbolische Linkdatei;
p: Pipe-Datei;
s: Socket-Datei;
Systemverwaltungsbefehle:
Herunterfahren:
halt, Ausschalten, Herunterfahren, Init 0
Neustart:
Neustart, Herunterfahren, Init 6
Bezogen auf die Benutzeranmeldung:
who, whoami, w
Herunterfahren oder neu starten:
Anhalten, Ausschalten
Neustart
-f: erzwingen, nicht Herunterfahren aufrufen
-p: Strom abschalten
Herunterfahren:
Herunterfahren [OPTION]... ZEIT [MESSAGE]
-r: Neustart
-h: Halt
-c: abbrechen
ZEIT:
jetzt: Sofort
+m: Relative Zeitdarstellung, wie lange nach der Befehlsübermittlung, zum Beispiel +3;
hh:mm: absolute Zeitdarstellung, geben Sie die spezifische Zeit an
Anzeigebefehl für Benutzeranmeldeinformationen:
whoami: Zeigt die aktuell angemeldeten gültigen Benutzer an
who: Alle aktuellen Anmeldesitzungen im System; 🎜>w: Alle aktuellen Anmeldesitzungen und vom System ausgeführten Vorgänge;
Grundfunktionen von Bash (1):
(1) Befehlsverlauf
Verlauf
Umgebungsvariablen:
HISTSIZE: Die Anzahl der Befehlsverlaufsdatensätze;
HISTFILE: ~/.bash_history;
HISTFILESIZE: Die Anzahl der Befehle Verlaufsdatei-Datensätze Nummer; Verlaufsnummer: Zeigt die neuesten # Befehle im Verlauf an.
-a: Den Befehlsverlauf des aktuellen Sitzungspuffers manuell anhängen
Aufrufbefehle im Verlauf:
!#: Wiederholen Sie den #ten Befehl;
! !:
!string
Rufen Sie den letzten Parameter des vorherigen Befehls auf:
!$:
ESC, .
Alt+.
Steuern Sie, wie der Befehlsverlauf aufgezeichnet wird:
Umgebungsvariable: HISTCONTROL
ignoredups: Ignorieren Sie doppelte Befehle; aufeinanderfolgendes und identisches Quadrat bedeutet „wiederholen“; 🎜>
So ändern Sie den Wert der Umgebungsvariablen: Exportvariablenname="Wert"
Variablenzuweisung: Speichern Sie die Daten nach dem Zuweisungssymbol Der Variablenname zeigt auf den Speicherplatz
(2) Befehlsabschluss
Bash-Ausführung Befehl:
Interne Befehle:
Externe Befehle: Bash durchsucht jeden Pfad von links nach rechts nach dem angegebenen Befehlsnamen basierend auf dem definierten Pfad Durch die PATH-Umgebungsvariable ist es der Befehl, der zum ersten Mal ausgeführt werden soll:
Die vom Benutzer angegebene Zeichenfolge hat nur einen eindeutigen entsprechenden Befehl.
Der entsprechende Befehl, der mit der vom Benutzer angegebenen Zeichenfolge beginnt, ist nicht eindeutig. Dann gibt Tab erneut eine Liste aus
(3) Pfadvervollständigung
behandelt die vom Benutzer angegebene Zeichenfolge als Anfang des Pfads und sucht nach Dateien beginnend mit der angegebenen Zeichenfolge im angegebenen übergeordneten Verzeichnis Name;
Wenn eindeutig: direkt ausfüllen
Andernfalls: Tab erneut, um eine Liste zu erhalten ;
(4) Befehlszeilenerweiterung
~: Zum Home-Verzeichnis des Benutzers erweitern
~ BENUTZERNAME: Erweitern Sie das Home-Verzeichnis des angegebenen Benutzers
{}: Kann eine durch Kommas getrennte Liste hosten und diese in mehrere Pfade erweitern
/tmp/{a,b} = /tmp/a, /tmp/b
/tmp/{tom,jerry}/hi = /tmp/tom/hi , /tmp/jerry/hi
(5) Status des Befehlsausführungsergebnisses
Erfolgreich
Fehlgeschlagen
bash verwendet die spezielle Variable $?, um das Ausführungsstatusergebnis des letzten Befehls zu speichern:
0: Erfolg
1-255: Fehler
Es gibt zwei Arten von Ergebnissen für die Programmausführung:
Der Rückgabewert des Programms;
Das Ausführungsstatusergebnis des Programms
Verzeichnisverwaltungsbefehle:
cd, pwd, ls
mkdir, rmdir, tree
mkdir [Optionen ] /path/to/somewhere
-p: existiert ohne Fehlermeldung und kann die erforderlichen Verzeichnisse automatisch erstellen
-v : Anzeigen detaillierte Informationen
-m MODUS: Geben Sie Berechtigungen direkt beim Erstellen eines Verzeichnisses an
Baum:
-d: Nur das Verzeichnis anzeigen
-L Ebene: Geben Sie die Anzahl der anzuzeigenden Ebenen an
-P-Muster: Nur Pfade anzeigen, die mit dem angegebenen Muster übereinstimmen;
rmdir: leere Verzeichnisse löschen
rmdir [ OPTION ]... VERZEICHNIS...
-v: Anzeigevorgang
Textdatei-Anzeigebefehl:
Katze, Tac
mehr, weniger, Schwanz, Kopf
mehr
mehr [OPTIONEN...] DATEI...
-d: Seitenumblättern und Aufforderungen zum Beenden anzeigen
weniger
weniger [OPTIONEN...] DATEI...
head
head [OPTION]... [DATEI]...
-c #: Geben Sie an, dass die ersten # Bytes abgerufen werden sollen
-n #: Geben Sie die #-Zeile an, bevor Sie
-#:
< erhalten 🎜> tail
tail [OPTION]... [DATEI]...
-c #: Geben Sie # Wörter an nach dem Erwerb Abschnitt
-n #: Geben Sie die #-Zeile an, nachdem Sie
-#:
< erhalten haben 🎜>- f: Den neu angehängten Inhalt der Datei verfolgen und anzeigen
Datei-Zeitstempel-Verwaltungstool:
Touch
Datei: Metadaten, Daten
Dateistatus anzeigen: Statistik
Drei Zeitstempel:
Zugriffszeit: Zugriffszeit, abgekürzt als atime, Dateiinhalt lesen
Änderungszeit: Änderungszeit, mtime, Dateiinhalt (Daten) ändern
Zeit ändern: Zeit ändern, ctime, Metadatenänderungen
Touch-Befehl :
berühren Sie [OPTION]... DATEI...
-a: nur einmal
-m: nur mtime
-t STEMPEL:
[[CC]YY]MMDDhhmm[.ss]
-c: Wenn die Datei nicht existiert, wird sie nicht erstellt
Dateisystem:
boot, bin, sbin, lib, lib64, dev, home, root, mnt, media, etc, proc, sys
usr
var
Grundfunktionen von Bash:
Befehlsvervollständigung
Pfadvervollständigung
Befehlsverlauf
Befehlszeilenerweiterung:
~, {}
Statusergebnis des Befehls
Erfolg: 0
Fehler: 1-255
Verzeichnisverwaltung: mkdir, rmdir
Dateianzeige: mehr, weniger, Schwanz, Kopf
Zeitstempelverwaltung: Touch
-a, -m, -t
-c
Dateiverwaltung:
cp, mv, rm
Befehl kopieren: cp
cp [ OPTION]... [-T] QUELLE ZIEL
        cp [OPTION]... QUELLE... VERZEICHNIS
            cp [OPTION]... -t VERZEICHNIS QUELLE...
cp SRC DEST
SRC ist die Datei:
Und füllen Sie den Inhalt in SRC in
Wenn das Verzeichnis vorhanden ist:
Wenn DEST eine Datei ist: Überschreiben Sie den Inhalt in SRC durch
Zu diesem Zeitpunkt wird empfohlen, die Option -i für den cp-Befehl zu verwenden
Wenn DEST ein Verzeichnis ist: Erstellen Sie eine neue Datei mit der Originaldatei unter DEST-Datei mit dem gleichen Namen und füllen Sie den Inhalt in SRC in die neue Datei
cp SRC... DEST
SRC...: Mehrere Dateien
DEST muss existieren und ein Verzeichnis sein, sonst tritt ein Fehler auf
cp SRC DEST
SRC ist das Verzeichnis:
Option zu diesem Zeitpunkt verwenden: -r
Wenn DEST nicht ist Existiert: Erstellen Sie das angegebene Verzeichnis und kopieren Sie alle Dateien im SRC-Verzeichnis nach DEST; Wenn DEST vorhanden ist:
Wenn DEST eine Datei ist : Einen Fehler melden
                                                                                                                                                                                                     
-r, -R: Kopieren Sie das Verzeichnis und alle darin enthaltenen Inhalte rekursiv.
- a: Archiv, äquivalent zu -dR -- pserv = all
Modus: Berechtigungen
Eigentum: Eigentümergruppe
Zeitstempel:
Links
                                                                                                                                                      🎜>
-p: --preserv=mode,ownership,timestamp
-v: --verbose
-f: --force
mv: verschieben, Datei verschieben
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t VERZEICHNISQUELLE...
Allgemeine Optionen:
-i: interaktiv
-f : erzwingen
rm: entfernen, löschen
rm [OPTION]... DATEI...
Allgemeine Optionen:
-i: interaktiv
-f: Löschung erzwingen
-r: rekursiv
rm -rf
Texteditor: nano
Vollbild-Editor
Grundlegende Funktionen von Bash (2):
1. Befehlsalias (Alias)
Erreicht durch den Alias-Befehl:
(1) alias
Zeigt alle verfügbaren Befehlsaliase des aktuellen Shell-Prozesses an
(2) alias NAME='VALUE'
Definieren Sie den Alias ​​NAME, der der Ausführung des Befehls VALUE entspricht; 🎜>
Hinweis: Der in der Befehlszeile definierte Alias ​​ist nur für den aktuellen Shell-Prozess gültig. Wenn er dauerhaft sein soll, muss er in der Konfigurationsdatei definiert werden 🎜>
Nur ​​für aktuellen Benutzer: ~/.bashrc
Gültig für alle Benutzer: /etc/bashrc
Hinweis: Die durch Bearbeiten der Konfiguration gegebene neue Konfiguration wird nicht sofort wirksam
Der Bash-Prozess liest die Konfigurationsdatei:
source /path/to/config_file
/path/to/config_file
Alias ​​rückgängig machen: unalias
unalias [-a] Name [Name ...]
Hinweis: Wenn der Alias ​​mit dem Namen des ursprünglichen Befehls übereinstimmt, können Sie „COMMAND“ verwenden 🎜>
2. glob (globbing)
bash Wird verwendet, um den Dateinamen „Platzhalter“ zu implementieren
Platzhalterzeichen: *, ?, []
(1) *
Beliebiges Zeichen beliebiger Länge
a*b:
aab, ab, a123b,
abc
(2) ?
Beliebiges einzelnes Zeichen
a?b:
aab
ab, a12b, abc
(3) []
Entspricht jedem einzelnen Zeichen im angegebenen Bereich
[0-9]
[a-z]: Zeichen sind Groß- und Kleinschreibung wird nicht beachtet
(4 ) [^]
trifft jedes einzelne Zeichen außerhalb des angegebenen Bereichs zu
[^0-9]
Sonderzeichensatz:
[:digit:]: beliebige Zahl, entsprechend 0-9
[:lower:]: beliebige Kleinbuchstaben
[:upper :]: beliebige Großbuchstaben
[:alpha:]: beliebige Groß- und Kleinbuchstaben
[:alnum:]: beliebige Zahlen bzw Buchstaben
[:space:]:
[:punct:]: Satzzeichen
3. Bash-Tastenkombinationen
Strg+l: Bildschirm löschen, entspricht dem Löschbefehl;
Strg+a: zum Anfang des Befehls springen
Strg+e: zum Ende des Befehls springen; >
Strg+c: Ausführung des Befehls abbrechen;
Strg+u: Löschen alles vom Anfang der Befehlszeile bis Guangcun;
Strg+k: Löschen, wo sich der Cursor befindet Alles vom Ende der Befehlszeile; Anweisung + Daten
Daten lesen: Eingabe
Ausgabedaten: Ausgabe
Geöffnete Dateien haben einen fd: Dateideskriptor (Dateideskriptor)
Standardeingabe: Tastatur, 0
Standardausgabe: Monitor, 1
Standardfehlerausgabe: Monitor, 2
E/A-Umleitung: Standardposition ändern
Ausgabeumleitung: COMMAND > NEW_POS
>: Umleitung überschreiben, der ursprüngliche Inhalt in der Zieldatei wird gelöscht.
>>: Gewichtsausrichtung anhängen, neuer Inhalt wird gelöscht am Ende der Zieldatei angehängt werden
# set -C: Überschreiben des Inhalts in die vorhandene Datei verhindern; >
Überschreibung erzwingen:>|
# set +C:
2> Ausgabedatenstrom für Umleitungsfehler:
Standard Ausgabe und Fehlerausgabe werden jeweils an unterschiedliche Orte geleitet:
COMMAND > /path/to/error.out
Standardausgabe und Fehlerausgabe im selben Datenstrom zur Umleitung zusammenführen:
&>: Umleitung überschreiben
&>>: Umleitung anhängen
COMMAND > /path/to/file.out 2> BEFEHL >> /path/to/file.out 2>> &1
Eingabeumleitung:<
tr-Befehl: Zeichen konvertieren oder löschen
tr [OPTION]... SET1 [SET2 ]
HIER Dokumentation: <<
# cat << EOF
# cat > /path/to/somefile << BEFEHL2 |. BEFEHL3 |...
Hinweis: Der letzte Befehl wird in einem Sub-Shell-Prozess des aktuellen Shell-Prozesses ausgeführt; >
Tee-Befehl:
Tee [OPTION]... [DATEI]...
Textverarbeitungswerkzeuge: wc, Ausschneiden, Sortieren, Uniq
wc-Befehl:
wc [OPTION ]... [DATEI]...
-l: Zeilen
-w: Wörter
-c: Zeichen
Schnittbefehl:
Schnitt [OPTION].. [DATEI ]...
-d DELIMITER: Geben Sie das Trennzeichen an
-f FILEDS:
#: Das #-te Feld
#,#[,#]: diskrete Mehrfachfelder, z. B. 1,3,6
#-#: Mehrere aufeinanderfolgende Felder, z. B. 1-6
Gemischte Verwendung: 1-3,7
--output-delimiter=STRING
Sortierbefehl:
sort [OPTION] ... [DATEI ]...
-f: Groß-/Kleinschreibung ignorieren
-r: Reihenfolge umkehren
-t DELIMITER: Feldtrennzeichen
-k #: Sortierung basierend auf dem angegebenen Feld
-n: Sortierung nach numerischem Wert
-u: uniq, Duplikate nach dem Sortieren entfernen
uniq-Befehl:
uniq [OPTION]... [DATEI]...
-c: Zeigt die Anzahl der Wiederholungen jeder Zeile an; >-d: nur wiederholte Zeilen anzeigen;
-u: nur nicht duplizierte Zeilen anzeigen
Hinweis : Kontinuierliche und identische Quadrate sind Duplikate
Benutzer- und Gruppenverwaltung
Ressourcenzuweisung:
Authentifizierung: Authentifizierung
Autorisierung: Autorisierung
Buchhaltung: Wirtschaftsprüfung
Vorsprechen
Token, Identität (Benutzername/Passwort)
Linux-Benutzer: Benutzername/UID
Administrator: root, 0
Normaler Benutzer: 1-65535
Systembenutzer: 1-499, 1-999
Erteilen Sie dem Daemon-Prozess Berechtigungen, um Ressourcen zu erhalten
Login-Benutzer: 500+, 1000+
Interaktive Anmeldung
Linux-Gruppe: Gruppenname/GID
Administratorgruppe: root, 0
Normale Gruppe:
Systemgruppe: 1 -499 , 1-999
Normale Gruppe: 500+, 1000+
Linux-Sicherheitskontext:
Laufendes Programm: Prozess
Als Prozessinitiator ausführen:
root: cat
tom: cat
Alle Ressourcen, auf die der Prozess zugreifen kann. Die Berechtigungen hängen von der Identität des Initiators ab der Prozess;
Linux-Gruppenkategorie:
Basisgruppe des Benutzers (Hauptgruppe):
Der Gruppenname ist derselbe wie der Benutzername und enthält nur einen Benutzer: Private Gruppe
Zusätzliche Gruppe des Benutzers (zusätzliche Gruppe):
Linux-Benutzer- und -gruppenbezogene Konfigurationsdateien:
/etc/passwd: Benutzer und ihre Attribute Informationen (Name, UID , grundlegende Gruppen-ID usw.); : Benutzerpasswort und zugehörige Attribute;
/etc/gshadow: Gruppenpasswort und zugehörige Attribute
/etc/passwd:
Name:Passwort:UID:GID:GECOS:Verzeichnis:Shell
Benutzername: Passwort: UID: GID: GECOS: Home-Verzeichnis: Standard-Shell
/etc/group:
group_name: Passwort:GID:user_list
Gruppenname: Gruppenpasswort: GID: Benutzerliste mit der aktuellen Gruppe als zusätzliche Gruppe (Trennzeichen ist Komma)
/etc/shadow
Benutzername: Verschlüsseltes Passwort: Datum der letzten Passwortänderung: Passwort Minimale Nutzungsdauer: Maximale Passwort-Nutzungsdauer : Zeitraum der Passwortwarnung: Zeitraum der Passwortsperre: Ablaufdatum des Kontos: Reservierte Felder
Verschlüsselungsmechanismus:
Verschlüsselung: Klartext--> Chiffretext
Entschlüsselung: Chiffretext--> Klartext
Einwegverschlüsselung: Datenfingerabdruck extrahieren
md5: Message Digest, 128 Bit
sha1: sicherer Hash-Algorithmus, 160 Bit
sha224: 224 Bits
sha256: 256 Bits
sha384: 384 Bits
sha512: 512bits
Lawineneffekt: Kleine Änderungen in den Anfangsbedingungen führen zu großen Änderungen in den Ergebnissen ;
Ausgabe mit fester Länge:
Richtlinie zur Passwortkomplexität:
1. Großbuchstaben, Kleinbuchstaben und Sonderzeichen
2. Verwenden Sie ein zufälliges Passwort
Ändern Sie es regelmäßig; verwenden Sie nicht das Passwort, das Sie kürzlich verwendet haben.
Benutzer- und gruppenbezogene Verwaltungsbefehle:
Benutzererstellung: useradd
useradd [Optionen] LOGIN
-u UID: [ UID_MIN, UID_MAX], definiert in /etc/login.defs
-g GID: Gibt die Basisgruppe an, zu der der Benutzer gehört, was ein Gruppenname oder eine GID sein kann
-c „COMMENT“: Kommentarinformationen des Benutzers;
-d /PATH/TO/HOME_DIR: Verwenden Sie den angegebenen Pfad als Home-Verzeichnis ;
-s SHELL: Geben Sie das Standard-Shell-Programm des Benutzers an, die verfügbare Liste befindet sich in der Datei /etc/shells
-G GROUP1[,GROUP2,... [,GROUPN]]]: Geben Sie zusätzliche Gruppen für den Benutzer an; die Gruppe muss im Voraus vorhanden sein
-r: Systembenutzer erstellen
CentOS 6: ID<500
CentOS 7: ID<1000
Standardwerteinstellung: /etc/default/
useradd -D
-s SHELL
Gruppenerstellung: groupadd
groupadd [OPTION]... Gruppenname
-g GID: Geben Sie die GID-Nummer an ;[GID_MIN, GID_MAX]
-r: Systemgruppe erstellen;
CentOS 6: ID< 500
CentOS 7: ID<1000
Benutzerbezogene ID-Informationen anzeigen: id
id [OPTION]... [USER]
-u: UID
-g: GID
-G: Gruppen
-n: Name
Schalter Benutzer oder führen Sie Befehle als andere Benutzer aus :su
su [options...] [-] [user [args...]]
So wechseln Sie Benutzer:
su Benutzername: Nicht-Login-Wechsel, d. h. die Konfigurationsdatei des Zielbenutzers wird nicht gelesen
su - Benutzername: Login-Umschaltung, liest die Konfigurationsdatei des Zielbenutzers
Hinweis: Es ist kein Passwort erforderlich für Root-SU an andere Benutzer; Nicht-Root-Benutzer Beim Wechsel ist ein Passwort erforderlich.
Führen Sie den Befehl als eine andere Identität aus:
su [-] Benutzername -c 'BEFEHL'
Optionen:
-l: „su -l UserName“ entspricht „su -UserName“
Benutzerattributänderung: usermod
usermod [OPTION] login
-u UID: Neue UID
-g GID: Neue Basisgruppe
-G GROUP1[,GROUP2, ...[,GROUPN]]]: neue angehängte Gruppe, die ursprünglich angehängte Gruppe wird überschrieben; wenn Sie die ursprüngliche beibehalten, müssen Sie die verwenden -a-Option gleichzeitig, was bedeutet: anhängen;
-s SHELL: neue Standard-SHELL
-c 'COMMENT': neue Kommentarinformationen;
-d HOME: Dateien im ursprünglichen Home-Verzeichnis werden nicht gleichzeitig in das neue Home-Verzeichnis verschoben. Verwenden Sie gleichzeitig die Option -m;
-l login_name: neuer Name; Angegebenen Benutzer sperren
-U: Angegebenen Benutzer entsperren
-e JJJJ-MM-TT: Geben Sie den Benutzer an Ablaufdatum des Kontos;
-f INAKTIV: Legen Sie den Inaktivitätszeitraum fest;
Passwort zum Benutzer hinzufügen
passwd [OPTIONEN] Benutzername: Ändern Sie das Passwort des angegebenen Benutzers, nur Root-Benutzerberechtigungen
passwd: Ändern Sie Ihr Passwort;
Allgemeine Optionen:
-l: Den angegebenen Benutzer sperren
-u: Den angegebenen Benutzer entsperren
-n mindays: Geben Sie die minimale Nutzungsdauer an
-x maxdays: Die maximale Nutzungsdauer
-w warndays: wie viele Tage im Voraus die Warnung beginnen soll
-i inactivedays: inaktiver Zeitraum
--stdin: Benutzerpasswort von der Standardeingabe erhalten
echo „PASSWORD“ |
Hinweis: /dev/null, Bit-Buckets
/dev/zero,
Benutzer löschen: userdel
userdel [OPTION]... login
-r: Benutzer-Home-Verzeichnis löschen
Gruppenattributänderung: groupmod
groupmod [OPTION]...group
-n Gruppenname: Neuer Name
-g GID: Neue GID;
groupdel GROUP
Gruppenpasswort: gpasswd
gpasswd [OPTION] GROUP
-a Benutzer: Benutzer zum hinzufügen angegebene Gruppe;
-d Benutzer: Aktuelle Gruppe des Benutzers löschen Zusätzliche Gruppen für den Gruppennamen
-A user1,user2,...: Legen Sie eine Liste von Benutzern mit Administratorrechten fest
newgrp-Befehl: Wechseln Sie vorübergehend die Basisgruppe; 🎜>
Wenn der Benutzer nicht zu dieser Gruppe gehört, ist das Gruppenpasswort erforderlich
Benutzerattribute ändern: chage
chage [OPTION]... LOGIN
-d LAST_DAY
-E, --expiredate EXPIRE_DATE
-I, --inactive INACTIVE
-m, --mindays MIN_DAYS
-M , --maxdays MAX_DAYS
-W, --warndays WARN_DAYS
Andere Befehle: chfn, chsh, finger
Befehlszusammenfassung: useradd, groupadd, su, id, usermod, userdel, groupmod, groupdel, passwd, newgrp, pwck, gpasswd, chage, chsh, chfn , Finger
Berechtigungsverwaltung:
Dateiberechtigungen werden hauptsächlich für drei Arten von definiert Objekte:
Eigentümer: Eigentümer, u
Gruppe: Gruppe, g
andere: andere, o
Jede Datei ist für jede Kategorie. Besucher haben drei Berechtigungen definiert:
r: Lesbar
w: Beschreibbar
x: eXcutable
Datei:
r: Der Inhalt kann mithilfe von Dateianzeigetools abgerufen werden.
w: Der Inhalt kann geändert werden >
x: Diese Datei kann zum Starten als Prozess
Verzeichnis:
r: Sie können ls verwenden, um die Dateiliste in diesem Verzeichnis anzuzeigen
w: Dateien können in diesem Verzeichnis erstellt oder gelöscht werden
x: Sie können ls -l verwenden, um die Dateiliste in diesem Verzeichnis anzuzeigen, und Sie können cd verwenden, um dieses Verzeichnis aufzurufen; 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
Zum Beispiel:
640: rw-r-----
rwxr-xr-x: 755
Dateiberechtigungen ändern: chmod
chmod [OPTION]... OKTAL-MODUS-DATEI...
-R: Berechtigungen rekursiv ändern
chmod [OPTION]... MODE[,MODE]... DATEI...
MODUS:
Alle Berechtigungen eines Benutzertyps ändern:
u=
g=
o=
ug=
a=
u=,g=
Ändern Sie eine oder mehrere Berechtigungen eines Benutzertyps
u+
u-
chmod [OPTION]. . --reference=RFILE FILE...
Beziehen Sie sich auf die Berechtigungen der RFILE-Datei und ändern Sie die DATEI in die gleichen wie RFILE;
Besitzer und Gruppe der Datei ändern:
Nur ​​für Root verfügbar;
Ändern Sie den Dateibesitzer: chown
chown [OPTION]... [OWNER][:[GROUP]] FILE...
Verwendung:
EIGENTÜMER
EIGENTÜMER:GRUPPE
:GROUP
Hinweis: Der Doppelpunkt im Befehl kann ersetzt werden
-R: Rekursiv
chown [OPTION]... --reference=RFILE FILE...
Ändern Sie die Gruppe der Datei: chgrp
chgrp [OPTION]...GROUP FILE...
chgrp [ OPTION]... --reference=RFILE FILE...
-R
Code beim Erstellen maskieren eine Datei oder ein Verzeichnis:umask
DATEI: 666-umask
Hinweis: Wenn im Ergebnis der Berechtigungsreduzierung für a eine x-Berechtigung vorhanden ist Bestimmter Benutzertyp, dann +1 für seine Berechtigungen
DIR: 777-umask
umask: Ansicht
umask #: Einstellungen
Befehlszusammenfassung: chmod, chown, chgrp, umask
Dateiverwaltung, Benutzerverwaltung, Berechtigungsverwaltung, Grundfunktionen von Bash
Dateiverwaltung: cp, mv, rm
Benutzerverwaltung:
useradd, usermod, chsh, chfn, chage, userdel
groupad, groupmod, groupdel
passwd, gpasswd, pwck
id, finger, who, whoami, w
su
Konfigurationsdateien: /etc/passwd, /etc/shadow, /etc/group, /etc/gshadow
Berechtigungsverwaltung:
perm: mode(rwxrwxrwx), Besitzer
chmod
chown
chgrp
-R, --reference=RFILE
DATEI: 666-umask
DIR: 777-umask
umask [UMASK]
Bash-Grundfunktionen:
Befehlszeilenerweiterung: ~, {}
Befehlsalias: alias/unalias
Befehlsverlauf: Verlauf
Befehl und Pfadvervollständigung: $PATH
glob: *, , [], [^]
Tastenkombinationen: Strg+{a,e,l,c,u,k}
Befehls-Hash: Hash
Grundfunktionen von Bash (3)
1. Bietet eine Programmierumgebung
Programm: Anweisungen + Daten
Programmierstil:
Prozedur: Anweisung ist die Zentrum, Daten dienen der Anweisung
Objekttyp: Daten sind das Zentrum, die Anweisung dient den Daten
Shell Programm: stellt Programmierfunktionen bereit, erklärt und führt
Programmausführungsmethode:
Computer: führt binäre Anweisungen aus ;
Programmiersprache:
Low-Level: Assembly
High-Level:
Kompilierung: Hochsprache-->Compiler-->Objektcode
C, C++, Java
Erklärung: Hochsprache-->Interpreter-->Maschinencode
Shell, Perl, Python
Prozedurale Programmierung:
Sequentielle Ausführung
Schleifenausführung
Ausführung auswählen
Shell-Programmierung: prozedurale, interpretierte Ausführung
Grundstruktur der Programmiersprache:
Datenspeicherung: Variablen, Arrays
Ausdruck
Anweisung
Shell-Skript: Textdatei
shebang:
#!/bin/bash
#!/usr/bin/python
#!/usr/bin/perl
magische Zahl: magische Zahl
Führen Sie das Skript aus:
1 Ausführungsberechtigung: Geben Sie die Dateiausführung über einen bestimmten Dateipfad an.
2. Führen Sie den Interpreter direkt aus und führen Sie das Skript als Parameter des Interpreterprogramms aus >
Variablen:
benannter Speicherplatz
Datenspeichermethode: ASCII
Zeichen: 110: 24
Wert: 110 --> 8
Ganzzahl
Gleitkommatyp
Variable: Variablentyp
Funktion:
1. Datenspeicherformat
3 , dargestellter Datenbereich;
Typ:
Zeichen
Wert:
Ganzzahltyp
Gleitkommatyp
Programmierung Sprache:
Starker Typ:
Schwacher Typ: Bash
Geben Sie alle erforderlichen Felder ein gespeicherte Daten werden alle als Zeichen behandelt
unterstützt keine Gleitkommazahlen;
Logische Operationen:
wahr, falsch
1, 0
mit:
1 && 1 = 1
1 && 0 = 0
0 && 1 = 0
0 && 0 = 0
oder:
1 || 🎜>
0 ||. 0 = 0
Nicht:
1 = 0
0 = 1
Kurzschlussbetrieb:
und:
Der erste ist 0, das Ergebnis muss 0 sein;
Der erste ist 1, der zweite muss an der Operation teilnehmen;
oder:
Das erste ist 1, das Ergebnis muss 1 sein; >
Der erste ist 0 und der zweite muss an der Operation teilnehmen
grep:
Drei Musketiere der Textverarbeitung unter Linux
grep: Textfilter-(Muster-)Tool
grep, egrep, fgrep
sed: Stream-Editor, Textbearbeitungstool;
awk: Implementierung von gawk unter Linux, Textberichtsgenerator; >
grep: Globale Suche nach regulärem Ausdruck und Ausdrucken der Zeile.
Funktion: Textsuchwerkzeug, überprüft den Zieltext Zeile für Zeile gemäß den Benutzerangaben „Muster“; druckt die Übereinstimmung mit der Zeile;
Modus: Filterbedingungen, geschrieben durch reguläre Ausdruckszeichen und Textzeichen; Besteht aus einem speziellen Typ von Zeichen und Textzeichen, von denen einige nicht die wörtliche Bedeutung der Zeichen darstellen, sondern Steuer- oder Platzhalterfunktionen darstellen.
ist in zwei Kategorien unterteilt :
Grundlegender regulärer Ausdruck: BRE
Erweiterter regulärer Ausdruck: ERE
grep -E , egrep
Regular Expression Engine
grep [OPTIONEN] MUSTER [DATEI.. .]
Optionen:
--color=auto: Färben Sie den übereinstimmenden Text ein; >
-v: Zeilen anzeigen, denen kein Muster zugeordnet werden kann
-i: Groß-/Kleinschreibung ignorieren; -o: Nur übereinstimmende Zeichenfolgen anzeigen;
-q: Silent-Modus, es werden keine Informationen ausgegeben; # Zeilen
-B #: vor, vor # Zeilen
-C #: Kontext, vor und nach # Zeilen
-E: Verwenden Sie ERE;
Grundlegende Metazeichen für reguläre Ausdrücke:
Zeichenübereinstimmung:
.: Entspricht jedem einzelnen Zeichen;
[]: Entspricht jedem einzelnen Zeichen innerhalb des angegebenen Bereichs
[^]: Entspricht jedem einzelnen Zeichen
[:digit:], [:lower: ], [:upper:], [:alpha:], [:alnum:], [:punct:], [:space:]
Anzahl der Übereinstimmungen : Wird nach dem anzugebenden Zeichen verwendet und gibt an, wie oft das vorherige Zeichen erscheinen soll.
*: Entspricht dem vorherigen Zeichen beliebig oft 🎜>
Zum Beispiel: grep "x*y"
abxy
xay
xxxxxxy
Gieriger Modus
.*: Beliebiges Zeichen beliebiger Länge;
?: Übereinstimmung mit dem Zeichen davor 0 oder 1 Mal; das heißt, das vorherige Zeichen ist optional.
+: Übereinstimmung mit dem Zeichen davor Mindestens 1 Mal
{m}: entspricht m-mal dem vorherigen Zeichen;
{m,n}: entspricht mindestens m-mal und höchstens n-mal dem vorherigen Zeichen mal;
{0,n}: Entspricht höchstens n-mal dem vorherigen Zeichen;
{m,}: Entspricht dem vorherigen Zeichen mindestens m-mal ;
Positionsverankerung:
^: Zeilenanfangsanker, der für die äußerste linke Seite verwendet wird des Musters;
$: End-of-Line-Anker, der für die äußerste rechte Seite des Musters verwendet wird; wird für den Musterabgleich der gesamten Zeile verwendet;
^$: Leerzeile
^[[:space:]]*$
< oder b: Wortanfangsverankerung für die linke Seite des Wortmusters
> oder b: Wortende-Verankerung; wird für Wörter verwendet. Die rechte Seite des Musters;
: entspricht dem gesamten Wort; 🎜>
Gruppe:
(): Bündeln Sie ein oder mehrere Zeichen und verarbeiten Sie sie als Ganzes;
(xy)*ab
Hinweis: Der mit dem Muster in den Gruppierungsklammern übereinstimmende Inhalt wird von der Engine für reguläre Ausdrücke in internen Variablen aufgezeichnet Diese Variablen sind: 1, 2, 3, ...
1: Von links beginnend das Zeichen, das dem Muster zwischen der ersten linken Klammer und der passenden rechten Klammer entspricht
(ab+(xy)*):
1: ab+(xy)*
2: xy
Rückverweis: bezieht sich auf das Zeichen, das dem Muster in den vorangehenden Gruppierungsklammern entspricht (nicht das Muster selbst)
Wenn der Benutzer root vorhanden ist, wird sein Standard-Shell-Programm angezeigt
# id root &> /dev/null && grep "^root>" /etc/passwd |. cut -d: -f7
Finden Sie die zwei oder drei Ziffern in /etc/passwd heraus
# grep "<[0-9]{2,3}>" /etc/passwd
show /etc/rc. d/rc In der .sysinit-Datei beginnen Zeilen mit mindestens einem Leerzeichen und folgen nicht leeren Zeichen
# grep "^[[:space:]]+[ ^[:space :]]" /etc/grub2.cfg
Suchen Sie das Ergebnis des Befehls „netstat -tan“ mit „LISTEN“ gefolgt von 0, 1 oder mehr Zeilen, die mit Leerzeichen enden;
# netstat -tan | >
Fügen Sie die Benutzer bash, testbash, basher und nologin hinzu (ihre Shell ist /sbin/nologin); suchen Sie dann die Zeile in der Datei /etc/passwd, in der der Benutzername mit dem Shell-Namen übereinstimmt 🎜>
grep "^([[:alnum:]]+>).*1$" /etc/passwd
Schreiben Sie ein Skript und implementieren Sie es wie folgt: Funktion
Wenn Benutzer1 vorhanden ist, zeigen Sie seine Existenz an, andernfalls fügen Sie ihn hinzu
Zeigen Sie das an ID-Nummer und andere Informationen des hinzugefügten Benutzers;
#!/bin/bash
id user1 &> /dev/null && echo „user1 existiert.“ ||. useradd user1
id user1
egrep und erweiterte reguläre Ausdrücke
egrep = grep -E
egrep [OPTIONEN] MUSTER [DATEI...]
Metazeichen für erweiterte reguläre Ausdrücke:
Zeichenübereinstimmung:
.
[ ]
[^]
Anzahl der Übereinstimmungen:
*
?: 0 oder 1 Mal
+: 1 oder mehr Mal; 🎜>{m}: m-mal übereinstimmen;
{m,n}: mindestens m, höchstens n-mal;
Anker:
^
$
< ;, b
>, b
Gruppe:
()
Rückverweise: 1, 2, ...
oder:
a|b
C|cat: C oder cat
1. Zeigt das aktuelle Systemstammverzeichnis an Shell und UID des Centos- oder Benutzer1-Benutzers; 3,7
2. Suchen Sie ein Wort gefolgt von einer Klammer in der Datei /etc/rc.d/init.d/functions (centos6) OK;
# grep -E -o "^[_[:alpha:]]+()" /etc/rc.d/init.d/functions
3. Verwenden Sie echo, um einen absoluten Pfad auszugeben, und verwenden Sie egrep, um seinen Basisnamen zu extrahieren.
# echo "/mnt/sdc " | grep -E -o "[^/]+/?$" | cut -d"/" -f1
Weiter: Verwenden Sie zum Entfernen egrep der Pfadverzeichnisname, ähnlich dem Ergebnis des Befehls dirname;
4. Suchen Sie den Wert zwischen 1 und 255 im Ergebnis des Befehls ifconfig
5. Suchen Sie die IP-Adresse im ifconfig-Befehlsergebnis;
fgrep: Reguläre Ausdrücke sind nicht unterstützte Suche;
Grundfunktionen von Bash (4)
Variablentyp:
Datenspeicherformat, Speicherplatzgröße, beteiligte Operationstypen
Zeichentyp
Numerischer Typ:
Ganzzahltyp
Gleitkommatyp
Starker Typ: Der Typ muss beim Definieren einer Variablen angegeben werden, und der für die Teilnahme an Operationen erforderliche Typ muss die Typanforderungen erfüllen. Der Aufruf einer nicht deklarierten Variablen führt zu einem Fehler >
Schwacher Typ: Es ist nicht erforderlich, den Typ anzugeben. Der Standardwert ist, dass die implizite Typkonvertierung automatisch durchgeführt wird, wenn Variablen direkt ohne Definition aufgerufen werden Advance;
bash
Typen von Variablen in Bash:
Gemäß Standards wie dem effektiven Bereich von Variablen:
Lokale Variablen: Der effektive Bereich ist der aktuelle Shell-Prozess; er ist für andere Shell-Prozesse außer der aktuellen Shell ungültig, einschließlich die Sub-Shell-Prozesse der aktuellen Shell;
Umgebungsvariablen: Der effektive Bereich ist der aktuelle Shell-Prozess und sein untergeordneter Prozess; Lokale Variablen: Der effektive Bereich ist ein bestimmtes Codefragment (normalerweise eine Funktion) im aktuellen Shell-Prozess
Positionsvariablen: $1, $2, ... werden verwendet, um das Skript auszuführen Rufen Sie die über die Befehlszeile im Skriptcode übergebenen Parameter auf;
Spezielle Variablen: $?, $0, $* , $@, $#
Lokale Variable:
Variablenzuweisung: name='value'
Sie können Anführungszeichen verwenden :
Wert:
(1) Es kann eine direkte Zeichenfolge sein; name= "username"
(2) Variablenreferenz: name="$username"
(3) Befehlsreferenz: name=`COMMAND` , name=$(COMMAND)
Variablenreferenz: ${name}, $name
"": schwache Referenz, Variable darin Die Referenz wird durch den Variablenwert
'': starke Referenz, die Variablenreferenz wird nicht durch den Variablenwert ersetzt, aber die ursprüngliche Zeichenfolge bleibt erhalten
Anzeigen alle definierten Variablen
set
Variablen zerstören:
unset name
Umgebungsvariable:
Variablendeklaration und -zuweisung:
export name=VALUE
declare -x name=VALUE
Variablenreferenz: $name, ${name}
Alle Umgebungsvariablen anzeigen:
exportieren
env
printenv
Zerstören:
unset name
bash hat viele integrierte Umgebungsvariablen: PATH, SHELL, UID, HISTSIZE, HOME, PWD, OLD, HISTFILE, PS1
Variablennamensregeln:
1. Verwenden Sie keine reservierten Wörter im Programm: wie if, for; 🎜>
2. Es können nur Zahlen, Buchstaben und Unterstriche verwendet werden und dürfen nicht mit einer Zahl beginnen.
3.
Schreibgeschützte Variablen:
schreibgeschützter Name
deklarieren -r Name
Positionsvariable:
Rufen Sie im Skriptcode die Parameter auf, die über die Befehlszeile an das Skript übergeben werden ;
$1, $2, ...: entsprechend dem ersten und zweiten Parameter des Anrufs; Shift [n]
$0: der Befehl selbst;
$*: alle an das Skript übergebene Parameter;
$@: Alle an das Skript übergebenen Parameter
$#: Die Anzahl der an das Skript übergebenen Parameter script;
Beispiel: Bestimmen Sie die Anzahl der Zeilen in der angegebenen Datei
#!/bin/bash
linecount="$(wc -l $1| cut -d' ' -f1)"
echo "$1 hat $linecount Zeilen. "
Bash-Konfigurationsdatei:
Unterteilt nach Für den effektiven Bereich gibt es zwei Kategorien:
Globale Konfiguration:
/etc/profile
/etc/profile.d/*.sh
/etc/bashrc
Persönliche Konfiguration:
~/.bash_profile
~/.bashrc
Geteilt nach Funktion gibt es zwei Kategorien:
Profile-Klasse: Konfiguration für interaktive Login-Shell bereitstellen
Global: /etc/profile, /etc/profile.d/* .sh
Persönlich: ~/.bash_profile
Funktion:
(1) Wird verwendet um Umgebungsvariablen zu definieren;
(2) Führen Sie einen Befehl oder ein Skript aus
bashrc-Klasse: Geben Sie die Konfiguration an Nicht interaktive Login-Shell
Global: /etc/bashrc
Persönlich: ~/.bashrc
Funktion:
(1) Befehlsalias definieren;
(2) Lokale Variable definieren; 🎜>
Shell-Login:
Interaktive Anmeldung:
Direkt anmelden über das Terminal durch Eingabe des Kontos und Passworts;
Benutzer wechselten mit „su - Benutzername“ oder „su -l Benutzername“
/etc/profile --> /etc/profile.d/*.sh --> ~/.bashrc -->
Nicht-interaktive Anmeldung:
su Benutzername
Terminal geöffnet im grafische Oberfläche
Skript ausführen
~/.bashrc --> /etc/profile.d/*.sh
Die durch Bearbeiten der Konfigurationsdatei definierte neue Konfiguration wird wirksam:
(1) Starten Sie den Shell-Prozess neu; Verwenden Sie den Quell- oder Befehlsprozess.
Frage:
1. Definieren Sie einen Alias, der für alle Benutzer wirksam ist ?
2. Fügen Sie einen weiteren Pfad zum Wert der PATH-Umgebungsvariablen des Benutzers hinzu, z. B. /usr/local/apache2/bin
Administrator?
Alle?
Arithmetische Operationen in Bash
+, -, *, /, %, **
Arithmetische Operationen implementieren:
(1) let var=arithmetischer Ausdruck
(2) var=$[arithmetischer Ausdruck]
(3) var=$((arithmetischer Ausdruck))
(4) var =$(expr arg1 arg2 arg3 ...)
Das Multiplikationssymbol muss in einigen Szenarien maskiert werden;
Bash verfügt über einen integrierten Zufallszahlengenerator: $RANDOM
Erweiterte Zuweisung:
+=, -=, *=, /=, %=
let varOPERvalue
For Beispiel: let count+=1
Erhöhen und dekrementieren:
let var+=1
let var++
let var-=1
let var- -
Berechnen Sie die Summe der IDs des 10. Benutzers und des 20. Benutzers in der Datei /etc/passwd
#!/bin/bash
userid1=$(head -n 10 /etc/passwd | tail -n 1 | cut -d: -f3 )
userid2=$(head -n 20 /etc/passwd | tail -n 1 | cut -d: -f3)
useridsum=$[$userid1+$userid2]
echo „uid sum: $useridsum“
Übergeben Sie zwei Dateipfade als Parameter an das Skript und berechnen Sie die Summe aller Leerzeilen in den beiden Dateien
# !/bin /bash
spaceline1=$(grep "^[[:space:]]*$" $1 |
wc - l)spaceline2=$(grep "^[[:space:]]*$" $2 |
wc -l)
echo „Die Summe der Leerzeichenzeile: $[$spaceline1+$spaceline2]“
stats/etc, / Wie viele zuerst -Unterverzeichnisse und Dateien befinden sich in den Verzeichnissen var, /usr;
Bedingter Test:
Um festzustellen, ob eine bestimmte Anforderung erfüllt ist, muss sie durch den Testmechanismus implementiert werden
Hinweis: Spezielle Testausdrücke müssen unterstützt werden durch Testbefehle, um den Testvorgang abzuschließen >
[ EXPRESSION ]
[[ EXPRESSION ]]
Hinweis: Es muss vorhanden sein Leerzeichen vor und nach EXPRESSION;
Bash-Testtyp:
Numerischer Test:
-gt: ob es größer ist als;
-ge: ob es größer oder gleich ist; >-eq: ob es gleich ist;
-ne: ob es nicht gleich ist; kleiner als;
-le: ob es kleiner oder gleich ist;
String-Test:
==: ob es gleich ist;
>: ob es größer ist
<: ob es kleiner ist als; !=: ob es nicht gleich ist;
=~: Ob die Zeichenfolge auf der linken Seite mit dem MUSTER auf der rechten Seite übereinstimmen kann; 🎜>Hinweis: Dieser Ausdruck wird im Allgemeinen in [[]] verwendet.
-z "STRING": Testen Sie, ob die Zeichenfolge leer ist. Wenn sie leer ist, ist sie wahr, wenn es ist nicht leer, es ist falsch;
-n "STRING": Testen Sie, ob die Zeichenfolge nicht leer ist, wenn sie leer ist. es ist falsch;
Hinweis: In String-Vergleichen verwendete Operanden sollten alle in Anführungszeichen gesetzt werden >Dateitest
Bash benutzerdefinierter Exit-Statuscode
exit [n]: benutzerdefinierter Exit-Statuscode ;
Hinweis: Sobald das Skript auf den Exit-Befehl stößt, hängt es von der Nummer nach dem Exit-Befehl ab;
Hinweis: Wenn für das Skript kein Exit-Statuscode angegeben ist, hängt der Exit-Statuscode des gesamten Skripts vom Statuscode des letzten im Skript ausgeführten Befehls ab;
akzeptiert einen Dateipfad als Parameter;
Wenn die Anzahl der Parameter kleiner als 1 ist, fordern Sie den Benutzer auf: „at Es sollte mindestens ein Parameter angegeben werden“ und sofort beendet werden;
Wenn die Anzahl der Parameter nicht weniger als 1 beträgt, wird die Anzahl der Leerzeilen in der Datei angezeigt, auf die der erste Parameter zeigt.
egrep, erweiterter regulärer Ausdruck, Variable, Konfigurationsdatei, arithmetische Operation, bedingter Test, Exit-Statuscode
ERE:
Zeichenübereinstimmung: ., [], [^]
Anzahl der Übereinstimmungen: *, ?, +, {m, n}
Positionsverankerung: ^, $, <, >, b
Gruppe: (), 1, 2, . .
oder: a|b
Variablen:
Lokale Variablen
Umgebungsvariablen
Lokale Variablen
Positionsvariablen
Spezielle Variablen
können keine reservierten Wörter verwenden
Befehle : nicht gesetzt, exportiert, deklariert -x, gesetzt, env, printenv, schreibgeschützt
Profil:
Profil, bashrc
Arithmetische Operationen:
let, $[], $(()), expr
+=, -=, *=, /=
++, --
Bedingter Test:
Test, [], [[]]
Drei Typen:
Nummer: -lt, -le, - gt, -ge, -ne, -eq
String: ==, !=, >, <, =~, -z, -n
Datei
Benutzerdefinierter Exit-Code:
exit [n]
[ $# -lt 1 ] && echo „Mindestens ein Argument.“ && Exit 1
vim-Editor
Einführung
vi: Visuelle Schnittstelle, Texteditor
Text: ASCII, Unicode
Textbearbeitungstyp:
Zeileneditor: sed
Vollbildeditor: nano, vi
VIM - Vi IMproved
Verwenden Sie
vim: modale Bearbeitung
Basismodus:
Bearbeitungsmodus, Befehlsmodus
Eingabemodus
Letzte Zeilenmodus:
Eingebaute Befehlszeilenschnittstelle
Datei öffnen:
# vim [OPTION] .. DATEI...
+#: Platzieren Sie nach dem Öffnen der Datei den Cursor direkt am Anfang der Zeile #; +/ MUSTER: Platzieren Sie nach dem Öffnen der Datei den Cursor direkt am Anfang der ersten Zeile, die mit MUSTER übereinstimmt; >
Bearbeitungsmodus --> Eingabemodus
i: Einfügen, Eingabe an der Cursorposition; : anhängen, nach der Cursorposition eingeben;
o: eine neue Zeile unter der aktuellen Cursorposition öffnen
I: in Enter at der Anfang der Zeile, in der sich der aktuelle Cursor befindet;
A: Geben Sie am Ende der Zeile ein, in der sich der aktuelle Cursor befindet; O: Geben Sie am Ende der Zeile ein, wo sich der aktuelle Cursor befindet. Öffnen Sie eine neue Zeile über der aktuellen Zeile
c
C
Eingabemodus--> Bearbeitungsmodus
ESC
Bearbeitungsmodus--> Letzte-Zeile-Modus
:
Letzte-Zeile-Modus- -> Bearbeitungsmodus
ESC
Datei schließen:
:q Beenden
:q! Beenden erzwingen und die Änderungen verwerfen
:wq Speichern und beenden
:x Speichern und beenden
:w /PATH/TO/SOMEWHERE
ZZ: Speichern und beenden;
Cursorsprung:
Springen zwischen den Zeichen:
h, j, k, l
h: links
l : rechts
j: Unten
k: Oben
#BEFEHL: Zur durch # angegebenen Anzahl von Zeichen springen ;
Zwischen Wörtern springen:
w: The Anfang des nächsten Wortes
e: Das Ende des aktuellen oder nächsten Wortes
b: Der Anfang des aktuellen oder vorherigen Wortes
#COMMAND: Die Anzahl der Wörter, die gleichzeitig übersprungen werden sollen, wird durch #
Springen am Anfang und Ende der Zeile:
^: Springe zum ersten nicht leeren Zeichen am Anfang der Zeile; 🎜>0: Zum Anfang der Zeile springen;
$: Zum Ende der Zeile springen; 🎜>Zwischen Zeilen wechseln:
#G: Springe zu #Zeile an
G: die letzte Zeile;
1G, gg: die erste Zeile
Bewegung zwischen Sätzen:
)
(
Zwischen Absätzen wechseln:
}
{
vim-Bearbeitungsbefehl:
Zeichenbearbeitung:
x: Löschen Sie das Zeichen am Cursor. ;
#x: Löschen Sie die #-Zeichen beginnend am Cursor ;
xp: Vertauschen Sie die Cursorposition und die Position der folgenden Zeichen; >
Ersetzungsbefehl (r, ersetzen)
r: Ersetzen Sie das Zeichen an der Cursorposition
Löschbefehl:
d: Löschbefehl, der mit Cursor-Sprungzeichen kombiniert werden kann, um eine Bereichslöschung zu erreichen;
d$:
d^:
d0:
dw
de
db
#COMMAND
dd: Löschen Sie die Zeile, in der sich der Cursor befindet ;
#dd: mehrzeiliges Löschen;
Einfügebefehl (p, put, paste):
p: Wenn der Puffer eine ganze Zeile speichert, fügen Sie sie unterhalb der Zeile ein, an der sich der aktuelle Cursor befindet; andernfalls fügen Sie sie hinter der aktuellen Cursorposition ein; >
P: Wenn der Puffer eine ganze Zeile speichert, wird sie über der Zeile eingefügt, in der sich der aktuelle Cursor befindet; andernfalls wird sie vor dem aktuellen Cursor eingefügt; 🎜>
Kopieren-Befehl (y, ruck):
y: Kopieren, das Arbeitsverhalten ist ähnlich dem d-Befehl; >
y$
y0
y^
ye
yw
yb
#COMMAND
yy: Zeilen kopieren
#yy: Mehrere Zeilen kopieren; >
Befehl ändern (c, ändern)
c: Ändern
Bearbeitungsmodus- -> Eingabemodus
c$
c^
c0
cb
ce
cw
#COMMAND
cc: Löschen und neuen Inhalt eingeben
#cc :
Andere Bearbeitungsvorgänge
Visualisierungsmodus:
v: Auswahl nach Zeichen
V: Zeile für Zeile
Hinweis: Wird oft mit kombiniert Bearbeitungsbefehle;
d, c, y
Vorherige Bearbeitung rückgängig machen:
u(rückgängig machen): Den vorherigen Bearbeitungsvorgang rückgängig machen
#u: Die angegebene Anzahl von Vorgängen rückgängig machen; Vorheriges Rückgängigmachen rückgängig machen:
Strg+r
Vorherigen Bearbeitungsvorgang wiederholen:
.
Screen-Flip-Bedienung:
Strg+f : Zum Ende der Datei scrollen
Strg+b: Einen Bildschirm zum Anfang der Datei scrollen;
Strg+d: Einen halben Bildschirm bis zum Ende der Datei scrollen;
Strg+u: Den halben Bildschirm an den Anfang der Datei drehen; >
Letzter Zeilenmodus in vim:
Eingebaute Befehlszeilenschnittstelle
(1) Adresstrennung
:start_pos ,end_pos
#: Spezifische Zeilennummer, zum Beispiel bedeutet 2 Zeile 2;
#,#: # bedeutet Linie von links beginnend, nach rechts # stellt das Ende der Linie dar; ,+#: Beginnend mit der Zeile, die links durch # dargestellt wird, plus der Anzahl der Zeilen, die rechts durch # dargestellt werden.: aktuelle Zeile
$: letzte Zeile
.,$-1
%: Volltext, entspricht 1,$
/pat1/,/pat2/:
Beginnen Sie mit der ersten Zeile, die mit dem Muster pat1 übereinstimmt, bis zum Ende der ersten Zeile, die mit dem Muster pat2 übereinstimmt;
#,/pat/
/pat/,$
Verwendung:
gefolgt von einem Bearbeitungsbefehl
d
y
w /PATH/TO/SOMMEWHERE: speichert die Zeilen im Bereich zur angegebenen Datei;
r /PATH/FROM/SOMEFILE: Fügt den gesamten Inhalt der angegebenen Datei am angegebenen Speicherort ein; >
(2) Suche
/MUSTER: Suche von der aktuellen Cursorposition bis zum Ende der Datei; > ?MUSTER: Suche von der aktuellen Cursorposition bis zum Anfang der Datei;
n: Gleiche Richtung wie der Befehl
N : Entgegengesetzte Richtung zum Befehl ;
(3) Suchen und Ersetzen
s: Schließen Sie das Suchen und Ersetzen ab Operation im Modus „Letzte Zeile“
s/was zu finden/was zu ersetzen ist/Modifikatoren
was zu finden ist: verfügbares Muster
Ersetzter Inhalt: Muster können nicht verwendet werden, aber Rückwärtsreferenzsymbole wie 1, 2, ... können auch verwendet werden, um auf den gesamten Inhalt zu verweisen vorherige Suche;
Modifikatoren:
i: Groß-/Kleinschreibung ignorieren
g: Globale Ersetzung; Standardmäßig wird nur das erste Vorkommen jeder Zeile ersetzt;
Suchen Sie das Trennzeichen in der Ersetzung/kann durch andere Zeichen ersetzt werden, z. B.
s@@@
s###
1 /etc/grub2.cfg Gehen Sie in das Verzeichnis /tmp/ und löschen Sie mit dem Befehl „Suchen und Ersetzen“ die Leerzeichen am Anfang der Zeile in der Datei /tmp/grub2.cfg %s/^[[:space:]]+ //g
2 /functions-Datei in das /tmp-Verzeichnis und verwenden Sie den Befehl „Suchen und Ersetzen“ für /tmp/. Fügen Sie am Anfang jeder Funktionszeile, die mit einem Leerzeichen beginnt, ein #-Zeichen hinzu >:%s/^[[:space:]]/#&/
Mehrere Dateimodus:
vim FILE1 FILE2 FILE3 ...
: next next
:prev previous
:first first
:last Last
:wall save all
:qall exit all
Fenstertrennungsmodus:
vim -o|-O FILE1 FILE2 .. .
-o: Horizontale Teilung
-O: Vertikale Teilung
Zwischen Fenstern wechseln: Strg+w, Pfeil
Aufteilung einzelner Dateifenster:
Strg+w ,s: geteilt, horizontale Teilung
Strg+w,v: vertikal, vertikale Teilung
Benutzerdefinierte vim-Arbeitsweise Features:
Konfigurationsdatei: Dauerhaft gültig
Global: /etc/vimrc
Persönlich : ~/.vimrc
Letzte Zeile: Der aktuelle VIM-Prozess ist gültig
(1) Zeilennummer
Anzeige: Set-Nummer, abgekürzt als Set Nu
Anzeige abbrechen: Set NoNumber, abgekürzt als Set Nonu
(2) Bracket Matching
Match: set showmatch, abgekürzt als set sm
Abbrechen: set nosm
(3) Automatisches Einrücken
Aktivieren: ai festlegen
Deaktivieren: noai festlegen
(4) Suche hervorheben
Aktivieren: hlsearch festlegen
Deaktivieren: nohlsearch festlegen
(5) Syntaxhervorhebung
Aktivieren: Syntax ein
Deaktivieren: Syntax aus
(6) Groß-/Kleinschreibung von Zeichen ignorieren
Aktivieren: set ic
Nicht ignorieren: set noic
Hilfe erhalten:
:help
:help subject
Bash-Zustandstest:
Testmethode:
Test AUSDRUCK
[ AUSDRUCK ]
[[ AUSDRUCK ]]
Kategorien von Testausdrücken:
Numerischer Vergleich
String-Test
Dateitest:
Existenztest
-a DATEI
- e DATEI: Datei Existenztest, wenn er existiert, ist er wahr, andernfalls ist er falsch;
Existenz- und Kategorietest
-b DATEI: ob existiert und ist eine Blockgerätedatei;
-c DATEI: Existiert und ist eine Zeichengerätedatei
-d DATEI: Existiert es existiert und ist eine Verzeichnisdatei;
-f DATEI: existiert und ist eine normale Datei
-h DATEI; : existiert und ist eine symbolische Linkdatei; ob es existiert und eine Socket-Word-Datei ist;
Dateiberechtigungstest:
-r DATEI: Ob es existiert und lesbar ist
-w DATEI: Ob es existiert und beschreibbar ist
-x DATEI: Ob es existiert und ausführbar ist
Datei-Sonderberechtigungstest:
-g FILE: ob es existiert und SGID-Berechtigung hat;
-u FILE: ob es existiert und hat Suid-Berechtigung;
-k FILE: Ob es existiert und Sticky-Berechtigung hat;
Dateigrößentest:
-s DATEI: Ob sie gespeichert und nicht leer ist;
Ob die Datei geöffnet ist:
-t fd: fd gibt an, ob der Dateideskriptor geöffnet ist und sich auf ein Terminal bezieht. Verwandte
-N FILE: ob die Datei wurde seit dem letzten Lesen geändert;
-O FILE: Ob der aktuelle effektive Benutzer der Dateieigentümer ist
-G FILE : Ob der aktuelle effektive Benutzer der Dateieigentümer ist; FILE1 und FILE2 verweisen auf denselben Inode auf demselben Gerät
FILE1 -nt FILE2: ob FILE1 neuer als FILE2 ist;
DATEI1 -ot DATEI2: ob DATEI1 älter als DATEI2 ist;
Kombinationstestbedingungen:
Logische Operation:
Erster Weg:
BEFEHL1 ​​&& BEFEHL2
BEFEHL1 ​​|| 🎜>
! BEFEHL
[ -e DATEI ] && [ -r DATEI ]
Zweiter Weg:
AUSDRUCK1 -a AUSDRUCK2
AUSDRUCK1 -o AUSDRUCK2
AUSDRUCK
Muss den Testbefehl verwenden;
# [ -z "$hostName" -o "$hostName"= ="localhost.localdomain" ] && Hostname www.madu.com
# [ -f /bin/cat -a -x /bin/cat ] && cat /etc/fstab
vim:
Bearbeitungsmodus, Eingabemodus, Modus der letzten Zeile, Visualisierungsmodus
Sprung: h,j,k,l,w,b,e,),(,},{, G, ^, 0, $
Bearbeiten: x, r, c, d, y, p, u, Strg+r
Suchen: /, ?, n, N
Suchen und ersetzen: s
s///
g:
i:
Letzte Zeilenabgrenzung:
#
m,n
m,+#
.
$
/pat1/
/pat1/,/pat2/
%
Dateitest:
Monokular: -e, -f, -d, -b, -c, -L, - P, -S, -r, -w, -x, -s
Binokular: -nt, -ot
Kombinationstest: -a, -o, !
Dateisuche:
im Dateisystem suchen qualifizierte Dateien auf
Dateisuche: lokalisieren, finden
Nicht-Echtzeitsuche (Datenbanksuche) : lokalisieren
Echtzeitsuche: finden
lokalisieren:
Stützt sich auf vorgefertigte Indizes; die Indexerstellung erfolgt automatisch, wenn das System relativ inaktiv ist (regelmäßige manuelle Aktualisierung der Datenbank); >Index Der Erstellungsprozess muss das gesamte Root-Dateisystem durchlaufen, was viele Ressourcen verbraucht
Arbeitsfunktionen:
Schnelle Suchgeschwindigkeit;
Fuzzy-Suche; >
SCHLÜSSELWORT suchen
finden:
Ein Echtzeit-Suchwerkzeug Dadurch wird die Dateisuche abgeschlossen, indem das Dateisystem unter dem angegebenen Pfad durchsucht wird Geschwindigkeit;
Genaue Suche
Echtzeitsuche; 🎜>Syntax:
find [OPTION]... [Suchpfad] [Suchbedingungen] [Verarbeitungsaktion]
Suchpfad: Geben Sie den spezifischen Zielpfad an. Der Standardwert ist das aktuelle Verzeichnis.
Suchbedingungen: Die angegebenen Suchkriterien können auf Dateiname, Größe, Typ, Berechtigungen usw. basieren ist, alle Dateien unter dem angegebenen Pfad zu finden;
Verarbeitungsaktion: Was ist bei Dateien zu tun, die standardmäßig auf dem Bildschirm ausgegeben werden? >
Suchbedingungen:
Laut Dateinamensuche:
-name „Dateiname“: unterstützt die Verwendung von glob
*, ?, [], [^]
-iname „Dateiname“: Groß- und Kleinschreibung wird nicht beachtet
-regex „PATTERN“: Übereinstimmung mit der gesamten PATTERN-Dateipfadzeichenfolge, nicht nur mit dem Dateinamen; >
Suche basierend auf Besitzer und Gruppe:
-user USERNAME: Dateien suchen, die dem angegebenen Benutzer gehören;
group GRPNAME: Dateien suchen, die der angegebenen Gruppe gehören;
-uid UserID: Suchen Sie die Datei, deren Eigentümer die angegebene UID-Nummer ist.
-gid GroupID: Suchen Sie die Datei, deren Eigentümer die angegebene UID-Nummer ist angegebene UID-Nummer Dateien mit GID-Nummern;
-nouser: Dateien ohne Besitzer finden;
-nogroup: Suchen Es gibt keine Dateien, die zur Gruppe gehören;
Suche basierend auf Dateityp:
-Typ TYP:
f: Gewöhnliche Datei
d: Verzeichnisdatei
l: Symbolische Linkdatei
s: Socket-Datei
b: Blockgerätedatei
c: Zeichengerätedatei
p: Pipe-Datei
Kombinierte Bedingung:
mit: - a
oder: -o
Non: -not, !
!A -a !B = !(A -o B)
!A -o !B = !(A -a B)
Suchen Sie die Dateien im /tmp-Verzeichnis, deren Besitzer nicht root ist und deren Dateiname nicht fstab ist
finde /tmp ( -not -user root -a -not -name 'fstab' ) -ls
find /tmp -not ( -user root -o -name 'fstab' ) -ls
Suche nach Dateigröße:
-size [+|-]#UNIT
Gemeinsame Einheiten: k, M, G
#UNIT: (#-1, #]
-# EINHEIT: [0,#-1]
+#EINHEIT: (#,oo)
nach Zeitstempel:
in „Tag“
-atime [+|-]#,
#: [#,#+1)
+#: [#+1,oo]
-# : [0,#)
-mtime
-ctime
In „Minuten“:
-amin
-mmin
-cmin
Suche basierend auf Berechtigungen:
-perm [/|-]MODE
MODUS: Exakte Berechtigungsübereinstimmung
/MODUS: Solange eine der Berechtigungen eines beliebigen Objekttyps (u, g, o) abgeglichen werden kann; 🎜>-MODUS: Für jeden Objekttyp müssen auch Berechtigungsstandards angegeben sein
Verarbeitungsaktion:
-print: die Standardverarbeitungsaktion, die auf dem Bildschirm angezeigt wird;
-ls: ähnlich der Ausführung des Befehls „ls -l“ für die gefundene Datei;
-delete: die gefundene Datei löschen;
-fls /path/to/somefile: die Länge aller gefundenen Dateien. Speichern Sie die Informationen zur angegebenen Datei formatieren;
-ok COMMAND {}; Führen Sie den durch COMMAND angegebenen Befehl für jede gefundene Datei aus; der Befehl für jede Datei, der Benutzer wird interaktiv um Bestätigung gebeten;
-exec COMMAND {} Führt den durch COMMAND angegebenen Befehl für jede gefundene Datei aus;
{}: wird verwendet, um auf den Namen der gefundenen Datei selbst zu verweisen
Hinweis: find übergibt die gefundene Datei, wenn der später angegebene Befehl erreicht wird. Alle Dateien, die die Bedingungen erfüllen, werden sofort gefunden und an den nachfolgenden Befehl übergeben
Einige Befehle können nicht zu viele Parameter akzeptieren, und die Befehlsausführung schlägt möglicherweise fehl. Eine andere Möglichkeit, dieses Problem zu vermeiden:
find xargs COMMAND
1. Suchen Sie alle Dateien oder Verzeichnisse im /var-Verzeichnis, deren Eigentümer root und deren Gruppe mail ist; find /var -user root -group mail
2. Finden Sie alle Dateien oder Verzeichnisse im /usr-Verzeichnis, die nicht zu root, bin oder hadoop gehören;
# find /usr -not -user root -a -not -user bin -a -not -user hadoop
# find / usr -not ( -user root -o -user bin -o -user hadoop )
3. Suchen Sie die Inhaltsänderungen im Verzeichnis /etc in der neuesten Version Woche Allerdings ist der Besitzer weder Root noch eine Datei oder ein Verzeichnis von Hadoop
# find /etc -mtime -7 -a -not -user; root -a -not -user hadoop
# find /etc/ -mtime -7 -a -not ( -user root -o -user hadoop )
4. Suchen Sie nach Dateien oder Verzeichnissen, die auf dem aktuellen System keinen Besitzer oder keine Gruppe haben und auf die in der letzten Woche zugegriffen wurde / -nouser -a -nogroup -a -atime -7
5 Finde alle Dateien im Verzeichnis /etc, die größer als 1 MB sind und einen normalen Wert haben Dateityp;
# find /etc -size +1M -type f
6. Suchen Sie alle Benutzer im Verzeichnis /etc. Dateien, die keine Schreibberechtigung haben;
# find /etc -not -perm /222
7. Suchen Es gibt mindestens einen Dateityp im Verzeichnis /etc, für den der Benutzer keine Ausführungsberechtigungen hat.
# find /etc - not -perm -111
8. Suchen Sie nach Dateien im Verzeichnis /etc/init.d, für die alle Benutzer Ausführungsberechtigungen und andere Benutzer Schreibberechtigungen haben 🎜>
# find /etc/init .d -perm -113
Spezielle Berechtigungen für Linux-Dateisysteme
SUID, SGID, Sticky
1 Berechtigungen
r, w, x
Benutzer, Gruppe, andere
2 Sicherheitskontext
Prämisse: Der Prozess hat einen Besitzer und eine Gruppe; Dateien haben Besitzer und Gruppen;
(1) Ob jede ausführbare Programmdatei als Prozess gestartet werden kann : hängt davon ab, ob der Initiator Ausführungsberechtigungen für die Programmdatei hat;
(2) Nachdem er als Prozess gestartet wurde, ist der Eigentümer des Prozesses der Initiator Prozess ist die Gruppe, zu der der Initiator gehört.
( 3) Die Berechtigungen eines Prozesses beim Zugriff auf eine Datei hängen vom Initiator des Prozesses ab:
(a) Wenn der Initiator des Prozesses mit dem Eigentümer der Datei identisch ist: dann gelten die Dateieigentümerberechtigungen;
(b) Der Initiator des Prozesses gehört zur Gruppe der Datei; dann gehört die Anwendungsdatei zur Gruppenberechtigung
(c) „Andere“ Berechtigungen für die Datei anwenden;
3 SUID
(1) Kann jede ausführbare Programmdatei als Prozess gestartet werden? Hängt davon ab, ob der Initiator über die Ausführungsberechtigung für das Programm verfügt Datei;
(2) Nachdem er als Prozess gestartet wurde, ist der Eigentümer des Prozesses der Eigentümer der ursprünglichen Programmdatei; >
Berechtigungseinstellungen:
chmod u+s FILE...
chmod u-s FILE...
4 SGID
Wenn ein Benutzer eine Datei erstellt, ist seine Gruppe standardmäßig die Basisgruppe, zu der dieser Benutzer gehört gehört;
Sobald ein Verzeichnis mit einer SGID festgelegt ist, gehört die Gruppe, zu der in diesem Verzeichnis von Benutzern mit Schreibberechtigungen erstellte Dateien zu dieser Verzeichnisgruppe
Berechtigungseinstellungen:
chmod g+s DIR...
chmod g-s DIR. ..
5 Sticky
Wenn für ein Verzeichnis, auf das mehrere Personen schreiben können, „Sticky“ eingestellt ist, kann jeder Benutzer nur seine eigenen Dateien löschen.
Berechtigung Einstellungen:
chmod o+t DIR...
chmod o-t DIR...
SUID SGID STICKY
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7
chmod 4777 /tmp/ a.txt
Mehrere Berechtigungsbitzuordnungen:
SUID: Benutzer, der das Ausführungsberechtigungsbit des Eigentümers belegt ;
s: Der Besitzer hat x Berechtigungen
S: Der Besitzer hat keine x Berechtigungen
SGID: Gruppe , belegt das Ausführungsberechtigungsbit der Gruppe;
s: Gruppe hat x Berechtigungen
S: Gruppe hat keine x Berechtigungen
Sticky: andere, belegt das Ausführungsberechtigungsbit von ohter
t: andere hat x Berechtigungen
T: andere hat keine x-Berechtigungen
Bash-Skripting:
Prozedurale Programmierung Sprache:
Sequentielle Ausführung
Ausführung auswählen
Schleifenausführung
Ausführung auswählen:
wenn Urteilsbedingung
dann
Branchencode mit wahrer Bedingung
fi
wenn Urteilsbedingung; dann
Branchencode mit wahrer Bedingung
else
Branchencode mit falscher Bedingung
fi

Das obige ist der detaillierte Inhalt vonGrundlagen des Linux-Systems (1). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage