Bases du système Linux (1)

PHP中文网
Libérer: 2017-06-20 11:18:49
original
1824 Les gens l'ont consulté
Terminal :
L'équipement que les utilisateurs doivent utiliser pour interagir avec l'hébergeur
Terminal physique : directement connecté au moniteur et au clavier locaux ; /dev/console
Terminal virtuel : connecté au Terminaux physiques virtualisés dans le logiciel au-dessus du terminal. CentOS 6 démarre 6 terminaux virtuels par défaut
Ctrl+Alt+F# : [1,6]
Terminal graphique : un terminal implémenté virtuellement dans un logiciel qui est attaché à un terminal physique, mais fournit en outre un environnement de bureau
Fichier de périphérique ; Chemin : /dev/tty#
Terminal simulé :
Interface de ligne de commande ouverte sous l'interface graphique, basée sur le protocole ssh ou le protocole telnet , etc. Interface ouverte à distance
Fichier de l'appareil : /dev/pts/# [0,oo)
Afficher le terminal actuel : tty
Interface interactive : après avoir démarré le terminal, attachez une application interactive au terminal
GUI :
Protocole X, gestionnaire de fenêtres, bureau
Bureau :
GNOME (C, gtk)
KDE (C++, qt)
XFCE ( léger Grand bureau)
CLI :
programme shell :
sh (bourn)
csh
tcsh
ksh (korn)
bash (bourn Again Shell), GPL
zsh
Afficher le shell actuellement utilisé :
# echo ${SHELL}
Afficher tous les shells actuellement utilisés par le système :
# cat /etc/shells
Invite de commande : prompt
[root@localhost ~ ]#
[root@localhost ~] : PS1
invite :
admin : #
Utilisateur normal : $
Commande :
Entrer la commande et appuyez sur Entrée :
invite le programme shell à trouver le programme exécutable ou le code correspondant à la commande saisie, et après l'avoir analysé, à le soumettre au noyau pour allouer des ressources à exécuter il ;
se comporte comme un ou plusieurs processus
Il existe deux types de commandes qui peuvent être exécutées dans le shell :
Commandes intégrées : apportées par le shell et fournies sous une certaine forme de commande
Commandes externes : sous une certaine chemin du système de fichiers du système actuel Il existe un fichier de programme exécutable correspondant
qui, où est
fait la distinction entre commandes internes ou externes :
# tapez COMMAND
Exécuter la commande :
Format de la commande :
COMMANDE [OPTIONS...] [ARGUMENTS...]
Options : utilisées pour activer ou désactiver une ou plusieurs fonctions de la commande ;
Option courte : -c, par exemple : -l, -h
Plusieurs options courtes peuvent être utilisé avec la commande, par exemple -l - h, peut être écrit comme --lh
option longue : --word, par exemple : --long, --human- paramètres lisibles
: L'objet action de la commande
fournit des données à la commande
Remarque :
1. Plusieurs options, paramètres et commandes doivent être séparés par des espaces
2. Annuler l'exécution de la commande : Ctrl+c
Système de fichiers :
C:Program filesoffice11wordword.exe
/etc/sysconfig/network-scripts/ifcfg-eth0
Les fichiers ont deux types de données :
Métadonnées : métadonnées
Données : données
1. Les noms de fichiers sont strictement sensibles à la casse ; file1, File1, FILE1 sont des fichiers différents
2. Tous les caractères autres que La longueur ne peuvent pas dépasser 255 caractères ; >
Chemin :
Chemin absolu : le chemin partant du répertoire racine
Chemin relatif : le chemin partant du répertoire actuel ; emplacement ;
Représentation de l'emplacement actuel :
(1) ./: ./sysconfig/network-scripts
(2) Omettre les symboles ci-dessus : sysconfig/network-scripts
.. : Indique le répertoire de niveau supérieur du répertoire actuel
Répertoire courant : répertoire courant, également appelé répertoire de travail
pwd : impression du répertoire de travail
LSB : Linux Standard Base
Résumé des commandes : ls, cd, type, tty, cat, which,whereis, pwd , echo
commande :
(1) Lié au système de fichiers :
Gestion du répertoire
Gestion des fichiers
Visualisation des fichiers
Édition de fichiers
(2) Liés à la gestion du système :
Obtenir de l'aide sur les commandes Linux
Commandes externes : Il existe un programme exécutable situé dans un certain répertoire du système de fichiers
qui, où se trouve
Le chemin où le programme shell recherche les fichiers de programme exécutables est défini dans la variable d'environnement PATH
# echo $PATH
Remarque : De gauche à droite
Format : COMMANDE [OPTIONS...] [ARGUMENTS...]
Commande interne :
#help COMMAND
Commande externe :
(1) # COMMANDE --help
# COMMANDE -h
(2) Manuel (manuel)
# man COMMAND
(3) Page d'informations
# info COMMANDE
(4) Document d'aide du programme lui-même
LISEZMOI
INSTALLER
ChangeLog
(5) Documentation officielle du programme
Site officiel : Documentation
( 6) Documentation officielle de la distribution
(7) Google
Interne commande aide :
# aide COMMANDE
commande de hachage :
Commande externe recherchée par shell Les résultats du chemin seront mis en cache dans le stockage kv (clé-valeur)
commande d'historique :
Gérer l'historique des commandes ;
Lors de la connexion au shell, les commandes enregistrées dans le fichier d'historique des commandes seront lues : ~/.bash_history
La commande nouvellement exécutée après la connexion dans le shell sera uniquement enregistré dans le cache ; ces commandes seront "ajoutées" au fichier d'historique des commandes lorsque l'utilisateur quittera
history :
-a : Ajouter la liste de l'historique des commandes nouvellement exécutées dans cette session au fichier historique
-d : Supprimer la commande spécifiée ; dans l'historique ;
-c : Effacer l'historique des commandes
Opération rapide :
!# : Appeler l'historique La #ème commande
!string : appeler la commande la plus récente commençant par une chaîne dans l'historique ; 🎜>
!!: la commande précédente
Commande externe aide acquisition:
(2) homme COMMANDE
Pages de manuel : /usr/share/man
man1 ... man8
man1 : Commande utilisateur
man2 : Appel système
man3 : Appel à la bibliothèque C
man4 : Fichier de l'appareil et fichier spécial
man5 : Format du fichier de configuration
man6 : Jeu
man7 : Divers
man8 : Commandes de gestion
Remarque : Certaines touches ont des manuels d'aide dans plus d'un chapitre ;
Pour afficher le manuel dans le chapitre spécifié : man # COMMAND
Fichier de configuration de la commande Man : /etc /man.config
MANPATH /PATH/TO/SOMEWHERE : Spécifiez le nouvel emplacement de recherche manuelle de fichiers
# man -M /PATH/TO/SOMEWHERE COMMAND : recherchez dans la page de manuel la commande COMMAND à l'emplacement spécifié et affichez-la
Description du paragraphe dans l'aide ; manuel :
NOM
SYNOPSIS
DESCRIPTION
OPTIONS
EXEMPLES
AUTEUR
RAPPORT DE BUGS
VOIR AUSSI
SYNOPSIS :
[] : contenu facultatif
<> : Contenu requis
a|b : Choisissez l'un des deux
... : Le même contenu peut apparaître plusieurs fois
Comment utiliser la commande man :
Espace, ^V, ^f, ^F : faites défiler jusqu'à la fin du fichier ;
b, ^B : retournez l'écran jusqu'au début du fichier ;
d, ^D : retourner la moitié de l'écran jusqu'à la fin du fichier
u, ^U : passer de la moitié de l'écran au début du fichier ;
RETURN, ^N, e, ^E ou j ou ^J : Aller à la fin du fichier Retourner une ligne
y ou ^Y ou ^P ou k ou ^K : retournez une ligne jusqu'au début du fichier
q :
# : passer à la ligne # ;
1G : revenir au début du fichier
G : aller à la fin du fichier
Recherche texte :
/MOT CLÉ :
En utilisant la chaîne spécifiée par KEYWORD comme mot-clé, recherchez de la position actuelle jusqu'à la fin du fichier ; les caractères ne sont pas sensibles à la casse
n : Suivant A
N : Précédent
?KEYWORD :
Une chaîne spécifiée par KEYWORD En tant que mot-clé, recherchez de la position actuelle au début du fichier ; les caractères ne sont pas sensibles à la casse
n : Même sens que la commande de recherche, suivant
N : Le sens opposé à la commande de recherche, la précédente
(3) info
info COMMANDE
(4) Document d'aide du programme lui-même
/usr/share /doc/ COMMAND-VERSION
(5) Documentation officielle du programme
(6 ) Version publiée Documentation officielle pour
(7) Google
(8) slideshare
Commande de base :
date :
date [OPTION]... [+FORMAT] : Affichage
FORMAT : Symbole de format
%D
%F
%T
 date [ MMJJhhmm[[ CC]YY][.ss]] : Paramètres
                                                                                             🎜>hh : heures
                                                                                                                                                    四> CCYY : quatre ans
.ss : seconde
Linux :
Horloge système : timing effectué par le noyau Linux à travers la fréquence de fonctionnement du CPU ;
hwclock : Afficher l'horloge matérielle
- s, --hctosys
-w, --systohc
cal : Calendrier
Commandes liées au répertoire :
Répertoire actuel ou répertoire de travail
Répertoire personnel, répertoire personnel : HOME
root : /root
Utilisateur normal : /home/USERNAME
/home/tom
~ : Répertoire personnel de l'utilisateur
cd :
cd ou cd ~ : retour au répertoire personnel de l'utilisateur actuel
cd ~USERNAME : basculer vers le répertoire personnel de l'utilisateur spécifié
cd - : Basculer entre le répertoire précédent et le répertoire actuel
.
..
Variables d'environnement associées :
PWD : enregistre le chemin du répertoire actuel
OLDPWD ; : le chemin du dernier répertoire
pwd : affiche le répertoire actuel
ls : list
affiche la liste des fichiers sous le chemin spécifié
ls [OPTION]... [DIR] ...
-a, --all : Afficher tous les fichiers, y compris les fichiers cachés
-l : format long
-rw-r--r-- 1 racine racine 44800 14 août 14:32 install.log
-rw-r--r- -:
Le premier chiffre à gauche : type de fichier
-, d, l, b, c, p, s
Les 9 chiffres suivants de
 : autorisation d'accès, perm
Numéro : le nombre de fois où le fichier a été lié en dur
Racine gauche : le propriétaire du fichier
Racine droite : Le groupe du fichier
44800 : La taille du fichier
14 août 14:32 : Le heure à laquelle le fichier a été modifié pour la dernière fois
install.log : Nom du fichier
-h, --human-readable : conversion d'unité
-d : Afficher les attributs liés au répertoire lui-même, généralement utilisé avec -l ;
-r, --reverse : Afficher à l'envers ; ordre
-R, --recursive : récursif
stat /PATH/TO/SOMEFILE : Obtenez les métadonnées de fichier spécifiées de
Commande d'affichage de fichier : cat, tac
cat [OPTION]... [FILE] ...
-E : Afficher le terminateur de ligne $
-n : Numéro chaque ligne affichée
Commande d'affichage du type de contenu de fichier : fichier
fichier /PATH/TO/SOMEWHERE
Commande Echo : echo
-n : désactiver l'ajout automatique de caractères de nouvelle ligne ;
-e : autoriser Utiliser des caractères d'échappement
n : saut de ligne
t : caractère de tabulation
echo "$VAR_NAME" : Les variables seront remplacées, les guillemets doubles représentent des références faibles
echo '$VAR_NAME' : Les variables ne seront pas remplacées , références fortes
qui : Afficher le chemin du fichier programme correspondant à la commande
qui [OPTION] COMMANDE
--skip-alias : Supprimer l'affichage des alias
whatis :
Utilisez la commande mkwhatis pour enregistrer le système actuel dans Tous les manuels d'aide et les mots-clés correspondants sont créés sous forme de base de données
Commandes de gestion du système :
Arrêt :
arrêt, mise hors tension, arrêt, init 0
Redémarrage :
reboot, shutdown, init 6
Lié à la connexion de l'utilisateur :
who, whoami, w
Système de fichiers Linux :
Système de fichiers racine (rootfs) :
système de fichiers racine
LSB, FHS : (FileSystem Heirache Standard)
/etc, /usr, /var, /root, /home, / dev
/boot : répertoire de stockage des fichiers de démarrage, les fichiers du noyau (vmlinuz), le chargeur de démarrage (bootloader, grub) sont stockés dans ce répertoire ;
/bin : commandes de base pour tous les utilisateurs ; ne peuvent pas être associées à des partitions indépendantes, programmes qui seront utilisés au démarrage du système d'exploitation
/sbin : commandes de base pour la gestion ; ne peuvent pas être associées à des partitions indépendantes, aux programmes qui seront utilisés au démarrage du système d'exploitation
/lib : fichiers de bibliothèque partagés de base et noyau ; fichiers de module (/lib/modules );
/lib64 : emplacement de stockage de fichiers de bibliothèque partagée auxiliaire dédié aux systèmes x86_64
/etc : Répertoire du fichier de configuration (fichier texte pur) ;
/home/USERNAME : répertoire personnel de l'utilisateur ordinaire ;
/root : répertoire personnel de l'administrateur ;
/média : point de montage pour appareil mobile portable
cdrom
usb
/mnt : point de montage du système de fichiers temporaire ;
/dev : fichier de périphérique et emplacement de stockage de fichiers spécial ;
b : périphérique de blocage, accès aléatoire
c : périphérique de caractères, accès linéaire
/opt : L'emplacement d'installation des applications tierces
/srv : Données utilisées par les services exécutés sur le système ; >
/tmp : emplacement de stockage des fichiers temporaires
/usr : données universelles partagées en lecture seule ;
bin : Une application fournie pour garantir que le système dispose de fonctions complètes
sbin:
lib:
lib64 :
include : fichiers d'en-tête des programmes C
share : données indépendantes structurées, telles que doc, man, etc.;
local : emplacement d'installation des applications tierces
bin, sbin, lib, lib64, etc., partager
/var : fichiers de données variables
cache : répertoire de données du cache de l'application
lib : données d'informations sur l'état de l'application ;
local : dédié au stockage des données variables pour les applications sous
lock ; : fichier de verrouillage
log : répertoire et fichier de journalisation
opt : dédié à /opt L'application stocke les données variables
run : données liées au processus en cours d'exécution ; généralement utilisé pour stocker le fichier pid du processus
spool : pool de données d'application
tmp : sauvegarde les données temporaires générées entre deux redémarrages du système
/proc : Un système de fichiers virtuel utilisé pour sortir le noyau et le processus ; informations ;
/sys : un système de fichiers virtuel utilisé pour générer des informations relatives aux périphériques matériels sur le système actuel ;
/selinux : sécurité Linux amélioré, l'emplacement de stockage des politiques de sécurité liées à Selinux et d'autres informations
Applications sur les composants Linux de :
Binaires : /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
Fichiers de bibliothèque : /lib , /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
Fichiers de configuration : /etc, /etc/DIRECTORY, /usr/local/etc
Fichiers d'aide : /usr/share/man, /usr/share/doc, /usr/local/share/man, /usr/local/share /doc
Type de fichier sous Linux :
- (f) : Fichier ordinaire
d : fichier de répertoire
b : périphérique de blocage
c : périphérique de caractère
l : fichier de lien symbolique ;
p : fichier de canal
s : fichier de socket ;
Commandes de gestion du système :
Arrêt :
arrêt, mise hors tension, arrêt, init 0
Redémarrage :
redémarrage, arrêt, init 6
Lié à la connexion de l'utilisateur :
who, whoami, w
Arrêter ou redémarrer :
arrêt, mise hors tension
redémarrage
-f : forcer, ne pas appeler l'arrêt
-p : coupure de courant
arrêt :
arrêt [OPTION]... HEURE [MESSAGE]
-r : redémarrage
-h : arrêt
-c : annuler
HEURE :
maintenant : Immédiatement
+m : Représentation du temps relatif, combien de temps s'est écoulé depuis la soumission de la commande par exemple +3 ;
hh:mm : représentation de l'heure absolue, spécifiez l'heure spécifique
Commande d'affichage des informations de connexion de l'utilisateur :
whoami : affiche les utilisateurs valides actuellement connectés
who : toutes les sessions de connexion en cours dans le système
w : Toutes les sessions de connexion et opérations en cours effectuées par le système
Fonctionnalités de base de bash (1) :
(1) Historique des commandes
historique
Variables d'environnement :
HISTSIZE : le nombre d'enregistrements de l'historique des commandes ;
HISTFILE : ~/.bash_history
HISTFILESIZE : le nombre d'historiques ; enregistrements enregistrés dans le fichier d'historique des commandes Numéro ; historique # : Afficher les dernières # commandes de l'historique
-a : Ajouter manuellement l'historique des commandes du tampon de session en cours au fichier historique ;
Appeler les commandes dans l'historique :
!# : Répétez la #ème commande
!:
!string
Appelle le dernier paramètre de la commande précédente :
!$ :
ESC, .
Alt+.
Contrôlez la manière dont l'historique des commandes est enregistré :
Variable d'environnement : HISTCONTROL
ignoredups : Ignorer commandes en double ; Square consécutif et identique signifie "répéter" ;
ignorerespace : ignorer toutes les commandes commençant par un blanc
ignoreboth : ignoréedups, ignorespace;
Comment modifier la valeur de la variable d'environnement : export variable name="value"
Affectation de la variable : stocker les données après le symbole d'affectation Le nom de la variable pointe vers l'espace mémoire
(2) Achèvement de la commande
Commande d'exécution bash :
Commandes internes :
Commandes externes : bash recherche dans chaque chemin de gauche à droite le nom de commande donné en fonction de le chemin défini par la variable d'environnement PATH Lorsqu'un fichier nommé est trouvé pour la première fois, c'est la commande à exécuter
complétion directe : Tab, la chaîne donnée par l'utilisateur n'a qu'une seule commande correspondante
La commande correspondante commençant par la chaîne donnée par l'utilisateur n'est pas unique, alors Tab donnera à nouveau une liste
(3) Complétion du chemin
traite la chaîne donnée par l'utilisateur comme le début du chemin et recherche fichiers commençant par la chaîne spécifiée dans le répertoire parent spécifié Nom ;
Si unique : compléter directement
Sinon : Tabulez à nouveau pour donner un list;
(4) Extension de la ligne de commande
~ : Développer le répertoire personnel de l'utilisateur
~ NOM D'UTILISATEUR : développer le répertoire personnel de l'utilisateur spécifié
{} : peut héberger une liste séparée par des virgules et l'étendre en plusieurs chemins
/tmp/{a,b} = /tmp/a, /tmp/b
/tmp/{tom,jerry}/salut = /tmp/tom/hi , /tmp/jerry/hi
(5) Statut du résultat de l'exécution de la commande
Succès
Échec
bash utilise la variable spéciale $? :
0 : Succès
1-255 : Échec
Il existe deux types de résultats pour l'exécution du programme :
La valeur de retour du programme ;
Le résultat de l'état d'exécution du programme
Commandes de gestion du répertoire :
cd, pwd, ls
mkdir, rmdir, arbre
mkdir [options ] /path/to/somewhere
-p : existe sans signaler d'erreurs et peut créer automatiquement les répertoires requis
-v : Afficher informations détaillées
-m MODE : Spécifiez les autorisations directement lors de la création d'un répertoire
arborescence :
-d : Afficher uniquement le répertoire
-L niveau : Préciser le nombre de niveaux à afficher
-P pattern : afficher uniquement les chemins correspondant au modèle spécifié
rmdir : supprimer les répertoires vides
rmdir [ OPTION ]... RÉPERTOIRE...
-v : Processus d'affichage
Commande de visualisation du fichier texte :
chat, tac
plus, moins, queue, tête
plus
plus [OPTIONS...] FICHIER...
-d : Afficher les invites de changement de page et de sortie
moins
moins [OPTIONS...] FICHIER...
head
head [OPTION]... [FILE]...
-c # : Spécifiez pour obtenir le premier # octets
-n # : Précisez la ligne # avant d'obtenir
-# :
queue
queue [OPTION]... [FILE]...
-c # : Spécifiez # mots après acquisition Section
-n # : Précisez la ligne # après avoir obtenu
-# :
- f : Suivre et afficher le contenu nouvellement ajouté du fichier
Outil de gestion de l'horodatage du fichier :
toucher
Fichier : métadonnées, données
Afficher l'état du fichier : stat
Trois horodatages :
heure d'accès : heure d'accès, abrégé en atime, lire le contenu du fichier
modify time : heure de modification, mtime , modifier le contenu du fichier (données)
changer l'heure : modifier l'heure, ctime, les modifications des métadonnées
commande tactile :
touchez [OPTION]... FICHIER...
-a : seulement une heure
-m : uniquement mtime
-t STAMP :
[[CC]AA]MMJJhhmm[.ss]
-c : Si le fichier n'existe pas, il ne sera pas créé
Système de fichiers :
boot, bin, sbin, lib, lib64, dev, home, root, mnt, media, etc, proc, sys
usr
var
Fonctionnalités de base de bash :
Achèvement des commandes
Achèvement du chemin
Historique des commandes
Extension de la ligne de commande :
~, {}
Résultat de l'état de la commande
Succès : 0
Échec : 1-255
Gestion du répertoire : mkdir, rmdir
Visualisation des fichiers : plus, moins, queue, tête
Gestion de l'horodatage : touch
-a, -m, -t
-c
Gestion des fichiers :
cp, mv, rm
Copier la commande : cp
cp [ OPTION]... [-T] SOURCE DEST
        cp [OPTION]... SOURCE... RÉPERTOIRE
            cp [OPTION]... -t RÉPERTOIRE SOURCE...
cp SRC DEST
SRC est le fichier :
Et remplissez le contenu de SRC dans DEST
Si le répertoire existe :
Si DEST est un fichier : écraser le contenu dans SRC par Dans
À ce stade, il est recommandé d'utiliser l'option -i pour la commande cp
Si DEST est un répertoire : créez un nouveau fichier avec le fichier d'origine sous le fichier DEST avec le même nom et remplissez le contenu en SRC dans le nouveau fichier
cp SRC... DEST
SRC... : Plusieurs fichiers
DEST doit exister et être un répertoire, sinon une erreur se produira
cp SRC DEST
SRC est le répertoire :
Utiliser l'option à ce moment : -r
Si DEST n'est pas Existe : Créez le répertoire spécifié et copiez tous les fichiers du répertoire SRC vers DEST ;
Si DEST existe :
Si DEST est un fichier : Signaler une erreur
                                                                                                                                                                                                              
-r, -R : copiez récursivement le répertoire et tout le contenu qu'il contient
- ; a : Archive, équivalent à -dR -- preserv = all
mode : autorisations
propriété : groupe de propriétaires horodatage :
liens
                                                                                                                                                                        🎜> -p: 🎜>
-v: --verbose
-f: --force
mv : déplacer, déplacer le fichier mv [ OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... RÉPERTOIRE mv [OPTION]... -t RÉPERTOIRE SOURCE...
Options communes :
-i : interactif
-f : forcer
rm : supprimer, supprimer
rm [OPTION]... FICHIER...
Options communes :
-i : interactif
-f : suppression forcée
-r : récursif
rm -rf
Editeur de texte : nano
Éditeur plein écran
Fonctionnalités de base de bash (2) :
Alias ​​de commande (alias)
Obtenu via la commande alias :
(1) alias
Affiche tous les alias de commande disponibles du processus shell actuel
(2) alias NAME='VALUE'
Définissez l'alias NAME, qui équivaut à exécuter la commande VALUE ; 🎜>
Remarque : L'alias défini dans la ligne de commande n'est valable que pour le processus shell actuel si vous souhaitez qu'il soit permanent, il doit être défini dans le fichier de configuration ; 🎜>
Uniquement pour l'utilisateur actuel : ~/.bashrc
Valable pour tous les utilisateurs : /etc/bashrc
Remarque : La nouvelle configuration donnée en éditant la configuration ne prendra pas effet immédiatement
Le processus bash relit le fichier de configuration :
source /path/to/config_file
/path/to/config_file
.
Annuler l'alias : unalias
unalias [-a] nom [nom ...]
Remarque : Si l'alias est le même que le nom de la commande d'origine, si vous souhaitez exécuter la commande d'origine, vous pouvez utiliser "COMMANDE" ;
2. glob (globbing)
bash Utilisé pour implémenter le nom de fichier "wildcard"
Caractères génériques : *, ?, []
(1) *
Tout caractère de n'importe quelle longueur
a*b :
aab, ab, a123b,
abc
(2) ?
N'importe quel caractère unique
a?b :
aab
ab, a12b, abc
(3) []
Correspond à n'importe quel caractère dans la plage spécifiée
[0-9]
[a-z] : les caractères sont non sensible à la casse
(4) [^]
correspond à n'importe quel caractère en dehors de la plage spécifiée
[^0-9]
Jeu de caractères spéciaux :
[:digit:] : n'importe quel nombre, équivalent à 0-9
[:lower:] : n'importe quelle lettre minuscule
[:upper :] : toutes les lettres majuscules
[:alpha:] : toutes les lettres majuscules et minuscules
[:alnum:] : tous les chiffres ou lettres
[:space:] :
[:punct:] : signe de ponctuation
3. touches de raccourci bash
Ctrl+l : efface l'écran, équivalent à la commande clear
Ctrl+a : passer au début de la commande
Ctrl+e : passer à la fin de la commande ; >
Ctrl+c : annuler l'exécution de la commande
Ctrl+u : Supprimer tout depuis le début de la ligne de commande jusqu'à Guangcun ;
Ctrl+k : Supprimer là où se trouve le curseur. Tout depuis la fin de la ligne de commande >Programme : Instruction + Données
Lire les données : Entrée
Données de sortie : Sortie
Les fichiers ouverts ont un fd: descripteur de fichier (descripteur de fichier)
Entrée standard : clavier, 0
Sortie standard : moniteur, 1
Sortie d'erreur standard : moniteur, 2
Redirection d'E/S : modifier la position standard
Redirection de sortie : COMMAND >
> : Écraser la redirection, le contenu original dans le fichier cible sera effacé
>> : Ajouter l'orientation du poids, le nouveau contenu sera ajouté ; être ajouté à la fin du fichier cible ;
# set -C : interdire l'écrasement du contenu dans le fichier existant
Forcer le remplacement :>|
# set +C :
2> Flux de données de sortie d'erreur de redirection ;
2>> : Ajouter le flux de données de sortie d'erreur de redirection
Standard ; la sortie et la sortie d'erreur sont chacune dirigées vers des emplacements différents :
COMMANDE > /path/to/file.out 2>
Fusionner la sortie standard et la sortie d'erreur dans le même flux de données pour la redirection :
&> : remplacer la redirection
&>> : ajouter la redirection
COMMANDE > /path/to/file.out 2>
COMMANDE >> /path/to/file.out 2>> &1
Redirection d'entrée :<
Commande tr : Convertir ou supprimer des caractères
tr [OPTION]... SET1 [SET2 ]
ICI Documentation : <<
#cat << ># cat > /path/to/somefile << COMMAND2 | COMMAND3 |...
Remarque : La dernière commande sera exécutée dans le processus sous-shell du processus shell actuel ; >
commande tee :
tee [OPTION]... [FILE]...
Outils de traitement de texte : wc, couper, trier, uniq
commande wc :
wc [OPTION ]... [FILE]...
-l : ​​lignes
-w : mots
-c : caractères
commande couper :
couper [OPTION].. [FILE. ]...
-d DELIMITER : Précisez le délimiteur
-f FILEDS :
# : Le #ème champ
#,#[,#] : plusieurs champs discrets, tels que 1,3,6
#-# : Plusieurs champs consécutifs, tels que 1-6
Usage mixte : 1-3,7
--output-delimiter=STRING
commande de tri :
trier [OPTION] ... [FILE ]...
-f : Ignorer la casse des caractères
-r : Ordre inversé
-t DELIMITER : Délimiteur de champ
-k # : Trier en fonction du champ spécifié
-n : Trier par valeur numérique
-u : uniq, supprime les doublons après le tri
commande uniq :
uniq [OPTION]... [FILE]...
-c : Afficher le nombre de répétitions de chaque ligne
-d : afficher uniquement les lignes répétées
-u : afficher uniquement les lignes non dupliquées
Remarque ; : Les carrés continus et identiques sont des doublons
Gestion des utilisateurs et des groupes
Allocation des ressources :
Authentification : Authentification
Autorisation : Autorisation
Comptabilité : Audit
Audition
jeton, identité (nom d'utilisateur/mot de passe)
Utilisateur Linux : Nom d'utilisateur/UID
Administrateur : root, 0
Utilisateur normal : 1-65535
Utilisateurs du système : 1-499, 1-999
Attribuez des autorisations au processus démon pour obtenir des ressources
Utilisateurs de connexion : 500+, 1000+
Connexion interactive
Groupe Linux : Nom du groupe/GID
Groupe administrateur : root, 0
Groupe normal :
Groupe système : 1 -499 , 1-999
Groupe normal : 500+, 1000+
Contexte de sécurité Linux :
Programme en cours d'exécution : processus
Exécuter en tant qu'initiateur de processus :
root : cat
tom: cat
Toutes les ressources auxquelles le processus peut accéder Les autorisations dépendent de l'identité de l'initiateur de le processus ;
Catégorie du groupe Linux :
Groupe de base de l'utilisateur (Groupe principal) :
Le nom du groupe est le même que le nom de l'utilisateur, et ne contient qu'un seul utilisateur : Groupe privé
Groupe supplémentaire de l'utilisateur (groupe supplémentaire) :
Fichiers de configuration associés aux utilisateurs et groupes Linux :
/etc/passwd : utilisateurs et leurs attributs Informations (nom, UID , identifiant de groupe de base, etc.);
/etc/group : groupe et ses informations d'attribut
/etc /etc/gshadow ; : Mot de passe de l'utilisateur et ses attributs associés ;
/etc/gshadow : Mot de passe du groupe et ses attributs associés
/etc/passwd :
name:password:UID:GID:GECOS:directory:shell
Nom d'utilisateur : Mot de passe : UID : GID : GECOS : Répertoire personnel : Shell par défaut
/etc/group :
group_name : password:GID:user_list
Nom du groupe : mot de passe du groupe : GID : liste d'utilisateurs avec le groupe actuel comme groupe supplémentaire (le séparateur est une virgule)
/etc/shadow
Nom d'utilisateur : Mot de passe crypté : Date du dernier changement de mot de passe : Mot de passe Période d'utilisation minimale : Période d'utilisation maximale du mot de passe : Période d'avertissement du mot de passe : Période d'interdiction du mot de passe : Date d'expiration du compte : Champs réservés
Mécanisme de cryptage :
Cryptage : texte en clair--> Texte chiffré
Déchiffrement : Texte chiffré-->Texte en clair
Un -Cryptage : extraire l'empreinte digitale des données
md5 : résumé du message, 128 bits
sha1 : algorithme de hachage sécurisé, 160 bits
sha224 : 224 bits
sha256 : 256 bits
sha384 : 384 bits
sha512 : 512 bits
Effet d'avalanche : de petits changements dans les conditions initiales entraîneront d'énormes changements dans les résultats ;
Sortie de longueur fixe :
Politique de complexité du mot de passe :
1. Utilisez au moins 3 types de chiffres, en majuscules. lettres, lettres minuscules et caractères spéciaux
2. Soyez assez long
3. Utilisez un mot de passe aléatoire
4. Modifiez-le régulièrement ; n'utilisez pas le mot de passe que vous avez utilisé récemment
Commandes de gestion liées aux utilisateurs et aux groupes :
Création d'utilisateur : useradd
useradd [options] CONNEXION
-u UID : [ UID_MIN , UID_MAX], défini dans /etc/login.defs
-g GID : Indique le groupe de base auquel appartient l'utilisateur, qui peut être un nom de groupe ou un GID
-c "COMMENT" : informations de commentaire de l'utilisateur ;
-d /PATH/TO/HOME_DIR : utiliser le chemin spécifié comme répertoire personnel ; ;
-s SHELL : Spécifiez le programme shell par défaut de l'utilisateur, la liste disponible est dans le fichier /etc/shells ;
-G ; GROUP1[,GROUP2,... [,GROUPN]]] : Spécifiez des groupes supplémentaires pour l'utilisateur ; le groupe doit exister à l'avance
-r : Créer un utilisateur système
CentOS 6 : ID<500
CentOS 7 : ID<1000
Paramètre de la valeur par défaut : /etc/default/
useradd -D
-s SHELL
Création de groupe : groupadd
groupadd [OPTION]... group_name
-g GID : Spécifiez le numéro GID ;[GID_MIN, GID_MAX]
-r : Créer un groupe système ;
CentOS 6 : ID< 500
CentOS 7 : ID<1000
Afficher les informations d'identification relatives à l'utilisateur : id
id [OPTION]... [UTILISATEUR]
-u : UID
-g : GID
-g : GID
-G : Groupes
-n : Nom
Commutateur utilisateurs ou exécuter des commandes en tant qu'autres utilisateurs : su
su [options...] [-] [user [args...]]
Comment changer d'utilisateur :
su UserName : changement sans connexion, c'est-à-dire que le fichier de configuration de l'utilisateur cible ne sera pas lu < ; 🎜>
su - Nom d'utilisateur : changement de connexion, lira le fichier de configuration de l'utilisateur cible ;
Remarque : aucun mot de passe n'est requis ; pour root su aux autres utilisateurs ; utilisateurs non root Un mot de passe est requis lors du changement
Exécuter la commande sous une autre identité :
su [-] Nom d'utilisateur -c 'COMMANDE'
Options :
-l : "su -l UserName" est équivalent à "su -UserName"
Modification de l'attribut utilisateur : usermod
usermod [OPTION] connexion
-u UID : nouvel UID
-g GID : nouveau groupe de base
-G GROUP1[,GROUP2, ...[,GROUPN]]] : nouveau groupe ajouté, le groupe ajouté d'origine sera écrasé si vous conservez celui d'origine, vous devez utiliser le groupe ajouté ; -une option en même temps, ce qui signifie ajouter
-s SHELL : nouveau SHELL par défaut
-c 'COMMENT' : nouvelles informations de commentaire ;
-d HOME : nouveau répertoire personnel ; les fichiers du répertoire personnel d'origine ne seront pas déplacés vers le nouveau répertoire personnel en même temps ; utilisez l'option -m en même temps
-l login_name : nouveau Nom
-L : verrouiller l'utilisateur spécifié
-U : déverrouiller l'utilisateur spécifié
-e AAAA-MM-JJ : spécifier l'utilisateur date d'expiration du compte ;
-f INACTIF : définissez la période d'inactivité
Ajouter un mot de passe à l'utilisateur : passwd
passwd [OPTIONS] UserName : modifiez le mot de passe de l'utilisateur spécifié, uniquement les autorisations de l'utilisateur root
passwd : modifiez votre mot de passe
<🎜><🎜>
Options communes :
-l : Verrouiller l'utilisateur spécifié
-u : Déverrouiller l'utilisateur spécifié
-n mindays : Précisez la période d'utilisation minimale
-x maxdays : La période d'utilisation maximale
-w warndays : combien de jours à l'avance pour commencer l'avertissement
-i inactivedays : période d'inactivité
--stdin : recevoir le mot de passe de l'utilisateur à partir de l'entrée standard ;
echo "PASSWORD" |
Remarque : /dev/null, seaux de bits
/dev/zero,
Supprimer l'utilisateur : userdel
userdel [OPTION]... connexion
-r : Supprimer le répertoire personnel de l'utilisateur
Modification d'attribut de groupe : groupmod
groupmod [OPTION]... groupe
-n group_name : Nouveau nom
-g GID : Nouveau GID
groupdel GROUP
Mot de passe du groupe : gpasswd
gpasswd [OPTION] GROUP
-un utilisateur : Ajouter un utilisateur au groupe spécifié ;
-d utilisateur : Supprimer le groupe actuel de l'utilisateur Groupes supplémentaires pour le nom du groupe
-A user1,user2,... : Définir une liste d'utilisateurs avec des droits d'administrateur
commande newgrp : changer temporairement de groupe de base
Si l'utilisateur n'appartient pas à ce groupe, le mot de passe du groupe est requis
Modifier les attributs de l'utilisateur : chage
chage [OPTION]... CONNEXION
-d LAST_DAY
-E, --expiredate EXPIRE_DATE
-I, --inactif INACTIF
-m, --mindays MIN_DAYS
-M , --maxdays MAX_DAYS
-W, --warndays WARN_DAYS
Autres commandes : chfn, chsh, finger
Résumé des commandes : useradd, groupadd, su, id, usermod, userdel, groupmod, groupdel, passwd, newgrp, pwck, gpasswd, chage, chsh, chfn , doigt
Gestion des autorisations :
Les autorisations de fichiers sont principalement définies pour trois types de objets :
propriétaire : propriétaire, u
groupe : groupe, g
autre : autre, o
Chaque fichier est pour chaque catégorie Les visiteurs ont trois autorisations définies :
r : Lisible
w : Inscriptible
x : eXcutable
Fichier :
r : Son contenu peut être obtenu à l'aide d'outils de visualisation de fichiers
w : son contenu peut être modifié
<🎜 ; >x : ce fichier peut être soumis au noyau pour démarrer en tant que processus
Répertoire :
< ; 🎜>r : Vous pouvez utiliser ls pour afficher la liste des fichiers dans ce répertoire
w : Les fichiers peuvent être créés ou supprimés dans ce répertoire ;
x : Vous pouvez utiliser ls -l pour afficher la liste des fichiers dans ce répertoire, et vous pouvez cd pour accéder à ce répertoire
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
Par exemple :
640 : rw-r-----
rwxr-xr-x : 755
Modifier les autorisations du fichier : chmod
chmod [OPTION]... FICHIER EN MODE OCTAL...
-R : Modifier les autorisations de manière récursive
chmod [OPTION]... MODE[,MODE]... FILE...
MODE :
Modifier toutes les autorisations d'un type d'utilisateur :
u=
g=
o=
ug=
a=
u=,g=
Modifier une ou plusieurs autorisations d'un type d'utilisateur
u+
u-
chmod [OPTION]. . --reference=RFILE FILE...
Référez-vous aux autorisations du fichier RFILE et modifiez le FILE comme
Modifier le propriétaire et le groupe du fichier :
Uniquement disponible pour root
Modifier le fichier Propriétaire : chown
chown [OPTION]... [PROPRIÉTAIRE][:[GROUP]] FILE...
Utilisation :
PROPRIÉTAIRE
PROPRIÉTAIRE :GROUPE
:GROUP
Remarque : Les deux points dans la commande peuvent être remplacés
-R : Récursif
chown [OPTION]... --reference=RFILE FILE...
Modifier le groupe du fichier : chgrp
chgrp [OPTION]... GROUP FILE...
chgrp [ OPTION]... --reference=RFILE FILE...
-R
Masquer le code lors de la création un fichier ou un répertoire :umask
FILE: 666-umask
Remarque : S'il y a x autorisation dans le résultat de la réduction d'autorisation pour un certain type d'utilisateur, puis +1 ses autorisations
DIR : 777-umask
umask : Afficher
umask # : Paramètres
Résumé de la commande : chmod, chown, chgrp, umask
Gestion de fichiers, gestion des utilisateurs, gestion des autorisations, fonctionnalités de base de bash
Gestion de fichiers : cp, mv, rm
Gestion des utilisateurs :
useradd, usermod, chsh, chfn, chage, userdel
groupad, groupmod, groupdel
passwd, gpasswd, pwck
id, doigt, qui, whoami, w
su
Fichiers de configuration : /etc/passwd, /etc/shadow, /etc/group, /etc/gshadow
Gestion des autorisations :
perm : mode(rwxrwxrwx), propriété
chmod
chown
chgrp
-R, --reference=RFILE
FILE : 666-umask
DIR : 777-umask
umask [UMASK]
Fonctionnalités de base de Bash :
Extension de la ligne de commande : ~, {}
Alias ​​de commande : alias/unalias
Historique des commandes : historique
Achèvement des commandes et du chemin : $PATH
glob : *, , ? [], [^]
Touches de raccourci : Ctrl+{a,e,l,c,u,k}
Hachage de commande : hash
Fonctionnalités de base de bash (3)
1. Fournit un environnement de programmation
. Programme : instructions + données
Style de programmation du programme :
Procédural : L'instruction est la centre, la donnée sert l'instruction
Type d'objet : La donnée est le centre, l'instruction sert la donnée
Shell programme : fournit des capacités de programmation, explique et exécute
méthode d'exécution du programme :
Ordinateur : exécute des instructions binaires ;
Langage de programmation :
Bas niveau : Assemblage
Haut niveau :
Compilation : Langage de haut niveau-->Compilateur-->Code objet
C, C++, java
Explication : Langage de haut niveau-->Interpréteur-->Code machine
shell, perl, python
Programmation procédurale :
Exécution séquentielle
Exécution en boucle
Sélectionnez l'exécution
Programmation Shell : exécution procédurale et interprétée
Structure de base du langage de programmation :
Stockage des données : variables, tableaux
Expression
Déclaration
script shell : fichier texte
shebang :
#!/bin/bash
#!/usr/bin/python
#!/usr/bin/perl
numéro magique : nombre magique
Exécutez le script :
1. autorisation d'exécution, spécifiez l'exécution du fichier via un chemin de fichier spécifique
2. Exécutez l'interpréteur directement et exécutez le script en tant que paramètre du programme interpréteur ; >
Variables :
espace mémoire nommé
Méthode de stockage des données : ASCII
Caractère : 110 : 24
Valeur : 110 ---> 8
entier
Type à virgule flottante
Variable : Type de variable
Fonction :
1. Format de stockage des données
2. , plage de données représentée
Type :
Caractère
Valeur :
Type entier
Type à virgule flottante
Programmation langue :
Type fort :
Type faible : bash
Mettez tous les éléments requis les données stockées sont toutes traitées comme des caractères
ne prend pas en charge les nombres à virgule flottante
Opérations logiques :
vrai, faux
1, 0
avec :
1 && 1 = 1
1 && 0 = 0
0 && 1 = 0
0 && 0 = 0
ou :
1 || 1 = 1
1 || 0 = 1
0 || 🎜>
0 || 0 = 0
Non :
 !
! 0 = 1
Fonctionnement en court-circuit :
et :
Le premier est 0, le résultat doit être 0
Le premier est 1, le deuxième ; doit être Participer à l'opération
ou :
Le premier est 1, le résultat doit être 1 ; >Le premier est 0, et le second doit participer à l'opération
grep :
Trois ; Mousquetaires du traitement de texte sous Linux
grep : outil de filtrage de texte (modèle)
grep, egrep, fgrep
sed : éditeur de flux, outil d'édition de texte
awk : implémentation de gawk sur Linux, générateur de rapports de texte ; >
grep : recherche globale d'expression régulière et impression de la ligne.
Fonction : outil de recherche de texte, vérifie le texte cible ligne par ligne en fonction du spécifié par l'utilisateur "pattern" ; imprime la correspondance avec la ligne ; mode
 : filtrer les conditions écrites par des caractères d'expression régulière et des caractères de texte ; composé d'un type spécial de motifs écrits par des caractères et des caractères de texte, dont certains ne représentent pas la signification littérale des caractères, mais représentent des fonctions de contrôle ou de caractère générique
est divisé en deux catégories ; :
Expression régulière de base : BRE
Expression régulière étendue : ERE
grep -E , egrep
Moteur d'expression régulière
grep [OPTIONS] PATTERN [FILE.. .]
Options :
--color=auto : Colorez le texte correspondant ;
-v : Afficher les lignes qui ne peuvent pas correspondre à un motif ;
-i : Ignorer la casse des caractères ;
-o : afficher uniquement les chaînes correspondantes
-q : mode silencieux, aucune information n'est affichée
-A # : après, après ; # lignes
-B # : avant, avant # lignes
-C # : contexte, avant et après # lignes
-E : Utilisez ERE ;
Métacaractères d'expression régulière de base :
correspondance de caractères :
. : correspond à n'importe quel caractère unique
[] : correspond à la plage spécifiée n'importe quel caractère unique ;
[^] : correspond à n'importe quel caractère
[:digit:], [:lower: ], [:upper:], [:alpha:], [:alnum:], [:punct:], [:space:]
Nombre de correspondances : Utilisé après le caractère à spécifier un certain nombre de fois pour spécifier le nombre de fois que le caractère précédent doit apparaître
* : faire correspondre le caractère précédent un nombre illimité de fois ;
Par exemple : grep "x*y"
abxy
xay
xxxxxxy
Mode gourmand
.* : N'importe quel caractère de n'importe quelle longueur ;
? : correspond au caractère qui le précède 0 ou 1 fois ; c'est-à-dire que le caractère précédent est facultatif
+ : correspond au caractère qui le précède ; Au moins 1 fois
{m} : correspond au caractère précédent m fois ;
{m,n} : correspond au caractère précédent au moins m fois et au plus n ; fois ;
{0,n} : correspond au caractère précédent au plus n fois ;
{m,} : correspond au caractère précédent ; au moins m fois ;
Ancrage de position :
^ : Ancrage de début de ligne utilisé pour le côté le plus à gauche ; du motif ;
$ : ancre de fin de ligne ; utilisé pour le côté le plus à droite du motif
^PATTERN$ : utilisé pour le motif correspondant à toute la ligne ;
^$ : ligne vide
^[[:space:]]*$
< ou b : ancrage initial du mot ; utilisé pour le côté gauche du motif de mot ;
> ou b : ancrage de fin de mot ; utilisé pour les mots. Le côté droit du motif
 : correspond au mot entier ; 🎜>
Groupe :
() : regroupez un ou plusieurs personnages et traitez-les dans leur ensemble
(xy)*ab
Remarque : le contenu correspondant au modèle entre parenthèses de regroupement sera enregistré par le moteur d'expression régulière dans les variables internes. ces variables sont : 1, 2, 3, ...
1 : En partant de la gauche, le caractère correspondant au motif entre le premier crochet gauche et le crochet droit correspondant
(ab+(xy)*):
1 : ab+(xy)*
2 : xy
Référence arrière : fait référence au caractère correspondant au motif dans les parenthèses de regroupement précédentes, (pas au motif lui-même)
Si l'utilisateur root existe, affichez son programme shell par défaut
# id root &> " /etc/passwd | cut -d: -f7
Découvrez les deux ou trois chiffres dans /etc/passwd;
# grep "<[0-9]{2,3}>" /etc/passwd
show /etc/rc .d/rc Dans le fichier .sysinit, les lignes commençant par au moins un caractère vide et suivies de caractères non vides
# grep "^[[:space:]]+ [^[:space :]]" /etc/grub2.cfg
Trouvez le résultat de la commande "netstat -tan" avec 'LISTEN' suivi de 0 , 1 ou plusieurs lignes se terminant par des espaces
# netstat -tan grep "LISTEN[[:space:]]*$"
Ajoutez les utilisateurs bash, testbash, basher et nologin (leur shell est /sbin/nologin) puis recherchez la ligne dans le fichier /etc/passwd où le nom d'utilisateur est le même que le nom du shell ;
grep "^([[:alnum:]]+>).*1$" /etc/passwd
Écrivez un script et implémentez-le comme suit Fonction
Si l'utilisateur1 existe, affichez son existence, sinon ajoutez-le
Affichez-le ; le numéro d'identification et d'autres informations de l'utilisateur ajouté ;
#!/bin/bash
id user1 &> echo "user1 existe." || useradd user1
id user1
egrep et expressions régulières étendues
egrep = grep -E
egrep [OPTIONS] MOTIF [FICHIER...]
Métacaractères pour les expressions régulières étendues :
Correspondance des caractères :
.
[ ]
[^]
Nombre de correspondances :
*
? : 0 ou 1 fois
+ : 1 ou plusieurs fois
{m} : correspond m fois ;
{m,n} : au moins m, au plus n fois ;
Ancre :
^
$
< ;, b
>, b
Groupe :
()
Références arrière : 1, 2, ...
ou :
a|b
C|cat : C ou cat
1. Afficher la racine actuelle du système, la valeur par défaut. shell et UID de l'utilisateur centos ou user1
# grep -E '^(root|centos|user1)>' /etc/passwd | 3,7
2. Rechercher un mot suivi d'une parenthèse dans le fichier /etc/rc.d/init.d/functions (centos6) OK ;
# grep -E -o "^[_[:alpha:]]+()" /etc/rc.d/init.d/functions
3. Utilisez echo pour générer un chemin absolu et utilisez egrep pour extraire son nom de base
# echo "/mnt/sdc ; " | grep -E -o "[^/]+/?$" | cut -d"/" -f1
En outre : utilisez egrep pour supprimer le nom du répertoire du chemin, similaire au résultat de la commande dirname
4. Recherchez la valeur entre 1 et 255 dans le résultat de la commande ifconfig ;
5. Recherchez l'adresse IP dans le résultat de la commande ifconfig
fgrep : les expressions régulières sont ; recherche non prise en charge
Fonctionnalités de base de bash (4)
Type de variable :
Format de stockage des données, taille de l'espace de stockage, types d'opérations participantes
Type de caractère ;
Type numérique :
Type entier
Type à virgule flottante
Type fort : le type doit être spécifié lors de la définition d'une variable, et le type requis pour participer aux opérations doit répondre aux exigences de type ; l'appel d'une variable non déclarée provoquera une erreur ; >
Type faible : il n'est pas nécessaire de spécifier le type, la valeur par défaut est le type de caractère ; la conversion de type implicite sera automatiquement effectuée lors de la participation à l'opération, les variables peuvent être appelées directement sans être définies dans ; avancer;
bash
Types de variables dans bash :
Selon des normes telles que la portée effective des variables :
Variables locales : La portée effective est le processus shell actuel, elle n'est pas valide pour les autres processus shell autres que le shell actuel, y compris ; les processus sous-shell du shell actuel ;
Variables d'environnement : la portée effective est le processus shell actuel et son sous-processus
variables locales : la portée effective est un certain fragment de code (généralement une fonction) dans le processus shell actuel
variables de position : $1, $2, ... sont utilisées pour laisser le script appelle les paramètres qui lui sont transmis via la ligne de commande dans le code du script
Variables spéciales : $?, $0, $* , $@, $#
Variable locale :
Affectation de la variable : nom='valeur'
Vous pouvez utiliser guillemets :
valeur :
(1) Il peut s'agir d'une chaîne directe name= "username"
(2) Référence de variable : name="$username"
(3) Référence de commande : name=`COMMAND` , name=$(COMMAND)
Référence variable : ${name}, $name
"" : référence faible, variable dedans La référence sera remplacée par la valeur de la variable ;
'' : référence forte, la référence de la variable ne sera pas remplacée par la valeur de la variable, mais la chaîne d'origine sera conservée
Afficher toutes les variables définies
set
Détruire les variables :
nom non défini
Variable d'environnement :
Déclaration et affectation des variables :
export name=VALUE
declare -x name=VALUE
Référence de variable : $name, ${name}
Afficher toutes les variables d'environnement :
exporter
env
printenv
Détruire :
nom non défini
bash a de nombreuses variables d'environnement intégrées : PATH, SHELL, UID, HISTSIZE, HOME, PWD, OLD, HISTFILE, PS1
Règles de dénomination des variables :
1. N'utilisez pas de mots réservés dans le programme : tels que if, for ; 🎜>
2. Seuls les chiffres, les lettres et les traits de soulignement peuvent être utilisés, et ne peuvent pas commencer par un chiffre
3.
Variables en lecture seule :
nom en lecture seule
déclarer -r nom
Variable de position :
Appeler dans le code du script les paramètres passés au script via la ligne de commande ;
$1, $2, ... : correspondent au premier et deuxième paramètres de l'appel
shift [n]
$0 : la commande elle-même
$* : tout ; paramètres passés au script
$@ : Tous les paramètres passés au script
$# : Le nombre de paramètres passés au script ; script;
Exemple : Déterminer le nombre de lignes dans le fichier donné
#!/bin/bash
linecount="$(wc -l $1| cut -d' ' -f1)"
echo "$1 a $linecount lignes. "
fichier de configuration bash :
Divisé selon le périmètre effectif, il existe deux catégories :
Configuration globale :
/etc/profile
/etc/profile.d/*.sh
/etc/bashrc
Configuration personnelle :
~/.bash_profile
~/.bashrc
Divisé par fonction, il y en a deux catégories :
Classe de profil : fournit la configuration du shell de connexion interactif
Global : /etc/profile, /etc/profile.d/* .sh
Personnel : ~/.bash_profile
Fonction :
(1) Utilisé pour définir des variables d'environnement ;
(2) Exécuter une commande ou un script
classe bashrc : fournir une configuration pour shell de connexion non interactif
Global : /etc/bashrc
Personnel : ~/.bashrc
Fonction :
(1) Définir l'alias de commande
(2) Définir la variable locale
Connexion Shell :
Connexion interactive :
Connectez-vous directement via le terminal en saisissant le compte et le mot de passe
Les utilisateurs ont changé en utilisant "su - UserName" ou "su -l UserName"
/etc/profile --> / etc/profile.d/*.sh -->
Connexion non interactive :
su UserName
Terminal ouvert dans le interface graphique
Exécuter le script
~/.bashrc --> /etc/bashrc -->
La nouvelle configuration définie en éditant le fichier de configuration prend effet :
(1) Redémarrez le processus shell
(2) Utiliser le processus source ou .command ;
Question :
1. ?
2. Ajoutez un chemin supplémentaire à la valeur de la variable d'environnement PATH de l'utilisateur, telle que /usr/local/apache2/bin
administrateur?
Tous ?
Opérations arithmétiques en bash
+, -, *, /, %, **
Implémenter des opérations arithmétiques :
(1) let var=expression arithmétique
(2) var=$[expression arithmétique]
(3) var=$((expression arithmétique))
(4) var =$(expr arg1 arg2 arg3 ...)
Le symbole de multiplication doit être échappé dans certains scénarios
bash a un générateur de nombres aléatoires intégré : $RANDOM
Assignation améliorée :
+=, -=, *=, /=, %=
laissez varOPERvalue
Pour exemple : let count+=1
Augmenter et décrémenter :
let var+=1
laisser var++
laisser var-=1
laisser var- -
Calculez la somme des identifiants du 10ème utilisateur et du 20ème utilisateur dans le fichier /etc/passwd
#!/bin/bash
userid1=$(head -n 10 /etc/passwd | tail -n 1 | cut -d: -f3 )
userid2=$(head -n 20 /etc/passwd | tail -n 1 | cut -d: -f3)
useridsum=$[$userid1+$userid2]
echo "uid sum : $useridsum"
Passez deux chemins de fichiers en paramètres au script et calculez la somme de toutes les lignes vides dans les deux fichiers
# !/bin ; /bash
spaceline1=$(grep "^[[:space:]]*$" $1 |
wc - l)
spaceline2=$(grep "^[[:space:]]*$" $2 |
wc -l)
echo "La somme des lignes spatiales : $[$spaceline1+$spaceline2]"
stats/etc, / Combien en premier Les sous-répertoires et fichiers de niveau sont présents dans les répertoires var, /usr
Test conditionnel :
Pour déterminer si une certaine exigence est remplie, elle doit être implémentée par le mécanisme de test
Remarque : les expressions de test spéciales doivent être assistées ; par des commandes de test pour terminer le processus de test ;
Commande de test :
test EXPRESSION
[ EXPRESSION ]
[[ EXPRESSION ]]
Remarque : Il doit y avoir caractères vides avant et après EXPRESSION ;
type de test bash :
Test numérique :
-gt : s'il est supérieur à
-ge : s'il est supérieur ou égal à
-eq : s'il est égal à
-ne : s'il est différent de
-lt : s'il est égal à ; inférieur à ;
-le : s'il est inférieur ou égal à
Test de chaîne :
== : s'il est égal à
> : s'il est supérieur
< : s'il est inférieur à
!= : si ce n'est pas Equal ;
=~ : Si la chaîne de gauche peut correspondre au MOTIF de droite ; 🎜>Remarque : Cette expression est généralement utilisée dans [[ ]] ;
-z "STRING" : Teste si la chaîne est vide, si elle est vide, c'est vrai, si ce n'est pas vide, c'est faux ;
-n "STRING" : Teste si la chaîne n'est pas vide, c'est vrai, si elle est vide, c'est faux ;
Remarque : les opérandes utilisés dans les comparaisons de chaînes doivent tous utiliser des guillemets ; >
Test de fichier
code d'état de sortie personnalisé bash
exit [n] : code d'état de sortie personnalisé ;
Remarque : une fois dans le script Lorsque vous rencontrez la commande de sortie, le script se terminera immédiatement ; l'état de sortie de fin dépend du numéro après la commande de sortie
Remarque : Si aucun code d'état de sortie n'est spécifié pour le script, le code d'état de sortie de l'ensemble du script dépend du code d'état de la dernière commande exécutée dans le script
accepte un chemin de fichier comme paramètre ;
Si le nombre de paramètres est inférieur à 1, demandez à l'utilisateur "à au moins un paramètre doit être donné" et quittez immédiatement ;
Si le nombre de paramètres n'est pas inférieur à 1, affichez le nombre de lignes vides dans le fichier pointé par le premier paramètre ;
egrep, expression régulière étendue, variable, fichier de configuration, opération arithmétique, test conditionnel, code d'état de sortie
ERE :
Correspondance des caractères : ., [], [^]
Nombre de correspondances : *, ?, +, {m, n}
Ancrage de position : ^, $, <, >, b
Groupe : (), 1, 2, . .
ou : a|b
Variables :
Variables locales
Variables d'environnement
Variables locales
Variables de position
Les variables spéciales
ne peuvent pas utiliser de mots réservés
Commandes ; : unset, export, declare -x, set, env, printenv, readonly
Profil :
profil, bashrc
Opérations arithmétiques :
let, $[], $(()), expr
+=, -=, *=, /=
++, --
Test conditionnel :
test , [], [[]]
Trois types :
Numéro : -lt, -le, - gt, -ge, -ne, -eq
Chaîne : ==, !=, >, <, =~, -z, -n
Fichier
Code de sortie personnalisé :
sortie [n]
[ $# -lt 1 ] && echo "Au moins un argument." && exit 1
éditeur vim
Introduction
vi : Interface visuelle, éditeur de texte
Texte : ASCII, Unicode
Type d'édition de texte :
Éditeur de ligne : sed
Éditeur plein écran : nano, vi
VIM - Vi IMproved
Utiliser
vim : édition modale
Mode de base :
Mode édition, mode commande
Mode de saisie
Mode dernière ligne :
Interface de ligne de commande intégrée
Ouvrir le fichier :
# vim [OPTION] .. FILE...
+# : Après avoir ouvert le fichier, placez le curseur directement au début de la ligne # ; +/ PATTERN : Après avoir ouvert le fichier, placez le curseur directement au début de la première ligne correspondant à PATTERN
Conversion de mode :
<🎜 ; >
Mode édition --> Mode de saisie
i : insérer, saisir à la position du curseur
a : ajouter, saisir après la position du curseur ;
o : ouvrir une nouvelle ligne sous la position actuelle du curseur
I : dans Enter at ; le début de la ligne où se trouve le curseur actuel ;
A : Entrez à la fin de la ligne où se trouve le curseur actuel ; O : Entrez à la fin de la ligne où se trouve le curseur actuel. Ouvrez une nouvelle ligne au-dessus de la ligne actuelle
c
C
Mode de saisie--> Mode édition
ESC
Mode édition--> Mode dernière ligne
 :
Mode dernière ligne- -> Mode édition
ESC
Fermer le fichier :
:q Quittez
:q ! Forcez à quitter et annulez les modifications
:wq Enregistrez et quittez
:x Enregistrez et quittez
:w /PATH/TO/SOMEWHERE
ZZ : Enregistrez et quittez ;
Saut du curseur :
Sauter entre les caractères :
h, j, k, l
h : gauche
l : droite
j : Bas
k : Haut
#COMMANDE : Sauter au nombre de caractères spécifié par # ;
Sauter entre les mots :
w : Le début du mot suivant
e : La fin du mot actuel ou suivant
b : Le début du mot actuel ou précédent
#COMMAND : Le nombre de mots à sauter en même temps est spécifié par #
Sauter au début et à la fin de la ligne :
^ : Passer au premier caractère non vide du début de la ligne
0 : Aller au début de la ligne ;
$ : Aller à la fin de la ligne
Déplacez-vous entre les lignes :
#G : accédez à #Spécifiez la ligne
G : la dernière ligne ;
1G, gg : la première ligne
Se déplacer entre les phrases :
)
(
Se déplacer entre les paragraphes :
}
{
commande d'édition vim :
Édition des caractères :
x : Supprimez le caractère au niveau du curseur ;
#x : Supprimez les # caractères commençant au curseur ;
xp : Échanger l'emplacement du curseur Le caractère et la position du caractère suivant
Commande de remplacement (r, remplacer)
r : Remplacer le caractère à la position du curseur
Commande Supprimer :
d : commande de suppression, qui peut être combinée avec des caractères de saut de curseur pour réaliser la suppression de plage
d$ :
d^:
d0:
dw
de
db
#COMMAND
dd : Supprimer le ligne où se trouve le curseur ;
#dd : suppression multi-ligne
Commande Coller (p, put, coller) :
p : Si le tampon stocke une ligne entière, elle sera collée sous la ligne où se trouve le curseur actuel, sinon, elle sera collée derrière le curseur actuel ; ;
P : Si le tampon stocke une ligne entière, elle sera collée au-dessus de la ligne où se trouve le curseur actuel ; sinon, elle sera collée devant le curseur actuel ; 🎜>
Commande de copie (y, yank) :
y : Copier, le comportement de travail est similaire à la commande d ;
y$
y0
y^
oui
yw
yb
#COMMAND
yy : copier des lignes
#yy : copier plusieurs lignes
Commande de changement (c, changement)
c : Modifier
Mode édition--> Mode de saisie
c$
c^
c0
cb
ce
cw
#COMMAND
cc ​​: Supprimer et saisir un nouveau contenu
#cc :
Autres opérations d'édition
Mode de visualisation :
v : Sélectionner par caractère
V : Ligne par ligne
Remarque : Souvent combiné avec des commandes d'édition
d, c, y
Annuler la modification précédente :
u(undo) : Annuler l'opération d'édition précédente
#u : Annuler le nombre d'opérations spécifié
Annuler l'annulation précédente :
Ctrl+r
Répéter l'opération précédente opération d'édition :
.
Opération de retournement d'écran :
Ctrl+f : Faites défiler jusqu'à la fin du fichier ;
Ctrl+b : Faites défiler un écran jusqu'au début du fichier ;
Ctrl+d : Faire défiler un demi-écran jusqu'à la fin du fichier
Ctrl+u : Tourner la moitié de l'écran jusqu'au début du fichier ; >
Mode dernière ligne dans vim :
Interface de ligne de commande intégrée
(1) Délimitation d'adresse
:start_pos ,end_pos
# : # de ligne spécifique, par exemple, 2 signifie la ligne 2 ;
#,# : # signifie la ligne du début à gauche, vers la droite # représente la fin de la ligne ; 🎜>#,+# : À partir de la ligne représentée par # à gauche, plus le nombre de lignes représentées par # à droite
. : ligne actuelle
$ : dernière ligne
.,$-1
% : Texte intégral, équivalent à 1,$
/pat1/,/pat2/ :
Commencer à partir de la première ligne correspondant au motif pat1 jusqu'à la fin de la première ligne correspondant à pat2
#,/pat/
/pat/,$
Utilisation :
suivi d'une commande d'édition
d
y
w /PATH/TO/SOMEWHERE : enregistrera les lignes dans le plage vers le fichier spécifié
r /PATH/FROM/SOMEFILE : Insérez tout le contenu du fichier spécifié à l'emplacement spécifié ; >
(2) Recherche
/PATTERN : Recherche depuis la position actuelle du curseur jusqu'à la fin du fichier
?PATTERN : Recherche depuis la position actuelle du curseur jusqu'au début du fichier
n : la même direction que la commande
N : le sens opposé à la commande ;
(3) Rechercher et remplacer
s : Compléter la recherche et remplacer l'opération en mode dernière ligne
s/quoi trouver/quoi remplacer par/modificateurs
quoi trouver : modèle disponible
Contenu remplacé : les modèles ne peuvent pas être utilisés, mais des symboles de référence arrière tels que 1, 2, ... peuvent également être utilisés pour faire référence à l'intégralité du contenu trouvé ; lors de la recherche précédente ;
Modificateurs :
i : Ignorer la casse
g : Global remplacement ; par défaut, seule la première occurrence de chaque ligne est remplacée
trouve le délimiteur dans le remplacement/peut être remplacé par d'autres caractères, tels que
s@@@
s###
1 . Copiez /etc/grub2.cfg Accédez au répertoire /tmp/ et utilisez la commande de recherche et de remplacement pour supprimer les caractères vides au début de la ligne dans le fichier /tmp/grub2.cfg ; 🎜>
%s/^[[:space:]]+ //g
2. Copiez le /etc/rc.d/init. .d/functions dans le répertoire /tmp, et utilisez la commande de recherche et de remplacement pour /tmp/ Ajoutez un signe # au début de chaque ligne de fonctions qui commence par un caractère vide
;
:%s/^[[:space:]]/#&/
Mode fichiers multiples :
vim FILE1 FILE2 FILE3 ...
: suivant suivant
:précédent précédent
:premier premier
:dernier Dernier
:mur sauve tout
:qall quitte tout
Mode de séparation des fenêtres :
vim -o|-O FILE1 FILE2 ...
-o : Fente horizontale
-O : Fente verticale
Basculer entre les fenêtres : Ctrl+w, Flèche
Fenêtre divisée en un seul fichier :
Ctrl +w,s : division, division horizontale
Ctrl+w,v : division verticale, division verticale
Personnalisé Fonctionnalités de travail de vim :
Fichier de configuration : Valide en permanence
Global : /etc/vimrc
Personnel : ~/.vimrc
Dernière ligne : Le processus vim actuel est valide
(1) Numéro de ligne
Affichage : définir le numéro, abrégé en set nu
Annuler l'affichage : définir le numéro, abrégé en set nonu
(2) Correspondance des supports
Match : set showmatch, abrégé en set sm
Annuler : définir nosm
(3) Indentation automatique
Activer : définir ai
Désactiver : définir noai
(4) Mettre en surbrillance la recherche
Activer : définir hlsearch
Désactiver : définir nohlsearch
(5) Mise en évidence de la syntaxe
Activer : syntaxe activée
Désactiver : syntaxe désactivée
(6) Ignorer la casse des caractères
Activer : définir ic
Ne pas ignorer : définir noic
Obtenir de l'aide :
:aide
:sujet de l'aide
Test de condition bash :
Méthode de test :
tester EXPRESSION
[ EXPRESSION ]
[[ EXPRESSION ]]
Catégories d'expressions de test :
Comparaison numérique
Test de chaîne
Test de fichier :
Test d'existence
-un FICHIER
- e FICHIER : fichier test d'existence, s'il existe, c'est vrai, sinon c'est faux
Test d'existence et de catégorie
-b FILE : existe-t-il ; et est un fichier de périphérique de bloc
-c FILE : Existe-t-il et est-il un fichier de périphérique de caractère
-d FILE : Est-ce qu'il s'agit d'un fichier de périphérique de type bloc ; il existe et est un fichier répertoire
-f FILE : existe et est un fichier normal
-h FILE ou -L FILE ; : existe et est un fichier de lien symbolique
-p FILE : s'il existe et s'il s'agit d'un fichier de canal nommé
-S FILE : s'il existe et s'il s'agit d'un fichier socket Word ;
Test d'autorisation de fichier :
-r FILE : s'il existe et est lisible
-w FILE : S'il existe et est-il accessible en écriture
-x FILE : S'il existe et est exécutable
Test des autorisations spéciales du fichier :
-g FILE : s'il existe et s'il dispose de l'autorisation sgid
-u FILE : s'il existe ; il existe et a l'autorisation suid ;
-k FILE : s'il existe et a une autorisation collante
Test de taille de fichier :
-s FICHIER : S'il est enregistré et non vide
Si le fichier est ouvert :
-t fd : fd indique si le descripteur de fichier est ouvert et lié à un terminal. Connexe
-N FILE : si le fichier a été modifié depuis sa dernière lecture
-O FILE : Indique si l'utilisateur effectif actuel est le propriétaire du fichier
- G FILE : Indique si l'utilisateur effectif actuel est le propriétaire du fichier
Test binoculaire :
FILE1 -ef FILE2 ; : Si FILE1 et FILE2 pointent vers le même inode sur le même appareil
FILE1 -nt FILE2 : si FILE1 est plus récent que FILE2 ;
FILE1 -ot FILE2 : si FILE1 est plus ancien que FILE2 ;
Conditions de test de combinaison :
Opération logique :
Première méthode :
COMMAND1 && COMMAND2
COMMAND1 || COMMANDE2
! COMMANDE
[ -e FICHIER ] && [ -r FICHIER ]
Deuxième voie :
EXPRESSION1 -a EXPRESSION2
EXPRESSION1 -o EXPRESSION2
! 🎜>
Doit utiliser la commande test
# [ -z "$hostName" -o "$hostName"= ="localhost.localdomain" ] && nom d'hôte www.madu.com
# [ -f /bin/cat -a -x /bin/cat ] && cat /etc/fstab
vim :
Mode édition, mode saisie, mode dernière ligne, mode visualisation
Sauter : h,j,k,l,w,b,e,),(,},{, G, ^, 0, $
Modifier : x, r, c, d, y, p, u, ctrl+r
Rechercher : /, ?, n, N
Rechercher et remplacer : s
s///
g :
i:
Dernière ligne de démarcation :
#
m,n
m,+#
.
$
/pat1/
/pat1/,/pat2/
%
Test de fichier :
Monoculaire : -e, -f, -d, -b, -c, -L, - P, -S, -r, -w, -x, -s
Jumelles : -nt, -ot
Test de combinaison : -a, -o, !
Recherche de fichier :
dans le système de fichiers Rechercher fichiers qualifiés sur
Recherche de fichiers : localiser, trouver
Recherche hors temps réel (recherche dans la base de données) : localiser
Recherche en temps réel : trouver
localiser :
S'appuie sur des index prédéfinis ; la construction de l'index est effectuée automatiquement lorsque le système est relativement inactif (tâches périodiques de mise à jour de la base de données (updatedb) ; >Index Le processus de construction doit parcourir l'ensemble du système de fichiers racine, ce qui consomme beaucoup de ressources
Fonctionnalités de travail :
Vitesse de recherche rapide ;
Recherche floue
Recherche en temps non réel
localiser le MOT-CLÉ
trouver :
Un outil de recherche en temps réel qui termine la recherche de fichiers en parcourant le système de fichiers sous le chemin spécifié ; vitesse ;
Recherche précise
Recherche en temps réel
Syntaxe :
trouver [OPTION]... [Chemin de recherche] [Conditions de recherche] [Action de traitement]
Chemin de recherche : spécifiez le chemin cible spécifique ; la valeur par défaut est le répertoire actuel ;
Conditions de recherche : les critères de recherche spécifiés peuvent être basés sur le nom du fichier, la taille, le type, les autorisations, etc. est de trouver tous les fichiers sous le chemin spécifié ;
traitement Action : Que faire sur les fichiers qui remplissent les conditions ; sortie à l'écran
Conditions de recherche :
Selon la recherche par nom de fichier :
-name "nom de fichier": prend en charge l'utilisation de glob
*, ?, [], [^]
-iname "nom de fichier": insensible à la casse
-regex "PATTERN" : correspond à la chaîne entière du chemin du fichier PATTERN, pas seulement au nom du fichier 
Recherche basée sur le propriétaire et le groupe :
-user USERNAME : recherche des fichiers dont le propriétaire est l'utilisateur spécifié ;
group GRPNAME : recherche des fichiers dont le propriétaire est le groupe spécifié ; >
-uid UserID : Rechercher le fichier dont le propriétaire est le numéro UID spécifié
-gid GroupID : Rechercher le fichier ; dont le propriétaire est le numéro UID spécifié Fichiers avec des numéros GID
-nouser : Rechercher des fichiers sans propriétaires
-nogroup : Rechercher Il n'y a aucun fichier appartenant au groupe
Recherche basée sur le type de fichier :
- tapez TYPE :
f : Fichier ordinaire
d : Fichier de répertoire
l : Symbolique fichier de lien
s : fichier de socket
b : fichier de périphérique de blocage
c : personnage fichier d'appareil
p : Fichier de canalisation
État combiné :
avec : -a
ou : -o
Non : -non, !
!A -a !B = !(A -o B)
!A -o !B = !(A -a B)
Recherchez les fichiers dans le répertoire /tmp dont le propriétaire n'est pas root et dont le nom de fichier n'est pas fstab
trouver/ tmp ( -not -user root -a -not -name 'fstab' ) -ls
find /tmp -not ( -user root -o -name 'fstab' ) -ls
Recherche par taille de fichier :
-taille [+|-]#UNIT
Unités communes : k, M, G
#UNIT : (#-1, #]
-#UNITÉ : [0,#-1]
+#UNITÉ : (#,oo)
selon l'horodatage :
dans "jour"
-atime [+|-]#,
# : [#,#+1)
+# : [#+1,oo]
-# : [0,#)
-mtime
-ctime
En "minutes" :
-amin
-mmin
-cmin
Recherche basée sur les autorisations :
-perm [/|-]MODE
MODE : correspondance exacte des autorisations
/MODE : tant qu'une des autorisations de n'importe quel type (u, g, o) d'objet peut correspondre ;
-MODE : Chaque type d'objet doit également avoir des normes d'autorisation spécifiées pour lui
Action de traitement :
-print : l'action de traitement par défaut, affichée à l'écran
-ls : similaire à l'exécution de la commande "ls -l" sur le fichier trouvé ;
-delete : supprime le fichier trouvé
-fls /path/to/somefile : la longueur de tous les fichiers trouvés Enregistrez les informations de format dans le fichier spécifié ;
-ok COMMAND {}; Exécute la commande spécifiée par COMMAND pour chaque fichier trouvé ; 🎜>Avant d'exécuter la commande pour chaque fichier, il sera demandé de manière interactive à l'utilisateur de confirmer
-exec COMMAND {} ; Exécutez la commande spécifiée par COMMAND pour chaque fichier trouvé ; >
{} : utilisé pour référencer le nom du fichier trouvé lui-même
Remarque : find transmet le fichier trouvé lorsqu'il atteint le commande spécifiée plus tard, tous les fichiers qui remplissent les conditions sont trouvés et transmis immédiatement à la commande suivante
 ;
Certaines commandes ne peuvent pas accepter trop de paramètres et l'exécution de la commande peut échouer ; une autre façon d'éviter ce problème :
find |
1. Recherchez tous les fichiers ou répertoires sous le répertoire /var dont le propriétaire est root et dont le groupe est mail
# find /var -user root -group mail
2. Recherchez tous les fichiers ou répertoires du répertoire /usr qui n'appartiennent pas à root, bin ou hadoop ;
# find /usr -not -user root -a -not -user bin -a -not -user hadoop
# find / usr -not ( -user root -o -user bin -o -user hadoop )
3. Recherchez les modifications de contenu dans le répertoire /etc dans la dernière version week Cependant, le propriétaire n'est pas root, ni un fichier ou un répertoire de hadoop
# find /etc -mtime -7 -a -not -user root -a -not ; -user hadoop
# find /etc/ -mtime -7 -a -not ( -user root -o -user hadoop )
4. Rechercher les fichiers ou répertoires qui n'ont pas de propriétaire ou de groupe sur le système actuel et qui ont été consultés au cours de la semaine dernière
# find / -nouser -a ; -nogroup -a -atime -7
5. Recherchez tous les fichiers du répertoire /etc qui font plus de 1 Mo et sont de type de fichier normal
# find /etc -size +1M -type f
6. dans le répertoire /etc Fichiers qui n'ont pas d'autorisation d'écriture
# find /etc -not -perm /222
7. Rechercher Il existe au moins un type de fichier dans le répertoire /etc pour lequel l'utilisateur n'a pas les autorisations d'exécution
# find /etc -not -perm -111 ;
8. Recherchez les fichiers dans le répertoire /etc/init.d pour lesquels tous les utilisateurs ont des autorisations d'exécution et d'autres utilisateurs ont des autorisations d'écriture
# find /etc/init .d -perm -113
Autorisations spéciales sur les systèmes de fichiers Linux
SUID, SGID, Sticky
1 autorisations
r, w, x
utilisateur, groupe, autre
2 Contexte de sécurité
Prémisse : Le processus a un propriétaire et un groupe ; Les fichiers ont des propriétaires et des groupes ;
(1) Si un fichier de programme exécutable peut être démarré en tant que processus : Cela dépend si l'initiateur dispose des autorisations d'exécution sur le fichier programme ;
(2) Après son démarrage en tant que processus, le propriétaire du processus est l'initiateur, le groupe du processus est le groupe ; auquel appartient l'initiateur ;
( 3) Les autorisations d'un processus lors de l'accès à un fichier dépendent de l'initiateur du processus :
(a) Si l'initiateur du processus est le même que le propriétaire du fichier : alors les autorisations du propriétaire du fichier s'appliquent
(b) L'initiateur du processus appartient au groupe ; du fichier ; alors le fichier de candidature appartient à l'autorisation de groupe ;
(c) Appliquer les autorisations du fichier « Autres » ;
3 SUID
(1) N'importe quel fichier programme exécutable peut-il être démarré en tant que processus : Cela dépend si l'initiateur a l'autorisation d'exécution sur le fichier programme
(2) Après son démarrage en tant que processus, le propriétaire du processus est le propriétaire du fichier programme d'origine
;
Paramètres d'autorisation :
chmod u+s FILE...
chmod u-s FILE...
4 SGID
Par défaut, lorsqu'un utilisateur crée un fichier, son groupe est Le groupe de base auquel appartient cet utilisateur
Une fois qu'un répertoire est défini avec un SGID, le groupe auquel appartiennent les fichiers créés dans ce répertoire par les utilisateurs disposant d'autorisations d'écriture
Paramètres d'autorisation :
chmod g+s DIR...
chmod g-s DIR...
5 collants
Pour un répertoire accessible en écriture par plusieurs personnes, si sticky est défini, chaque utilisateur ne peut supprimer que ses propres fichiers
Autorisation ; paramètres :
chmod o+t DIR...
chmod o-t DIR...
SUID SGID STICKY
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7
chmod 4777 /tmp/ a.txt
Plusieurs mappages de bits de permission :
SUID : utilisateur, occupant le bit de permission d'exécution du propriétaire ;
s : Le propriétaire a x autorisations
S : Le propriétaire n'a pas x autorisations
SGID : groupe , occupe le bit d'autorisation d'exécution du groupe ;
s : le groupe a x autorisations
S : le groupe n'a pas x autorisations
Sticky : autre, occupe le bit d'autorisation d'exécution de ohter
t : autre a x autorisations
T : autre n'a pas les autorisations x
Scripting bash :
Programmation procédurale Langue :
Exécution séquentielle
Sélectionner l'exécution
Exécution en boucle
Sélectionner l'exécution :
si condition de jugement
alors
Code de branche avec condition vraie
fi
si condition de jugement alors
Code d'agence avec condition vraie
else
Code d'agence avec condition fausse
fi

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal