Commandes General
- Lister les services
- Quelques commandes
- Lancer une commande active même après la déconnexion
- NTP
- Drop RAM SWAP CPU & MEM
- Astuces Cron
- Extraction link web page
- Rechercher des fichier : find/locate/size
- basic commande
Lister les services
Sur CentOS/RedHat Tous :
systemctl list-units --type service --all
En cours :
systemctl list-units --type service --all | grep running
Sur Debian :
service --status-all
Quelques commandes
Commandes simples :
\ : utilisation des apostrophes
Lire les fichiers : cat, more, less
nmtui : modifier connexion via interface graphique
ctrl + alt + f1 ou f2 : changer de terminal
# : utilisation compte root
$ : utilisation autre utilisateur
~ : répertoire de connexion
ctrl + s : Pause du terminal
ctrl + q : Reprendre le terminal
ctrl + w : Effacer le mot
ctrl + i : efface l'affichage
ctrl + u : efface ligne entière
man -k : recherche pages du manuel associés à un mot
who : liste utilisateurs connectés
whoami : affiche utilisateur actuel connecté
finger : affiche informations plus précises sur l'utilisateur connecté
pwd : affiche répertoire courant
Cd ~ => renvoie dans le répertoire /home personnel.
/bin/bash : Shell par défaut | Boîte de l'invite de commande.
passwd : modifier mot de passe | commandes liés au mot de passe
passwd -l : verrouiller compte
passwd -u : déverrouiller compte
passwd -d : désactiver saisie du mot de passe pour un compte
wc : compter le nombre de lignes, mots, caractères contenus dans un fichier.
wc -l -w -c (line, word, caracter)
env : affiche varaibles d'environnement
echo : afficher valeur d'environnement
date : affiche date
exit or logout : déconnecter utilisateur
which [commande] : affiche le chemin complet d'une commande
Changement de valeur d'une variable d'environnement
export PS1=’[\u@\h \W \t]$’
Export valide la nouvelle variable.
$TMOUT : Variable qui déconnectee automatiquement au bout d'un temps défini.
La commande export ne marche que pour la session en cours. (temporaire)
==Recherche==
* : substitue le caractères générique ? par n'impoorte quel caractère.
[] : remplace le caractère par un des caractères donnés. Exemple
[abc] remplace le caractère par a ou b ou c
[f-z] : caractère entre f et z. Respect de la casse.
exemple : ls [fr]?tab
! : cherche les caractères ne se trouvant pas entre les
{} : Cherche tous les noms de fichiers commençant par une chaîne de caractères au lieu
d'un seul caractère.
Avec des doubles apostrophes, les caractères spéciaux sont interprétés mais pas le * .
alias : remplace une ligne de commandes complexe par son alias.
pour l'avoir de manière permanente pour tous les utilisateurs, l'ajouter dans .bashrc
qui se trouve dans le dossier de connexion de l'utilisateur.
unalias -a nom_alias : supprimer alias
type : affiche les informations à propos d'une commande et son interprétation.
cat : sert à lire un fichier
whereis : localiser rapidement une commande externe ainsi que les fichiers
aide et sources associées.
source .bash_profile : recharger le fichier profile sans se déconnecter.
set -o : affiche l'état (actif ou inactif) des options
set -o [nom_option] : activer
set +o [nom_option] : désactiver
Tous les fichiers qui commencent par p ou se terminent par d :
ls -d {p*,*.d}
==Avancé==
processus associé à des descripteurs de fichiers.
point d'entrée = paramètre rentré sur le clavier
sortie = résultat affiché à l'écran
Entrée (0) => Processus => Sortie (1)
||
Erreur (2)
< : rediriger l'entrée
> : rediriger la sortie vers un fichier
>> : permet d'ajouter dans un fichier existant
2> : redirection de l'erreur standard
n>&m : avoir une sortie + erreur dans un seul fichierr
où n est numéro du descripteur à rediriger et m : numéro de celui vers
lequel il faut renvoyer les données . exemple : Ou > ficsortie 1>&2
/dev/null : puit sans fond. Tout ce qui est envoyé est supprimé du système
exemple : ps -ef > /tmp/test
ls bin dev bleu > ficout 2>> ficerr2
/dev : fichiers qui sont des pointeurs vers des périphériques
touch : permet de changer l'heure du fichier et créé un fichier vide.
tubes (pipe) : |
tee : lis l'entrée, génèree le fichier et effectue une copie sur la sortie intermédiaire
grep : filtre et garde que ce qui contient après ce paramètre
su : switch user | changer d'utilisateur
su - [nom_user] : tirer permet de garder l'environnement de l'utilisateur actuel
Lancer une commande en tant qu'utilisateur test :
su - test -c "ps -ef"
chaque commande lancé via su crée une exécution en shell.
sudo : exécution de commandes en tant que sans élévation de compte /etc/sudoers
[Commandes Avancées]
Dmesg : verbosité du noyau. Les informations sur des périphériques attachés ou détachés apparaissent dedans.
Fdisk –l : commandes de table de partition
mount : monter le périphérique à un répertoire. | affiche la liste des montages
df : fourni la quantité d'espace occupé des systèmes de fichiers.
mkfs -t ext4 /dev/sdx : formater au format ext4
editeurs de texte : vi, nano, emacs
cd - => renvoie dans le répertoire précédent
file : permet de déterminer le type d'un fichier
stat : indique les informations du bloc où est stocké le fichier
mkdir -p : crée arborescence du répertoire
cp -R : Copier contenu d'un répertoire avec les droits associés.
mv : renommer ou déplacer fichiers
rename : renommer fichier
find : rechercher des fichiers
exemple : find / -name
find -size +1M : fichiers de plus d'un megaoctet
find -mtime : heure de modification
Grep permet de filtrer des lignes.
Grep –i => prend en compte les minuscules et majuscules
Grep –l => affiche uniquement les noms des fichiers possédant des lignes qui correspondent à la valeur donnée.
Cut => supprimer une partie de chaque ligne d’un fichier
Sort => trier les lignes d’un fichier.
Head => consulter le début d’un fichier
Tail => consulter la fin d’un fichier.
La commande watch permet d’exécuter un programme périodiquement en affichant le résultat à l’écran
ln : lien dur (hard link) -> seconde entrée pointant vers le même inode
ln -s : lien symbolique -> raccourci
Pour voir la file d'attente :
mailq
Pour le journal des logs :
journalctl -u postfix
Pour forcer le renvoi des mails bloqués dans la file d'attente :
postfix flush
Pour tester l'envoi :
Mail email@addresse.com
et suivre les étape
Pour reload le service
postfix reload
Lancer une commande active même après la déconnexion
Précéder la commande par la commande nohup
S'il est nécessaire de récupérer la console, terminer la ligne avec une esperluette & exemple :
nohup wget ftp://...../Fedora-8-i386-rescuecd.iso &
La sortie de la commande est loggué dans un fichier nohup.out
il est possible de consulter soit en direct en lançant immédiatement
tail -f nohup.out
Soit après coup :
less nohup.out
NTP
Pour voir l'heure et le status du service
/etc/init.d/hwclock.sh show
Pour checker l'heure du matériel :
date; hwclock
Pour synchro :
hwclock --systohc
Pour debugguer :
hwclock --systohc --debug
Drop RAM SWAP CPU & MEM
lister les process qui occupe le swap :
for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n -r | less
DROP mémoire cache + voir résultat
free -h && sudo sysctl vm.drop_caches=3 && free –h
Relancer le swap
sudo swapoff –a && sudo swapon -a
Problème lié au swap
Déplacer le cache de Swap vers la mémoire si elle est pas trop sollicitée en exécutant la commande :
swapoff -a
changer le swappiness à 10 au lieu de 40 (valeur recommandée sur postgre) ce qui a permis de soulager le swap
il ne sera sollicité que la mémoire passe en full (ce qui n'était pas le cas avant ce changement, le swap se remplit fréquemment même si la RAM est vide )
Pour modifier la valeur sans redémarrer le système d'exploitation, exécutez la commande suivante :
sysctl -w vm.swappiness=10
Pour modifier la valeur temporairement (après le redémarrage la valeur sera sautée)
htop
Pour reloader la config :
sysctl --system
une fois le swap vidé passer la commande suivante pour réactiver le swap :
swapon -a
La config swappiness se trouve :
/etc/sysctl.conf
droper cache mem et swap autrement :
sync; echo 3 > /proc/sys/vm/drop_caches
trier le CPU ou la mémoire sur la machine :
top ou htop
commande avancée pour trier la mémoire:
ps -eo size,pid,user,command --sort -size | awk '{ hr=$1/1024 u; printf("%13.2f Mb ",hr) } { for ( x=4 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" }' | cut -d "" -f2 | cut -d "-" -f1
autres commande pour CPU et mem triez par top:
ps -eo pid,user,comm,%mem --sort=-%mem | head -n 6
ps -eo pid,user,comm,%mem --sort=-%cpu | head -n 6
Vous pouvez faire des teste de stress sur une machine pour voir comment elle réagit via :
Yum install stress
Commande stress mémoire :
stress --vm 1 --vm-bytes 1G --timeout 30s
Astuces Cron
Vérifier la crontab système :
cat /etc/crontab
Lister les crontab de tous les utilisateurs
for user in $(cut -f1 -d: /etc/passwd); do echo $user; crontab -u $user -l; done
Lister les crontab d'un user spécifique
crontab -l -u "user"
CRONTAB
mm hh jj MMM JJJ tâche
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0, Monday=1, and so on)
# | | | | |
# * * * * * user-name command-to-be-executed
crontab -l
ls -al /etc/cron.*
cat /etc/cron.d/* | grep "votre recherche"
Valider la planification avec crontab guru :
https://crontab.guru
Aide à la création de la cron:
https://crontab-generator.org/
Extraction link web page
Rechercher des fichier : find/locate/size
• Rechercher tous les fichiers avec l'extension .txt dans le répertoire courant :
find . -name "*.txt"
• Rechercher tous les fichiers avec l'extension .txt dans tous les sous-répertoires du répertoire courant :
find . -name "*.txt" -type f -exec ls -lh {} \;
• Rechercher tous les fichiers dont la taille est supérieure à 100 Mo :
find . -size +100M
• Rechercher tous les fichiers modifiés au cours des 7 derniers jours :
find . -mtime -7
Pour utiliser la commande locate, vous devez d'abord vous assurer que la base de données locate est à jour. Pour ce faire, exécutez la commande suivante :
sudo updatedb
Une fois la base de données locate à jour, vous pouvez commencer à rechercher des fichiers. La syntaxe de base de la commande locate est la suivante :
locate [options] nom_de_fichier
Par exemple, pour rechercher tous les fichiers avec l'extension .txt, vous pouvez exécuter la commande suivante :
locate *.txt
Recherche dans l'historique des commande taper sur le shell:
CRTL + R :
basic commande
Copie : cp /dossier /destination
Deplacer : mv /dossier /destination
ls : Lister les fichiers
ls -a : lister les fichiers cacher
ll = ls sous alias
Mount -t (type) ntfs -o(options) ro(read only) /dev/hda /mnt/nas
ps -eF : afficher l'ensemble des processus
ps : afficher les processus lié au terminal direct
ps –j : voir les job en cours
man : manuel des commandes
rm : supression de fichier dossier
cd : changer de repertoire
mv : déplacer ou renommer
history : voir les anciennes commandes
tac : c'est l'inverse de cat
cat : Afficher le contenue la sortie d'un fichier standard
xargs : prend l'entrée standard et la convertit en argument de commande pour une autre commande
tr : translate, traduire
nl : numéroter les lignes d'un fichier
ps aux | grep : permettant de faire une meilleur recherche sur les processus en cours
sed : modifier le contenu d'un fichier, d'un flux autres …
chmod (letter + binaire) : r (read) '4', w (write) '2', x (execute) '1' [@[ user = u, groupe = g, other = o
ACLs : permet de définir des permission pour un ou plusieurs utilisateur / groupe sur un fichier / répertoire
Umask : permet de définir des droits par défaut pour l'ensemble des fichier et répertoire créer
SUID : Set user ID, droit qui s'applique a des fichier et non à des répertoires
SGID :
stickyBit :
chown : modifier le propriétaire + groupe : nom du fichierml
chgrp : modifier le groupe
pwd : afficher le répertoire ou l'on est
mkdir : créer des répertoire
touch : création de nouveau fichier vide
./ : exécution d'un fichier, script
htop : visualiser les processus interactif
unzip : extraction d'un fichier .zip
Echo : afficher un message
passwd : permet de changer les mots de passe
which : vérification du chemin complet des commandes du shell
Shred : permet d'effacer définitivement le contenu d'un fichier
cfdisk : interface curses pour les disque
df : permet d'afficher la quantité d'espace disque disponible sur chaque disque monté
losetup : permet de gérer les périphérique de type loop
fdisk -l : affichage des partitions + gestion création
whereis : permet de localiser les fichier binaire; librairies, header, configuration
parted : gestionnaire de partitions disque : (commande) : -? | print | mkpart | rm | move | resize
mkfs : formater une partition avec un système de fichier donné
fsck : outils de contrôle d'intégrité et de réparation pour les système de fichiers linux et les disque en RO ou non montée
mount : monté un fichier système …
unmount : démonter un fichier système ...
fstab : table différentes des système de fichiers; contient une liste des disques et des partitions au démarrage - configuration de fichier.
Quotas : permet de limiter d'espace disque alloué à un utilisateur ou un groupe d'utilisateur
find : rechercher des fichiers + mettre des critère pour une meilleur recherche
locate : permet de localiser immédiatement n'importe quel fichier ou répertoire présent sur le système à partir d'une base de donnée
service –status-all : permet d'afficher le statut de tous les services
chkconfig --add service : ajouter un service
chkconfig --level [0123456] service {on,off,reset} : modifier le comporte d'un service
chkconfig --list service : lister les association de services / runlevel
runlevel : Afficher le runlevel actuel [ contrôle le choix des processus / arrêt / run / restart / sous forme de numéro
Init {0123456Qq} : changer de runlevel
telinit {0123456Qq} : changer de runlevel
Shutdown {-rhc} time {"warning message"] : éteindre
pstree : hiérarchie de tous les processus sur tons système [Parent, enfant ect]
jobs : afficher les processus de votre session
fg : réactiver un processus stoppé et le mettre en avant-plan
bg ; réactiver un processus stoppé et le mettre en arrière-plan
renice priority : permet de modifier la priorité d'un processus
SIGKILL : indique a un processus de se terminer brutalement
SIGHUP :
SIGTERM : il indiqué a un processus de s'arrêter mais peut être intercepter et ignorer
Kill + PID : envoie un sigterm pour tuer un processus
Kill -9 + PID : envoie un sigkill pour tuer brutalement le processus
nohup : lance un programme persistant même après déconnexion du terminal il continue de fonctionner
Newgrp : change de groupe principal l'utilisateur
Groupadd : ajouter un groupe
useradd: ajouter un utilisateur
usermod : modifier un utilisateur
Groupemod : modification d'un groupe
Groupdel nom : suppression d'un groupe
Userdel : suppression de l'utilisateur
Passwd : modifier le mot de passe
Chage : modifie le nombre de jours entre les changements de mots de passe et la date du dernier changement
Lpr : soumettre une tache d'impression
Lpstat : information sur le cups
Lpq : information sur une file d'impression
Lprm : annuler une tache d'impression
Newgrp 'groupe' : pour changer d'identifiant de groupe en cours de session
Groups : voir tous les groupe de l'utilisateur actuel
/etc/passwd : tous les users sur le serveur
date : date actuel
Crontab –e : créer un fichier crontab = Tableau = Minute | heure | jour du mois | mois | jour de la semaine
Atq : lister les taches planifié
Atrm : supression d'une tache
At + heure + date : ajoute une tache planifié
Ifconfig : affichier les informations des interfaces réseau IP