-i #: Erstellen Sie einen Inode für jede Anzahl von Bytes im Datenraum; diese Größe sollte nicht kleiner als die Blockgröße sein; >
-N #: Wie viele Inodes für den Datenraum erstellt werden;
-m #: Der Prozentsatz des für Manager reservierten Speicherplatzes; >
-O FEATURE[,...]: Aktiviert die angegebene Funktion
-O ^FEATURE: Deaktiviert die angegebene Funktion
mkswap: Swap-Partition erstellen
mkswap [Optionen] Gerät
-L 'LABEL'
Voraussetzung: Passen Sie die ID seiner Partition auf 82 an;
Andere häufig verwendete Tools:
blkid: Blockgeräteattributinformationen anzeigen
blkid [OPTION]... [ GERÄT]
-U UUID: Finden Sie das entsprechende Gerät basierend auf der angegebenen UUID
-L LABEL: Finden Sie das entsprechende Gerät basierend auf der angegebenes LABEL
e2label: LABEL für die Verwaltung von Dateisystemen der Ext-Serie
# e2label DEVICE [LABEL]
tune2fs: Setzen Sie die Werte der einstellbaren Parameter des Ext-Serie-Dateisystems zurück.
-l: Zeigen Sie die Superblock-Informationen an des angegebenen Dateisystems; Superblock
-L 'LABEL': Datenträgerbezeichnung ändern
-m #: Den Prozentsatz des Speicherplatzes ändern reserviert für Administratoren
-j: Upgrade von ext2 auf ext3
-O: Dateisystemeigenschaften aktivieren oder deaktivieren
-o: Passen Sie die Standard-Mount-Optionen des Dateisystems an
-U UUID: Ändern Sie die UUID-Nummer; dumpe2fs:
-h: Superblock-Informationen anzeigen
Dateisystemerkennung:
fsck: Dateisystemprüfung
fsck.FS_TYPE
fsck -t FS_TYPE
-a: Automatische Fehlerreparatur
-r: Interaktive Fehlerreparatur
Hinweis : FS_TYPE muss vom gleichen Typ sein wie die vorhandenen Dateien auf der Partition;
e2fsck: Ein spezielles Erkennungs- und Reparaturtool für Dateien der Ext-Serie
-y: Die automatische Antwort ist ja;
-f: Reparatur erzwingen;
Der Vorgang, ein zusätzliches Dateisystem mit einem vorhandenen Verzeichnis im Root-Dateisystem zu verknüpfen und dieses Verzeichnis dann als Zugriffspunkt für andere Dateien zu verwenden, wird als Mounten bezeichnet
Der Vorgang des Aufhebens dieser Zuordnung wird als Deinstallation bezeichnet.
Verknüpfen Sie das Gerät mit dem Bereitstellungspunkt : Mount Point
mount
Bei der Deinstallation: Sie können das Gerät oder den Mount Point verwenden
umount
Hinweis: Die Originaldateien unter dem Mountpunkt werden nach Abschluss der Bereitstellung vorübergehend ausgeblendet
Mount-Methode: mount DEVICE MOUNT_POINT
mount: Zeigt alle vom aktuellen System gemounteten Geräte an, indem Sie die Datei /etc/mtab anzeigen
mount [-fnrsvw] [-t vfstype] [-o Optionen] Geräteverzeichnis
Gerät: Geben Sie das Gerät an, das gemountet werden soll;
(1) Gerätedatei: zum Beispiel /dev/sda5
(2) Datenträgerbezeichnung: -L 'LABEL', zum Beispiel -L 'MYDATA'
(3) UUID, -U 'UUID': Zum Beispiel -U '0c50523c-43f1-45e7-85c0-a126711d406e'
existiert im Voraus; es wird empfohlen, ein leeres Verzeichnis zu verwenden ;
Das vom Prozess verwendete Gerät kann nicht ausgehängt werden
Allgemeine Befehlsoptionen:
-t vsftype: Geben Sie den Dateisystemtyp auf dem Gerät an, das gemountet werden soll;
-r: readonly, read-only mount;
-w: lesen und schreiben, read-write mount; etc/mtab;
-a: Alle Geräte automatisch mounten (in der Datei /etc/fstab definiert, und die Mount-Option verfügt über die Funktion „Auto-Mount“) )
-L 'LABEL': Geben Sie das Gerät an, das mit der Datenträgerbezeichnung gemountet werden soll.
-U 'UUID': Geben Sie an Gerät, das mit der UUID gemountet werden soll;
-B, --bind: Verzeichnis an ein anderes Verzeichnis binden; >Hinweis: Zeigen Sie den vom Kernel verfolgten gemounteten Inhalt an. Alle Geräte: cat /proc/mounts
-o Optionen: (Optionen zum Mounten des Dateisystems)
async: asynchroner Modus;
sync: synchroner Modus;
atime/noatime: einschließlich Verzeichnisse und Dateien;
Gerätedatei, LABEL(LABEL=""), UUID( UUID=""), Name des Pseudodateisystems (proc, sysfs )
Mount-Optionen:
Standardeinstellungen
Dump-Häufigkeit:
0: Keine Sicherung
1: Jeden Tag Dump
2: Jeden zweiten Tag entsorgen
Selbstprüfungsreihenfolge:
0: Keine Selbstprüfung
1: Zuerst Selbstprüfung; im Allgemeinen verwendet rootfs 1; Weitere Konzepte zum Dateisystem:
Inode: Indexknoten, Indexknoten
Adresszeiger:
Direkter Zeiger:
Indirekter Zeiger:
Zeiger der dritten Ebene:
Inode-Bitmap: Statusinformationen, die angeben, ob jeder Inode inaktiv ist;
Verknüpft Datei:
Hardlink:
Verzeichnis kann nicht korrigiert werden;
kann nicht korrigiert werden Partitionen;
zeigt auf mehrere verschiedene Pfade zum gleichen Inode; das Erstellen eines festen Links zu einer Datei ist der Inode, der einen neuen Referenzpfad erstellt und so seine Referenzanzahl erhöht; 🎜>
Symbolischer Link:
kann für ein Verzeichnis ausgeführt werden;
kann partitionsübergreifend sein;
zeigt auf den Pfad einer anderen Datei; die Länge der Pfadzeichenfolge, auf die verwiesen wird, erhöht oder verringert nicht die Referenzanzahl des Zieldatei-Inodes; 🎜>
ln [-sv] SRC DEST
-s: symbolischer Link
-v: ausführlich
Auswirkungen von Dateiverwaltungsvorgängen auf Dateien:
Dateilöschung:
Dateikopie:
Dateiverschiebung:
1. Erstellen Sie ein 20G-Dateisystem mit einem Block Größe von 2048 und Datei Das System ist ext4, die Datenträgerbezeichnung ist TEST und diese Partition muss nach dem Booten automatisch im Verzeichnis /testing gemountet werden und verfügt standardmäßig über die ACL-Mounting-Option
(1) Erstellen Sie eine 20G-Partition;
(2) Format:
mke2fs -t ext4 -b 2048 -L 'TEST' /dev/DEVICE
(3) Bearbeiten Sie die Datei /etc/fstab
LABEL='TEST'
/testing ext4 defaults, acl 0 0
3. Schreiben Sie a Skript zum Ausführen der folgenden Funktionen:
(1) Alle vom aktuellen System erkannten Festplattengeräte auflisten
(2) Wenn die Nummer Anzahl der Festplatten ist 1, die Informationen zur Speicherplatznutzung werden angezeigt. $disks -eq 1 ]; dann
-n #: Verwenden Sie # Blockgeräte, um dieses RAID zu erstellen.
-l #: Geben Sie die zu erstellende RAID-Stufe an
-a {yes|no}: Automatisches Erstellen der Gerätedatei des Ziel-RAID-Geräts
-c CHUNK_SIZE: Geben Sie die Blockgröße an
-x #: Geben Sie die Anzahl der freien Festplatten an;
Zum Beispiel: Erstellen Sie ein RAID5 mit 10G freiem Speicherplatz ;
-D: Detaillierte Informationen zum Raid anzeigen
mdadm -D /dev/md#
Verwaltungsmodus:
-f: markiert die angegebene Festplatte als beschädigt; -a: Festplatte hinzufügen
-r: Festplatte entfernen
Beobachten Sie den Status von md:
cat /proc/mdstat
MD-Gerät stoppen:
mdadm -S /dev /md#
watch-Befehl:
-n #: Aktualisierungsintervall, Einheit ist Sekunden;
watch -n# 'COMMAND'
LVM2:
LVM: Logical Volume Manager, Version: 2
dm: Device Mapper, Konvertieren eines oder Weitere zugrunde liegende Blockgeräte. Module, die in einem logischen Gerät organisiert sind. mapper/VG_NAME -LV_NAME
/dev/mapper/vol0-root
/dev/VG_NAME/LV_NAME
/dev/vol0/root
PV-Management-Tool:
PVS: Kurze PV-Informationen display
pvdisplay: Detaillierte Informationen zu pv anzeigen
Unterstützung mehrerer physischer Volumes: Btrfs können aus mehreren zugrunde liegenden physischen Volumes bestehen; unterstützt RAID mit Online-„Hinzufügen“, „Entfernen“ und „Ändern“;
Copy-on-Write-Update-Mechanismus (CoW): Kopieren, Aktualisieren und Ersetzen von Zeigern anstelle von „In-Place“-Updates
Daten- und Metadaten-Prüfcode: Prüfsumme
Subvolume: sub_volume
Snapshot: Snapshot, der Snapshots unterstützt;
Transparente Komprimierung:
Dateisystemerstellung:
mkfs.btrfs
-L 'LABEL '
-d : Raid0, Raid1, Raid5, Raid6, Raid10, Single
-m : Raid0, Raid1, Raid5, Raid6, Raid10, Single, Dup
-O
-O list-all : Liste alle unterstützten Funktionen;
Komprimierungs-, Dekomprimierungs- und Archivierungstools
komprimieren/ Dekomprimieren: .Z
gzip/gunzip: .gz
bzip2/bunzip2: .bz2
xz/unxz: .xz
zip/unzip
tar, cpio
1. gzip/gunzip
gzip [OPTION]... DATEI...
-d: Dekomprimieren, entspricht gunzip
-c: Ergebnis in die Standardausgabe ausgeben;
-#: 1-9 , geben Sie das Komprimierungsverhältnis an;
zcat: Zeigen Sie den Inhalt der Textdatei ohne explizite Erweiterung an;
2. bzip2/bunzip2/bzcat
bzip2 [OPTION]... DATEI...
-k: behalten, die Originaldatei behalten;
-d: dekomprimieren
-#: 1-9, Komprimierungsverhältnis, Standard ist 6;
bzcat: ohne explizite Erweiterung Zeigen Sie die Textdatei an Inhalt;
3. xz/unxz/xzcat
bzip2 [OPTION]. .. DATEI ...
-k: behalten, die Originaldatei behalten
-d: dekomprimieren
-#: 1-9, Komprimierungsverhältnis, Standard ist 6;
xzcat: ohne explizite Erweiterung Zeigen Sie den Inhalt der Textdatei an ;
4. tar
tar [OPTION]..
(1) Archiv erstellen
tar -c -f /PATH/TO/SOMEFILE.tar FILE ...
tar -cf /PATH/TO/SOMEFILE.tar FILE...
(2) Sehen Sie sich die Dateiliste im Archiv an
tar -t -f /PATH/TO/SOMEFILE.tar
(3) Archiv erweitern
tar -x -f /PATH/TO/SOMEFILE.tar
tar -x -f /PATH/TO/SOMEFILE.tar -C /PATH/TO/DIR
Kombiniert mit Komprimierungstools, um Folgendes zu erreichen: Archivieren und komprimieren
-j: bzip2, -z: gzip, -J: xz
Bash-Skripting:
if-Anweisung, bash -n, bash -x
BEDINGUNG :
Bash-Befehl:
Verwenden Sie das Ausführungsstatusergebnis des Befehls;
Erfolgreich : wahr
Fehler: flase
Die Bedeutung von Erfolg oder Misserfolg: hängt vom verwendeten Befehl ab;
Einzelner Zweig:
wenn BEDINGUNG; dann
wenn- wahr
fi
Doppelzweig:
wenn BEDINGUNG dann
if-true
else
if-false
fi
Mehrere Zweige:
wenn BEDINGUNG1; dann
if-true
elif CONDITION2; then
if-ture
elif CONDITION3; then
if-ture
...
esle
alles falsch
fi
Beurteilen Sie Bedingung für Bedingung, Wann die „wahre“ Bedingung wird zum ersten Mal angetroffen, ihre Verzweigung wird ausgeführt und endet dann
Beispiel: Der Benutzer gibt den Dateipfad ein und das Skript bestimmt; der Dateityp;
#!/bin/bash
#
read - p "Geben Sie einen Dateipfad ein: " Dateiname
if [ -z "$filename" ] then
echo „Verwendung: Geben Sie einen Dateipfad ein.“
exit 2
fi
if [ ! -e $filename ]; > Exit 3
fi
if [ -f $filename ] then
echo „Eine gemeinsame Datei.“
elif [ -d $filename ]; then
echo „Ein Verzeichnis.“
elif [ -L $filename ]; then
echo „Eine symbolische Datei.“
else
echo „Anderer Typ.“
fi
Hinweis: if-Anweisungen können verschachtelt werden;
Schleife: for, while, Until
Schleifenkörper: to be ausgeführter Code; kann n-mal ausgeführt werden;
Eintrittsbedingung:
Austrittsbedingung:
for-Schleife:
für Variablennamen in der Liste; do
Schleifenkörper
fertig
Ausführungsmechanismus:
Elemente in der Liste dem „Variablennamen“ zuweisen „nacheinander“; Der Schleifenkörper wird einmal nach jeder Zuweisung ausgeführt; bis die Elemente in der Liste erschöpft sind, endet die Schleife;
Beispiel: Addiere 10 Benutzer, Benutzer1- Benutzer10; Passwort ist dasselbe wie Benutzername;
if [ ! $UID -eq 0 ];
Ausgang 1
fi
für i in {1..10};
if id user$i &> /dev/null then
echo „user$i existiert.“
sonst
useradd user$i
if [ $? eq 0 ]; then echo "user$i" | „Benutzer hinzufügen$i fertig .“
fi
fi
fertig
Listengenerierungsmethode:
(1) Geben Sie die Liste direkt an; >(2) Liste der ganzen Zahlen:
(a) {start..end}
(b) $(seq [start [ Schritt]] Ende)
(3) Befehl zum Zurückgeben einer Liste
$(COMMAND)
(4) glob
(b) Variablenreferenz
$@, $*
Beispiel: Bestimmen Sie den Typ aller Dateien unter einem bestimmten Pfad
#!/bin/bash
#
für Datei in $(ls /var); do
if [ -f /var/$file ]; then
echo „Common file.“
elif [ -L /var/ $file ]; then
echo „Symbolische Datei.“
elif [ -d /var/$file ] dann
echo „Verzeichnis.“
sonst
echo „Anderer Typ.“
fi
erledigt
Beispiel:
#!/bin/bash
#
declare -i estab=0
declare -i listen=0
declare -i other=0
for state in $( netstat -tan | grep "^tcp>" | awk '{print $NF}'); do
if [ "$state" == 'ESTABLISHED' ]; then
let etab++
elif [ "$state" == 'LISTEN' ]; 🎜>
lass zuhören++
sonst
lass andere++
fi
fertig
echo „ESTABLISHED: $estab“
echo „LISTEN : $listen"
echo „Unbekannt: $other"
/etc/ Es gibt mehrere Dateien, die mit K und S beginnen, im Verzeichnis rc.d/rc3.d.
liest jede Datei separat und die Dateien, die mit K beginnen, werden als Dateien ausgegeben. die mit S beginnende Datei wird als Dateiname plus Anfang ausgegeben;
Zeigen Sie die Bibliotheksdateien an, von denen Binärprogramme abhängen:
ldd /PATH/TO/BINARY_FILE
Auf diesem Computer geladene Bibliotheksdateien verwalten und anzeigen:
ldconfig
/sbin/ldconfig -p: Zeigt alle verfügbaren Bibliotheksdateinamen und Dateipfadzuordnungen an, die auf diesem Computer zwischengespeichert wurden;
Die Konfigurationsdateien sind: /etc/ld.so.conf, /etc/ld.so.conf.d/*.conf
Cache-Datei: /etc/ld.so.cache
Paketverwaltung:
Funktion : Kompiliert jede Komponentendatei der Anwendung in eine oder mehrere Paketdateien, um Verwaltungsvorgänge wie Installation, Deinstallation, Abfrage, Aktualisierung und Überprüfung des Pakets schnell und einfach durchzuführen >
1. Programmkomponentenliste (einzigartig für jedes Paket)
Dateiliste
Bei der Installation oder Deinstallation des laufenden Skripts
2. Datenbank (öffentlich)
Paketname und -version
Abhängigkeiten ;
Funktionsbeschreibung
Der Dateipfad und die Prüfcodeinformationen jeder durch die Installation generierten Datei; 🎜>
Möglichkeiten zum Verwalten von Paketen:
Verwenden Sie den Paketmanager: rpm
Verwenden Sie Front-End-Tools : lecker, dnf
Möglichkeiten, das Paket zu erhalten:
(1) Vom System veröffentlichte CD oder offizieller Server;
CentOS-Spiegel:
(2) Offizielle Website des Projekts
(3) Drittorganisation:
Fedora-EPEL
Suchmaschine:
(4) Machen Sie Ihr eigenes
Vorschläge: Überprüfen Sie seine Legitimität
Quellenlegitimität
Paketintegrität; rpm-Befehlsverwaltungspaket auf dem CentOS-System:
upgrage: „Upgrade“, wenn das alte Versionspaket installiert ist; falls nicht vorhanden. Wenn die alte Version des Pakets installiert ist, dann „installieren“;
freeshen: Wenn die alte Version des Pakets installiert ist, dann „aktualisieren“; Die Version des Pakets ist nicht vorhanden. Der Upgrade-Vorgang wird nicht ausgeführt
rpm -Fvh PACKAGE_FILE ...
--oldpackage: downgrade;
--force: Aktualisierung erzwingen;
Hinweis: (1) Aktualisieren Sie den Kernel nicht. Linux unterstützt die Koexistenz mehrerer Kernelversionen. Daher wird empfohlen, die neue Version direkt zu installieren Version des Kernels
(2) Wenn das Originalpaket Die Konfigurationsdatei wurde nach der Installation geändert, die gleiche Konfigurationsdatei wird von der neuen Version nicht geändert Überschreiben Sie direkt die Konfigurationsdatei der alten Version, aber die Datei der neuen Version bleibt nach dem Umbenennen erhalten (FILENAME.rpmnew);
Abfrage:
rpm {-q|--query} [select-options] [query-options]
[select -options]
-a: alle Pakete
-f: Zeigt an, von welchem Paket die angegebene Datei generiert wurde
-p /PATH/TO/PACKAGE_FILE: Abfrage nach Paketdateien, die noch nicht installiert wurden Operation
--whatprovides CAPABILITY: Abfrage, von welchem Paket die angegebene CAPABILITY bereitgestellt wird
--whatrequires CAPABILITY: Abfrage, von welchem Paket die angegebene CAPABILITY abhängt; 🎜>
[query-options]
--changelog: Abfrage des Änderungsprotokolls des RPM-Pakets
-c: Abfrage der Konfigurationsdatei des Programms
-d: Abfrage der Dokumentation des Programms
-i: Informationen
-l: Alle nach der Installation des angegebenen Pakets generierten Dateien anzeigen
--scripts: Skriptfragmente, die mit dem Paket geliefert werden
-R: Fragen Sie die FÄHIGKEIT ab, von der das angegebene Paket abhängt.
-- Bietet: Listet die FÄHIGKEIT auf, die vom angegebenen Paket bereitgestellt wird
(wird nur aus Legacy-Gründen beibehalten – install verwenden)
* localupdate rpmfile1 [rpmfile2] [...]
(nur aus Legacy-Gründen beibehalten – Update verwenden)
Paketverwaltung Zugehörige Befehle:
* groupinstall group1 [group2] [...]
* groupupdate group1 [group2] [...]
* grouplist [hidden] [ groupwildcard ] [...]
* groupremove group1 [group2] [...]
* groupinfo group1 [...]
Wie So verwenden Sie die CD als lokales Yum-Repository:
(1) Hängen Sie die CD in ein Verzeichnis ein, z. B. /media/cdrom
# mount -r -t iso9660 /dev/cdrom /media/cdrom
(2) Konfigurationsdatei erstellen
[CentOS7]
name=
baseurl=
gpgcheck=
aktiviert=
Yum-Befehlszeilenoptionen:
--nogpgcheck: GPG-Prüfung deaktivieren;
-y: automatische Antwort ist „Ja“;
-q: Silent-Modus --disablerepo=repoidglob: temporär Deaktivieren Sie das hier angegebene Repo;
--enablerepo=repoidglob: Aktivieren Sie das hier angegebene Repo vorübergehend;
--noplugins: Deaktivieren Sie alle Plug-Ins -ins;
In der Repo-Konfigurationsdatei von yum verfügbare Variablen:
$releasever: die Hauptversionsnummer der aktuellen Betriebssystemversion; >
$arch: Plattform
$basearch: Basisplattform
$YUM0- $YUM9
$releasever/$basearch/os
Yum-Repository erstellen:
createrepo [Optionen]
Paketkompilierung und Installation: testapp-VERSION-release.src - -> Verwenden Sie nach der Installation den Befehl rpmbuild, um ein RPM-Paket im Binärformat zu erstellen, und installieren Sie es dann
Quellcode --> > Kompilieren (gcc) --> Link --> Ausführen
Quellcode-Organisationsformat:
Mehrere Dateien: Es können dateiübergreifende Abhängigkeiten zwischen den Codes in der Datei bestehen
C, C++: make (configure -- > Makefile.in --> makefile)
java: maven
Drei Schritte für die C-Code-Kompilierung und -Installation:
./configure:
(1) Parameter über Optionen übergeben, Aktivierungsfunktionen angeben, installieren Pfad usw.; bei der Ausführung wird das Makefile unter Bezugnahme auf die Spezifikation des Benutzers und die Datei Makefile.in generiert (2) Überprüfen Sie die externe Umgebung, von der es abhängt; 🎜>
make:
Erstellen Sie die Anwendung basierend auf dem Makefile
make install
Entwicklungstools:
autoconf: Konfigurationsskript generieren
automake: Makefile.in generieren
Vorschlag: Überprüfen Sie vor der Installation INSTALL und README
Quellcode von Open-Source-Programmen erhalten:
Offizielle selbst erstellte Website:
Apache .org (ASF)
mariadb.org
...
Code-Hosting:
SourceForge
Github.com
code.google.com
c/c++: gcc (GNU C Complier)
C-Quellcode kompilieren:
Prämisse: Bereitstellung von Entwicklungstools und Entwicklungsumgebung
Entwicklungstools: make, gcc usw.
Entwicklung Umgebung: Entwicklungsbibliothek, Header-Datei
glibc: Standardbibliothek
Entwicklungskomponenten über „Paketgruppe“ bereitstellen
DEVICE: Das Gerät, für das diese Konfigurationsdatei gilt
HWADDR: Der MAC Adresse des entsprechenden Geräts;
BOOTPROTO: das bei der Aktivierung dieses Geräts verwendete Adresskonfigurationsprotokoll, häufig verwendet: dhcp, statisch, keine, bootp; 🎜>NM_CONTROLLED: NM ist die Abkürzung für NetworkManager; CentOS6 empfiehlt „Nein“; 🎜 >
TYP: allgemeiner Ethernet-Typ, Bridge
UUID: eindeutige Kennung des Geräts;
IPADDR: Geben Sie die IP-Adresse an;
NETMASK: Subnetzmaske;
GATEWAY: Standard-Gateway;
DNS1: der erste DNS-Server zeigend;
DNS2: zweiter DNS-Server zeigend;
USERCTL: ob normale Benutzer es steuern können;
PEERDNS: Wenn der Wert von BOOTPROTO „dhcp“ ist, ob die vom DHCP-Server zugewiesenen DNS-Server-Zeigerinformationen direkt in die Datei /etc/resolv.conf überschrieben werden dürfen ;
/etc/sysconfig/network-scripts/route-IFACE
Zwei Stile:
(1) TARGET via GW
(2) Alle drei Zeilen definieren eine Route
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
Mehrere Adressen für die Netzwerkkarte konfigurieren:
ifconfig:
ifconfig IFACE_ALIAS
IP
IP-Adresse hinzufügen
Konfigurationsdatei:
ifcfg- IFACE_ALIAS
DEVICE=IFACE_ALIAS
Hinweis: Gateway-Alias kann nicht mit dem DHCP-Protokoll gebootet werden; >
udev unterstützt viele verschiedene Benennungsschemata:
Firmware, Topologie
(1) Mechanismus zur Benennung von Netzwerkkarten
systemd-Benennungsmethode für Netzwerkgeräte:
(a) Wenn die von der Firmware oder dem BIOS bereitgestellten Indexinformationen für das auf dem Motherboard integrierte Gerät verfügbar und vorhersehbar sind, basiert der Name auf diesem Index, z. B.
(b) Wenn die vom PCI-E-Erweiterungssteckplatz bereitgestellten Indexinformationen verfügbar und vorhersehbar sind, werden sie entsprechend diesem Index benannt, z. B.
(c) Wenn die physischen Standortinformationen der Hardwareschnittstelle verfügbar sind, benennen Sie sie basierend auf diesen Informationen, z. B. enp2s0; Es kann auch basierend auf der MAC-Adresse benannt werden,
(e) Wenn keine der oben genannten Optionen verfügbar ist, wird der traditionelle Benennungsmechanismus verwendet
Einige der oben genannten Benennungsmechanismen erfordern die Teilnahme des biosdevname-Programms
a Prozesse automatisch sortieren l Protokolle anzeigen/ausblenden
c Prozesse sortieren nach CPU% b Bytes oder Bits für Netzwerk-E/A
m Prozesse nach MEM% sortieren w Warnungsprotokolle löschen
p Prozesse sortieren nach Name Festplatten-E/A-Statistiken ausblenden h Diesen Hilfebildschirm anzeigen/ausblenden
f Dateisystemstatistiken anzeigen/ausblenden t Netzwerk-E/A als Kombination anzeigen
n Netzwerkstatistiken anzeigen/ausblenden u Kumulative Netzwerk-E/A anzeigen
s Sensorstatistiken anzeigen/ausblenden q Beenden (Esc und Strg-C funktionieren auch)
y HDDtemp-Statistiken ein-/ausblenden
常用选项:
-b: 以Byte为单位显示网卡数据速率;
-d: 关闭磁盘I/O模块;
-f /path/to/somefile:设定输入文件位置;
-o {HTML|CSV}:输出格式;
-m: 禁用mount模块
-n: 禁用网络模块
-t #: 延迟时间间隔
-1:每个CPU的相关数据单独显示;
C/S模式下运行glances命令:
服务Hinweis:
glances -s -B IPADDR
IPADDR: 指明监听于本机哪个地址
客户端模式:
glances -c IPADDR
IPADDR:要连入的服务器端地址
dstat命令:
dstat [-afv] [Optionen ..] [Verzögerung [Anzahl]]
-c: 显示cpu相关信息;
-C # ,#,...,total
-d: 显示disk相关信息;
-D total,sda,sdb,.. .
-g:显示page相关统计数据;
-m: 显示memory相关统计数据;
-n: 显示network相关统计数据;
-p: 显示process相关统计数据;
-r:显示io请求相关的统计数据;
-s: 显示swapped相关的统计数据;
-- tcp
--udp
--unix
--raw
--socket
--ipc
--top-cpu:显示最占用CPU的进程;
--top-io: 显示最占用io的进程;
--top-mem: 显示最占用内存的进程;
--top-lantency: 显示延迟最大的进程;
kill命令:
Steuersignale an den Prozess senden, um Prozessmanagement zu erreichen
Anzeige der aktuell vom System verfügbaren Signale:
# kill -l
# man 7 signal
Gemeinsame Signale:
1) SIGHUP: Lassen Sie die Konfigurationsdatei erneut lesen, ohne den Prozess zu schließen.
2) SIGINT: Abbrechen des laufenden Prozesses, entspricht Strg+C ;
9) SIGKILL: Beende den laufenden Prozess
15) SIGTERM: Beende den laufenden Prozess; 🎜>
18) SIGCONT:
19) SIGSTOP:
Signalmethode angeben:
(1) Numerische Identifikation des Signals 1, 2, 9
(2) Vollständiger Name des Signals; >
(3) Der abgekürzte Name des Signals; HUP
Sendet ein Signal an den Prozess:
[-SIGNAL] PID töten...
Alle Prozesse unter „Name“ töten:
killall [-SIGNAL] Programm
Linux-Jobsteuerung
Vordergrundjob: Starten Sie über das Terminal und belegen Sie das Terminal nach dem Start.
Hintergrundjob: Kann über das Terminal gestartet werden, wird aber nach dem Start im Hintergrund ausgeführt (Terminal freigeben);
Wie lasse ich den Job im Hintergrund laufen?
(1) Auftrag wird ausgeführt
Strg+z
(2) Noch nicht gestartet Job
# COMMAND &
Obwohl diese Art von Job zur Ausführung an den Hintergrund gesendet wird, wird er trotzdem ausgeführt bezogen auf Terminal bezogen; wenn Sie es in den Hintergrund schicken möchten, trennen Sie die Beziehung mit dem Terminal:
# nohup COMMAND &
Alle Jobs anzeigen:
# Jobs
Jobkontrolle:
# fg [[%]JOB_NUM]: Bringt den angegebenen Hintergrundjob wieder in den Vordergrund;
# bg [[%]JOB_NUM]: Lassen Sie den Job, der an den Hintergrund gesendet wird, läuft im Hintergrund weiter ;
# kill [%JOB_NUM]: Beendet den angegebenen Job; >Anpassung der Prozesspriorität:
Statische Priorität: 100-139
Der schöne Wert, wenn der Prozess wird standardmäßig mit 0 gestartet und die Priorität beträgt 120; BEFEHL [ARG]...]
renice-Befehl:
renice [-n] Prioritäts-PID. .
Ansicht:
ps axo pid,comm,ni
Nicht beteiligte Befehle: sar, tsar, iostat, iftop
Führen Sie eine Aufgabe zu einem bestimmten Zeitpunkt in der Zukunft aus: at, Batch
Führen Sie eine Aufgabe regelmäßig aus: cron
E-Mail-Dienst:
SMTP: einfaches E-Mail-Übertragungsprotokoll, das zur Übertragung von E-Mails verwendet wird; >
pop3: Post Office Protocol
imap4: Internet Mail Access Protocol
mailx - Internet-Mail senden und empfangen
MUA: Mail User Agent
mailx [-s 'SUBJECT'] Benutzername[@hostname]
Generierung des E-Mail-Textes:
(1) Direkt eingeben, Strg+d
(2) Eingabeumleitung;
(3) Durch Pipe
echo -e " Wie Bist du?nWie alt bist du? :
zur [optionalen] ZEIT
ZEIT:
HH:MM [JJJJ-MM-TT]
Mittag, Mitternacht, Teestunde
morgen
jetzt+#{Minuten, Stunden, Tage ODER Wochen}
Allgemeine Optionen:
-q QUEUE:
-l: Listet Jobs auf, die in der angegebenen Warteschlange auf ihre Ausführung warten; äquivalent zu atq
-d : Den angegebenen Job löschen; entspricht atrm
-c: Spezifische Jobaufgaben anzeigen
-f /path/from/somefile: Aufgaben aus der angegebenen Datei lesen;
Hinweis: Die Ausführungsergebnisse des Jobs werden den relevanten Benutzern per E-Mail mitgeteilt; >
Batch-Befehl:
Lassen Sie das System seine eigene freie Zeit wählen, um die hier angegebenen Aufgaben auszuführen;
Periodischer Aufgabenplan: Cron
Verwandte Pakete:
cronie: Hauptpaket, stellt Crond-Daemon-Prozesse und bereit verwandte Hilfstools;
cronie-anacron: ein Zusatzprogramm für Cronie; das zur Überwachung des Ausführungsstatus von Cronie-Aufgaben verwendet wird; past Wenn es ausgeführt wird, startet Anacron anschließend diese Aufgabe.
crontabs: Enthält CentOS, um Systemwartungsaufgaben bereitzustellen; > Stellen Sie sicher, dass der Crond-Daemon ausgeführt wird:
CentOS 7:
systemctl status crond
. ..läuft...
CentOS 6:
Service-Crond-Status
Aufgaben, deren regelmäßige Ausführung geplant ist, werden an crond übermittelt, das eine Punkt-zu-Punkt-Ausführung implementiert.
System-Cron-Aufgabe: Systemwartungsauftrag
/etc/crontab
Benutzer-Cron-Aufgabe :
crontab-Befehl
System-Cron-Task
# Beispiel der Jobdefinition:
# .---------------- Minute (0 - 59)
# |.------------ Stunde (0 - 23)
# |. Tag des Monats (1 - 31)
# .------- Monat (1 - 12) ODER |.
# |.---- Wochentag (Sonntag=0 oder 7) | ,sat
# |
# * * * * * auszuführender Benutzername
Zum Beispiel: Führen Sie den Echo-Befehl um 21:10 Uhr aus;
10 21 * * *
gentoo /bin/echo „Howdy!“
Zeitdarstellung:
(1 ) Spezifischer Wert;
Wert innerhalb des gültigen Wertebereichs zu einem bestimmten Zeitpunkt
(2) *
Alle Werte innerhalb des gültigen Wertebereichs zu einem bestimmten Zeitpunkt
bedeutet „jeden…“; (3 ) Diskrete Werte: ,
#,#,#
(4) Kontinuierliche Werte: -
#-#
(5) Definieren Sie im angegebenen Zeitbereich die Schrittgröße:
/#: # ist die Schrittgröße
Zum Beispiel: echo command alle 3 Stunden;
0 */3 * * * gentoo /bin/echo „howdy!“
Benutzer-Cron:
crontab-Befehlsdefinition, jeder Benutzer hat eine eigene Cron-Task-Datei: /var/spool/cron /USERNAME
crontab-Befehl:
crontab [-u user] [-l | -r | ] [-i]
-l: Alle Aufgaben auflisten
-e: Aufgaben bearbeiten; >-r: Alle Aufgaben entfernen;
-i: Wird mit -r verwendet, um Benutzern das selektive Entfernen bestimmter Aufgaben im interaktiven Modus zu ermöglichen; >
-u Benutzer: kann nur von Root ausgeführt werden und verwaltet Cron-Aufgaben für den angegebenen Benutzer
Hinweis: Der Die Operationsergebnisse werden den relevanten Benutzern per E-Mail mitgeteilt.
(1) COMMAND > ; /dev/null
Für Cron-Tasks hat % einen besonderen Zweck; wenn Sie % in einem Befehl verwenden möchten, müssen Sie es maskieren , Wenn Sie % in einfache Anführungszeichen setzen, müssen Sie es nicht maskieren;
Denken:
(1) Wie führe ich eine Aufgabe in Sekunden aus?
* * * * * für min in 0 1 2; schlafe 20;(2) Wie Alle 7 Minuten eine Aufgabe ausführen?
Integrieren Sie alle Funktionen in das gleiche Programm
Mikrokernel-Design: Windows, Solaris
Jede Funktion wird über ein separates Subsystem implementiert
Linux-Kernel-Funktionen:
Unterstützung der Modularisierung: .ko
Unterstützung des dynamischen Ladens und Entladens von Modulen ;
Komponente:
Kerndatei: /boot/vmlinuz-VERSION-release
ramdisk:
CentOS 5: /boot/initrd-VERSION-release.img
CentOS 6: /boot/initramfs-VERSION -release.img
Moduldatei:/lib/modules/VERSION-release
CentOS-Systemstartvorgang:
POST: Selbsttest beim Einschalten;
ROM: CMOS
BIOS: Grundlegendes Eingabe- und Ausgabesystem
ROM+RAM
BOOT-Sequenz:
Suchen Sie nacheinander nach jedem Startgerät. Das erste Gerät mit einem Startprogramm ist das Gerät, das für diesen Start verwendet wird Bootloader: Bootloader, Programm
Windows: Ntloader
Linux:
LILO : Linux LOader
GRUB: GRand Uniform Bootloader
GRUB 0.X: GRUB Legacy
GRUB 1.x: GRUB2
Funktion: Bereitstellung eines Menüs, das es dem Benutzer ermöglicht, das System zu starten oder eine andere Kernelversion zu laden; Gehen Sie zu einem bestimmten Bereich im Speicher, dekomprimieren, erweitern und übertragen Sie die Systemsteuerung an den Kernel
MBR:
446: Bootloader
64: Fett
2: 55AA
GRUB:
Bootloader: 1. Stufe
Festplatte: 2. Stufe
Kernel:
Selbstinitialisierung:
Alle erkannten Hardwaregeräte erkennen
Laden Sie den Hardwaretreiber; (Sie können Ramdisk verwenden, um den Treiber zu laden)
Mounten Sie das Root-Dateisystem im schreibgeschützten Modus
Führen Sie die erste Anwendung im Benutzerbereich aus: /sbin/init
Ausführungsstufe: für Anwendungszwecke wie Systembetrieb oder Wartung eingestellt
0-6: 7 Stufen
0: Herunterfahren
1: Einzelbenutzermodus (Root, keine Anmeldung erforderlich), Einzelbenutzermodus; 🎜>2: Mehrbenutzermodus, die Netzwerkfunktion wird gestartet, aber NFS wird nicht gestartet;
4: Reservierte Ebene; kann mit Ebene 3 identisch sein;
5: Mehrbenutzermodus, normaler Modus ; grafische Oberfläche;
6: Neustart
Standardebene:
3, 5
Stufe wechseln:
init #
Ansichtsebene:
Runlevel
who -r
Konfigurationsdatei:/etc/inittab
Jede Zeile definiert eine Aktion und den entsprechenden Prozess
id:runlevel:action:process
Aktion:
Warten: Zu diesem Level wechseln und ausführen einmal;
respawn: Wenn dieser Prozess beendet wird, starten Sie ihn neu; 🎜>
sysinit: Legen Sie die Systeminitialisierungsmethode fest. Geben Sie hier normalerweise /etc/rc.d/rc.sysinit an >
id:3:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait: / etc/rc.d/rc 1
...
l6:6:wait:/etc/rc.d/rc 6
Erklärung: rc 0 --> bedeutet Lesen von /etc/rc.d/rc0.d/
K*: K##*: ##Running order; je kleiner die Zahl, desto kleiner die Zahl, der Dienst hängt normalerweise von anderen Diensten ab; S*: S##*: ## laufende Reihenfolge; je kleiner die Nummer, desto kleiner die Nummer, von der der Dienst abhängt
für srv in /etc/rc.d/rc0.d/K*; tun
$srv stop
fertig
für srv in /etc/rc.d/rc0.d/S*; do
$srv start
fertig
chkconfig-Befehl
Ansicht Dienste auf allen Ebenen Die Start- oder Herunterfahreinstellungen:
chkconfig [--list] [name]
Hinzufügen :
SysV-Dienstskript wird in /etc/rc.d/init.d (/etc/init.d) platziert
chkconfig --add name
#!/bin/bash
#
# chkconfig: LLLL nn nn
Löschen:
chkconfig -- del name
Ändern Sie den angegebenen Linktyp
chkconfig [--levellevels] name
--level LLLL: Geben Sie den festzulegenden Level an; wenn er weggelassen wird, bedeutet dies 2345; 🎜>Hinweis: Auf normaler Ebene ist der zuletzt gestartete Dienst, S99local, nicht mit einem Dienstskript in /etc/rc.d/init.d verknüpft, sondern verweist daher auf das Skript /etc/rc.d/rc.local Es ist unpraktisch oder unnötig, es als Dienst zu schreiben. Das Skript wird im Verzeichnis /etc/rc.d/init.d/ abgelegt, und der Befehl, den Sie beim Einschalten des Computers automatisch ausführen möchten, kann direkt abgelegt werden in der Datei /etc/rc.d/rc.local;
(4) Mounten Sie das in /etc/fstab definierte Dateisystem Datei;
(5) Erkennen Sie das Root-Dateisystem und mounten Sie das Root-Dateisystem erneut im Lese-/Schreibmodus
(6) Stellen Sie die Systemuhr ein.
(7) Aktivieren Sie das Swap-Gerät .conf-Datei;
(9) LVM- und Software-RAID-Geräte aktivieren;
(10) Treiber für zusätzliche Geräte laden;
(11) Aufräumarbeiten
Zusammenfassung: /sbin/init --> (/etc/inittab) --> ; Schließen Entsprechend den Diensten, die geschlossen werden müssen, starten Sie die Dienste, die gestartet werden müssen --> Richten Sie das Anmeldeterminal ein
CentOS 6:
Das Init-Programm ist: upstart und seine Konfigurationsdatei:
/etc /inittab, /etc/init/*.conf
Hinweis: Die Syntax der Datei /etc/init/*.conf folgt der Syntax der Upstart-Konfigurationsdatei
CentOS 6-Startvorgang:
POST --> Boot-Sequenz (BIOS) --> Kernel(ramdisk) --> (/etc/inittab, /etc/init/*. conf) --> Standardausführungsebene festlegen --> Dienste auf der entsprechenden Ebene schließen oder starten
GRUB( Bootloader):
grub: GRand Unified Bootloader
grub 0.x: Grub Legacy
grub 1.x: grub2
grub Legacy:
stage1: mbr
stage1_5: Der Sektor nach mbr ermöglicht es dem Bootloader in stage1, das Dateisystem auf der Partition zu identifizieren, auf der sich stage2 befindet
stage2 und Kernel werden normalerweise in einer Basis-Festplattenpartition abgelegt
Funktion:
(1) Bereitstellung von Menüs und interaktiven Schnittstellen
e: Bearbeitungsmodus, der zum Bearbeiten von Menüs verwendet wird;
c: Befehlsmodus, interaktive Schnittstelle
(2) Laden Sie den vom Benutzer ausgewählten Kernel oder das Betriebssystem
Übergabe von Parametern an den Kernel zulassen
Sie können dieses Menü ausblenden
(3) Bietet einen Schutzmechanismus für Menü
Menü „Bearbeiten“ Authentifizieren
Authentifizieren, um Kernel oder Betriebssystem zu aktivieren
So identifizieren Sie ein Gerät:
(hd#,#)
hd#: Festplattennummer, dargestellt durch beginnende Zahlen; von 0
#: Partitionsnummer, dargestellt durch Zahlen beginnend bei 0
(hd0,0)
Grub-Befehlszeilenschnittstelle
Hilfe: Hilfeliste abrufen
help SCHLÜSSELWORT: Detaillierte Hilfeinformationen
find (hd#,#)/PATH/TO/SOMEFILE:
root (hd#,# )
kernel /PATH/TO/KERNEL_FILE: Legen Sie die für diesen Start verwendete Kerneldatei fest. Darüber hinaus können Sie viele vom Kernel unterstützte cmdline-Parameter hinzufügen Zum Beispiel: init=/ path/to/init, selinux=0
initrd /PATH/TO/INITRAMFS_FILE: Legen Sie eine Ramdisk fest, die zusätzliche Dateien für die bereitstellt ausgewählter Kernel;
booten: Booten Sie den ausgewählten Kernel
Starten Sie das System manuell über die Grub-Befehlszeilenschnittstelle :
Passwort [--md5] STRING: Authentifizierung beim Booten des ausgewählten Kernels oder Betriebssystems ;
grub-md5-crypt-Befehl
Eingabe Einzelbenutzermodus:
(1) Grub-Menü bearbeiten (wählen Sie den zu bearbeitenden Titel aus und verwenden Sie dann den Befehl e); >(2) Im ausgewählten Kernel können Sie
1, s, S oder single;
(3) in der Zeile wo anhängen Wenn der Kernel gefunden wurde, geben Sie den Befehl „b“ ein. install
grub-install --root-directory=ROOT /dev/DISK
(2) grub
grub> root (hd#,#)
grub> setup (hd#)
Linux-Kernel:
Single-Kernel-Systemdesign, nutzt jedoch die Vorteile des Mikrokernel-Designs voll aus System und führt einen modularen Mechanismus in den Kernel ein.
Kernelkomponenten:
Kernel: Kernelkern, normalerweise bzIma, normalerweise im Verzeichnis /boot, mit dem Namen vmlinuz-VERSION-RELEASE
Kernelobjekt: Kernelobjekt, im Allgemeinen in /lib/modules/VERSION-RELEASE/
[ ]: N
[M]: M
[*]: Y
Hilfsdateien: ramdisk
initrd
initramfs
Laufender Kernel:
uname-Befehl:
uname – Systeminformationen drucken
uname [ OPTION]...
-n: Knotennamen anzeigen;
-r: VERSION-RELEASE anzeigen;
Modul:
lsmod-Befehl:
Zeigen Sie an, was vom Kern getan wurde geladenes Kernelmodul
zeigt Inhalte aus der Datei /proc/modules
modinfo-Befehl an :
Detaillierte Beschreibungsinformationen des Moduls anzeigen
Ein Tool zum Generieren von Kernelmodul-Abhängigkeitsdateien und Systeminformationszuordnungsdateien
Laden oder Entladen von Kernelmodulen:
insmod-Befehl:
insmod [ Dateiname ] [ Moduloptionen... ]
rmmod
rmmod [ Modulname ]
/proc-Verzeichnis:
Kernel-Handle Seine eigenen internen Statusinformationen und statistischen Informationen sowie konfigurierbare Parameter werden über das proc-Pseudodateisystem ausgegeben
Parameter:
Schreibgeschützt: Informationen ausgeben
Schreibbar: Vom Benutzer angegebener „neuer Wert“ kann akzeptiert werden, um eine bestimmte Funktion oder Funktion des Kernels zu konfigurieren
/proc/sys
(1) Der Befehl sysctl wird verwendet, um viele Parameter in diesem Verzeichnis anzuzeigen oder festzulegen;
sysctl -w path.to.parameter=VALUE
~]# sysctl -w kernel.hostname=mail.madu .com
(2) Der Echo-Befehl kann auch die Werte der meisten Parameter durch Umleitung ändern; >echo "VALUE" > ; /proc/sys/path/to/parameter
~]# echo "www.madu.com" > /sys/kernel/hostname
sysctl-Befehl:
Standardkonfigurationsdatei: /etc/sysctl.conf
(1) Einen bestimmten Parameter festlegen
sysctl -w parameter=VALUE
(2 ) Legen Sie es fest, indem Sie die Parameter der Konfigurationsdatei
sysctl -p [/path/to/conf_file]
lesen Routenweiterleitung im Kernel:
/proc/sys/net/ipv4/ip_forward
Mehrere häufig verwendete Parameter :
net.ipv4.ip_forward
vm.drop_caches
kernel.hostname
/sys-Verzeichnis:
sysfs: Gibt auch die relevanten Attributinformationen jedes vom Kernel erkannten Hardwaregeräts aus als Einstellungsinformationen des Kernels für Hardwarefunktionen. Einige Parameter können geändert werden, um die Betriebseigenschaften der Hardware anzupassen.
udev erstellt dynamisch die erforderlichen Gerätedateien für jedes Gerät über die Informationsausgabe unter diesem Pfad. udev ist ein User-Space-Programm, das spezielle Tools ausführt; hotplug;
Wenn udev eine Gerätedatei für ein Gerät erstellt, liest es dessen vordefinierte Regeldateien, normalerweise in /etc/udev/rules.d und /usr /lib/udev/rules.d Verzeichnis;
Erstellung der Ramdisk-Datei:
(1 ) mkinitrd-Befehl
Ramdisk-Datei für den aktuell verwendeten Kernel neu erstellen
( 2) Erhalten Sie relevante Informationen über die Hardwaregeräte auf dem Zielhost
(3) Erhalten Sie relevante Informationen über die Funktionen des Zielhostsystems, z. B. das zu aktivierende Dateisystem.
(4) Erhalten Sie die Kernelquelle Codepaket;
www.kernel.org
Bereiten Sie die Entwicklungsumgebung vor:
Paketgruppe (CentOS 6):
Serverplattformentwicklung
Entwicklungstools
Informationen zum Zielhost-Hardwaregerät:
CPU:
~]# cat /proc/cpuinfo
~]# x86info -a
~]# lscpu
PCI-Ausrüstung:
~]# lspci
-v
-vv
~]# lsusb
-v
-vv
~]# lsblk
Alle Hardware-Geräteinformationen erfahren
~]# hal-device
Einfacher Herstellungsprozess basierend auf der Vorlagendatei:
~]# tar xf linux-3.10.67.tar.xz -C /usr/src
~]# cd /usr/src
~ ]# ln -sv linux-3.10.67 linux
~]# cd linux
~]# cp /boot /config-$ (uname -r) ./.config
~]# make menuconfig
~] # screen
~]# make -j #
~]# make module_install
~]# make install
Starten Sie das System neu und testen Sie es mit dem neuen Kernel
Linux-Kernel-Kompilierung (2)
Schritte zum Kompilieren des Kernels:
(1) Kernel-Optionen konfigurieren
Unterstützt den „Update“-Modus für die Konfiguration:
(a) make config: Konfigurieren Sie alle im Kernel konfigurierbaren Optionen auf Traversal-Basis die Befehlszeile; (b) make menuconfig: eine Textfensterschnittstelle basierend auf Curses; (c) make gconfig: ein Fenster Schnittstelle basierend auf der GTK-Entwicklungsumgebung; (d) make xconfig: Fensterschnittstelle basierend auf der Qt-Entwicklungsumgebung
Unterstützt „neue Konfiguration“; Modus für die Konfiguration:
(a) make defconfig: Konfigurieren Sie basierend auf der „Standard“-Konfiguration, die vom Kernel für die Zielplattform bereitgestellt wird; >(b) make allnoconfig: Alle Optionen sind „Nein“;
(2) Kompilieren
make [-j #]
So kompilieren Sie nur einen Teil der Funktionen im Kernel:
( a) Kompilieren Sie nur den relevanten Code in einem bestimmten Unterverzeichnis:
# cd /usr/src/linux
# make dir/
(b) Kompilieren Sie nur ein bestimmtes Modul:
# cd /usr/src/linux
# make dir/file. ko
Zum Beispiel: Kompilieren Sie den Treiber nur für e1000:
# make drivers/net/ethernet/intel/e1000 /e1000.ko
So kompilieren Sie den Kernel:
Die kompilierte Zielplattform unterscheidet sich von der aktuellen Plattform
# make ARCH=arch_name
Um Hilfe für eine bestimmte Zielplattform zu erhalten
# make ARCH =arch_name help
So kompilieren Sie den kompilierten Kernel-Quellbaum neu:
Bereinigen vorher aufrufen Vorgang:
# make clean: Bereinigt die meisten durch die Kompilierung generierten Dateien, behält aber Konfigurationsdateien usw. bei
# make mrproper: Bereinigen Sie alle kompilierten Dateien, Konfigurationen und einige Sicherungsdateien 🎜>
Parameter an den Kernel übergeben: append initrd=initrd.img ...
Mount the Root-Dateisystem und starten Sie Anaconda
GUI-Schnittstelle standardmäßig starten
Wenn explizit angegeben, verwenden Sie die TUI-Schnittstelle:
Übergeben Sie einfach den Parameter „text“ an den Kernel
boot: linux text
Hinweis: Der oben genannte Inhalt sollte sich im Allgemeinen auf dem Startgerät befinden. Für nachfolgende Anaconda und seine Installationspakete stehen mehrere Methoden zur Verfügung:
Lokale CD
Lokale Festplatte
FTP-Server: Yum-Repository
http-Server: Yum-Repository
NFS-Server
Wenn Sie die Installationsquelle manuell angeben möchten:
Boot: Linux-Methode
Der Arbeitsprozess der Anaconda-Anwendung:
Konfigurationsphase vor der Installation
Während der Installation verwendete Sprache
Tastaturtyp
Installationszielspeichergerät
Basisspeicher: lokale Festplatte
Spezielles Gerät: iSCSI
Hostnamen festlegen
Netzwerkschnittstelle konfigurieren
Zeitzone
Administratorpasswort
Partitionsmodus festlegen Und der Installationsort von MBR
Erstellen Sie einen normalen Benutzer
Wählen Sie den gewünschten aus Paket installieren
Installationsphase
Erstellen Sie Partitionen auf der Zielfestplatte, führen Sie Formatierungsvorgänge durch usw.
Installieren Sie das ausgewählte Paket am Zielspeicherort
Bootloader installieren
Zum ersten Mal starten
iptables
selinux
Core-Dump
Anaconda-Konfigurationsmethode:
(1) Interaktive Konfigurationsmethode;
(2) Vervollständigen Sie die Konfiguration automatisch, indem Sie die im Voraus angegebene Konfigurationsdatei lesen.
Konfiguration gemäß spezifischer Syntax Optionen;
Kickstart-Datei;
Installations-Boot-Optionen:
boot:
text: Textinstallationsmethode
Methode: Geben Sie die zu verwendende Installationsmethode manuell an
um ein bestimmtes Codesegment mehrmals auszuführen
um wie oft auszuführen?
Die Anzahl der Zyklen ist im Voraus bekannt:
Die Anzahl der Zyklen ist im Voraus unbekannt
Es müssen Ein- und Ausreisebedingungen vorliegen:
für, während, bis
Funktion: Strukturierte Programmierung und Code-Wiederverwendung;
Funktion
for-Schleife Syntax:
für NAME in LISTE; tun
Schleifenkörper
fertig
Listengenerierungsmethode:
(1) Ganzzahlliste
{start ..end}
$(seq start [[step]end])
(2) glob
/ etc/rc.d/rc3.d/K*
(3) Befehl
Durch Ping-Befehl den Online-Status aller Hosts im Bereich 172.16.250.1-254 erkennen
#!/bin/bash
#
net='172.16.250'
Uphosts=0
Downhosts=0
for i in {1..20}; ping -c 1 -w 1 ${net}.$ {i} &> /dev/null
if [ $? -eq 0 ]; ${i} ist aktiv.“
let uphosts++
else
echo "$ {net}.${i} ist ausgefallen.“
let downhosts++
fi
fertig
echo „Up hosts: $uphosts.“
echo „Down hosts: $downhosts.“
while-Schleife:
while CONDITION; do
Schleifenkörper
fertig
BEDINGUNG: Schleifenkontrollbedingung; Treffen Sie vor dem Eintritt in die Schleife eine erneute Beurteilung.
Wenn die Bedingung „wahr“ ist, führen Sie eine Schleife durch, bis der Zustandsteststatus „ false", Schleife beenden;
Daher: CONDTION sollte im Allgemeinen eine Schleifensteuervariable haben; und der Wert dieser Variablen wird im Schleifenkörper kontinuierlich geändert;
Beispiel: Finden Sie die Summe aller positiven ganzen Zahlen innerhalb von 100;
#!/bin/bash
#
declare -i sum=0
declare -i i=1
while [ $i -le 100 ]; do
let sum+=$i
lass i++
fertig
echo „$i“
echo „Zusammenfassung: $sum.“
10 Benutzer hinzufügen
Benutzer1-Benutzer10
#!/bin/bash
#
declare -i i= 1
declare -iuser=0
while [ $i -le 10 ];
if ! id user$i &> > echo „Benutzer hinzufügen: Benutzer$i.“
Benutzer zulassen++
fi
lass i++
fertig
echo „$users Benutzer hinzufügen.“
Erkennen Sie den Online-Status aller Hosts im Bereich 172.16.250.1-254 über den Ping-Befehl (verwenden Sie eine While-Schleife)
#!/bin/bash
#
declare -i i=1
declare - i uphosts=0
declare -i downhosts=0
net='172.16.250'
while [ $i -le 20 ]; do
if ping -c 1 -w 1 $net .$i &> /dev/null ; then
echo „$net.$i is up.“
let uphosts++
sonst
echo „$net.$i ist down.“
let downhosts++
fi
let i++
fertig
echo „Up hosts: $uphosts. „
echo „Down hosts: $downhosts.“
打印九九乘法表;(分别使用for和while循环实现)
#!/bin/bash
#
für j in {1..9}; do
für i in $(seq 1 $j); do
echo -e -n "${i}X${j}=$[$i*$j]t"
erledigt
echo
erledigt
#!/bin/bash
#
declare -i i=1
deklarieren -i j=1
while [ $j -le 9 ]; do
while [ $i -le $j ]; do
echo -e -n "${i}X${j}=$[$i*$j]t"
let i++
done
echo
let i= 1
let j++
fertig
利用RANDOM生成10个随机数字,输出这个10数字,并显示其中的最大者和最小者;
#!/bin/bash
#
declare -i max=0
declare -i min=0
declare -i i=1
while [ $i -le 9 ]; do
rand=$RANDOM
echo $rand
if [ $i -eq 1 ]; dann
max=$rand
min=$rand
fi
if [ $rand -gt $max ]; dann
max=$rand
fi
if [ $rand -lt $min ]; dann
min=$rand
fi
let i++
fertig
echo „MAX: $max.“
echo „MIN: $ min."
回顾:selinux, while
selinux: 内核,安全加强;
开启:
/etc/sysconfig/selinux, /etc/selinux/config
# setenforce
# getenforce
打标:
chcon [-t TYPE ]
-R
布尔型:
getsebool [ -a]
setsebool [-P]
while循环:
während ZUSTAND; tun
循环体
erledigt
sed:编辑器
sed: Stream EDitor, Zeileneditor
Verwendung:
sed [Option]... 'script'-Eingabedatei...
script:
'Adressbefehl'
Allgemeine Optionen:
-n: Den Inhalt im Modus nicht auf dem Bildschirm ausgeben;
-e: Mehrpunktbearbeitung;
-f /PATH/TO/SCRIPT_FILE: Liest das Bearbeitungsskript aus der angegebenen Datei;
-r: unterstützt die Verwendung erweiterter regulärer Ausdrücke;
-i: direkt bearbeiten; >Adresstrennung:
(1) Keine Adresse: Volltext verarbeiten;
(2) Einzelne Adresse :
#: Die angegebene Zeile
/pattern/: Jede Zeile, die mit diesem Muster übereinstimmen kann; >(3) Adressbereich:
#,#
#,+#
/pat1/,/pat2/
#,/pat1/
(4) ~: Schritt
1~2
2~2
Befehl bearbeiten:
d: löschen
p: Inhalt im Musterbereich anzeigen
einen Text: Text nach der Zeile anhängen; Unterstützung mit n, um mehrzeiliges Anhängen zu implementieren;
i Text: Text vor der Zeile einfügen;
c text: Die Ersetzungszeile ist ein- oder mehrzeiliger Text
w /path/to/somefile: Speichern Sie die mit dem Muster übereinstimmenden Zeilen Leerzeichen zur angegebenen Datei;
r /path/from/somefile: Liest den Textstrom der angegebenen Datei bis zum Ende der übereinstimmenden Zeile im Musterbereich; 🎜>
= : Zeilennummern für Zeilen im Musterraum drucken;
w /PATH/TO/SOMEFILE: Speichern Sie die erfolgreiche Ersetzung Ergebnisse in der angegebenen Datei;
1: Löschen Sie alle Leerzeichen am Anfang von Zeilen, die mit Leerzeichen in der Datei /boot/grub/grub.conf beginnen.
~]# sed 's@^[[:space:]]+@@' /etc/grub2.cfg
2: Löschen Sie /etc/ # und Leerzeichen am Anfang aller Zeilen in der fstab-Datei, die mit # beginnen und denen mindestens ein Leerzeichen folgt; >~]# sed 's@^#[[:space :]]+@@' /etc/fstab
3: echo ein absoluter Pfad zu der sed-Befehl, entferne seinen Verzeichnisnamen;
~]# echo "/etc/sysconfig/" |. ?$@@'
Erweiterte Bearbeitungsbefehle:
h: Überschreiben Sie den Inhalt im Musterbereich in den Haltebereich;
H: Den Inhalt im Musterbereich an den Haltebereich anhängen
g: Die Daten aus dem Haltebereich übernehmen und in den Musterbereich überschreiben;
G: Nehmen Sie den Inhalt aus dem Haltebereich und hängen Sie ihn an den Musterbereich an; x: Tauschen Sie den Inhalt im Musterbereich mit dem Inhalt im Haltebereich aus;
n: Lesen Sie die nächste Zeile der übereinstimmenden Zeile in den Musterbereich;
N: Die nächste Zeile der übereinstimmenden Zeile an den Musterbereich anhängen
d: Zeilen im Musterbereich löschen; >D: Alle Zeilen im mehrzeiligen Musterbereich löschen
sed -n 'n;p' FILE: Gerade Zeilen anzeigen
sed '1!G;h;$!d' FILE: Anzeige in Dateiinhalt umkehren
sed '$!N;$!D' FILE: Nehmen Sie die letzten beiden Zeilen der Datei heraus
sed '$!d' DATEI: Nehmen Sie die letzte Zeile der Datei heraus;
sed 'G' DATEI:
sed '/^ $/d;G' DATEI:
sed 'n;d' DATEI: Ungerade Zeilen anzeigen
sed -n '1! G;h;$p' DATEI: Zeigt jede Zeile in der Datei in umgekehrter Reihenfolge an;
Bash-Skripting
while BEDINGUNG; tun
Schleifenkörper
fertig
Eintrag Bedingung: BEDINGUNG ist wahr;
Ausgangsbedingung: falsch
bis BEDINGUNG; Schleifenkörper
fertig
Eingabebedingung: falsch
Ausgangsbedingung: wahr
Beispiel: Ermitteln Sie die Summe aller positiven ganzen Zahlen innerhalb von 100;
continue [N]: Beende den aktuellen Zyklus der N-ten Ebene im Voraus und gehe direkt in die nächste Beurteilungsrunde
while CONDTIITON1; 🎜>
CMD1
...
wenn BEDINGUNG2; dann
weiter
fi
CMDn
...
fertig
Pause [N]: Schleife vorzeitig beenden;
während CONDTIITON1; tun Sie
CMD1
...
wenn BEDINGUNG2; dann
break
fi
CMDn
...
fertig
Beispiel 1: Ermitteln Sie die Summe aller geraden Zahlen darin 100; erfordert eine Schleife, um alle positiven ganzen Zahlen innerhalb von 100 zu durchlaufen;
#!/bin/bash
#
deklariere -i i=0
declare -i sum=0
bis [ $i -gt 100 ]; do
let i++
if [ $[$i%2] -eq 1 ] then
continue
fi
let sum+=$i
fertig
Echo „Gerade Summe: $sum“
Erstellen Sie eine Endlosschleife:
während wahr; tun
Schleifenkörper
fertig
bis falsch; tun
Schleifenkörper
fertig
Beispiel 2: Informationen über angemeldete Benutzer alle 3 Sekunden vom System abrufen; wenn Docker angemeldet ist, werden diese im Protokoll aufgezeichnet und beendet
#!/bin/bash
#
read -p "Geben Sie einen Benutzernamen ein: " Benutzername
while true;
if who |
fi
Schlaf 3
fertig
echo „$Benutzername angemeldet“ >> /tmp/user.log
Nein. Zwei Implementierungen:
#!/bin/bash
#
read - p „Geben Sie einen Benutzernamen ein:“ username
for ((Kontrollvariableninitialisierung; bedingter Beurteilungsausdruck Formel; modifizierter Ausdruck der Kontrollvariable)); do
Schleifenkörper
fertig
Initialisierung der Steuervariablen: Wird nur einmal ausgeführt, wenn der Schleifencodeabschnitt ausgeführt wird ; Geänderter Ausdruck der Steuervariablen: Die Steuervariable wird zuerst am Ende jedes Zyklus ausgeführt. Korrigieren Sie die Operation und treffen Sie dann eine bedingte Beurteilung >
Beispiel: Finden Sie die Summe aller positiven ganzen Zahlen innerhalb von 100;
#!/bin/bash
#
declare -i sum=0
für ((i =1;i<=100;i++)); do
let sum+=$i
done
echo „Summe: $summe.“
Beispiel 2: Drucken Sie die Multiplikationstabelle aus; >
#!/bin/bash
#
for((j= 1 ;j<=9;j++));do
for((i=1;i<=j;i++))do
‐ ‐ ‐ bis . echo
fertig
(1) Ein Menü wie folgt anzeigen:
cpu) CPU-Informationen anzeigen;
mem) Speicherinformationen anzeigen;
Datenträger) Datenträgerinformationen anzeigen;
Beenden) Beenden
(2) fordert den Benutzer auf, Optionen auszuwählen ;
(3) zeigt den vom Benutzer ausgewählten Inhalt an 🎜>cat << >
mem) Speicherinformationen anzeigen;
disk) Festplatteninformationen anzeigen;
quit) quit
=========== =================
EOF
read - p "Geben Sie eine Option ein: " option
while [ "$option" != 'cpu' -a "$option" != 'mem' -a "$option" != 'disk' -a "$option" != 'quit' ] do
read -p "Falsche Option, erneut eingeben: " Option
fertig
if [ "$option" == 'cpu' ]; then
lscpu
elif [ "$option" == 'mem' ];
cat /proc/meminfo
elif [ "$option" == 'disk' ]; then
fdisk -l
else
echo "Quit"
Exit 0
fi
Weiter:
Der Benutzer wählt aus und verlässt das Programm nicht Das Skript fordert den Benutzer nach Abschluss der Anzeige dazu auf, weiterhin andere Inhalte anzuzeigen. Es wird erst beendet, wenn „Beenden“ verwendet wird Bedingte Beurteilung: Fallanweisung
Fallvariablenreferenz in
PAT1)
Zweig 1
;;
PAT2)
Zweig 2
;;
...
* )
Standardzweig
;;
esac
Beispiel:
#!/bin/bash
#
cat <<
CPU) CPU-Informationen anzeigen;
mem) Speicherinformationen anzeigen;
disk) Festplatteninformationen anzeigen;
quit) beenden
============================
EOF
read -p "Geben Sie eine Option ein: " option
while [ "$option" != ' cpu' -a "$option" != 'mem' -a "$option" != 'disk' -a "$option" != 'quit' ]; tun
read -p "Falsche Option, erneut eingeben: " Option
Das Ausführungsergebnis der Funktion gibt Wert zurück:
(1) Verwenden Sie den Echo- oder Print-Befehl für die Ausgabe.
(2) Das Ausführungsergebnis des aufgerufenen Befehls im Funktionskörper;
Der Exit-Statuscode der Funktion:
(1) Der Standardwert hängt vom Exit-Statuscode der ab letzter im Funktionskörper ausgeführter Befehl;
(2) Benutzerdefinierter Exit-Statuscode:
return
Funktionen können Parameter akzeptieren:
Parameter an die Funktion übergeben: Wenn Sie eine Funktion aufrufen, trennen Sie einfach die angegebene Parameterliste durch ein Leerzeichen nach dem Funktionsnamen ; zum Beispiel „testfunc arg1 arg2...“
Im Funktionskörper können Sie $1, $2, ... verwenden, um diese Parameter aufzurufen; Sie können auch spezielle Variablen wie $@, $*, $# verwenden;
NN-Multiplikationstabelle drucken, implementiert mit Funktionen
Variablenbereich:
Lokale Variablen: Um das Skript auszuführen, wird daher ein dedizierter Shell-Prozess gestartet. Der Umfang der lokalen Variablen ist die aktuelle Shell-Skript-Programmdatei.
Lokale Variablen: Der Lebenszyklus der Funktion wird automatisch zerstört
Wenn die Funktion lokale Variablen enthält, sind ihre Namen dieselben wie die lokalen Variablen.
So definieren Sie lokale Variablen in einer Funktion :
lokaler NAME=WERT
Funktionsrekursion:
Die Funktion ruft sich direkt oder indirekt auf; n(n-1)! = n(n-1)(n-2)!
Variable: ein Speicherbereich, der ein einzelnes Element speichert;
Array: ein kontinuierlicher Speicherbereich, der mehrere Elemente speichert; 🎜 >
Array-Name
Index: Die Zahl beginnt bei 0 und ist ein numerischer Index;
Hinweis: Index wird auch unterstützt. Benutzerdefinierte Formate verwenden, nicht nur numerische Formate.
Bash-Arrays unterstützen spärliche Formate.
in einem Array: ${ARRAY_NAME[INDEX]}
Deklarieren Sie ein Array:
declare -a ARRAY_NAME
declare -A ARRAY_NAME: Assoziatives Array
Zuweisung von Array-Elementen:
(1) Weisen Sie jeweils nur ein Element zu
ARRAY_NAME[INDEX]=VALUE
weekdays[0]= „Sonntag“
Wochentage[4]="Donnerstag"
(2) Alle Elemente auf einmal zuweisen:
ARRAY_NAME=("VAL1" "VAL2" "VAL3" ...)
(3) Nur bestimmte Elemente zuweisen:
ARRAY_NAME=([0]="VAL1" [3]="VAL2" ...)
(4) read -a ARRAY
Referenz-Array-Element: ${ARRAY_NAME[INDEX]}
Hinweis: Das Weglassen von [INDEX] bedeutet, dass auf das Element mit dem Index 0 verwiesen wird; 🎜 >
Die Länge des Arrays (die Anzahl der Elemente im Array): ${#ARRAY_NAME[*]}, ${#ARRAY_NAME[@]}
Beispiel: Generieren Sie 10 Zufallszahlen, speichern Sie sie in einem Array und ermitteln Sie deren Maximal- und Minimalwerte #!/ bin/bash
#
declare -a rand
declare -i max=0
for i in {0..9}; do
rand[$i]= $RANDOM
echo ${rand[$i]}
[ ${rand[$i]} -gt $max ] && max=$ {rand[$i]}
fertig
echo „Max: $max“
Definieren Sie ein Array. Die Elemente im Array sind alle Dateien, die mit .log in /var/log enden Verzeichnis; Statistiken sind erforderlich. Die Summe der Zeilen in Dateien, deren Indizes gerade Zahlen sind;
#
declare -a files
files=(/var/log/*.log)
deklariere -ilines=0
für i in $(seq 0 $[${#files[*]} -1]); mach
if [ $[$i%2] -eq 0 ];then
letlines+=$(wc -l ${files[$i ]} |. cut -d' ' -f1)
fi
fertig
echo „Zeilen: $lines.“
Referenziert ein Element in einem Array:
Alle Elemente: ${ARRAY[@]}, ${ARRAY[*]}
Array-Slice: ${ARRAY[@ ] :offset:number}
offset: die Anzahl der zu überspringenden Elemente
number: die Anzahl der herauszunehmenden Elemente, nimm den Offset Alle Elemente nach dem Betrag: ${ARRAY[@]:offset}
Erhalten Sie die Zeichen ganz rechts in der Zeichenfolge: ${var: -lengh}
Hinweis: Nach dem Doppelpunkt muss Es sein ein Leerzeichen sein;
Abrufen einer Teilzeichenfolge basierend auf dem Muster:
${var#*word} : Wobei Wort ein beliebiges angegebenes Zeichen sein kann; Funktion: Suchen Sie von links nach rechts das erste Vorkommen des Wortes in der in der Variable var gespeicherten Zeichenfolge und löschen Sie alle Zeichen zwischen dem Anfang der Zeichenfolge und dem ersten Vorkommen des Wortzeichens.
${var##*word}: Wie oben, aber was gelöscht wird, ist alles zwischen dem Anfang der Zeichenfolge und dem letzten durch Wort angegebenen Zeichen; >
file="/var/log/messages"
${file##*/}: Nachrichten
${var%word*}: Dabei kann Wort ein beliebiges angegebenes Zeichen sein. Funktion: Suchen Sie von rechts nach links das erste Vorkommen von Wort in der in der Variable var gespeicherten Zeichenfolge und löschen Sie die Zeichenfolge Alle Zeichen zwischen dem letzten Zeichen links und dem ersten Wortzeichen;
file="/var/log/messages"
${ file%/*}: /var/log
${var%%word*}: Wie oben, aber löschen Sie die Zeichenfolge ganz rechts. Alle Zeichen dazwischen Zeichen auf der linken Seite und das letzte Vorkommen des Wortes Zeichen
Beispiel: url=:80
${url##*:}
${url%%:*}
Ersatz finden :
${var/pattern/substi}: Suchen Sie die erste Zeichenfolge, die mit dem Muster in der durch var dargestellten Zeichenfolge übereinstimmt, und ersetzen Sie sie durch substi; >${var//pattern/substi}: Finden Sie alle Zeichenfolgen, die dem Muster in der durch var dargestellten Zeichenfolge entsprechen, und ersetzen Sie sie durch substi; >${var/#pattern/substi}: Suchen Sie die Zeichenfolge, die mit dem Muster übereinstimmt, am Anfang der Zeile in der durch var dargestellten Zeichenfolge und ersetzen Sie sie durch substi; >${var/%pattern/substi}: Suchen Sie die Zeichenfolge, die mit dem Muster übereinstimmt, am Ende der Zeile in der durch var dargestellten Zeichenfolge und ersetzen Sie sie durch substi; >
Suchen und löschen:
${var/pattern}: Suchen Sie die durch var dargestellte Zeichenfolge und löschen Sie beim ersten Mal die mit dem Muster übereinstimmende Zeichenfolge
${var//pattern}:
${var/#pattern}:
${var/% Muster}:
Umwandlung von Groß- und Kleinschreibung:
${var^^}: Konvertiert alle Kleinbuchstaben in var in Großbuchstaben;
${var,,}: Konvertieren Sie alle Großbuchstaben in var in Kleinbuchstaben;
Variablenzuweisung:
${var:-value}: Wenn var leer oder nicht gesetzt ist, dann Rückgabewert; andernfalls wird der Wert von var zurückgegeben; var:=value}: Wenn var leer oder nicht gesetzt ist, geben Sie einen Wert zurück und weisen Sie var einen Wert zu. Andernfalls geben Sie den Wert von var zurück {var:+value}: Wenn var nicht leer ist, Rückgabewert; den Wert von var zurückgeben;
Verwenden Sie die Konfigurationsdatei für das Skriptprogramm:
(1) Definieren Sie a Textdatei und definieren Sie „name=value“ für jede Zeile
(2) Quelle dieser Datei im Skript
Befehl:
mktemp Befehl:
mktemp [OPTION]... [TEMPLATE]
VORLAGE: Dateiname.XXX
Mindestens drei XXX müssen erscheinen
OPTION:
-d: Erstellen Sie ein temporäres Verzeichnis;
--tmpdir=/PATH/TO/SOMEDIR: Geben Sie den Speicherort für das temporäre Dateiverzeichnis an; 🎜>Installationsbefehl:
install [OPTION]... [-T] SOURCE DEST
install [ OPTION]... QUELLE... VERZEICHNIS
install [OPTION]... -t VERZEICHNIS QUELLE...
install [ OPTION]... -d VERZEICHNIS...
Optionen:
- m MODUS
-o EIGENTÜMER
-g GRUPPE
GNU awk:
Drei Textverarbeitungswerkzeuge: grep, sed, awkgrep, egrep, fgrep: Textfilterungsmuster
sed: Zeileneditor
Musterraum, Halteraum
awk: Berichtsgenerator, formatierte Textausgabe
AWK: Aho , Weinberger, Kernighan –> - Sprache zum Scannen und Verarbeiten von Mustern
Verwendungsszenario: Treffen Sie eine bedingte Beurteilung der gesamten Zeile oder eines bestimmten Felds, das durch awk erhalten wurde;
7.2 while-Schleife
Syntax: while(condition)-Anweisung
If Die Bedingung ist „wahr“, die Schleife betreten; wenn die Bedingung „falsch“ ist, die Schleife verlassen;
Verwendungsszenario: Wird bei der Verarbeitung mehrerer Felder verwendet eine Zeile nach der anderen; wird verwendet, wenn jedes Element in einem Array einzeln verarbeitet wird;
rand(): gibt eine Zufallszahl zwischen 0 und 1 zurück;
String-Verarbeitung:
length([s]): Gibt die Länge des angegebenen Strings zurück; >sub(r,s, [t]): Verwenden Sie das durch r dargestellte Muster, um den passenden Inhalt im durch t dargestellten Zeichen zu finden und dessen erstes Vorkommen durch den durch s dargestellten Inhalt zu ersetzen; >
gsub(r,s,[t]): Verwenden Sie das durch r dargestellte Muster, um passenden Inhalt im durch t dargestellten Zeichen zu finden und alle Vorkommen davon durch den durch s dargestellten Inhalt zu ersetzen; >
split(s,a[,r]): Verwenden Sie r als Trennzeichen, um das Zeichen s auszuschneiden, und speichern Sie das Schnittergebnis in dem durch a; dargestellten Array
~]# netstat -tan | } END{for (i in count) {print i,count[i]}}'
DNF使用 RPM, libsolv和 hawkey hat eine neue Version von CentOS und RHEL 7 entwickelt 🎜>
DNF 的最新稳定发行版版本Version 1.0, veröffentlicht am 11.05.2015大部分采用 Python ist eine Version der GPL v2.
Die Abhängigkeitsauflösung von YUM ist ein Albtraum und wurde in DNF mit der SUSE-Bibliothek „libsolv“ und dem Python-Wrapper zusammen mit C Hawkey gelöst.
YUM nicht eine dokumentierte API.
Das Erstellen neuer Funktionen ist schwierig.
Keine Unterstützung für andere Erweiterungen als Python.
Geringere Speicherreduzierung und weniger automatische Synchronisierung von Metadaten – ein zeitaufwändiger Prozess .
Das obige ist der detaillierte Inhalt vonGrundlagen des Linux-Systems (2). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Stellungnahme:
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