Synthèse de commandes Linux utiles pour un DBA

De par nos activités de DBA sous Linux (Oracle Enterprise Linux), nous sommes souvent amenés à manipuler des commandes systèmes.
Ainsi, je vous propose une fiche de commandes Linux très pratiques à utiliser.

Commandes sys

su pour être root sous Red Hat et nous placer dans le répertoire courant
su pour être root sous Red Hat et nous placer dans le répertoire personnel root (/root)
rend accessible certains programmes destinés seulement à root
su – nom_user présence d’un espace après le – (à utiliser en pratique à partir d’un utilisateur root)
sudo su – nom_user pour se connecter en tant que nom_user sous red hat (à utiliser en pratique à partir d’un utilisateur non root)
sudo -l à taper en étant root
liste tous les utilisateurs avec lesquels je peux me connecter (que je peux être) en tapant su – nom_user
who am i pour savoir avec quel utilisateur j’ai ouvert cette session Linux
id pour afficher l’UID (User Id), le GID (Group Id) et connaitre le groupe principal et secondaire de l’ utilisateur courant
who affiche la liste des utilisateurs connectés
pwd pour savoir dans quel répertoire nous sommes (connaitre notre répertoire courant)
whereis cmd affiche le répertoire d’exécution de cette cmd (répertoire où se trouve cette commande)
rajouter alors ce répertoire dans le PATH, si la commande ne s’exécute pas par défaut.
Attention cette modification est provisoire (valable uniquement dans ce terminal)
cmd –help pour avoir l’aide Linux sur commande cmd
man cmd pour avoir l’aide Linux sur commande cmd (touche Q pour quitter l’aide)
history Affiche numérotées toutes les commandes réussies (uniquement)
cmd1 && cmd2 cmd2 s’exécute que si cmd1 a réussi (ET)
cmd1 || cmd2 cmd2 s’exécute que si cmd1 n’a pas réussi (OU)
alias pour afficher tous les alias présents dans le Shell utilisé
alias nom_alias=’cmd_origine_longue pour créer son alias à partir d’une véritable commande
ps -ef | more pour afficher la liste des processus courants pages par pages
clear pour effacer (vider) toutes les commandes précédemment saisies dans le terminal

Variables

set | more pour afficher par page les valeurs de toutes les variables (utilisateurs et environnement)
env | more pour afficher par page les valeurs de toutes les variables d’environnement uniquement
Ctrl+C pour quitter cet affichage par page
unset nom_variable pour supprimer nom_variable et effacer son contenu
readonly nom_variable pour verrouiller,empêcher l’effacement ou la modification de cette variable
echo $variable pour afficher une variable (son contenu)
echo $VARIABLEENVIRON pour afficher une variable d’ environnement (nom variable en MAJUSCULE)
export pour afficher les variables exportées dans notre terminal (fenêtre)
export nom_variable pour exporter nom_variable dans un autre terminal
echo $HOME pour afficher (connaitre) notre répertoire /home/utilisateur
cd pour aller directement dans notre répertoire /home/utilisateur
/dev/null il s’agit de la corbeille (poubelle)
 

Fichiers

ls -l liste détaillée en ligne touts les fichiers du répertoire où je me trouve
ls -lrt liste détaillée des fichier du plus vers le moins récent (le plus utilisé)
ls -la liste détaillée en ligne touts les fichiers dont fichiers cachés du répertoire où je me trouve
ls -F Affiche liste des fichiers en précisant leur type
nom_fichier/ pour un répertoire
fichier pour un simple fichier,
nom_fichier* pour indiquer qu’il s’agit d’un fichier exécutable (script en .sh),@ raccourci ou lien symbolique)
ls -t pour lister touts les fichiers du répertoire où je me trouve classés par date de modification
touch nom_fichier pour la création du fichier nom_fichier
cat fichier pour afficher le contenu de ce fichier
cat -n fichier pour afficher le contenu de ce fichier en numérotant chaque ligne du fichier
more fichier pour afficher le contenu de ce fichier page par page
vi fichier permet toujours de modifier fichier grâce à l’éditeur de texte vi
head fichier pour afficher les 10 premières lignes de ce fichier
head -n fichier pour afficher les n premières lignes de ce fichier
tail fichier pour afficher les 10 dernières lignes de ce fichier
tail -n fichier pour afficher les n dernières lignes de ce fichier
diff fichier1 fichier2 pour afficher les différences de contenu entre ces 2 fichiers
mv ancien_nom_fichier nouveau_nom_fichier
pour renommer (déplacer) un fichier attention ancien_nomfichier est alors effacé
cp ancien_nom_fichier nouveau_nom_fichier    pour copier un fichier, attention ancien_nom_fichier n’est pas effacé
mkdir -p /a/b création de b même si /a n’existe pas,création en une cmd de /a/b
rm -r /a effacement de /a et de tous ses sous répertoires avec demande de confirmation
rm -rf /a effacement de /a et de tous ses sous répertoires sans demande de confirmation
find chemin_où_on_veut_faire_cette_recherche -name « nom_fichier »
pour rechercher nom_fichier à l’endroit spécifié
find . -name “nom_fichier”
pour rechercher nom_fichier dans le répertoire courant
avec “ “ facultatifs si nom_fichier ne contient pas de caractères spéciaux (*,?…)
chmod -R xyz nom_fichier avec xyz valeur octales
4-2-1: 700 user (rwx) 70 group (rwx) 7 others (rwx)
Affectation des droits user (rwx) group (rwx) others (rwx) pour un répertoire et tous ses sous répertoires
chown -R new_user :new_group nom_fichier
changement de user et de groupe pour un répertoire et tous ses sous répertoires
setfacl -Rm préfixe: nom_prefixe:droits nom_fichiers pour donner les droits de manière récursive sur ses répertoires avec
préfixe = u pour user – g pour groupe – o pour les autres
droits=rwx
ls -lrt nom_fichier pour voir/reconnaitre des fichiers ACL: ils apparaissent dans le terminal avec le signe +
getfacl nom_fichier pour visualiser/détailler les droits ACL sur ce fichier
setfacl -b nom_fichier pour supprimer/annuler tous les droits ACL sur un fichier
setfacl -x prefixe:nom_préfixe:droits nom_fichier
avec
préfixe = u pour user – g pour groupe – o pour les autres
droits=rwx

Informations sur le système (Ram, Processeur, …)

Toutes ces commandes sont à saisir en étant root, ou avec des droits d’exécution root (sudo)
dmidecode pour avoir des informations sur la carte mère
free -m         pour avoir des informations sur la RAM
cat /proc/cpuinfo pour afficher les informations sur le Processeur
lspci                      pour lister tous les périphériques du bus PCI :
lspci | grep VGA pour avoir des informations sur la carte graphique
lsusb            pour lister des périphériques USB
ifconfig         pour lister les Interfaces (cartes)  réseau, ainsi que leur IP
uname -r pour connaitre notre version du noyau Linux
uname -a pour avoir des informations sur notre version de Linux
date pour afficher la date et l’heure du système
uptime pour nous indiquer sur une même ligne l’heure actuelle,depuis combien de temps le système tourne,le
nombre d’utilisateurs connectés
df -h pour afficher les informations sur les FS (espace, pourcentage d’occupation…)
Attention, n’est valable que sur les partitions montées uniquement
1ère colonne: la localisation /dev/…de la partition
2 ème colonne: la taille totale de cette partition
3 ème colonne: la taille occupée sur cette partition
4 ème colonne: la taille disponible sur cette partition
5 ème colonne: le pourcentage d’occupation de cette partition
6 ème colonne: le point de montage de cette partition
Pour monter un FS
mount -t [type_fichier] [opts] [périphérique] [point_montage] avec
[type]= ext2,3,4,fat
[périphérique]= /dev/sdxy ou /dev/hdxy
[point_montage]=/chemin/répertoire_montage à créer si nécessaire
Montage par périphérique
mount -t [type_fichier] [périphérique] [point_montage]
Montage par label
mount -t [type_fichier] -L nom_label [point_montage]
Montage par UUID
mount -t [type_fichier] -U UUId [point_montage]
Attention, ce montage n’est valable que dans cette session
En effet, pour rendre ce montage permanent, il faudra rajouter ce FS dans /etc/fstab
 df -k /dev/shm pour afficher la valeur disponible de la mémoire partagé de la machine
 swapon -s pour afficher des informations sur la partition swap
sar -u 2 100
affiche toutes les 2 secondes un rapport de 100 lignes d’utilisation du cpu
sar -r 2 100
affiche toutes les 2 secondes un rapport de 100 lignes d’utilisation du cpu (mémoire libre sur mem principale et le swap)
last | more pour lister les derniers utilisateurs connectés sur ce serveur page par page
cat /var/log/messages pour afficher le journal (fichier de log) du système
Cette liste n’est effectivement pas exhaustive, et peut être complétée si besoin.