-i # : Créez un inode pour chaque nombre d'octets dans l'espace de données ; cette taille ne doit pas être inférieure à la taille du bloc
-N # : Combien d'inodes sont créés pour l'espace de données
-m # : Le pourcentage d'espace réservé aux gestionnaires ; >-O FEATURE[,...] : Activer la fonctionnalité spécifiée
-O ^FEATURE : Désactiver la fonctionnalité spécifiée
mkswap : Créer une partition d'échange
mkswap [options] périphérique
-L 'LABEL'
Prérequis : ajuster l'ID de sa partition à 82
Autres Outils couramment utilisés :
blkid : afficher les informations sur les attributs du périphérique de blocage
blkid [OPTION]... [ DEVICE]
-U UUID : Recherchez l'appareil correspondant en fonction de l'UUID spécifié
-L LABEL : Recherchez l'appareil correspondant en fonction de l'UUID spécifié. LABEL spécifié
e2label : LABEL pour la gestion des systèmes de fichiers de la série ext
# e2label DEVICE [LABEL]
tune2fs : Réinitialiser les valeurs des paramètres réglables du système de fichiers de la série ext
-l : Afficher les informations du superbloc du système de fichiers spécifié ; super bloc
-L 'LABEL' : Modifier l'étiquette du volume
-m # : Modifier le pourcentage d'espace réservé aux administrateurs
-j : Mettre à niveau ext2 vers ext3
-O : Activer ou désactiver les propriétés du système de fichiers
-o : Ajuster les options de montage par défaut du système de fichiers
-U UUID : Modifier le numéro UUID
dumpe2fs :
-h : Afficher les informations sur le superbloc
Détection du système de fichiers :
fsck : Vérification du système de fichiers
fsck.FS_TYPE
fsck -t FS_TYPE
-a : Réparation automatique des erreurs
-r : Réparation interactive des erreurs
Remarque : FS_TYPE doit être du même type que les fichiers existants sur la partition
e2fsck : Un outil dédié de détection et de réparation des fichiers de la série ext
-y : La réponse automatique est oui
-f : Forcer la réparation
Gestion du système de fichiers :
Le fait d'associer un système de fichiers supplémentaire à un répertoire existant dans le système de fichiers racine, puis d'utiliser ce répertoire comme point d'accès pour d'autres fichiers, est appelé montage
;
Le processus de libération de cette association est appelé désinstallation
Associer l'appareil au point de montage ; : Mount Point
mount
Lors de la désinstallation : vous pouvez utiliser l'appareil ou le point de montage
umount
Remarque : les fichiers originaux sous le point de montage seront temporairement masqués une fois le montage terminé
Méthode de montage : montage DEVICE MOUNT_POINT
montage : affichez tous les appareils montés par le système actuel en affichant le fichier /etc/mtab
mount [-fnrsvw] [-t vfstype] [-o options] device dir
device : Spécifiez le périphérique à monter ;
(1) Fichier de périphérique : par exemple /dev/sda5
(2) Étiquette de volume : -L 'LABEL', par exemple -L 'MES DONNÉES'
(3) UUID, -U 'UUID' : Par exemple -U '0c50523c-43f1-45e7-85c0-a126711d406e'
( 4) Noms des pseudo-systèmes de fichiers : proc, sysfs, devtmpfs, configfs
dir : Le point de montage
existe au préalable ; il est recommandé d'utiliser un répertoire vide ;
Le périphérique utilisé par le processus ne peut pas être démonté
Options de commande communes :
-t vsftype : Spécifiez le type de système de fichiers sur le périphérique à monter
-r : lecture seule, montage en lecture seule ;
-w : lecture et écriture, montage en lecture-écriture
-n : ne pas mettre à jour / etc/mtab;
-a : Montez automatiquement tous les périphériques prenant en charge le montage automatique (défini dans le fichier /etc/fstab, et l'option de montage a la fonction "auto-mount" ; )
-L 'LABEL' : Spécifiez le périphérique à monter avec le label de volume
-U 'UUID' : Spécifiez le périphérique à monter avec l'UUID
-B, --bind : Lier le répertoire à un autre répertoire
Remarque : vérifiez le contenu monté suivi par le noyau. Tous les périphériques : cat /proc/mounts
options -o : (options de montage du système de fichiers)
async : mode asynchrone ;
sync : mode synchrone
atime/noatime : inclus répertoires et fichiers ;
diratime/nodiratime : horodatage d'accès au répertoire
auto/noauto : prise en charge automatique du montage
exec/ noexec : s'il faut prendre en charge les applications en cours d'exécution sur le système de fichiers en tant que processus.
dev/nodev : s'il faut prendre en charge l'utilisation des fichiers de périphérique sur ce système de fichiers ;
suid/nosuid :
remonter : Remonter
ro :
rw :
user/nouser : s'il faut autoriser les utilisateurs ordinaires à monter cet appareil
acl : activer la fonction acl sur ce système de fichiers
Remarque : les options ci-dessus peuvent être utilisées plusieurs fois en même temps, séparées par des virgules
Options de montage par défaut : valeurs par défaut
rw, suid, dev, exec, auto, nouser et async
Commande de désinstallation :
# umount DEVICE
# umount MOUNT_POINT
Afficher les processus accédant au système de fichiers spécifié :
# fuser -v MOUNT_POINT
Terminer tous les processus accédant au système de fichiers spécifié :
# fuser -km MOUNT_POINT
Monter la partition swap :
Activer : swapon
swapon [OPTION]... [DEVICE]
-a : Activer toutes les partitions d'échange ;
-p PRIORITÉ : Spécifier la priorité
Désactiver : swapoff [OPTION ; ]... [APPAREIL]
État d'utilisation de l'espace mémoire :
libre [OPTION]
-m : en MB
-g : en GB
Outil pour affichage d'informations telles que l'utilisation de l'espace du système de fichiers :
df :
-h : lisible par l'homme
-i:inodes au lieu de blocs
-P : sortie au format compatible Posix
Voir ; l'état global d'utilisation de l'espace d'un répertoire :
bitmap d'inode : informations d'état qui identifient si chaque inode est inactif ;
Lié fichier :
Lien physique :
ne peut pas être corrigé dans le répertoire
ne peut pas être corrigé dans l'ensemble du répertoire ; partitions;
pointe vers plusieurs chemins différents vers le même inode ; la création d'un lien physique vers un fichier est L'inode crée un nouveau chemin de référence, augmentant ainsi son nombre de références
Lien symbolique :
peut être effectué sur un répertoire ;
peut traverser des partitions ;
pointe vers le chemin d'un autre fichier ; sa taille est la longueur de la chaîne de chemin pointée ; n'augmente ni ne diminue le nombre de références de l'inode du fichier cible ; 🎜>
ln [-sv] SRC DEST
-s : lien symbolique
-v : verbeux
Impact des opérations de gestion de fichiers sur les fichiers :
Suppression de fichiers :
Copie de fichier :
Déplacement de fichier :
1. Créez un système de fichiers de 20 Go avec un bloc. taille de 2048 et fichier Le système est ext4, le nom du volume est TEST, et cette partition doit être automatiquement montée dans le répertoire /testing après le démarrage, et l'option de montage acl est fournie par défaut
(1) Créez une partition de 20 Go ;
(2) Format :
mke2fs -t ext4 -b 2048 - L 'TEST' /dev/DEVICE
(3) Editer le fichier /etc/fstab
LABEL='TEST'
/testing
ext4 valeurs par défaut, acl 0 0
3. un script pour compléter les fonctions suivantes :
(1) Liste tous les périphériques de disque reconnus par le système actuel
(2) Si le le nombre de disques est 1, affichez ses informations d'utilisation de l'espace
Sinon, les informations d'utilisation de l'espace sur le dernier disque sont affichées
Prise en charge de plusieurs volumes physiques : les btrfs peuvent être composés de plusieurs volumes physiques sous-jacents ; prend en charge RAID, avec "ajouter", "supprimer" et "modifier" en ligne
Mécanisme de mise à jour de copie sur écriture (CoW) : copiez, mettez à jour et remplacez des pointeurs au lieu de mises à jour "sur place"
Code de vérification des données et des métadonnées : somme de contrôle
Sous-volume : sub_volume
Instantané : instantané prenant en charge les instantanés
Compression transparente :
Création du système de fichiers :
mkfs.btrfs
-L'LABEL '
-d : raid0, raid1, raid5, raid6, raid10, single
-m
-O
-O list-all : Liste toutes les fonctionnalités prises en charge ;
Vue des propriétés :
affichage du système de fichiers btrfs
Monter le système de fichiers :
mount -t btrfs /dev/sdb MOUNT_POINT
Mécanisme de compression transparent :
mount -o compress={lzo|zlib} DEVICE MOUNT_POINT
Sous-commandes : système de fichiers , appareil, balance, sous-volume
Outils de compression, décompression et archivage
compresser/ décompresser : .Z
gzip/gunzip : .gz
bzip2/bunzip2 : .bz2
xz/unxz : .xz
zip/unzip
tar, cpio
1.gzip/gunzip
gzip [OPTION]... FICHIER...
-d : Décompresser, équivalent à gunzip
-c : Afficher le résultat sur la sortie standard
-# : 1-9 ; , spécifiez le taux de compression ;
zcat : afficher le contenu du fichier texte sans extension explicite ;
2. bzip2/bunzip2/bzcat
bzip2 [OPTION]... FICHIER...
-k : conserver, conserver le fichier original
-d : décompresser
-# : 1-9, taux de compression, la valeur par défaut est 6 ;
bzcat : sans extension explicite Afficher le fichier texte contenu ;
3.xz/unxz/xzcat
bzip2 [OPTION]. .. FILE ...
-k : conserver, conserver le fichier original
-d : décompresser
-# : 1-9, taux de compression, la valeur par défaut est 6
xzcat : sans extension explicite Afficher le contenu du fichier texte ; ;
4. goudron
goudron [OPTION]..
(1) Créer une archive
tar -c -f /PATH/TO/SOMEFILE.tar FILE ...
tar -cf /PATH/TO/SOMEFILE.tar FILE...
(2) Afficher la liste des fichiers dans l'archive
tar -t -f /PATH/TO/SOMEFILE.tar
(3) Développer l'archive
tar -x -f /PATH/TO/SOMEFILE.tar
tar -x -f /PATH/TO/SOMEFILE.tar -C /PATH/TO/DIR
Combiné avec des outils de compression pour réaliser : archiver et compresser
-j : bzip2, -z : gzip, -J : xz
script bash :
instruction if, bash -n, bash -x
CONDITION :
commande bash :
Utiliser le résultat de l'état d'exécution de la commande
Succès ; : vrai
Échec : flase
La signification du succès ou de l'échec : dépend de la commande utilisée ;
Branche unique :
si CONDITION alors
si- vrai ;
fi
double branche :
si CONDITION alors ;
si-vrai
sinon
si-faux
fi
Branches multiples :
si CONDITION1 alors
si-vrai
elif CONDITION2 alors
si-ture
elif CONDITION3; alors
if-ture
...
esle
tout-faux
fi
Juger condition par condition, Quand la condition "vraie" est rencontrée pour la première fois, sa branche est exécutée puis se termine
Exemple : L'utilisateur saisit le chemin du fichier et le script détermine ; le type de fichier ;
#!/bin/bash
#
read - p "Entrez un chemin de fichier : " filename
if [ -z "$filename" ] then
echo "Utilisation : Entrez un chemin de fichier."
sortie 2
fi
if [ ! -e $filename ]; then
echo "Aucun fichier de ce type."
sortie 3
fi
if [ -f $filename ] alors
echo "Un fichier commun."
elif [ -d $filename ]; then
echo "Un répertoire."
elif [ -L $filename ]; then
echo "Un fichier symbolique."
else
echo "Autre type."
fi
Remarque : si les instructions peuvent être imbriquées
Boucle : pendant, pendant, jusqu'à
Corps de la boucle : être code exécuté ; peut être exécuté n fois ;
Condition d'entrée :
Condition de sortie :
for boucle :
for nom de la variable dans la liste ; do
corps de la boucle
done
Mécanisme d'exécution :
Attribuer les éléments de la liste au "nom de la variable " à tour de rôle " ; Le corps de la boucle est exécuté une fois après chaque affectation ; jusqu'à ce que les éléments de la liste soient épuisés, la boucle se termine ;
Exemple : Ajouter 10 utilisateurs, user1- user10 ; le mot de passe est le même que le nom d'utilisateur
Exemple : Déterminer le type de tous les fichiers sous un certain chemin
#!/bin/bash
#
pour le fichier dans $(ls /var); > if [ -f /var/$file ]; then
echo "Fichier commun."
elif [ -L /var/ $file ]; then
echo "Fichier symbolique."
elif [ -d /var/$file ];
écho "Répertoire."
autre
écho "Autre type."
fi
fait
Exemple :
#!/bin/bash
#
declare -i estab=0
déclarer -i écouter=0
déclarer -i autre=0
pour l'état dans $( netstat -tan | grep "^tcp>" | awk '{print $NF}'); do
if [ "$state" == 'ESTABLISED' ]; alors
let estab++
elif [ "$state" == 'LISTEN' ] alors
laisser écouter++
autre
laisser autre++
fi
fait
echo "ÉTABLI : $estab"
echo "ÉCOUTER : $listen"
echo "Inconnu : $autre"
/etc/ Il y a plusieurs fichiers commençant par K et S dans le répertoire rc.d/rc3.d
lit chaque fichier séparément, et les fichiers commençant par K sont sortis sous forme de fichiers Ajouter un arrêt, le fichier commençant par S est affiché comme nom de fichier plus start
"K34filename stop"
"S66filename start"
Gestion des packages Linux :
API : Interface de programmation d'application
POSIX : OS portable
Code source du programme --> ---> Assemblage--> Lien
Compilation statique :
Compilation partagée : .so
ABI : Interface binaire d'application
Windows n'est pas compatible avec Linux
Virtualisation au niveau de la bibliothèque :
Linux : WINE
Windows : Cywin
Développement au niveau du système
C
C++
Développement au niveau des applications
java
Python
php
perl
ruby
Composants d'une application binaire :
fichiers binaires, fichiers bibliothèque, fichiers de configuration , fichiers d'aide
Gestionnaire de paquets :
debian : deb, dpt
redhat : rpm, rpm
rpm : Redhat Package Manager
RPM est le gestionnaire de packages
Gentoo
Archlinux
Code source : name-VERSION.tar.gz
VERSION : major.minor.release
Méthode de dénomination du package rpm :
nom-VERSION-release.arch.rpm
VERSION : major.minor.release
release.arch :
version : release.OS
zlib-1.2 .7-13.el7. i686.rpm
Arc commun :
x86 : i386, i486, i586, i686
x86_64 : x64, x86_64, amd64
powerpc : ppc
Suivre la plateforme indépendante : noarch
testapp : Déballage
testapp-VERSION-ARCH.rpm : Package principal
testapp-devel - VERSION-ARCH.rpm : Package de support
testapp-testing-VERSION-ARHC.rpm
package Entre : Il y a des dépendances
X, Y, Z
miam : outil frontal pour le gestionnaire de paquets RPM
apt-get : outil frontal du gestionnaire de paquets Deb ;
zypper : outil de gestion frontale RPM sur Suse ; 🎜 >
dnf : outil de gestion frontale du gestionnaire de packages Fedora 22+ rpm
Affichez les fichiers de bibliothèque dont dépendent les programmes binaires :
ldd /PATH/TO/BINARY_FILE
Gérer et afficher les fichiers de bibliothèque chargés sur cette machine :
ldconfig
/sbin/ldconfig -p : affiche tous les noms de fichiers de bibliothèque disponibles et les mappages de chemins de fichiers qui ont été mis en cache sur cette machine
Les fichiers de configuration sont : /etc/ld.so.conf, /etc/ld.so.conf.d/*.conf
Fichier cache : /etc/ld.so.cache
Gestion des packages :
Fonction : Compilera Chaque fichier de composant de l'application est regroupé dans un ou plusieurs fichiers de package, de manière à mettre en œuvre rapidement et facilement des opérations de gestion telles que l'installation, la désinstallation, l'interrogation, la mise à niveau et la vérification du package
1. Liste des composants du programme (unique à chaque package)
Liste des fichiers
Lors de l'installation ou en désinstallant le script d'exécution
2. Base de données (publique)
Nom et version du package
Dépendances ;
Description de la fonction ;
Le chemin du fichier et les informations de code de vérification de chaque fichier généré par l'installation
Façons de gérer les packages :
Utiliser le gestionnaire de packages : rpm
Utiliser le front-end Outils : miam, dnf
Moyens d'obtenir le package :
(1) CD publié par le système ou serveur officiel
Miroir CentOS :
(2) Site officiel du projet
(3) Organisation tierce :
Fedora-EPEL
Moteur de recherche :
(4) Créez le vôtre
Suggestions : Vérifier sa légitimité
légitimité de la source
intégrité du paquet
Package de gestion des commandes rpm sur le système CentOS :
Installation, désinstallation, mise à niveau, requête, vérification, maintenance de la base de données
upgrage : "Mise à niveau" si l'ancienne version du package est installée ; s'il n'est pas présent Si l'ancienne version du package est installée, alors "Installer" ; si l'ancienne version du package ne l'est pas ; existe, l'opération de mise à niveau ne sera pas effectuée
rpm -Uvh PACKAGE_FILE ...
rpm -Fvh ; PACKAGE_FILE ...
--oldpackage : déclassement
--force : forcer la mise à niveau
Remarque : (1) Ne mettez pas à niveau le noyau ; Linux prend en charge la coexistence de plusieurs versions du noyau, il est donc recommandé d'installer directement la nouvelle version du noyau
(2) Si le package d'origine Le fichier de configuration a été modifié après l'installation. Lorsque le niveau est long, le même fichier de configuration fourni par la nouvelle version n'écrasera pas directement le fichier de configuration de. l'ancienne version, mais le fichier de la nouvelle version sera conservé après avoir été renommé (FILENAME.rpmnew)
Requête :
rpm {-q|--query} [options de sélection] [options de requête]
[options de sélection]
-a : tous les packages
-f : Afficher par quel package le fichier spécifié a été généré par
-p /PATH/TO/PACKAGE_FILE : requête pour les fichiers de package qui n'ont pas encore été installés Opération
--whatprovides CAPABILITY : Rechercher de quel package la CAPABILITÉ spécifiée est fournie par
--whatrequires CAPABILITY : Rechercher de quel package dépend la CAPABILITÉ spécifiée ; 🎜>
[query-options]
--changelog : interrogez le journal des modifications du package RPM
-c : interrogez le fichier de configuration du programme
-d : Interroger la documentation du programme
-i : informations
-l : afficher tous les fichiers générés après l'installation du package spécifié
--scripts : fragments de script fournis avec le package
-R : interroge la CAPABILITÉ dont dépend le package spécifié
-- fournit : répertorie la CAPABILITÉ fournie par le package spécifié
Fichiers multiples : il peut y avoir des dépendances entre fichiers entre les codes du fichier
C, C++ : make (configure --> ; Makefile.in ---> makefile)
java: maven
Trois étapes pour compiler et installer le code C :
./configure :
(1) Transmettez les paramètres via les options, spécifiez les fonctionnalités activées et installez Chemin, etc. ; lors de l'exécution, le makefile sera généré en référence à la spécification de l'utilisateur et au fichier Makefile.in
(2) Vérifiez l'environnement externe dont il dépend ; 🎜>
make :
Construisez l'application basée sur le makefile
make install
Outils de développement :
autoconf : Générer le script de configuration
automake : Générez Makefile.in
Suggestion : Vérifiez INSTALL et README avant l'installation
Obtenir le code source des programmes open source :
Site officiel auto-construit :
apache .org (ASF)
mariadb.org
...
Hébergement de code :
SourceForge
Github.com
code.google.com
c/c++ : gcc (GNU C Complier)
Compiler le code source C :
Prémisse : Fournir des outils de développement et un environnement de développement
Outils de développement : make, gcc, etc.
Développement environnement : bibliothèque de développement, fichier d'en-tête
glibc : bibliothèque standard
Fournir des composants de développement via le "groupe de packages"
CentOS 6 : "Outils de développement", "Développement de plate-forme serveur",
Première étape : configurer le script
Options : Spécifiez l'emplacement d'installation, spécifiez les fonctionnalités activées
--help : Obtenez les options prises en charge
Classification des options :
Paramètre du chemin d'installation :
--prefix=/PATH/TO/SOMEWHERE : Spécifiez l'emplacement d'installation par défaut ; la valeur par défaut est /usr/local/
--sysconfdir=/PATH/TO/SOMEWHERE : emplacement d'installation du fichier de configuration ; 🎜>
~]# route del -net 192.168.0.0 masque de réseau 255.255.255.0
/etc/resolv.conf
serveur de noms DNS_SERVER_IP1
serveur de noms DNS_SERVER_IP2
serveur de noms DNS_SERVER_IP3
Solution correcte : FQDN-->IP
# dig -t A FQDN
# host -t A FQDN
Solution inverse : IP-->FQDN
# dig -x IP
# host -t PTR IP
FQDN : www.madu. com.
commande netstat :
netstat - Imprimer les connexions réseau, les tables de routage, les statistiques d'interface, les connexions de masquage et les membres de multidiffusion [-- tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [- -extend| -e[--extend|-e]] [--program|-p]
Configurer les propriétés du réseau Linux : commande ip :
commande ip :
ip - afficher/manipuler le routage, les appareils, le routage des politiques et les tunnels
ip [ OPTIONS ] OBJET { COMMANDE aide }
OBJET := {lien | adresse | itinéraire }
lien OBJET :
lien ip - configuration des périphériques réseau
set
dev IFACE
peut définir des attributs :
haut et bas : activer ou désactiver l'interface spécifiée
afficher
[dev IFACE] : Spécifier l'interface
[up] : Afficher uniquement l'interface active
adresse IP - gestion des adresses de protocole
adresse IP { add | del } IFADDR dev STRING
[label LABEL] : Spécifiez l'alias de la carte réseau lors de l'ajout de l'adresse
[scope {global|link|host}] : Spécifiez le rôle Domaine
global : disponible dans le monde entier ;
lien : seul lien disponible ;
hôte : Disponible sur cette machine
[ADRESSE de diffusion] : Spécifiez l'adresse de diffusion
affichage de l'adresse IP - regardez les adresses de protocole
[DEV DEVICE]
[label PATTERN]
[primaire et secondaire]
Vinage de l'adresse IP - Vidage des adresses de protocole
Utiliser le même format que celui affiché
ip route - gestion de la table de routage
ip route add
Ajouter une route : ip route add TARGET via GW dev IFACE src SOURCE_IP
TARGET :
Route hôte : IP
Route réseau : RÉSEAU/MASQUE
Ajouter une passerelle : ip route ajouter par défaut via GW dev IFACE
suppression de la route ip
Supprimer la route : route ip du TARGET
afficher la route ip
IP route flush
[dev IFACE]
[via PREFIX]
Commande ss :
Format : ss [OPTION]... [FILTRE]
Option :
-t : lié au protocole TCP
-u : lié au protocole UDP
-w : manchon nu Lié à l'interface
-x : lié à la sock unix
-l : connexion en état d'écoute
-a : Tous
-n : Format numérique
-p : Programmes associés et PID
-e : informations étendues
-m : utilisation de la mémoire
-o : informations sur la minuterie
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
États courants de TCP :
Machine à états finis TCP :
ÉCOUTER : Écoute
ÉTABLI : Connexion établie
FIN_WAIT_1
FIN_WAIT_2
SYN_SENT
SYN_RECV
FERMÉ
EXPRESSION :
dport =
sport =
Exemple : '( dport = :ssh ou sport = :ssh )'
Combinaisons courantes :
-tan, -tanl, -tanlp, -uan
Réseau Linux configuration d'attribut (3) : Modifier le fichier de configuration
Fichiers de configuration liés à IP, MASK, GW, DNS : /etc/sysconfig/network-scripts/ ifcfg- IFACE
Fichier de configuration lié à la route : /etc/sysconfig/network-scripts/route-IFACE
/ etc/sysconfig/network-scripts/ifcfg-IFACE :
DEVICE : le périphérique auquel ce fichier de configuration s'applique
HWADDR : le Adresse MAC de l'appareil correspondant ;
BOOTPROTO : le protocole de configuration de l'adresse utilisé lors de l'activation de cet appareil, couramment utilisé dhcp, static, none, bootp ;
NM_CONTROLLED : NM est l'abréviation de NetworkManager ; indique si cette carte réseau accepte le contrôle NM ; CentOS6 recommande "non"
ONBOOT : s'il faut activer ce périphérique au démarrage du système ;
TYPE : type d'interface ; Ethernet commun, Bridge
UUID : identifiant unique de l'appareil
IPADDR : Précisez l'adresse IP
NETMASK : masque de sous-réseau ;
GATEWAY : passerelle par défaut
DNS1 : le premier serveur DNS ; pointage ;
DNS2 : deuxième serveur DNS pointant ;
USERCTL : si les utilisateurs ordinaires peuvent le contrôler Cet appareil ;
PEERDNS : Si la valeur de BOOTPROTO est "dhcp", s'il faut autoriser les informations de pointage du serveur DNS attribuées par le serveur DHCP à être directement écrasées dans le fichier /etc/resolv.conf
/etc/sysconfig/network-scripts/route-IFACE
Deux styles :
(1) TARGET via GW
(2) Toutes les trois lignes définissent un itinéraire
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
Configurer plusieurs adresses pour la carte réseau :
ifconfig:
ifconfig IFACE_ALIAS
ip
ip addr add
Fichier de configuration :
ifcfg- IFACE_ALIAS
DEVICE=IFACE_ALIAS
Remarque : l'alias de passerelle ne peut pas être démarré à l'aide du protocole DHCP
Tui de configuration des attributs réseau Linux (interface utilisateur texte) :
system-config-network-tui
peut également être trouvé à l'aide de la configuration
Remarque : n'oubliez pas de redémarrer le service réseau pour prendre effet ; >
Configurer le nom d'hôte de l'hôte actuel :
nom d'hôte [HOSTNAME]
/etc/sysconfig/network
HOSTNAME=
L'interface réseau identifie et nomme le fichier de configuration udev associé :
/etc/udev/rules.d/70-persistent-net.rules
Désinstallez le pilote de la carte réseau :
modprobe -r e1000
Chargez le pilote de la carte réseau :
modprobe e1000
Configuration des propriétés réseau CentOS 7
Nom traditionnel : Ethernet eth[0,1,2,...], wlan[0,1,2,...]
Fonctionnalité prévisible
udev prend en charge de nombreux schémas de dénomination différents :
Micrologiciel, topologie
(1) Mécanisme de dénomination de la carte réseau
méthode de dénomination systemd pour les périphériques réseau :
(a) Si les informations d'index fournies par le micrologiciel ou le BIOS du périphérique intégré à la carte mère sont disponibles et prévisibles, le nom est basé sur cet index, tel que
(b) Si le micrologiciel ou le BIOS est Les informations d'index fournies par le connecteur d'extension PCI-E sont disponibles et prévisibles, elles sont donc nommées en fonction de cet index, par exemple
(c) Si les informations d'emplacement physique de l'interface matérielle sont disponibles, alors nommez-le en fonction de ces informations, par exemple enp2s0
(d) Si l'utilisateur démarre explicitement il, il peut également être nommé en fonction de l'adresse MAC, enx2387a1dc56 ;
(e) Lorsqu'aucun des éléments ci-dessus n'est disponible, le mécanisme de dénomination traditionnel est utilisé
Certains des mécanismes de dénomination ci-dessus nécessitent la participation du programme biosdevname
(2) Composition du nom ; format
fr : ethernet
wl : wlan
ww : wwan
Type de nom :
o : le numéro d'index de l'appareil intégré
s : numéro d'index de l'emplacement d'extension
x : dénomination basée sur l'adresse MAC
ps : enp2s1
Processus de dénomination du périphérique de carte réseau :
-a : Afficher le nom du processus au format complet
-P pid : Afficher son parent Le processus est la liste des processus du processus spécifié ici
pidof :
Obtenez son PID en fonction du nom du processus ;
top :
possède de nombreuses commandes intégrées :
Trier :
P : pourcentage de CPU occupé
M : pourcentage de mémoire ; occupé ;
T : Temps CPU accumulé ;
Affichage des informations d'en-tête :
informations sur la disponibilité : commande l
informations sur les tâches et le processeur : commande t
le processeur affiche respectivement : 1 (numéro)
informations sur la mémoire : commande m
>Terminer le processus spécifié : k
Option :
-d # : Spécifiez l'intervalle de rafraîchissement, la valeur par défaut est de 3 secondes
-b : En mode batch
-n # : Combien de lots à afficher
commande htop :
Options :
>-s COLONNE : Trier par champ spécifié ;
Commande :
s : Suivre l'appel système de sélection pour un processus spécifique ;
l : Afficher la liste des fichiers ouverts par le processus sélectionné ; 🎜>a : Lier le processus sélectionné à un cœur de processeur spécifié
t : Afficher l'arborescence des processus
Remarque : source Fedora-EPELRevue :
Bases de Linux : CPU : tranche de temps
Mémoire : espace d'adressage linéaire
E/S :
Multiplexage en temps partagé
Outils de visualisation des processus : pstree, ps, pgrep, pidof, top, htop
Visualisation et gestion des processus Linux (2)
Outils de visualisation et de gestion des processus Linux : pstree, ps, pidof, pgrep , top, htop, looks, pmap, vmstat, dstat, kill, pkill, job, bg, fg, nohup
commande vmstat :
vmstat [options] [délai [nombre]]
procs :
r : Le nombre de processus en attente d'exécution ; b : Le nombre de processus en état de veille ininterrompue (longueur de la file d'attente bloquée) ;
mémoire :
swpd : la quantité totale de mémoire d'échange utilisée
libre : la quantité totale de mémoire physique gratuite ; mémoire ;
tampon : la quantité totale de mémoire utilisée pour le tampon
cache : la quantité totale de mémoire utilisée pour le cache ; >
swap :
si : le débit de données auquel les données entrent dans le swap (kb/s)
so : le débit de données auquel les données quittent le swap. Débit de données (kb/s)
io :
bi : le débit auquel les données sont lues du périphérique de bloc vers le système ; (kb/s)
bo : la vitesse à laquelle les données sont enregistrées sur le périphérique de bloc ; >
système :
in : interruptions, taux d'interruption ;
cs : changement de contexte, taux de commutation de processus
cpu :
us
sy
id
wa
st
Options :
-s : Afficher les statistiques de mémoire
Commande pmap :
pmap - rapporter la mémoire carte d'un processus
pmap [options] pid [...]
-x : Afficher les informations dans format détaillé
a Trier les processus automatiquement l Afficher/masquer les journaux
c Trier les processus par CPU% b Octets ou bits pour les E/S réseau
m Trier les processus par MEM% w Supprimer les journaux d'avertissement
p Trier les processus par nom x Supprimer les journaux d'avertissement et critiques
i Trier les processus par débit d'E/S 1 Statistiques globales du processeur ou par processeur
d Afficher/ masquer les statistiques d'E/S du disque h Afficher/masquer cet écran d'aide
f Afficher/masquer les statistiques du système de fichiers t Afficher les E/S réseau sous forme de combinaison
n Afficher/masquer les statistiques du réseau u Afficher les E/S cumulées du réseau
s Afficher/masquer les statistiques des capteurs q Quitter (Esc et Ctrl-C fonctionnent également)
y Afficher/masquer les statistiques de température du disque dur
常用选项:
-b : 以Byte为单位显示网卡数据速率;
-d : 关闭磁盘I/O模块;
-f /path/to/somefile :设定输入文件位置;
-o {HTML|CSV}:输出格式;
-m : 禁用mount模块
-n : 禁用网络模块
-t # : 延迟时间间隔
-1:每
C/S模式下运行glances命令:
服务À propos :
coups d'œil -s -B IPADDR
IPADDR : 指明监听于本机哪个地址
客户端模式:
coups d'oeil -c IPADDR
IPADDR:要连入的服务器端地址
dstat命令:
dstat [-afv] [options ..] [délai [count]]
-c: 显示cpu相关信息;
-C # ,#,...,total
-d : 显示disk相关信息;
-D total,sda,sdb,.. .
-g:显示page相关统计数据;
-m : 显示memory相关统计数据;
-n : 显示network相关统计数据;
-p : 显示process相关统计数据;
-r :
-s : 🎜>-- tcp
--udp
--unix
--raw
--socket
--ipc
--top-cpu:CPU的进程;
--top-io : io的进程;
--top-mem : 显示最占用内存的进程;
--top-lantency : 显示延迟最大的进程;
tuer命令:
Envoyer des signaux de contrôle au processus pour réaliser la gestion du processus
Afficher les signaux actuellement disponibles dans le système :
# kill -l
# signal homme 7
Signaux courants :
1) SIGHUP : laissez-le relire le fichier de configuration sans fermer le processus ;
2) SIGINT : abandonnez le processus en cours ; équivalent à Ctrl+c ; ;
9) SIGKILL : tuer le processus en cours ;
15) SIGTERM : mettre fin au processus en cours ;
18) SIGCONT :
19) SIGSTOP :
Spécifier la méthode de signal :
(1) Identification numérique du signal ; 1, 2, 9
(2) Nom complet du signal ; SIGHUP
(3) Le nom abrégé du signal ; HUP
Envoie un signal au processus :
tuer [-SIGNAL] PID...
Tuer tous les processus sous "nom" :
killall [-SIGNAL] Programme
Contrôle des tâches Linux
Travail de premier plan : Démarrez via le terminal et occupera le terminal après le démarrage ;
Tâche en arrière-plan : peut être démarré via le terminal, mais il s'exécutera en arrière-plan après le démarrage (libérez le terminal) ;
Comment faire exécuter le travail en arrière-plan ?
(1) Tâche en cours d'exécution
Ctrl+z
(2) Pas encore commencé job
# COMMAND &
Bien que ce type de travail soit envoyé en arrière-plan pour être exécuté, il est toujours lié au terminal lié; si vous souhaitez l'envoyer en arrière-plan, décollez la relation avec le terminal :
#nohup COMMAND &
Afficher tous les emplois :
# emplois
Contrôle des emplois :
# fg [[%]JOB_NUM] : ramène le travail d'arrière-plan spécifié au premier plan
# bg [[%]JOB_NUM] : laisse le le travail envoyé en arrière-plan continue de s'exécuter en arrière-plan ;
# kill [%JOB_NUM] : Terminez le travail spécifié
<🎜 ; >Ajustement de la priorité du processus :
Priorité statique : 100-139
La belle valeur lors du processus est démarré par défaut est 0 et la priorité est 120
nice commande :
nice [OPTION] [ COMMANDE [ARG]...]
commande renice :
renice [-n] priorité pid.. .
Vue :
ps axo pid,comm,ni
Commandes non impliquées : sar, tsar, iostat, iftop
Planification des tâches Linux, exécution périodique des tâches
Exécuter une tâche à un certain moment dans le futur : at, batch
Exécuter une tâche périodiquement : cron
Service de messagerie :
smtp : protocole de transmission de courrier simple, utilisé pour transmettre des emails ; >
pop3 : Protocole de bureau de poste
imap4 : Protocole d'accès au courrier Internet
mailx - envoyer et recevoir du courrier Internet
MUA : Agent utilisateur de messagerie
mailx [-s 'SUBJECT'] nom d'utilisateur[@hostname]
Génération du corps de l'e-mail :
(1) Donnez-le directement, Ctrl+d ; 🎜>
(2) Redirection d'entrée ;
(3) Via le tube
echo -e " Comment es-tu ?nQuel âge as-tu ? :
à [option] HEURE
HEURE :
HH:MM [AAAA-mm-jj]
midi, minuit, heure du thé
demain
maintenant+#{minutes, heures, jours ou semaines>
Options courantes : <🎜 >
-q QUEUE :
-l : Liste les tâches en attente d'exécution dans la file d'attente spécifiée ; équivalent à atq
-d ; : Supprimer le travail spécifié ; équivalent à atrm
-c : Afficher les tâches de travail spécifiques
-f /path/from/somefile ; Lire les tâches à partir du fichier spécifié ;
Remarque : les résultats de l'exécution du travail seront notifiés aux utilisateurs concernés par e-mail
<🎜 ; >
Commande batch :
Laissez le système choisir son propre temps libre pour effectuer les tâches spécifiées ici
< ; 🎜>
Planification des tâches périodiques : cron
Paquets associés :
cronie : package principal, fournit des processus crond guard et outils auxiliaires associés ;
cronie-anacron : un programme supplémentaire pour cronie ; utilisé pour surveiller l'état d'exécution des tâches de cronie si les tâches de cronie ne se sont pas exécutées normalement à ce moment-là ; past S'il est exécuté, anacron démarrera alors cette tâche
crontabs : inclut CentOS pour fournir les tâches de maintenance du système
<🎜 ; > Assurez-vous que le démon crond est en cours d'exécution :
CentOS 7 :
systemctl status crond
..en cours d'exécution...
CentOS 6 :
état du crond du service
Les tâches planifiées pour être exécutées périodiquement sont soumises à crond, qui implémente une exécution point à point.
Tâche cron système : tâche de maintenance du système
/etc/crontab
Tâche cron utilisateur :
commande crontab
tâche cron système
# Exemple de définition du poste :
# .---------------- minute (0 - 59)
# | .------------- heure (0 - 23)
# | jour du mois (1 - 31)
# |
# | | | .---- jour de la semaine (0 - 6) (dimanche=0 ou 7) OU dim, lundi, mardi, mercredi ,sat
# |
# * * * * * commande de nom d'utilisateur à exécuter 🎜>
Par exemple : exécutez la commande echo à 21h10
10 21 * * *
gentoo ; /bin/echo "Salut !"
Représentation temporelle :
(1) Valeur spécifique ;
Valeurs dans la plage de valeurs valide à un instant donné
(2) *
Toutes les valeurs comprises dans la plage de valeurs valide à un instant donné ;
signifie "chaque..." ; ) Valeurs discrètes : ,
#,#,#
(4) Valeurs continues : -
#-#
(5) Sur la plage de temps spécifiée, définissez la taille du pas :
/# : # est la taille du pas
Par exemple : commande echo toutes les 3 heures
0 */3 * * * gentoo /bin/echo "bonjour !"
Cron utilisateur :
définition de la commande crontab, chaque utilisateur dispose d'un fichier de tâche cron dédié : /var/spool/cron /USERNAME
commande crontab :
crontab [-u utilisateur] [-l -r -e | ] [-i]
-l : Liste toutes les tâches ;
-e : Modifier les tâches
-r : Supprimer toutes les tâches ;
-i : Utilisé avec -r pour permettre aux utilisateurs de supprimer sélectivement les tâches spécifiées en mode interactif ;
<🎜 ; >
-u user : ne peut être exécuté que par root et gère les tâches cron pour l'utilisateur spécifié
Remarque : Le les résultats de l'opération seront notifiés aux utilisateurs concernés par e-mail ;
(1) COMMAND &> ; /dev/null
Pour les tâches cron, % a un objectif particulier si vous souhaitez utiliser % dans une commande, vous devez cependant y échapper ; , Si vous placez % entre guillemets simples, vous n'avez pas besoin d'y échapper
En pensant :
(1) Comment exécuter une tâche en quelques secondes ?
* * * * * pour min en 0 1 2 ; faites écho "salut" ; terminé
(2) Comment Pour exécuter une tâche toutes les 7 minutes ?
commande sleep :
sleep NUMBER[SUFFIX]...
SUFFIXE :
s : secondes, par défaut
m : Minutes
h : heure
d : jour
Processus de démarrage de CentOS 5 et 6
Linux : noyau+rootfs
noyau : gestion des processus, gestion de la mémoire, gestion du réseau, pilote, système de fichiers, fonction de sécurité
rootfs :
glibc
Bibliothèque : collection de fonctions, fonction, interface d'appel
Appel de procédure : procédure
Appel de fonction : fonction
Procédure
École de conception de noyau :
Conception à noyau unique : Linux
Intégrer toutes les fonctions dans le même programme
🎜>
Conception du micro-noyau : Windows, Solaris
Chaque fonction est implémentée à l'aide d'un sous-système distinct
Fonctionnalités du noyau Linux :
Prise en charge de la modularisation : .ko
Prise en charge du chargement et du déchargement dynamiques des modules ;
Composant :
Fichier principal : /boot/vmlinuz-VERSION-release
disque virtuel :
CentOS 5 : /boot/initrd-VERSION-release.img
CentOS 6 : /boot/initramfs-VERSION -release.img
Fichier du module :/lib/modules/VERSION-release
Processus de démarrage du système CentOS :
POST : auto-test à la mise sous tension ;
ROM : CMOS
BIOS : système d'entrée et de sortie de base
ROM+RAM
Séquence de BOOT :
Recherchez chaque périphérique de démarrage dans l'ordre. Le premier périphérique doté d'un programme de démarrage est le périphérique utilisé pour ce démarrage
bootloader : chargeur de démarrage, programme
windows : ntloader
Linux :
LILO : LInux CHARGEUR
GRUB : GRand Uniform Bootloader
GRUB 0.X : GRUB Legacy
GRUB 1.x : GRUB2
Fonction : fournit un menu qui permet à l'utilisateur de choisir de démarrer le système ou de charger une version différente du noyau sélectionné par l'utilisateur ; Accédez à un espace spécifique de la mémoire, décompressez, développez et transférez le contrôle du système vers le noyau
MBR :
446 : chargeur de démarrage
64 : gros
2 : 55AA
GRUB :
bootloader : 1ère étape
disque : 2ème étape
noyau :
Auto-initialisation :
Détecter tous les périphériques matériels reconnus
Chargez le pilote matériel ; (vous pouvez utiliser le disque virtuel pour charger le pilote)
Montez le système de fichiers racine en mode lecture seule
Exécutez la première application dans l'espace utilisateur : /sbin/init
Type de programme d'initialisation :
SysV : init, CentOS 5
Fichier de configuration : /etc/inittab
Upstart : init, CentOS 6
Fichiers de configuration : /etc/inittab, /etc/init/*.conf
Systemd : systemd, CentOS 7
Fichiers de configuration : /usr/lib/systemd/system, /etc/systemd/system
disque virtuel :
Une des fonctionnalités du noyau : utiliser la mise en mémoire tampon et la mise en cache pour gérer l'accès aux fichiers sur le disque
K* : K##* : ##Ordre d'exécution ; plus le nombre est petit, plus il s'exécute tôt ; plus le nombre est petit, le service dépend généralement d'autres services ; S* : S##* : ## ordre d'exécution ; plus le nombre est petit, plus il s'exécute tôt ; plus le nombre est petit, le service dont il dépend
pour srv dans /etc/rc.d/rc0.d/K*; do
$srv stop
terminé
pour srv dans /etc/rc.d/rc0.d/S* ; >$srv start
terminé
commande chkconfig
Afficher services à tous les niveaux Les paramètres de démarrage ou d'arrêt :
chkconfig [--list] [name]
Ajouter :
Le script du service SysV est placé dans /etc/rc.d/init.d (/etc/init.d)
chkconfig --add name
#!/bin/bash
#
# chkconfig : LLLL nn nn
Supprimer :
chkconfig -- del nom
Modifier le type de lien spécifié
chkconfig [--levellevels] nom
--level LLLL : Spécifiez le niveau à définir lorsqu'il est omis, cela signifie
Remarque : Niveau normal, le dernier service démarré, S99local, n'est pas lié à un script de service dans /etc/rc.d/init.d, mais pointe donc vers le script /etc/rc.d/rc.local ; , il n'est pas pratique ou inutile de l'écrire en tant que service. Le script est placé dans le répertoire /etc/rc.d/init.d/, et la commande que vous souhaitez exécuter automatiquement lorsque l'ordinateur est allumé peut être placée directement dans le fichier /etc/rc.d/rc.local
tty1:2345:respawn:/usr/sbin/mingetty tty1
tty2:2345:respawn:/usr/sbin/mingetty tty2
...
tty6:2345 :respawn:/usr/sbin/mingetty tty6
minggetty appellera le programme de connexion
/etc/rc.d/rc.sysinit : script d'initialisation du système
(1) Définir le nom d'hôte
(2) Définir le message de bienvenue ;
(3) Activer udev et selinux
(4) Monter le système de fichiers défini dans /etc/fstab ; file;
(5) Détecter le système de fichiers racine, Et remonter le système de fichiers racine en mode lecture-écriture
(6) Réglez l'horloge système ;
(7) Activez le périphérique d'échange
(8) Définissez les paramètres du noyau en fonction du /etc/sysctl ; Fichier .conf ;
(9) Activer les périphériques LVM et RAID logiciels ;
(10) Chargement des pilotes pour les périphériques supplémentaires ;
(11) Opérations de nettoyage
Résumé : /sbin/init --> (/etc/inittab) --> Définir le niveau d'exécution par défaut --> ; Fermer Correspondant aux services qui doivent être fermés, démarrez les services qui doivent être démarrés --> Configurer le terminal de connexion
CentOS 6 :
Le programme d'initialisation est : upstart, et son fichier de configuration :
/etc /inittab, /etc/init/*.conf
Remarque : la syntaxe du fichier /etc/init/*.conf suit la syntaxe du fichier de configuration parvenu à démarrer
Processus de démarrage de CentOS 6 :
POST --> Séquence de démarrage (BIOS) -- > Chargeur de démarrage (MBR) --> (/etc/inittab, /etc/init/*. conf) --> Définir le niveau d'exécution par défaut --> Script d'initialisation du système --> 🎜>
GRUB (Chargeur de démarrage) :
grub : GRand Unified Bootloader
grub 0.x : grub héritage
grub 1.x : grub2
grub héritage :
stage1 : mbr
stage1_5 : Le secteur après mbr permet au chargeur de démarrage de stage1 d'identifier le système de fichiers sur la partition où se trouve stage2
stage2 : Partition de disque (/boot/grub/)
Fichier de configuration : /boot/grub/grub. conf <-- /etc/grub.conf
stage2 et le noyau sont généralement placés dans une partition de disque de base
Fonction :
(1) Fournir des menus et des interfaces interactives
e : Mode d'édition, utilisé pour modifier les menus
c : Mode commande, interface interactive
(2) Charger le noyau ou le système d'exploitation sélectionné par l'utilisateur
Autoriser la transmission des paramètres au noyau
Vous pouvez masquer ce menu
(3) Fournit un mécanisme de protection pour le menu
Menu Modifier Authentifier
Authentifier pour activer le noyau ou le système d'exploitation
Comment identifier un appareil :
(hd#,#)
hd# : numéro de disque, représenté par des chiffres commençant ; à partir de 0
# : Numéro de partition, représenté par des chiffres ; à partir de 0
(hd0,0)
interface de ligne de commande grub
aide : obtenir la liste d'aide
help KEYWORD : informations d'aide détaillées
find (hd#,#)/PATH/TO/SOMEFILE :
root (hd#,# )
kernel /PATH/TO/KERNEL_FILE : Définissez le fichier du noyau utilisé pour ce démarrage. De plus, vous pouvez ajouter de nombreux paramètres de ligne de commande pris en charge par le noyau ;
Par exemple : init=/path/to/init, selinux=0
initrd /PATH/TO/INITRAMFS_FILE : définissez un disque virtuel qui fournit des fichiers supplémentaires pour le noyau sélectionné ;
boot : démarrez le noyau sélectionné
Démarrez manuellement le système via l'interface de ligne de commande grub. :
initrd /PATH/TO/INITRAMFS_FILE : fichier ramfs correspondant au noyau ;
mot de passe [--md5] STRING : authentification lors du démarrage du noyau ou du système d'exploitation sélectionné ;
commande grub-md5-crypt
Entrée mode mono-utilisateur :
(1) Modifier le menu grub (sélectionnez le titre à modifier, puis utilisez la commande e
(2) Dans le noyau sélectionné Vous pouvez ajouter
1, s, S ou single
(3) Dans la ligne où ; le noyau est localisé, tapez la commande "b"
Installer grub :
(1) grub- install
grub-install --root-directory=ROOT /dev/DISK
(2) grub
grub> racine (hd#,#)
grub> >
Noyau Linux :
Conception du système à noyau unique, mais tire pleinement parti des avantages de la conception du micro-noyau système et introduit un mécanisme modulaire au noyau.
Composants du noyau :
noyau : noyau du noyau, généralement bzIma, généralement dans le répertoire /boot, nommé vmlinuz-VERSION- RELEASE
objet noyau : objet noyau, généralement placé dans /lib/modules/VERSION-RELEASE/
[ ] : N
[M] : M
[*] : Y
Fichiers auxiliaires : disque virtuel
initrd
initramfs
Noyau en cours d'exécution :
commande uname :
uname - imprimer les informations du système
uname [ OPTION]...
-n : Afficher le nom du nœud
-r : Afficher VERSION-RELEASE ;
Module :
Commande lsmod :
Afficher ce qui a été fait par le noyau Le module du noyau chargé
affiche le contenu de : le fichier /proc/modules
commande modinfo :
Afficher les informations de description détaillées du module
modinfo [ -k kernel ] [ modulename|filename .. ]
-n : Afficher uniquement le chemin du fichier du module
-p : Afficher les paramètres du module
-a : auteur
-d : description
-l : licence
Commande modprobe :
Charger ou décharger le module du noyau
modprobe [ -C config- file ] [ nom du module ] [ paramètres du module... ]
Fichier de configuration : /etc/modprobe.conf, /etc/modprobe.d/*.conf
modprobe [ -r ] nom du module...
commande depmod :
Un outil pour générer des fichiers de dépendances de modules du noyau et des fichiers de mappage d'informations système
Chargement ou déchargement de modules du noyau :
commande insmod :
insmod [nom du fichier] [options du module... ]
rmmod
rmmod [ nom du module ]
/proc répertoire :
Handle du noyau Ses propres informations d'état internes et informations statistiques, ainsi que les paramètres configurables sont générés via le pseudo-système de fichiers proc
Paramètres :
Lecture seule : informations de sortie
Écriture : une "nouvelle valeur" spécifiée par l'utilisateur peut être acceptée pour configurer une certaine fonction ou caractéristique du noyau
/proc/sys
(1) La commande sysctl est utilisée pour afficher ou définir de nombreux paramètres dans ce répertoire
sysctl -w path.to.parameter=VALUE
~]# sysctl -w kernel.hostname=mail.madu .com
(2) La commande echo peut également modifier les valeurs de la plupart des paramètres via la redirection
echo "VALEUR" > ; /proc/sys/path/to/parameter
~]# echo "www.madu.com" > /sys/kernel/hostname
commande sysctl :
Fichier de configuration par défaut : /etc/sysctl.conf
(1) Définir un certain paramètre
sysctl -w paramètre=VALUE
(2 ) Définissez-le en lisant les paramètres du fichier de configuration
sysctl -p [/path/to/conf_file]
Redirection de route dans le noyau :
/proc/sys/net/ipv4/ip_forward
Plusieurs paramètres couramment utilisés :
net.ipv4.ip_forward
vm.drop_caches
kernel.hostname
/sys répertoire :
sysfs : affiche également les informations d'attribut pertinentes de chaque périphérique matériel reconnu par le noyau. comme informations de configuration du noyau pour les fonctionnalités matérielles ; Certains paramètres peuvent être modifiés pour ajuster les caractéristiques de fonctionnement du matériel.
udev crée dynamiquement les fichiers de périphérique requis pour chaque périphérique via les informations affichées sous ce chemin ; udev est un programme d'espace utilisateur qui exécute des outils spéciaux : udevadmin, hotplug;
Lorsque udev crée un fichier de périphérique pour un périphérique, il lira ses fichiers de règles prédéfinis, généralement dans /etc/udev/rules.d et le répertoire /usr /lib/udev/rules.d
Production du fichier disque virtuel :
(1 ) Commande mkinitrd
Recréez le fichier disque virtuel pour le noyau actuellement utilisé
tui : fenêtre de texte basée sur les malédictions ;
gui : fenêtre graphique
Processus de démarrage du programme d'installation CentOS :
MBR : boot.cat
stage2 : isolinux/isolinux.bin
Fichier de configuration : isolinux/isolinux.cfg
Chaque option de menu correspondante :
Charger le noyau : isolinuz/vmlinuz
Passez les paramètres au noyau : ajoutez initrd=initrd.img ...
Montez le système de fichiers racine et démarrez anaconda
Démarrez l'interface GUI par défaut
Si explicitement spécifié, utilisez l'interface TUI :
Passez simplement le paramètre "text" au noyau
boot: linux text
Remarque : le contenu ci-dessus doit généralement se trouver dans le périphérique de démarrage ; il existe plusieurs méthodes disponibles pour anaconda ultérieur et ses packages d'installation :
CD local
Disque dur local
serveur ftp : référentiel miam
serveur http : référentiel miam
serveur nfs
Si vous souhaitez spécifier manuellement la source d'installation :
boot : méthode Linux
Le processus de fonctionnement de l'application anaconda :
Phase de configuration de pré-installation
Langue utilisée lors de l'installation
Type de clavier
Périphérique de stockage cible de l'installation
Stockage de base : disque local
Périphérique spécial : iSCSI
Définir le nom d'hôte
Configurer l'interface réseau
Fuseau horaire
Mot de passe administrateur
Définir le mode de partition Et l'emplacement d'installation de MBR
Créez un utilisateur normal
Sélectionnez celui que vous voulez pour installer le package
Phase d'installation
Créer des partitions sur le disque cible, effectuer des opérations de formatage, etc.
Installer le package sélectionné à l'emplacement cible
Installer le chargeur de démarrage
Démarrer pour la première fois
iptables
selinux
core dump
méthode de configuration anaconda :
(1) Méthode de configuration interactive ;
(2) Compléter automatiquement la configuration en lisant le fichier de configuration donné à l'avance
Configuration donnée selon une syntaxe spécifique ; Options ;
fichier de démarrage
Options de démarrage de l'installation :
boot :
text : méthode d'installation par texte
méthode : spécifier manuellement la méthode d'installation à utiliser
Options de démarrage liées au réseau :
ip=IPADDR
netmask=MASK
gateway=GW
dns=DNS_SERVER_IP
ifname=NAME:MAC_ADDR
avec accès à distance options de démarrage liées aux fonctions :
pour exécuter un certain segment de code plusieurs fois ;
pour exécuter combien de fois ?
Le nombre de cycles est connu à l'avance :
Le nombre de cycles est connu à l'avance
Doit avoir des conditions d'entrée et des conditions de sortie :
pendant, pendant, jusqu'à
Fonction : programmation structurée et réutilisation de code
fonction
boucle for syntaxe :
pour NOM dans LISTE ; faire
Corps de la boucle
fait
Méthode de génération de liste :
(1) Liste entière
{start ..end}
$(seq start [[step]end])
(2) glob
/etc/rc.d/rc3.d/K*
(3) Commande
Détecter par commande ping l'état en ligne de tous les hôtes dans la plage 172.16.250.1-254
#!/bin/bash
#
net='172.16.250'
uphosts=0
downhosts=0
pour moi dans {1..20} ; do
ping -c 1 -w 1 ${net}.$ {i} &> /dev/null
if [ $? -eq 0 ]; then
echo "${net}. ${i} est en hausse. {net}.${i} est en panne."
let downhosts++
fi
terminé
echo "Hôtes en hausse : $uphosts."
echo "En bas hosts : $downhosts."
boucle while :
while CONDITION ; faire
Corps de la boucle
fait
CONDITION : condition de contrôle de la boucle ; Avant d'entrer dans la boucle, faites d'abord un jugement ; faites un jugement à nouveau après chaque boucle
Si la condition est « vraie », alors exécutez une boucle jusqu'à ce que l'état du test de condition soit « ; false", terminate Loop;
Par conséquent : CONDTION doit généralement avoir une variable de contrôle de boucle ; et la valeur de cette variable sera continuellement modifiée dans le corps de la boucle ;
Exemple : Trouvez la somme de tous les entiers positifs inférieurs à 100 ;
#!/bin/bash
#
déclarer -i sum=0
déclarer -i i=1
while [ $i -le 100 ]; faire
let sum+=$i
laisser i++
fait
écho "$i"
echo "Résumé : $sum."
Ajouter 10 utilisateurs
user1-user10
#!/bin/bash
#
declare -i i= 1
declare -i users=0
while [ $i -le 10 ];
si ! id user$i &> /dev/null; alors
useradd user$i
echo "Ajouter un utilisateur : utilisateur$i."
laisser les utilisateurs++
fi
let i++
done
echo "Ajouter des utilisateurs $users."
Détectez l'état en ligne de tous les hôtes dans la plage 172.16.250.1-254 via la commande ping (utilisez une boucle while)
#!/bin/bash
#
declare -i i=1
déclarer - i uphosts=0
déclarer -i downhosts=0
net='172.16.250'
while [ $i -le 20 ]; do
if ping -c 1 -w 1 $net .$i &> /dev/null ; puis
echo "$net.$i est en place."
laissez uphosts++
autre
echo "$net.$i est en panne."
laissez downhosts++
fi
laisser i++
fait
echo "Up hosts : $uphosts. "
echo "Hôtes en panne : $downhosts."
打印九九乘法表;(分别使用pour和 while循环实现)
#!/bin/bash
#
pour j dans {1..9} ; faire
pour je dans $(seq 1 $j); faire
echo -e -n "${i}X${j}=$[$i*$j]t"
fait
écho
fait
#!/bin/bash
#
declare -i i=1
déclarer -i j=1
while [ $j -le 9 ]; faire
pendant que [ $i -le $j ]; faire
echo -e -n "${i}X${j}=$[$i*$j]t"
laissez-moi++
fait
écho
laissez-moi= 1
laisser j++
fait
利用RANDOM生成10
#!/bin/bash
#
déclarer -i max=0
déclarer -i min=0
déclarer -i i=1
while [ $i -le 9 ]; faire
rand=$RANDOM
echo $rand
si [ $i -eq 1 ]; puis
max=$rand
min=$rand
fi
si [ $rand -gt $max ]; alors
max=$rand
fi
si [ $rand -lt $min ]; alors
min=$rand
fi
laisse-moi++
terminé
écho "MAX : $max."
écho "MIN : $ min."
回顾:selinux, tandis que
selinux : 内核,安全加强;
开启:
/etc/sysconfig/selinux, /etc/selinux/config
# setenforce
#getenforce
打标:
chcon [-t TYPE ]
-R
布尔型:
getsebool [ -a]
setsebool [-P]
pendant que循环:
en CONDITION; faire
循环体
fait
sed:编辑器
sed : Stream EDitor, éditeur de ligne
Utilisation :
sed [option]... fichier d'entrée 'script'...
script :
'Commande d'adresse'
Options communes :
-n : Ne pas afficher le contenu en mode à l'écran
-e : Édition multipoint ;
-f /PATH/TO/SCRIPT_FILE : Lire le script d'édition à partir du fichier spécifié
-r : prend en charge l'utilisation d'expressions régulières étendues
-i : modification sur place ; >
Délimitation de l'adresse :
(1) Aucune adresse : traiter le texte intégral
(2) Adresse unique ; :
# : La ligne spécifiée
/pattern/ : Chaque ligne pouvant correspondre à ce motif ; >
(3) Plage d'adresses :
#,#
#,+#
/pat1/,/pat2/
#,/pat1/
(4) ~ : étape
1~2
2~2
Modifier la commande :
d : supprimer
p : afficher le contenu dans l'espace motif
un texte : Ajoutez du texte après la ligne ; supportez en utilisant n pour implémenter l'ajout de plusieurs lignes ;
i texte : insérez du texte avant la ligne ; supportez en utilisant n pour implémenter l'insertion de plusieurs lignes ;
c text : La ligne de remplacement est un texte sur une ou plusieurs lignes
w /path/to/somefile : Enregistrez les lignes correspondant au motif ; espace vers le fichier spécifié ;
r /path/from/somefile : lit le flux de texte du fichier spécifié jusqu'à la fin de la ligne correspondante dans l'espace du modèle
= : Imprimer les numéros de ligne pour les lignes dans l'espace du motif
! : annuler la condition ; s/// : prend en charge l'utilisation d'autres séparateurs Symboles, s@@@, s###
Marque de remplacement :
g : Remplacement global en ligne ;
p : Afficher les lignes remplacées avec succès
w /PATH/TO/SOMEFILE : Enregistrez le remplacement réussi ; résultats dans le fichier spécifié
1 : Supprimez tous les caractères d'espacement au début des lignes commençant par des espaces dans le fichier /boot/grub/grub.conf ;
~]# sed 's@^[[:space:]]+@@' /etc/grub2.cfg
2 : Supprimez /etc/ # et les caractères vides au début de toutes les lignes du fichier fstab qui commencent par # et sont suivis d'au moins un caractère vide
~]# sed 's@^#[[:space :]]+@@' /etc/fstab
3 : fait écho à un chemin absolu vers la commande sed, supprimez son nom de base ; supprimez son nom de répertoire ;
~]# echo "/etc/sysconfig/" | ?$@@'
Commandes d'édition avancées :
h : écrasez le contenu de l'espace de motif dans le espace de maintien ;
H : ajouter le contenu de l'espace de motif à l'espace de maintien
g : prendre les données de l'espace de maintien ; et écrasez-le dans l'espace de motif
G : Retirez le contenu de l'espace de stockage et ajoutez-le à l'espace de motif
x : Échangez le contenu dans l'espace de motif avec le contenu dans l'espace de maintien
n : Lisez la ligne suivante de la ligne correspondante dans l'espace de motif ;
N : ajoutez la ligne suivante de la ligne correspondante à l'espace de motif
d : supprimez les lignes dans l'espace de motif ; >D : Supprimez toutes les lignes dans l'espace de motif multiligne
sed -n 'n;p' FILE : Afficher les lignes paires
sed '1!G;h;$!d' FILE : Afficher dans inverser le contenu du fichier
sed '$!N;$!D' FILE : Supprimez les deux dernières lignes du fichier
sed ; '$!d' FILE : Supprimez la dernière ligne du fichier
sed 'G' FILE :
sed '/^ $/d;G' FILE :
sed 'n;d' FILE : Afficher les lignes impaires
sed -n'1 ! G;h;$p' FILE : affiche chaque ligne du fichier à l'envers
script bash
while CONDITION ; faire
Corps de boucle
terminé
Entrée condition : CONDITION est vraie
Condition de sortie : fausse
jusqu'à ce que CONDITION ;
Corps de la boucle
fait
Condition d'entrée : fausse
Condition de sortie : vrai
Exemple : Trouver la somme de tous les entiers positifs inférieurs à 100
#!/bin/bash
#
déclarer -i i=1
déclarer -i sum=0
jusqu'à [ $i -gt 100 ]; faire
let sum+=$i
laissez-moi++
fait
écho "Somme : $ sum"
Exemple : Imprimer la table de multiplication
#!/bin/bash
#
déclarer -i j=1
déclarer -i i=1
jusqu'à [ $j -gt 9 ]; faire
jusqu'à [ $i -gt $j ];
echo -n -e "${i}X${j}=$[$i*$j]t"
laissez-moi++
terminé
echo
let i=1
let j++
done
Instruction de contrôle de boucle (utilisée dans le corps de la boucle) :
continuer [N] : Terminer le cycle actuel de la Nième couche à l'avance et entrer directement dans le prochain tour de jugement
pendant que CONDTIITON1 ; 🎜>
CMD1
...
si CONDITION2 alors
continuer
fi
CMDn
...
terminé
break [N] : terminer la boucle plus tôt
pendant que CONDTIITON1; fais
CMD1
...
si CONDITION2; alors
pause
fi
CMDn
...
done
Exemple 1 : Trouver la somme de tous les nombres pairs à l'intérieur 100 ; nécessite une boucle pour parcourir tous les entiers positifs inférieurs à 100
#!/bin/bash
#
déclarer -i i=0
déclarer -i sum=0
jusqu'à [ $i -gt 100 ]; 🎜>
let i++
if [ $[$i%2] -eq 1 ] alors
continuer
fi
let sum+=$i
fait
écho "Somme paire : $sum"
Créer une boucle infinie :
pendant que c'est vrai ; faire
Corps de boucle
fait
jusqu'à faux ; faire
Corps de boucle
fait
Exemple 2 : Obtenez des informations sur les utilisateurs connectés du système toutes les 3 secondes ; si Docker est connecté, elles seront enregistrées dans le journal et quitteront
#!/bin/bash ;
#
read -p "Entrez un nom d'utilisateur : " nom d'utilisateur
Utilisation particulière de la boucle while (parcourir chaque ligne du fichier) :
while read line; do
Corps de la boucle
done <
Lisez tour à tour chaque ligne du fichier /PATH/FROM/SOMEFILE, et attribuez la ligne à la ligne variable :
Exemple : Rechercher tous les utilisateurs dont les numéros d'identification sont pairs et afficher leurs noms d'utilisateur et numéros d'identification ;
for ((initialisation de la variable de contrôle ; formule d'expression de jugement conditionnel ; expression modifiée de la variable de contrôle));
Corps de la boucle
terminé
Initialisation de la variable de contrôle : exécutée une seule fois lors de l'exécution dans la section de code de boucle ;
Expression modifiée de la variable de contrôle : la variable de contrôle sera exécutée en premier à la fin de chaque cycle. Corrigez l'opération, puis effectuez un jugement conditionnel ; >
Exemple : Trouvez la somme de tous les entiers positifs inférieurs à 100 ;
#!/bin/bash
#
déclarer -i sum=0
pour ((je =1;i<=100;i++)); faire
laisser somme+=$i
fait
echo "Somme : $sum."
Exemple 2 : Imprimez la table de multiplication
#!/bin/bash
#
pour((j= 1 ;j<=9;j++));faire
pour((i=1;i<=j;i++))faire
en utilisant en utilisant en utilisant en utilisant à travers à travers ‐ ‐ ‐ ‐ ‐terminé
écho
fait
(1) Afficher un menu comme suit :
cpu) afficher les informations sur le processeur ;
mem) afficher la mémoire informations;
disque) afficher les informations sur le disque;
quitter) quitter
(2) invite l'utilisateur à sélectionner des options ;
(3) affiche le contenu du choix de l'utilisateur 🎜>cat << afficher les informations sur le processeur ;
mem) afficher les informations sur la mémoire ;
disque) afficher les informations sur le disque ;
quitter) quitter
=========== =================
EOF
lire - p "Entrez une option : " option
pendant que [ "$option" != 'cpu' -a "$option" != 'mem' -a "$option" != 'disk' -a "$option" != 'quit' ]; >
read -p "Mauvaise option, saisissez à nouveau : " option
terminé
if [ "$option" == 'cpu' ]; alors
lscpu
elif [ "$option" == 'mem' ]; alors
cat /proc/meminfo
elif [ "$option" == 'disk' ]; 🎜> fdisk -l
else
echo "Quitter"
sortie 0
fi
Plus loin :
Le l'utilisateur sélectionne et ne quitte pas le script une fois l'affichage terminé ; au lieu de cela, il invite l'utilisateur à continuer de choisir d'afficher un autre contenu ; il ne quitte pas jusqu'à ce que quitter soit utilisé ;
Jugement conditionnel : énoncé de cas
référence de variable de cas dans
PAT1)
Branche 1
;;
PAT2)
Branche 2
;;
...
* )
branche par défaut
;;
esac
Exemple :
#!/bin/bash
#
cat << EOF
cpu) afficher les informations sur le processeur ;
mem) afficher les informations sur la mémoire ;
disque) afficher les informations sur le disque ;
quitter) quitter
============================
EOF
read -p "Entrez une option : " option
while [ "$option" != ' cpu' -a "$option" != 'mem' -a "$option" != 'disk' -a "$option" != 'quit' ]; do
read -p "Mauvaise option, saisissez à nouveau : " option
terminé
cas "$option" dans
cpu)
lscpu
;;
mem)
cat /proc/meminfo
;;
disque)
fdisk -l
;;
*)
écho "Quitter..."
sortie 0
;;
esac
(1) 脚本可接受参数:démarrer, arrêter, redémarrer, état ;
(2) Pour commencer : Nom/var/lock/subsys/SCRIPT_NAME处理?
Le résultat de l'exécution de la la fonction renvoie la valeur :
(1) Utilisez la commande echo ou print pour la sortie
(2) Le résultat de l'exécution de la commande appelée ; dans le corps de la fonction ;
Le code d'état de sortie de la fonction :
(1) La valeur par défaut dépend du code d'état de sortie de la fonction ; dernière commande exécutée dans le corps de la fonction
(2) Code d'état de sortie personnalisé :
return
Les fonctions peuvent accepter des paramètres :
Passer des paramètres à la fonction : lors de l'appel d'une fonction, séparez simplement la liste de paramètres donnée par un espace après le nom de la fonction ; par exemple, "testfunc arg1 arg2..."
Dans le corps de la fonction, vous pouvez utiliser $1, $2, ... pour appeler ces paramètres ; vous pouvez également utiliser des variables spéciales telles que $@, $*, $# ;
Imprimer la table de multiplication NN, implémentée à l'aide de fonctions
Portée de la variable :
Variables locales : processus shell actuel afin d'exécuter le script, un processus shell dédié sera donc démarré ; la portée des variables locales est le fichier de programme de script shell actuel ;
Variables locales : le cycle de vie de la fonction ; les variables sont automatiquement détruites à la fin de la fonction ;
S'il y a des variables locales dans la fonction, leurs noms sont les mêmes que les variables locales
Comment définir des variables locales dans une fonction ; :
local NAME=VALUE
Récursion de fonction :
La fonction s'appelle directement ou indirectement
N!= N(n-1)(n-2)...1
n(n-1) ! = n(n-1)(n-2) !
#!/bin/bash
#
fact() {
si [ $1 -eq 0 -o $1 -eq 1 ]; puis
echo 1
autre
écho $[$1*$(fait $[$1-1])]
fi
}
fait 5
求n阶斐波那契数列;
#!/bin/bash
#
fab() {
if [ $1 -eq 1 ]; puis
echo 1
elif [ $1 -eq 2 ]; puis
écho 1
else
écho $[$(fab $[$1- 1])+$(fab $[$1-2])]
fi
}
fab 7
Systemd:
POST ---> Séquence de démarrage ---> Chargeur de démarrage ---> noyau + initramfs(initrd) ---> rootfs ---> /sbin/init
init :
CentOS 5 : SysV init
CentOS 6 : Parvenu
CentOS 7 : Systemd
Systemd新特性:
系统引导时实现服务并行启动;
按需激活进程;
系统状态快照;
基于依赖关系定义服务控制逻辑;
核心概念:unité
配置文件进行标识
保存至:
/usr/lib/systemd/system
/run/systemd/system
/etc/systemd/system
Unité的类型:
Unité de service : 文件扩展名为.service, 用于定义系统服务;
Unité cible : 文件扩展名为.target,用于模拟实现“运行级别”;
Unité périphérique : .device, 用于定义内核识别 的 设备 ;
Unité de montage: .mount, 定义 文件 系统 挂载点 ;
Unité de socket: .Socket, 用于 标识进程间通信用的socket文件;
Unité d'instantané : .snapshot, 管理系统快照;
Unité d'échange : .swap,用于标识swap设备;
Unité de montage automatique : .automount,文件系统的自动挂载点;
Unité de chemin : .path,用于
关键特性:
基于chaussette et的激活机制:socket与服务程序分离;
基于bus的激活机制:
基于device的激活机制:
基于path的激活机制:
系统快照:保存各unit的当前状态信息于持久存储设备中;
向
不兼容:
systemctl命令固定不变
非由systemd启动的服务,systemctl无法与之通信
管理系统服务:
CentOS 7 : unité de service
注意:能兼容早期的服务脚本
命令:systemctl COMMAND name .service
Démarrer : nom du service start ==> systemctl start name.service
Arrêter : nom du service stop ==> 🎜>
Redémarrer : nom du service restart ==> systemctl restart nom.service
Statut : nom du service status ==> nom du statut systemctl service<.>
Redémarrage conditionnel : nom du service condrestart ==> systemctl try-restart name.service
Recharger ou redémarrer le service : systemctl reload-or -restart name.service
Recharger ou redémarrer conditionnellement le service : systemctl reload-or-try-restart name.service
Désactiver le paramètre pour démarrage automatique au démarrage : systemctl mask name.service
Annuler la désactivation du paramètre de démarrage automatique au démarrage : systemctl unmask name.service
Afficher l'état d'activation actuel d'un service : systemctl is-active name.service
Afficher tous les services activés :
systemctl list-units --type service
Afficher tous les services :
systemctl list -units --type service --all
Correspondance de la commande chkconfig :
Définir un service pour démarrer Démarrage automatique : nom chkconfig on ==> systemctl activer name.service
Désactiver : chkconfig name off ==> systemctl désactiver name.service
Afficher l'état de démarrage de tous les services :
chkconfig --list ==> systemctl list-unit-files --type service
Vérifiez si le service démarre automatiquement au démarrage : systemctl is-enabled name.service
Autres commandes :
Afficher les dépendances du service : systemctl list-dependencies name.service
La longueur du tableau (le nombre d'éléments dans le tableau) : ${#ARRAY_NAME[*]}, ${#ARRAY_NAME[@]}
Exemple : Générez 10 nombres aléatoires et enregistrez-les dans un tableau, et trouvez leurs valeurs maximales et minimales
#!/ bin/bash
#
déclarer -a rand
déclarer -i max=0
pour je dans {0..9} ; fais
rand[$i]= $RANDOM
echo ${rand[$i]}
[ ${rand[$i]} -gt $max ] && max=$ {rand[$i]}
done
echo "Max : $max"
Définir un tableau Les éléments du tableau sont tous des fichiers se terminant par .log dans le /var/log. répertoire ; les statistiques sont requises La somme du nombre de lignes dans les fichiers dont les indices sont des nombres pairs
#!/bin/bash
#
déclarer -a fichiers
files=(/var/log/*.log)
déclarer -i lignes=0
pour i dans $(seq 0 $[${#files[*]} -1]); faire
if [ $[$i%2] -eq 0 ];then
let lines+=$(wc -l ${files[$i ]} | coupe -d'' -f1)
fi
fait
echo "Lines : $lines."
Référence à un élément dans un tableau :
Tous les éléments : ${ARRAY[@]}, ${ARRAY[*]}
Tranche de tableau : ${ARRAY[@ ] :offset:number>
offset : le nombre d'éléments à ignorer
number : le nombre d'éléments à supprimer, prendre le décalage Tous les éléments après le montant : ${ARRAY[@]:offset} ;
Récupère les caractères les plus à droite de la chaîne : ${var: -lengh}
Remarque : après les deux points, il doit y avoir être un caractère vide
Obtenir une sous-chaîne basée sur le modèle :
${var#*word} : où mot peut être n'importe quel caractère spécifié ; fonction : de gauche à droite, recherchez la première occurrence de mot dans la chaîne stockée dans la variable var et supprimez tous les caractères entre le début de la chaîne et la première occurrence du caractère mot ;
${var##*word} : Comme ci-dessus, mais ce qui est supprimé est tout ce qui se trouve entre le début de la chaîne et le dernier caractère spécifié par word
file="/var/log/messages"
${file##*/} : messages
${var%word*} : où word peut être n'importe quel caractère spécifié ; fonction : de droite à gauche, recherchez la première occurrence de word dans la chaîne stockée dans la variable var, et supprimez la chaîne All caractères entre le dernier caractère à gauche et le premier caractère du mot
file="/var/log/messages"
${ file%/*} : /var/log
${var%%word*} : Idem que ci-dessus, sauf supprimer la chaîne la plus à droite Tous les caractères entre les caractères sur le côté gauche et la dernière occurrence du mot caractère
Exemple : url=:80
${url##*:}
${url%%:*}
Trouver un remplaçant :
${var/pattern/substi} : Recherchez la première chaîne correspondant à pattern dans la chaîne représentée par var et remplacez-la par substi ; >${var//pattern/substi} : recherchez toutes les chaînes pouvant correspondre à un motif dans la chaîne représentée par var et remplacez-les par substi ; >
${var/#pattern/substi} : recherchez la chaîne correspondant à pattern au début de la ligne dans la chaîne représentée par var et remplacez-la par substi
${var/%pattern/substi} : recherchez la chaîne correspondant à pattern à la fin de la ligne dans la chaîne représentée par var et remplacez-la par substi ; >
Rechercher et supprimer :
${var/pattern} : Rechercher la chaîne représentée par var et supprimer une première fois La chaîne correspondant au motif
${var//pattern} :
${var/#pattern} :
${var/% pattern} :
Conversion de la casse des caractères :
${var^^} : Convertit toutes les lettres minuscules en var en majuscule ;
${var,,} : Convertissez toutes les lettres majuscules de var en minuscules
Affectation de variable :
${var:-value} : Si var est vide ou non défini, renvoie la valeur ; sinon, renvoie la valeur de var ;
${ var:=value} : Si var est vide ou non défini, renvoie la valeur et attribue-la à var ; sinon, renvoie la valeur de var ;
$; {var:+value} : Si var n'est pas vide, renvoie la valeur
${var:?error_info} : Si var est vide ou n'est pas défini, renvoie error_info sinon, renvoie la valeur de var ;
Utilisez le fichier de configuration pour le programme de script :
(1) Définir un fichier texte et définissez "name=value" pour chaque ligne
(2) Sourcez ce fichier dans le script
Commande :
Commande mktemp :
mktemp [OPTION]... [MODÈLE]
MODÈLE : nom de fichier.XXX
Au moins trois XXX doivent apparaître
OPTION :
-d : Créez un répertoire temporaire ;
--tmpdir=/PATH/TO/SOMEDIR : Spécifiez l'emplacement du répertoire du fichier temporaire
commande d'installation :
installer [OPTION]... [-T] SOURCE DEST
installer [ OPTION]... SOURCE... RÉPERTOIRE
installer [OPTION]... -t RÉPERTOIRE SOURCE...
installer [ OPTION]... -d ANNUAIRE...
Options :
- m MODE
-o PROPRIÉTAIRE
-g GROUPE
GNU awk :
Trois outils pour le traitement de texte : grep, sed, awk
grep, egrep, fgrep : outils de filtrage de texte ; pattern
sed : éditeur de ligne
Espace de motif, espace de maintien
awk : générateur de rapport, sortie de texte formaté
(2) /expression régulière ; / : Seules les lignes de processus pouvant correspondre au modèle ici
;
(3) expression relationnelle : expression relationnelle ; le résultat peut être « vrai » ou « faux » ; il ne sera traité que si le résultat est « vrai » ; 🎜>
Vrai : le résultat est une valeur non nulle, une chaîne non vide
(4) plages de lignes : plage de lignes,
startline, endline :/pat1/,/pat2/
Remarque : le format permettant de donner directement des chiffres n'est pas pris en charge
Scénario d'utilisation : émettre un jugement conditionnel sur la ligne entière ou un certain champ obtenu par awk ;
7.2 boucle while
Syntaxe : instruction while(condition)
If la condition est "vrai", entrez dans la boucle ; si la condition est "faux", quittez la boucle ;
Scénario d'utilisation : utilisé lors du traitement de plusieurs champs dans une ligne un par un ; utilisé lors du traitement de chaque élément d'un tableau un par un
(1) N'importe quelle chaîne peut être utilisée ; la chaîne doit être Utilisez des guillemets doubles ;
(2) Si un élément du tableau n'existe pas à l'avance, awk créera automatiquement cet élément lors du référencement et initialisera sa valeur à un " chaîne vide";
Pour déterminer si un élément existe dans le tableau, utilisez le format "index dans le tableau";
weekdays[mon]="Monday"
Pour parcourir chaque élément du tableau, utilisez une boucle for <; 🎜>
for(var in array) {for-body}
~]# awk 'BEGIN{weekdays[" mon"] ="Lundi";weekdays["tue"]="Tuesday";for(i in weekdays) {print weekdays[i]}}'
Remarque : var parcourra chaque index du tableau ;
rand() : renvoie un nombre aléatoire entre 0 et 1 ;
Traitement de la chaîne :
length([s]) : renvoie la longueur de la chaîne spécifiée ;
sub(r,s, [t]) : utilisez le modèle représenté par r pour trouver le contenu correspondant dans le caractère représenté par t, et remplacez sa première occurrence par le contenu représenté par s
<🎜 ; > gsub(r,s,[t]) : utilisez le modèle représenté par r pour trouver le contenu correspondant dans le caractère représenté par t, et remplacez toutes ses occurrences par le contenu représenté par s
<🎜 ; >
split(s,a[,r]) : divisez le caractère s avec r comme séparateur et enregistrez le résultat de la coupe dans le tableau représenté par a ; 🎜>
~]# netstat -tan | awk '/^tcp>/{split($5,ip,":");count[ip[1]]++} END{for (i in count) {print i,count[i]}}'
9.2 Fonction personnalisée
《sed et awk》
DNF Il y a aussi Fedora 18 et Fedora 22.包管理器。
DNF运行速度等多方面的内容。
DNF使用 RPM, libsolv Il s'agit de la version Hawkey de CentOS et de RHEL 7 中, qui est également disponible pour YUM. 🎜>
DNF 的最新稳定发行版版本Version 1.0, version 2015 du 5 juillet 11. La version DNF est actuellement en vigueur.大部分采用 Python 编写,发行许可为GPL v2.
La résolution des dépendances de YUM est un cauchemar et a été résolue dans DNF avec la bibliothèque SUSE 'libsolv' et le wrapper Python avec C Hawkey.
YUM n'a pas une API documentée.
La création de nouvelles fonctionnalités est difficile.
Pas de prise en charge des extensions autres que Python.
Réduction de mémoire moindre et synchronisation moins automatique des métadonnées – un processus qui prend du temps .
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn