nIQnutn

Le numérique libre en contre-addiction

Commandes de base pour Debian

Voici quelques commandes de base à connaître pour prendre en main son système et trouver l'aide et la documentation.

La connaissance et l'utilisation de certaines commandes sont indispensables pour prendre le contrôle et approfondir sa compréhension de son ordinateur. Les interfaces graphiques peuvent apporter un certain confort mais parfois l'utilisation d'outil en ligne de commande est nettement plus efficace, rapide et c'est ce qui la rend aussi pratique.
Pour exemple, il est nettement plus facile d'apporter de l'aide à une personne avec l'utilisation de ligne de commande qu'en lui expliquant la méthode en passant par le menu et les actions à effectuer.

Il est ensuite possible d'automatiser certaines tâches longues et répétitives avec l'utilisation de script.

Pour utiliser une commande, il faudra connaître sa syntaxe. Cette syntaxe peut différer selon les outils. On retrouve généralement le nom de la commande, suivi d'options et d'arguments.

commande [OPTION] ... <ARGUMENT> ...
cat -n /etc/apt/sources.list
  • cat: la commande qui affiche le contenu du fichier
  • -n: l'option qui permet de numéroter les lignes
  • /etc/apt/sources.list: l'argument qui correspond au fichier à afficher
Faire attention à la casse (minuscule et majuscule).

Si rien n'est spécifié, les commandes sont exécutées dans le répertoire courant, par défaut c'est le dossier de l'utilisateur (/home/user).

Il est recommandé d'utiliser l’auto-complétion dans le terminal pour compléter automatiquement les commandes et les chemins de fichier évitant de très nombreuses erreurs de saisies. Il suffit de commencer la saisie du nom de la commande ou du chemin puis de compléter automatiquement en utilisant la touche tab. Si plusieurs choix sont disponibles, il suffit d'appuyer deux fois sur tab pour d'afficher la liste complète.

Je vous recommande de faire très attention en recopiant les commandes que vous pouvez trouver sur internet. Il n'est pas impossible qu'une commande exécute un code malveillant.
Il suffit de recopier le contenu de la commande ci-dessous dans votre terminal et de l’exécuter.
cat /etc/apt/sources.list ;    echo -e "\033[31mJe suis naïf !" ; 
cat
/etc/apt/sources.list.d/*.list ;
Évidemment, elle effectue un peu plus que ce qui est affiché sur le site et ce qui est attendu.

On peut maintenant lancer le terminal.

Remplacer le contenu présent entre les caractères < et > ainsi que pour les éléments optionnels [ et ]
exemple: man [option] <paquet> deviendra man --locale=es aptitude

Obtenir de l'aide

Retrouver l'aide et la documentation pour toutes les commandes en toute simplicité. Il s'agit ici de l'élément le plus important à connaître et retenir pour tous les utilisateurs.

Lire l'aide en ligne concernant chaque commande et de nombreux fichiers de configuration:

$user
man <page>

man aptitude            # consulter le manuel d'aptitude 

Aide concise pour la plupart des commandes:

$user
<commande> --help
<commande> -h

aptitude --help         # consulter l'aide d'aptitude

Documentation sur le web: référence, manuels, FAQ, HowTo, etc. sur http://www.debian.org/doc/.

Wiki Debian, contient de nombreuses informations utiles sur http://wiki.debian.org/.

Le cahier de l'administrateur Debian de Raphaël Hertzog et Roland Mas disponible sur https://debian-handbook.info/.

Installer le guide Référence Debian de Osamu Aoki:

#root
apt-get install debian-reference-fr 

Consulter le guide Référence Debian:

$user
debian-reference 

Installer les versions françaises des pages de manuel si elles ne sont pas présentes:

#root
apt-get install manpages-fr manpages-fr-extra 

Gestion des paquets

Mettre à jour la liste des paquets depuis les dépôts:

#root
apt-get update 

Mettre à jour tous les paquets installés:

#root
apt-get upgrade 

Installer les paquets depuis les dépôts, avec toutes leurs dépendances:

#root
apt-get install <paquet>

apt-get install geany         # installer le paquet geany 

Supprimer des paquets avec tous ceux dont ils dépendent:

#root
apt-get remove <paquet>

apt-get remove geany          # supprimer le paquet geany

Rechercher les paquets et les descriptions correspondants au motif:

$user
apt-cache search <motif>

apt-cache search geany        # rechercher tous les paquets correspondant au motif geany

Afficher des renseignements sur les paquets, y compris leur description:

$user
apt-cache show <paquet>

apt-cache show geany          # afficher les renseignements sur le paquet geany 

Afficher la version et la priorité des paquets disponibles:

$user
apt-cache policy <paquet>

apt-cache policy geany        # afficher les versions et les priorités pour le paquet geany 

Afficher les sources utilisées:

$user
cat -n /etc/apt/sources.list /etc/apt/sources.list.d/*.list 

Gestion des fichiers et dossiers

Afficher le contenu des répertoires:

$user
ls <dossier>

ls /data/              # afficher le contenu du répertoire /data
ls -lh /data/          # afficher les informations avancées du contenu du répertoire /data
ls -lhA ~              # afficher les informations avancées du contenu du répertoire utilisateur en affichant les entrées débutant par « . » (fichiers cachés) 

Changer de répertoire:

$user
cd <dossier>

cd /test               # se déplacer vers le répertoire /test 
cd ..                  # se déplacer vers le répertoire parent

Créer des répertoires:

$user
mkdir <dossier>  

mkdir /test            # créer le dossier test

Supprimer des répertoires vides.

$user
rmdir <dossier>

rmdir /test            # supprimer le dossier vide test 

Copier des fichiers et des répertoires.

$user
cp <source> <cible>

cp /etc/apt/sources.list /sauvegarde/               # copier le fichier sources.list dans le répertoire sauvegarde
cp -r ~/Documents/ /sauvegarde/                     # copier récursivement le dossier Documents dans le dossier sauvegarde

Déplacer ou renommer des fichiers:

$user
mv <source> <cible>

mv /data/tuto.txt /data/tuto.txt.bak                # renommer le fichier tuto.txt en tuto.txt.bak
mv ~/tuto.txt /sauvegarde/                          # déplacer le fichier tuto.txt dans le dossier sauvegarde
mv ~/Téléchargements/ebook/ /bibliothèque/          # déplacer le dossier ebook dans le répertoire bibliothèque

Créer un lien symbolique vers un fichier:

$user
ln -s <cible> <lien>

ln -s /data/tuto.txt ~/Bureau/lien-tuto.txt         # créer un lien sur le Bureau vers le fichier tuto.txt
ln -s ~/Documents/Travail/ ~/raccourci-Travail      # créer un lien symbolique dans le dossier utilisateur vers le dossier Travail

Supprimer des fichiers:

$user
rm <fichier>

rm /data/tuto.txt                   # supprimer le fichier tuto.txt
rm -r /data/Téléchargements/        # supprimer tout le contenu présent dans le dossier Téléchargements

Créer un fichier:

$user
touch <fichier>

touch /data/test.txt                # créer le fichier test.txt

Afficher le contenu d'un fichier:

$user
cat <fichier>

cat /etc/apt/sources.list           # afficher le contenu du fichier sources.list
cat -n /etc/apt/sources.list        # afficher le contenu du fichier sources.list et numéroter les lignes 

Éditer un fichier texte:

$user
nano <fichier>

nano /etc/apt/sources.list          # éditer le fichier sources.list
nano -B  /etc/apt/sources.list      # éditer le fichier sources.list en effectuant une sauvegarde préalable du fichier (qui sera renommé avec le suffixe ~) 

Gestion des processus

Afficher les processus en temps réel:

$user
top 

Afficher la liste des processus en cours:

$user
ps

ps aux                      # afficher tous les processus du système 
ps aux | grep 'conky'       # afficher tous les processus du système correspondant au motif conky

Terminer un processus par son PID:

$user
kill <pid>

kill 1955                   # tuer le processus correspondant au PID 1955 

Terminer un processus par son nom:

$user
killall <commande>

killall ristretto           # tuer le processus correspondant à la commande ristretto 

Recherche

Afficher les lignes correspondant à un motif:

$user
grep <motif> [fichier]             

grep sources.list /data/tuto.txt        # affiche les lignes correspondant à sources.list dans le fichier tuto.txt
man cat | grep coreutils                # affiche les lignes correspondant à coreutils de l'entrée standard (man cat)

Rechercher des fichiers dans une hiérarchie de répertoires:

$user
find <dossier> [option]

find /data -type f -name ".*"           # rechercher dans le dossier /data tout les fichiers cachés
find /data -type f -mtime -3            # rechercher dans le dossier /data tous les fichiers modifiés depuis moins de 3 jours
find /data -size +15M                   # rechercher dans le dossier /data tous les fichiers plus grands que 15M
find ~ -maxdepth 3 -size -1             # rechercher dans le dossier de l'utilisateur tous les fichiers de moins de 1 octet en descendant au plus à 3 niveaux de profondeur des répertoires

Gestion des commandes

Utiliser la sortie de commande1 comme entrée de la commande2:

$user
commande1 | commande2

ls -lh | grep tuto.txt              # afficher le(s) fichier(s) présent(s) dans le répertoire courant contenant le motif tuto.txt 

Écrire un fichier avec la sortie d’une commande:

$user
commande > fichier 

man cat > /tmp/manual_cat.txt       # envoyer le manuel cat dans le fichier manual_cat.txt

Ajouter la sortie d’une commande à un fichier:

$user
commande >> fichier

date +%D >> /tmp/manual_cat.txt     # rajouter la date à la suite du fichier manual_cat.txt 

Enchaîner plusieurs commandes:

$user
commande1 && commande2

touch /tmp/test.txt && mv /tmp/test.txt /tmp/test.txt.bak        # créer le fichier text.txt puis le renommer en test.txt.bak 

Divers

Changer d'identifiant d'utilisateur ou devenir superutilisateur:

$user
su

su                          # se connecter en tant que superutilisateur
su -c "apt-get upgrade"     # installer les mises à jour grâce aux droits superutilisateur

Gestion de l'alimentation:

$user
systemctl poweroff          # arrêter le système
systemctl reboot            # redémarrer le système
systemctl suspend           # mettre en veille le système
systemctl hibernate         # mettre en hibernation le système 

Antisèche

Télécharger le fichier commandes_base.pdf
Télécharger le fichier source commandes_base.odt

Ressources

7 commentaires

Ned |

Hello,

l'exemple de commande potentiellement malveillante me laisse perplexe : j'ai copié la ligne et l'ai collé dans une fenêtre d'éditeur de texte (pluma), et je ne retrouve que "cat /etc/apt/sources.list"
Je ne nie pas que ça puisse exister (j'avais lu l'article de Korben à ce sujet), mais juste que ton exemple ne fonctionne pas. Est-ce du à mes blockers (µ-block & disconnect) ?

Celedhrim |

Attention :

touch /tmp/test.txt & mv /tmp/test.txt /tmp/test.txt.bak

passera le touch en background , si on veux une action "puis" la suivante , c'est ";" ou "&&"

; => la suivante quelque soit la fin de la première
&& => la suivant si la précédente c'est bien fini , sinon on stop tout

donc ici le && permet de faire le mv que si le touch a bien fonctionné , sinon on ne fait pas le mv !

nIQnutn |

@Celedhrim :
Merci, c'est corrigé.

olafkewl |

Sur la dernière Debian en date (Jessie) et ses dérivées, on peut maintenant utiliser simplement "apt" :

# apt install htop
# apt search htop

nIQnutn |

@olafkewl :
j'en ai déjà parlé ici Gestion des paquets avec APT.

nIQnutn |

@Ned :
j'ai modifié un peu la commande et ça devrait être plus évident.

H2L29 |

coucou :) pour la commande find j'ajoute 2>/dev/null pour éviter qu'il floode la sortie avec des lignes comme "permission non accordée" (ça renvoie la sortie stderr vers un trou noir et c'est utilisable pour à peu près tout, on peut éventuellement rediriger ailleurs comme un fichier de logs)

Fil RSS des commentaires de cet article

Écrire un commentaire