Quelques listes de commandes
Commandes liées au manuel
- lecture du manuel d'un programme, d'un fichier spécial ou de configuration, d'une notion :
man <programme>, man <fichier>, man <notion>
- rechercher un mot clef dans les descriptifs des manuels :
man -k <mot_clef>
- notion de sections,
man man pour obtenir la liste
- manuel d'une section particulière :
man <section> <commande> ou man <commande>.<section>
Commandes de navigation dans l'arborescence des répertoires
- créer un répertoire :
mkdir (option -p)
- changer de répertoire :
cd
- savoir dans quel répertoire on se trouve :
pwd (voir l'option -p)
- lister le contenu d'un répertoire :
tree et ls (options -i, -l, -a, -h)
- supprimer un fichier :
rm (options -d, -r, -f)
- supprimer un répertoire vide en toute sécurité :
rm -d (ou son équivalent rmdir)
- supprimer un répertoire et tout son contenu sans warning :
rm -rf attention
- créer un fichier vide ou faire comme s'il venait d'être modifié :
touch
- copier un fichier ou un répertoire, faire un lien (hardlink) :
cp (options -r, -a, -l)
- copier un certain nombre d'octets d'un fichier :
dd
- créer un lien symbolique :
ln -s
- afficher le chemin pointé par un lien symbolique :
readlink
- déplacer un fichier :
mv
- déterminer le format d'un fichier (ascii, utf-8, html, pdf, png, odt, ...) :
file (options --mime*, -b)
- itérer dans l'arborescence :
find (nombreuses options -exec, -execdir, -empty, -newer, -uid, -name, -perm, -type, ...)
Commandes système de fichiers
- lister les systèmes de fichiers montés et leurs points de montage :
findmnt
- installer un système de fichier dans un block device :
mkfs
- vérifier l'intégrité d'un système de fichiers :
fsck
- monter/démonter un système de fichiers sur un répertoire de l'arborescence :
mount, umount
- voir les attributs d'inode d'un fichier :
stat
- indiquer l'espace occupé par les systèmes de fichiers :
df (option -h)
- évaluer l'espace disque occupé par des fichiers :
du (options -s, -h)
Gestion des périphériques de type bloc
- lister les périphériques de type bloc :
lsblk
- partitionner un périphérique de type bloc :
parted
- chiffrer un périphérique de type bloc :
cryptsetup (options luksFormat, open, close)
- fusionner/redécouper/etc des périphériques de type bloc :
lvm
- raid :
mdadm
- créer un périphérique de type bloc à partir d'un ficher régulier :
losetup (options -f, -d)
Commandes de manipulation de texte
Ces commandes permettent de manipuler du texte et se combinent très bien entre elles.
- éditer un fichier texte :
vim ou emacs
- envoyer du texte dans la sortie standard :
echo
- envoyer le contenu d'un fichier dans la sortie standard, concaténer plusieurs fichiers :
cat
- afficher le contenu d'un fichier texte et pouvoir y naviguer (cf cours introduction, raccourcis proches de
vim) : less
- rechercher une chaîne de caractère dans un fichier :
grep (options -v, -c, -i)
- afficher les différences entre deux fichiers texte :
diff (voir aussi vimdiff)
patch
- trier les lignes d'un fichier texte dans l'ordre alphabétique :
sort (option -n pour tri numérique)
- éliminer les lignes consécutives répétées :
uniq
- numéroter les lignes d'un fichier texte :
nl
- Concaténer et afficher des fichiers à l'envers (de la dernière ligne à la premiére) :
tac
- Inverser les lignes au niveau des caractères :
rev
join
paste
- récupérer des colonnes correspondant à certains champs d'un fichier :
cut
column
colrm
- afficher les premières lignes d'un fichier texte :
head (option -n pour spécifier le nombre de lignes)
- afficher les dernières lignes d'un fichier texte :
tail (option -n pour spécifier le nombre de lignes)
- compter le nombre de lignes/mots/octets/caractères d'un fichier texte :
wc (option -l)
- convertir des caractères :
tr
- changer l'encodage d'un fichier texte :
iconv
- couper chaque ligne de texte à une longueur donnée :
fold (options -s, -w)
- substitution de motifs, suppressions de lignes :
sed
- traitement de fichiers structurés en colonnes :
awk
- afficher les portions imprimables d'un fichier binaire :
strings
- afficher le contenu d'un fichier binaire en hexadécimal (4 bits par caractère) :
hexdump (option -C)
- afficher le contenu d'un fichier binaire en octal (3 bits par caractère) :
od
Commandes de gestion des users et groups
- changer les droits d'un fichier :
chmod (option -R)
- changer l'user et/ou le groupe propriétaire d'un fichier :
chown (option -R)
- créer un utilisateur :
adduser
- supprimer un utilisateur :
deluser
- créer un groupe :
addgroup
- ajouter un utilisateur à un groupe :
adduser
Commandes de gestion des processus
- lister les processus :
ps, pstree
- appels classiques :
ps aux (BSD), ps -eF (POSIX)
- selection des colonnes : option
-eo (colonnes utiles : pid,ppid,pgid,uid,gid,stat,comm[and])
- vue arborescente : option
--forest ou -f
- visualiser les processus et les trier selon leur consommation :
htop
- lister les
PID des processus correspondant à nom de commande : pidof
- quels processus accèdent à quels fichiers :
fuser, lsof
- informations contenues dans
/proc : man 5 proc
- envoyer un signal à un ou plusieurs processus :
kill (options -l, -15, -9)
- gestion des services :
systemd (en tant que root)
- démarrer un service :
systemctl start <service>
- éteindre un service :
systemctl stop <service>
- redémarrer un service :
systemctl restart <service>
- voir l'état d'un service, et la fin de son fichier de log :
systemctl status <service>
- activer le démarrage automatique d'un service :
systemctl enable <service>
- déasctiver le démarrage automatique d'un service :
systemctl disable <service>
- voir si le démarrage automatique d'un service est activé :
systemctl is-enabled <service>
- recharger la configuration d'un service :
systemctl reload <service>
Commandes réseau
- gestion de la couche liaison :
ip link
- gestion de l'inter-couche ARP (correspondance MAC-IP) :
ip neighbour
- gestion de la couche réseau :
ip address
- gestion de la table de routage :
ip route
- scanner des ports d'une machine distante (voir sur lesquels des services écoutent) :
nmap
- établir une connexion entre 2 extrémités (TCP, UDP, socket UNIX, fichier, terminal, ...) :
socat
- observer la route empruntée par les paquets vers une machine distante
traceroute (options --tcp, --udp)
- tester l'accessibilité d'une machine distante :
ping
- lister les sockets (TCP, UDP, mais aussi UNIX) :
ss
Commandes d'administration à distance
- shell distant
ssh (man 5 ssh_config pour les options)
- génerer une paire de clefs SSH :
ssh-keygen
- envoyer une clef publique SSH vers une machine distante :
ssh-copy-id
- synchronisation de répertoires entre machines locale et distante :
rsync (options -av)
- copie de fichiers entre machines locale et distante :
scp
- protocole d'échange de fichiers à travers SSH :
SFTP
- système de fichiers permettant de monter un répertoire distant sur un point de montage local :
sshfs
- gestionnaire d'archives :
tar (regex options (c|x|t)z?v?f)
- téléchargement de fichiers sur le web :
wget (nombreuses options)
Commandes de gestion des paquets (distributions de la famille Debian)
- à l'échelle de la distribution (DAG des dépendences des paquets) :
apt
- récupérer la liste des paquets disponibles avec leur numéro de version
apt update
- télécharger et installer les nouveaux paquets :
apt upgrade
- lister les paquets dont le descriptif contient un mot clef :
apt search
- installer un paquet :
apt install
- à l'échelle d'un paquet :
dpkg
- installer un paquet téléchargé manuellment
dpkg -i
- voir les fichiers fournis par un paquet (installé) :
dpkg -L
- voir quel paquet a fourni un fichier :
dpkg -S
Commandes quasi-synonymes
apropos ~ man -k
rmdir ~ rm -d
link ~ cp -l ~ ln
dlocate ~ dpkg -S
Options transverses à plusieurs commandes
-R (parfois -r) ou --recursive : recursivité, appliquer l'opération à la sous-arborescence du répertoire spécifié ou courant
-no-clobber : ne pas écraser un fichier existant
--dereference (ou --no-dereference), appliquer la commande au fichier pointé par le lien symbolique (ou pas)
-v, --verbose -vvv
-h (human readable)
-F décoration qui termine les noms de fichiers par / pour les répertoires, * pour les fichiers réguliers exécutables, @ pour les liens symboliques, etc