--- title: Bash - Aide-Mémoire sur les commandes Unix tags: Bash, Unix, Linux, Command, Base, Aide-Mémoire, Cheat-Sheet lang: fr image: https://i.imgur.com/9VqbD7I.jpg description: GA: UA-68715119-9 disqus: hackmd author: Nicolas Malet --- ![BASH](https://i.imgur.com/9VqbD7I.jpg) ###### tags: `Bash` `Unix` `Linux` `Command` `Base` `Aide-Mémoire` `Cheat-Sheet` # Aide-Mémoire Sur Les Commandes Linux Voici un aide-Mémoire sur les commandes linux et surtout des exemples d'utilisation. Ce guide va vous permettre de réviser ou d'apprendre les commandes de bases pour administrer un système Unix. ## Obtenir des informations sur le système d'exploitation - `lsb_release -a || uname -a || cat /etc/issue` : obtenir des informations sur le système - `screenfetch || neofetch` : obtenir des informations sur l'OS (noyau, nom de machine) - `echo "${XDG_CURRENT_DESKTOP}"` : connaître la version du bureau - `help <commande>` : afficher le guide sur l'utilisation d'une commande - `man <commande>` : afficher le manuel d'une commande - `man -L en <commande>` : afficher le manuel en Anglais - `info <commande>` : afficher le guide sur l'utilisation d'une commande - `info --apropos <commande>` : trouver toutes les pages infos se rapportant à un mot clé - `info --show-options <commande>` : Plus de détails sur les options - `apropos <commande>` : afficher seulement une courte description d'une commande - `whatis <commande>` : afficher une courte description d'une commande dans le terminal - `<commande> --help` : afficher l'aide d'une commande dans le terminal - `eg <commande>` : fournir des exemples d'utilisation - `Journalctl || cat /var/log/syslog` : consulter le journal du System-D - `vmstat` : info ram, swap, CPU - `free` : indique l’allocation de la ram et la mémoire libre restante - `/proc/` : - `cat /proc/version` : informations sur l'OS (noyau, nom de machine) - `cat /proc/meminfo` : fichier qui contient de nombreuses informations sur la mémoire. Il suffit d’en afficher la sortir avec cat `/proc/meminfo` - `cat /proc/cpuinfo` : fichier qui contient des infos sur le processeur - `cat /proc/version` : fichier qui contient des infos sur le noyau| - `cat /proc/mounts` : informations sur les systèmes de fichiers déjà montés - `cat /proc/devices` : informations sur les périphériques disponibles - `cat /proc/modules` : informations sur les modules activés dans le noyau - `cat /proc/cmdline` : informations sur les paramètres donnés au noyau lors de la mise en route ## Gérer les fichiers et les dossiers Organiser les fichiers et les dossiers - `pwd` : afficher le répertoire courant - `ls` : afficher le contenu du répertoire courant - `ls -lahF --color=auto` :::info voir `alias ll=ls -lahF` ::: - `ls -a` : afficher tous les fichiers et répertoires cachés - `ls -F` : indique le type d'élément - `ls -l` : liste détaillée - `ls -h` : afficher la taille en Ko, Mo, Go… - `ls -t` : trier par date de dernière modification - `tree` : lister les fichiers sous forme d'arborescence - `tree -a` : ajouter les fichiers caché à la liste - `cd` : changer de répertoire On peut « compléter » un chemin avec TAB - `touch` : créer un fichier - `mkdir` : créer un répertoire - `mkdir -p` : Il sert à créer tous les répertoires intermédiaires - `mkdir -p animaux/vertebres/chat` : Créer 3 répertoires - `du` : Connaître la taille - `du -abh /home/` - `du -a` : afficher la taille des répertoires, des sous-répertoires ET des fichiers - `du -b` : afficher la taille précise - `du -h` : séparateur de millier - `du -s` : afficher juste le grand total Par défaut du affiche la taille en Ko les répertoires (soit 4096 octets la taille par défaut pour les répertoires vides) - `cat` : Lire un fichier - `cat -n` : afficher des numéros de ligne - `cat -A` : lire le fichier et afficher les caractères invisibles - `tac` : lire le fichier à l'envers| - `less` : lire un fichier page à page **Navigation dans less :** - `ENTREE ou y OU ↑ ou ↓` : faire défiler ligne par ligne - `ESPACE ou b OU PAGIN UP ou PAGIN DOWN` : faire défiler les pages - `q` : arrête la lecture du fichier. Cela met fin à la commande less. - `=` : indique où vous en êtes dans le fichier (numéro des lignes affichées et pourcentage). - `h` : affiche l'aide (toutes les commandes que je vous apprends ici, je les tire de là). Tapez `q` pour sortir de l'aide. - `/` : tapez `/` suivi du texte que vous recherchez pour lancer le mode recherche. Faites Entrée pour valider. Pour ceux qui savent s'en servir, sachez que les expressions régulières sont acceptées. - `n` : après avoir fait une recherche avec `/`, la touche n vous permet d'aller à la prochaine occurrence de votre recherche. C'est un peu comme si vous cliquiez sur le bouton « Résultat suivant ». - `N` : pareil que n, mais pour revenir en arrière. - `most` : gérer le manuel en couleur - `head` : afficher les premières ligne d'un fichier - `head -n <nombre>` : afficher un nombre de ligne - `tail` : afficher les dernières ligne d'un fichier - `tail -n <nombre>` : afficher un nombre de ligne - `tail -f -s 3 <fichier>` : recherchera les changements toutes les trois secondes - `tail -f` : synchroniser toutes les n secondes - `tail -f /var/log/auth.log` - `cp` : copier un fichier - `cp -R` : copier un répertoire - `mv` : déplacer ou renommer Pas de distinction entre les fichiers et les répertoire, ça marche pour les 2 - `rm` : supprimer un fichier - `rm -i` : demander confirmation - `rm -r` : supprimer un répertoire - `rm -f` : forcer la suppression - `rm -v` : mode verbeux - `rmdir` : éffacer les dossiers vide - `ln` : créer un lien (ou raccourci) - `ln -s` : créer un lien symbolique - `ln -s <répertoire_cible> <nom_du_lien>` :::info Lien physique (lien directe) = 2 noms (inodes) pour un même fichier (Lien physique pas possible sur les répertoire) = CLONE Lien symbolique = (un peu comme les raccourcis Windows) (panneau de direction) ::: - Extra : - `pushd` <-> `popd` : permet d'aller dans un dossier et de retourner dans le - précédant - `od -c` : afficher les caractères invisibles - `xargs` : afficher en ligne ## Administrer des utilisateurs Créer et administrer des utilisateurs et des groupes - `cat /etc/passwd` : consulter la liste des utilisateurs :::info x signifie qu'un mot de passe est définie dans `/etc/shadow` ::: - `id` : obtenir des informations sur l'utilisateur (UID et GUID) - `sudo` : passer en mode administrateur de manière permanente - `sudo visudo` : éditer `/etc/sudoers` - `sudo -k` : termine une session sudo éventuellement ouverte, cela assure que la prochaine instruction sudo demandera bien un mot de passe. - `sudo -s` : ouvre le shell spécifié dans `/etc/passwd` pour l'utilisateur cible (root par défaut) - `sudo -i` : simule un login initial et ouvre le shell spécifié dans `/etc/passwd` pour l'utilisateur cible (root par défaut). Cela signifie que des fichiers spécifiques tels que .login ou .profile seront lus par le shell ainsi lancé - `sudo -E` : préserve l'environnement du shell depuis lequel la commande est lancée - `sudo -u <user>` : lancer la commande en tant que l'utilisateur - `sudo -g <group>` : lancer la commande avec le groupe bar spécifié (le groupe spécifié est le groupe primaire de l'utilisateur cible indiqué dans `/etc/passwd`) - `sudo -i -u <user>` : permet de se connecter en tant que l'utilisateur toto (ne pas utiliser ces options pour root) - `su <user>` : se connecter avec un autre compte utilisateur - `su root` - `adduser <user>` : ajouter un nouvel utilisateur + créer répertoire home - `sudo adduser <user> <group>` : ajouter un utilisateur à un groupe - `usermod` : modifier un utilisateur - `sudo usermod -l` : renommer l'utilisateur - `sudo usermod -l <nouveau user> -d <nouveau répertoire home> -m <ancien user>` : renommer l'utilisateur (le nom de son répertoire personnel ne sera pas changé par contre) - `sudo usermod -g` : changer de groupe - `sudo usermod -g <group> <user>` : changer de groupe mais supprime l’ancien - `sudo usermod -aG <group> <user>` : ajouter un groupe sans supprimer l’ancien - `sudo usermod -d /home/<nouveau-répertoire> -m -l <nouveau-nom> -c <nouveau-nom-complet> <ancien-nom>` - `sudo usermod --expiredate 1 <nom_utilisateur>` : verrouiller un compte - `sudo usermod --expiredate '' <nom utilisateur>` : déverrouiller un compte - `passwd <user>` : changer le mot de passe - `sudo passwd -e <user>` : forcer l'utilisateur a changer le mot de passe - `deluser <user>` : supprimer un compte - `sudo deluser --remove-home <user>` : supprimer un utilisateur + répertoire home - `sudo deluser --remove-all-files <user>` : supprimer un utilisateur + tous les fichiers du système possédés par l'utilisateur - `sudo deluser <user> <group>` : supprimer l'utilisateur d'un groupe ## Gérer des groupes - créer et administrer des groupes - `cat /etc/group` : consulter la liste des groupes - `groups` : afficher les groupes de l'utilisateur - `addgroup <group>` : créer un groupe - `sudo addgroup <user> <group>` : ajouter un utilisateur à un groupe - `groupmod` : modifier un groupe - `gpasswd` : gérer les administrateurs d'un groupe - `delgroup <group>` : supprimer un groupe - `sudo delgroup <user> <group>` : supprime l'utilisateur d'un groupe - `chgrp <group> <fichier>` : Changer le groupe propriétaire d'un fichier - `newgrp <group>` : changer (switcher) de groupe ## Gérer les proprietaires d'un fichier - `chown <user> <fichier>` : changer le propriétaire d'un fichier - `sudo chown <user>:<group> <fichier>` - `sudo chown -R <user>:<group> <répertoire/>` - `sudo chown <user>:<group> <fichier>` : changer le groupe propriétaire d'un fichier - `sudo chown -R <user>:<group> <répertoire/>` : affecter récursivement les sous-répertoires - `chgrp <group> <fichier>` : changer le groupe propriétaire d'un fichier - `sudo chgrp -R <group> <fichier>` ## Modifier les droits d'accès d'un fichier ou d'un dossier - `chmod ### <fichier>` : réaffecter les droits sur un fichier - `chmod -R ### <répertoire/>` : réaffecter les droits sur un répertoire - `umask` : affecter des droits à la création d'un fichier ou d'un répertoire - `umask u=rwx,g=rwx,o=-` ## Rechercher des fichiers ou des dossiers sur le disque Rechercher un fichier sur le disque - `locate <fichier>` : rechercher un fichier par son nom :::info Nécessite la mise à jour de la base `updatedb` : pour mettre à jour la base ::: - `find <ou> <quoi> <comment>` : rechercher un fichier sur le disque find parcours le disque - Ou Quoi Comment - `find -name` : rechercher par nom - `find -iname` : rechercher par nom (insensible à la casse) - `find -size` : rechercher à partir de la taille (ex: -size +10M) - `find -atime` : rechercher à partir de la date de dernier accès (ex: `-atime -7`) - `find -type d` : rechercher uniquement des répertoires (directories) ; - `find -type f` : rechercher uniquement des fichiers (files). - `find * -type -f -print` : permet d'afficher les résultats sans `./` - `find -printf "%p - %u\n"` : Afficher les fichiers de façon formatée - `find -delete` : supprimer les fichiers trouvés - `find <chemin> -name <expression> -ok <commande> {} \;` : permettre d'exécuter une commande après la recherche - confirmer yes - REGEX - `find / -regextype "posix-extended" -regex ".*\/a.*a\.txt" 2> /dev/null` Attention dans ce cas de figure -regex remplace -name - `find / -regextype "posix-egrep" -iregex ".*\/a.*a\.txt" 2> /dev/null` Voir page find -regex :::warning Attention pour la regex il faut tenir compte de la syntaxe du chemin complet ::: ## Gérer l'affichage des informations Organiser, traiter et manipuler l'information - `grep <expression> <fichier>` : rechercher un mot dans un fichier (compatible regex) - `grep -i` : respecter la sensibilité de la case - `grep -n` : afficher le numéro de ligne - `grep -r` : rechercher dans les fichiers du répertoire — `rgrep` - `grep -E` : expression régulières, `egrep` ou -e ou -P (Perl) - `grep -v` : inverser la recherche - `less /etc/apt/sources.list` \| `grep -v "#"` - `grep -o` : afficher l'expression seule - `grep -w` : attraper seulement un mot - `grep -P` : utiliser regex perl - `grep '^$' <fichier>` : afficher les lignes non-vides - `cat /etc/passwd/` : - `grep -P '10[0-9]{2}'` : afficher la liste des utilisateurs créés par root - `history | grep <commande>` - `sort` : trier les lignes de texte par ordre alphabétique dans un fichier - `sort -o` : écrire le résultat dans un fichier - `sort -r` : trier en ordre inverse - `sort -R` : trier aléatoirement - `sort -n` : trier des nombres - `wc` : compter le nb de lignes, mots et caractères d’un fichier :::warning Pour avoir le nombre de caractère exacte, il faut retirer le nombre de ligne ::: - `wc -l` : compter le nombre de lignes - `wc -w` : compter le nombre de mots - `wc -c` : compter le nombre d'octets - `wc -m` : compter le nombre de caractères - `uniq` : supprimer des lignes en double dans un fichier - `uniq -c` : compter le nombre d'occurrence - `uniq -d` : afficher uniquement les lignes présentes en double - `cut` : couper les lignes d’un fichier à l’aide d’un délimiteur - `cut -d` : indique quel est le délimiteur dans le fichier - `cut -f` : indique le numéro du ou des champs à couper - `cut -d <délimiteur> -f <numéro du champ> <fichier>` - `column` : transformer un texte en tableau grace à un délimiteur - `column -s <délimiteur> -t <fichier>` - `tr` : remplacer des caractères (moins complet que `sed`) - `tr "Jean" "Michel" < fichier.txt` : remplacer tous les termes Jean par Michel - `tr -s " " ";" fichier.txt` : remplacer les espace blanc consécutif par un point virgule - `sed` : remplacer des caractères (compatible regex) - `sed -i` : écrire le résultat sur le disque - `sed [option] 's/<expression à remplacer>/<nouvelle expression>/g'` : remplace toutes les expressions par la nouvelle - `sed "s/<body>/<body> $a/g" index.html` : (doubles quotes pour interpréter les variables et `\|` car $a contient déjà un slash ) - `sed -z "s/Dupond/Dupont/2" fichier.txt` - `sed -i '1s/^/your text\n/' <file>` - `awk` : [...] - `rename` : renommer des fichiers - `rename -n` : tester de manière provisoire - `rename -n 's/(.*)-(.*)\.txt/$2 - $1.txt/g ' francois-pignon.txt` - `rename -n 'y/-/_/g ' francois-pignon.txt` y traduit `-` par `_` - `cmp` : comparer deux fichiers - `diff` : afficher les différences entre 2 fichiers texte (ligne par ligne) - `diff --color=always -u document1.txt document2.txt` - `patch` : [...] - `join` : joindre deux fichiers - `nl` : lire et numéroter les lignes ## Gérer les disques - `df` : % d'utilisation du disque - `df -h` : séparateur de millier - `fdisk` : lister les disques ou partitions - `fdisk -l` : lister tous les disques avec détails - `lsblk` : lister les disques ou partitions (permet de voir une clé USB) - `mount` : monter un lecteur pour y accéder - `mkdir /media/<dossier>` - `mount -t <type>` : préciser le Système de fichier - `mount /dev/<sd??> /media/<dossier>` - `mount /dev/<sdb??> /mnt/` - `umount` - `umount /mnt/` : démonter un lecteur (un disque) ## Gérer les paquets Mettre à jour, installer et désinstaller des paquets :::info Pour DEBIAN ::: - `cat /etc/apt/sources.list` : afficher la liste les dépôts - `cat /etc/apt/sources.list | grep -v "#"` - `apt-get update` : mettre à jours la liste des paquets disponibles et les maj disponibles - `apt-get list --upgradable` : afficher la liste des paquets à mettre à jour - `apt-get upgrade` : mettre a jour les paquets - `do-release-upgrade` : mettre à jour le système - `do-release-upgrade -d` : forcer la mise à niveau - `do-release-upgrade --check-dist-upgrade-only` : vérifier une proposition de mise à niveau - `do-release-upgrade --sandbox` : tester la mise à niveau avant de la déployer - `apt-cache <commande>` - `apt-cache search <paquet>` : rechercher un paquet - `apt-cache search <paquet> | grep <expression>` - `apt-cache madison <paquet>` : afficher les différentes versions de paquet - `apt-cache policy <paquet>` : savoir si un paquet est installé - `apt-cache depends <paquet>` : afficher la liste de toutes les dépendances d'un paquet et la liste de tous les paquets possibles qui satisfont ces dépendances - `apt-get install <paquet>` : installer un paquet - `sudo apt-get install -d <paquet>` : installer un paquet avec ses dépendances - `apt-get autoremove <paquet>` : désinstaller un paquet - `sudo apt-get autoremove --purge <paquet>` : désinstaller un paquet et supprimer aussi les fichiers de config - `dpkg`: gGérer les paquets en local - `dpkg-reconfigure <paquet>` : reconfigurer un paquet - `dpkg -l` : lister tous les paquets installés - `dpkg --status <paquet>` : savoir si un paquet est installé - `dpkg --get-selections` : savoir si des paquets sont installés - `gdebi <paquet.deb>` : installer des paquets .deb en source externe :::info Autre système DEBIAN `aptitude apt-get && aptitude full-upgrade` REDHAT `yum update` ::: ### Transferer des données Envoyer des fichiers sur une machine distante - `ssh <user>@<host>` (IP local ou public) : se connecter au serveur en SSH (port 22 par défaut) - `ssh <user>@<host> -p <port>` : se connecter au serveur en SSH avec un port spécifique :::warning Pour plus de sécurité, voir le sujet [ici](https://www.alternative-rvb.blog/actus/ssh-utilisez-une-connexion-securisee/) ::: - `ssh <user>@<host> 'ls -a > ~/test.txt'` : exécuter une commande sur le serveur - Interdire ou autoriser des utilisateurs - `vi /etc/ssh/sshd_config` - `AllowUsers user1 user2` : Autorise seulement ces utilisateurs - `AllowGroups group1 group2` : idem pour les groupes - `DenyUsers user1 user2` - `DenyGroups group1 group2` - `wget <url>` : télécharger un fichier - `wget -c <url>` : reprendre un téléchargement annulé - `wget -P <répertoire de destination> <url>`: pour spécifier un répertoire de destination - `nohup wget <url>` : lancer un téléchargement en tâche de fond - `wget --background <url>` : lancer un téléchargement en tâche de fond - `scp <source> <user>@<host>:<destination/>` : copier des fichiers sur une machine distante (commande sécurisée par SSH) - `scp -r <dossier> <user>@<host>:~/<dossier>/` : copier un dossier sur une machine distante - `scp <user>@<host>:~/<fichier> <fichier-copie>` : SCP opération inverse - Copier un fichier d'un autre ordinateur vers le vôtre :::warning Si le serveur SSH auquel vous essayez de vous connecter n'est pas sur le port standard (22), il faudra indiquer le numéro du port avec l'option -P ::: - `scp -P 16296 <fichier> <user>@<host>:<fichier-copie>` La commande SSH a aussi une option pour indiquer un port ; vous vous en souvenez peut-être, c'est `-p` ! Faites donc attention car avec SSH c'est un « p » minuscule qu'il faut utiliser alors qu’avec SCP c'est un « P » majuscule ! - `ftp <host>` : transférer des fichiers via le protocole ftp - `ftp> <commande>` - `ftp> get <fichier>` : télécharge un fichier - `ftp> put <fichier>` : téléverse un fichier ! Pour executer les commandes chez soi Ex : `ftp> !ls` - `sftp <user>@<host>` : transférer des fichiers via le protocole SSH Pour se connecter en SFTP, on utilise le même port que SSH (soit 22 par défaut). Si votre serveur SSH fonctionne sur un autre port, vous devrez le préciser comme ceci - `sftp -P27401 <user>@<host>` - `rsync` : synchroniser des répertoires - `rsync -arv <source> <destination>` : synchroniser des répertoires - `rsync -arv --delete <source> <destination>` : synchroniser des répertoires et enlever les suppressions - `rsync -arvz --delete --backup --backup-dir=/home/<user>/<trash> <source> <user>@<host>:<source-copy>` ## Gérer les processus - `<commande> &` : exécuter en tache de fond (attaché à la console) - `nohup <commande>` : exécuter en tache de fond (détaché de la console ) - `Ctrl + Z` : mettre en pause l'exécution du programme - `jobs` : lister les processus mis en pause - `jobs -l` : lister les processus mis en pause et afficher le PID associé ```bash $ [1] job 1 $ [2] job 2 ``` - `fg %1` : passer le processus 1 en avant plan (`fg` = _foreground_) - `bg %1` : passer le processus 1 en arrière plan (`bg` = _background_) - `kill %1` : tuer le processus 1 - `ps` : liste statique des processus - `ps -ef` : lister tous les processus - `ps -ejH` : afficher les processus en arbre - `ps -ps -ef f` : afficher les processus en arbre - `ps -eo pid,user,argts` : afficher sous le format - `ps -u utilisateur` : lister les processus lancés par un utilisateur - `pstree` : liste les processus sous forme d'arborescence - `top` : liste dynamique des processus - `q` : ferme top - `h` : afficher l'aide, et donc la liste des touches utilisables. - `B` : mettre en gras certains éléments. - `f` : ajouter ou supprime des colonnes dans la liste. - `F` : changer la colonne selon laquelle les processus sont triés. En général, laisser le tri par défaut en fonction de %CPU est suffisant. - `u` : filtre en fonction de l'utilisateur que vous voulez. - `k` : tuer un processus, c'est-à-dire arrêter ce processus. Ne vous inquiétez pas, en général les processus ne souffrent pas. On vous demandera le numéro (PID) du processus que vous voulez tuer. Nous reviendrons sur l'arrêt des processus un peu plus loin. - `s` : changer l'intervalle de temps entre chaque rafraîchissement de la liste (par défaut, c'est toutes les trois secondes). - `Ctrl + C` : arrêter un processus lancé en console - `kill` : tuer un processus - `kill -l` liste des signaux - `kill <pid>` - `killall <process_name>` - `killall -<u> <user>` : ils auront un processus bash (ou similaire) associé à leur session de connexion qui tueront leur session. ## Gérer les services - `systemctl` : gérer les processus et services - `systemctl list-units` : lister toutes les unités - `systemctl list-units -t service` : lister toutes les unités de type service| - `systemctl status <service>.service` : Affiche le statut du servive (actif ou inactif) - `systemctl start <service>.service` : démarrer un service - `systemctl restart <service>.service` : redémarrer un service - `systemctl reload <service>.service` : redémarrer un service - `systemctl stop <service>.service` : arrêter un service - `systemctl enable <service>.service` : activer un service - `systemctl disable <service>.service` : désactiver un service :::info Le prefixe `.service` n'est pas obligatoire ::: - `/etc/init.d` - `/etc/init.d/<servive> start` - `/etc/init.d/<servive> restart` - `/etc/init.d/<servive> stop` - `/etc/init.d/<servive> status` - `service` : gérer les services - `service --status-all` : lister tous les services du système - `service <service> start` - `service <service> restart` - `service <service> reload` - `service <service> stop` - Paquet upstart : - `start <serviceName>` - `stop <serviceName>` - `status <serviceName>` :::info restart = stop + start reload = remain running + re-read configuration files ::: ## gérér le réseau - `w` : afficher qui est connecté et ce qu'il fait - `uptime` : afficher la charge CPU - `who` : afficher qui est connecté - `who -uH` : afficher qui est connecté et le numéro de processus Bash associé - `last` : afficher les dernières informations de connexions d'un utilisateur - `last <user>` - `host <ip>` : afficher l'IP ou le domaine - `whois <host>` : informations sur le propriétaire d'un site - `ifconfig` : connaitre la configuration réseau de la machine - `vi /etc/network/interfaces` : modifier ce fichier pour configurer une IP fixe - `ifup` : activer une interface réseau - `ifup wlan0` - `ifdown` : désactiver une interface réseau - `ip` | `ip a` - `ip -c -4 a show wifi0` - `ip -o -c -4 a show wifi0` - `ping <ip adress>` - `ping -c` : nombre de ping lancé - `ping -c 1 -i 0.2 <host>` - `ping -i` : donner l'intervalle en ms - `hotname` : afficher le nom de la machine - `hotname -I` : retourne l'IP de la machine - `netstat` : informations sur le réseau (port) - `netstat -utanc` - `netstat -u` : afficher les connexions UDP (utilisé dans les jeux en réseau et pour les communications vocales - avec Skype, par exemple);| - `netstat -t` : afficher les connexions TCP ; - `netstat -a` : afficher toutes les connexions quel que soit leur état - `netstat -n` : avoir les numéros des ports plutôt qu'une description en toutes lettres - `netstat -c` : synchronise la réponse - `netstat -p` : afficher seulement les ports Chaque connexion a un état et de nombreux états sont possibles **ESTABLISHED** : la connexion a été établie avec l'ordinateur distant **TIME_WAIT** : la connexion attend le traitement de tous les paquets encore sur le réseau avant de commencer la fermeture **CLOSE_WAIT** : le serveur distant a arrêté la connexion de lui-même (peut-être parce que vous êtes restés inactifs trop longtemps ?) **CLOSED** : la connexion n'est pas utilisée **CLOSING** : la fermeture de la connexion est entamée mais toutes les données n'ont pas encore été envoyées **LISTEN** : à l'écoute des connexions entrantes. - `iptables` : [...] - `traceroute <host>` : [...] - `curl` : [...] - `curl ifconfig.me` : connaitre son adresse IP publique :::info Voir aussi les paquets `nmtui` et `nmcli` REDHAT — `ss -tpn` : informations sur le réseau (port) ::: ## Archiver et compresser des fichiers et dossiers - `tar` - `tar -cvf <archive.tar> <dossier/>` : Assembler des fichiers dans une archive - `tar -c` : signifie créer une archive tar ; - `tar -v` : signifie afficher le détail des opérations ; - `tar -f`: signifie assembler l'archive dans un fichier. - `tar -tf` : afficher le contenu de l'archive sans l'extraire - `tar -tf <archive.tar>` - `tar -rvf` : ajouter un fichier - `tar -rvf <archive.tar> <fichier_supplementaire.txt>` - `tar -xvf` : extraire les fichiers de l'archive - `tar -xvf <archive.tar>` - `gzip <archive.tar>` : compresser en GZIP - `gunzip <archive.tar.gz>` : décompresser - `bzip2 <archive.tar>` : compresser en BZIP2 - `bunzip2 <archive.tar.bz2>` : décompresser - Autres opération de compression : - `tar -zcvf <dossier/>` : archiver et compresser en `gz` - `tar -zxvf <archive.tar.gz>` : extraire - `tar -ztf <archive.tar.gz>` : lire le contenu d'une archive « gzippée » - `tar -jcvf <dossier/>` : archiver et compresser en bz2 - `tar -jxvf <archive.tar.bz2>` : extraire - `tar -jtf <archive.tar.bz2>` : lire le contenu d'une archive « bzippée » - `zcat` : lire un fichier compressé Quand il y a qu'un seul fichier compressé directement avec GZIP ou BZIP2 - `zless` : idem - `zmore` : idem - `zip` et `unzip` : compresser ou décompresser un fichier zip - `zip -r <fichier.zip> <dossier/*>` - `unzip <fichier.zip> -d [dossier/]` ## Divers - `which` : connaître l'emplacement d'une commande - `whereis` : connaître l'emplacement d'une commande - `watch` : rafraîchir une commande à intervalle régulier - `clear` : nettoyer le terminal - `reset` : reboot du terminal - `shutdown` : éteindre la machine - `shutdown now` - `shutdown -r` - `halt` - `reboot` - `convert` : transformer des images - `convert image_source.jpg -thumbnail '200x200>' miniatures/image_copy.jpg` - `iconv` : permet de changer l’encodage d’un fichier. - `-f` : préciser l’encodage d’origine et Option -t pour celui de destination. Par défaut, ICONV renvoi tout sur la sortie standard, donc si vous voulez directement envoyer les résultats dans un fichier, il suffit de faire une petite redirection : - `iconv -f UTF-8 -t UTF-17 fichier.txt >> new-encodage.txt` - `whoami` : afficher votre nom d'utilisateur actuel - `finger <user>` : afficher des informations sur un utilisateur :::info Voir `chfn` ::: - `file` : déterminer le type d’un fichier indépendamment de son extension. Il suffit de lui fournir en paramètre le fichier à évaluer. - `stat` : [...] - `env || printenv` : afficher toutes les variables d'environnement - `shasum` : vérifier l'intégrité d'un fichier - `add-apt-repository` : permet d’ajouter des dépôts alternatifs aux dépôts officiels - `select-editor` : changer éditeur par default - `sudo VISUAL=/usr/bin/vim visudo` - `sudo EDITOR=/usr/bin/vim visudo` - `update-alternatives --config editor` : changer l'éditeur par défaut - `update-alternatives --config pager` : changer la liseuse par défaut (most) ## Nettoyer le système 1. `sudo apt-get autoremove` : supprimer le cache des paquets périmés 2. `sudo apt-get autoclean` : supprimer tout le cache** 3. `sudo apt-get clean` : supprimer les paquets installés comme dépendances et devenus inutiles** ## build-essential : compiler un programme 1. Décompresser `<fichier>.tar.gz` avec la commande `tar zxvf` 2. Se rendre dans le répertoire 3. cde: `./configure` - Installer les paquets manquants - `make` - `make install` {%hackmd @alternative-rvb/contact %}