# Programmation Bash/Commandes shell

* Introduction
* Hello World
* Notions essentielles du shell bash
* Interactions avec le système de fichiers
* Flux et redirections
* Tests
* Calculs
* Structures conditionnelles
* Boucles
* Interactions avec l'utilisateur
* Regex
* Fonctions
* Scripts
* Enchaînements et scripts
* Liste des commandes
* Commandes ksh
* Problèmes connus
* Introduction
* Hello World
* Notions essentielles du shell bash
* Interactions avec le système de fichiers
* Flux et redirections
* Tests
* Calculs
* Structures conditionnelles
* Boucles
* Interactions avec l'utilisateur
* Regex
* Fonctions
* Scripts
* Enchaînements et scripts
* Liste des commandes
* Commandes ksh
* Problèmes connus
[ Modifier le sommaire ]
Une commande, dans le sens plus général, est un fichier exécutable ou un shell builtin. Par exemple, cd, ls, echo et firefox sont des commandes.
Les commandes builtins sont intégrées dans le bash. Pour le reste, les commandes disponibles sont celles installées sur le système. Pour cette raison, le détail des commandes varient d'une distribution à l'autre.

## A

* alias - Vous autorise à créer un raccourci ou des noms de commande familiers ou très utilisées
* at - Exécute une ligne de commande à un moment spécifié dans le futur
* apropos - Donne des informations sur la commande
* awk - Écrit uniquement le n-ième mot d'une ligne de commande en entrée et plus
* aspell - Vérificateur d'orthographe interactif
* autoexpect - Log les touches appuyées - Attention

## B

* bash - Le Bourne Again SHell, un des shells
* bunzip2 - Décompresse les fichiers compressés avec bzip2
* bzip2 - Un outil de compression

## C

* cat - Réception de chaîne de caractère depuis stdin ou un fichier et sortie de celui-ci par stdout ou par un fichier
* chgrp - Change le groupe du propriétaire d'un fichier
* chmod - Change le mode de permission d'un fichier
* chown - Change le propriétaire d'un fichier
* cp - Copie un fichier
* cpio - Crée des fichiers d'archives dans différents formats
* cron - Service planifiant des taches à exécuter à des dates spécifiques
* crontab - Contrôle le service cron
* chsh - Change l'interpreteur de commande
* cut - Affichage des colonnes d'un fichier délimité par un caractère
* cvs - Un système de gestion de version

## D

* date - Affiche ou configure l'heure et la date
* dd - Transfert du contenu d'un disque de / vers un fichier et plus
* df - Affiche la taille libre du disque
* diff - Affiche la différence entre deux fichiers et plus
* dpkg - Un gestionnaire de paquets pour Debian (Ubuntu…), de bas niveau sur lequel d'autres gestionnaires plus élaborés comme apt et aptitude reposent.
* du - Affiche combien d'espace disque est utilisé par un répertoire
* disown - Retirer l'appartenance d'une tâche au processus courant (supprime le pid d'un travail). Même quand le service tourne, celui-ci ne s'arrête pas.

## E

* echo - Affiche une chaîne de caractères vers la sortie standard (stdout) par défaut.
* eject - Ouvre le lecteur de cd (à noter que eject -t le referme)
* env - Affiche les variables d'environnement
* exit - Sort de la plupart des shells
* export - Crée et valorise une variable d'Environnement en bash ou zsh
* expect - Est un langage de script. Peut être lié avec Python pour des tâches automatisées. Essayez la commande autoexpect

## F

* fdisk - Partitionne un disque
* fg - Fait passer un processus de l'arrière-plan (tâche de fond) à l'avant-plan
* file (commande) - Détermine le type d'un fichier
* find - Trouve des fichiers selon leur nom, taille, date de dernière modification ou autres
* finger - Cherche si quelqu'un est connecté
* ftp - Utiliser le protocole de transfert de fichiers (FTP) en mode texte

## G

* g++ - Compile un fichier source écrit dans le langage C++
* gcc - Compile un fichier source écrit dans le langage C
* gftp - Logiciel graphique utilisant le protocole de transfert de fichiers FTP
* grep - Recherche un texte ou un motif textuel dans un ou plusieurs fichiers texte
* groups - Montre à quels groupes l'utilisateur appartient
* gvimdiff - diff graphique (montre les différences entre deux fichiers texte)
* gunzip - Décompresse un fichier compressé par gzip
* gzip - Compresse un fichier

## H

* halt - Arrête l'ordinateur (root)
* head - Affiche seulement les n premières lignes d'un fichier
* hexdump - Affiche le contenu d'un fichier sous forme hexadécimale
* history (commande) - Affiche l'historique des commandes utilisées dans l'interprétateur de commande (shell)
* hostname - Affiche le nom de l'ordinateur

## I

* id - Affiche les numéros d'identification de l'utilisateur et des groupes auxquels il appartient
* ifconfig - Affiche entre autres l'adresse IP de l'utilisateur
* info - Affiche les informations à propos d'une commande
* init - Redémarre ou change le niveau d'exécution du système
* iptables - Montre la configuration de votre pare-feu
* iptraf - [1]suivi des adresses IP dynamiques sur un LAN (Limited Area Network)

## J

* jobs - Donne une liste des travaux courants en arrière plan (processus)

## K

* kill - Tue un processus
* killall - Tue tous les processus d'un nom donné

## L

* ldd - Affiche les bibliothèques dynamiques dont dépend un exécutable
* less - Affiche une sortie dans laquelle vous pouvez vous déplacer et effectuer des recherches. C'est un "pageur".
* ln - Établit un lien vers un fichier
* ls - Liste le contenu d'un fichier répertoire
* lsmod - Établit la liste des modules chargés par le noyau
* lsof - Établit la liste des fichiers ouverts et des sockets à l'écoute
* look - Vérification rapide de l'orthographe

## M

* make - Permet de compiler des logiciels et plus
* man - Fournit une aide à propos des commandes et API du système (consultation du manuel)
* md5sum - Calcule la somme de contrôle d'un fichier (permet par exemple de vérifier l'intégrité d'une copie en comparant sa md5sum à celle de la source)
* mkdir - Crée un fichier répertoire
* mkfs - Formate un périphérique de stockage (crée un système de fichiers)
* minicom - Permet de communiquer suivant le protocole RS232 (port série)
* more - Comme less, il s'agit d'un "pageur"
* mount - Prépare un périphérique de stockage à accepter la lecture et l'écriture
* mv - Déplace un fichier, permet aussi de le renommer (on le déplace au même endroit en changeant son nom)

## N

* netcat - Envoie des bits sur le réseau
* netstat - Obtient des informations sur les sockets à l'écoute et sur les ports ouverts
* nice - Fixe la priorité d'exécution d'un processus
* nm - Établit la liste des noms de fonctions d'un fichier objet

## O

* objdump - Affiche les informations relatives à un fichier objet
* openssl - Permet d'utiliser les fonctions de cryptographie qui suivent les protocoles réseaux SSL et TLS

## P

* passwd - Change votre mot de passe ou celui d'un autre utilisateur
* ping - Indique si un ordinateur en particulier est fonctionnel sur un réseau
* ps - Affiche la liste des processus lancés à l'état actuel
* pwd - Affiche le dossier actuel où se trouve l'utilisateur
* paste - Fusionne des lignes en un fichier en les combinant horizontalement

## Q

* quota - Gère la quantité de ressources qu'un utilisateur est autorisé à utiliser

## R

* rar - Fichiers ou dossiers compressés, de type .rar
* read - Lit une ligne depuis votre clavier
* reboot - Redémarre l'ordinateur
* rename - Renomme des fichiers (pour un fichier, il est plus simple de passer par mv)
* rm - Efface un fichier (ou un dossier avec -r)
* route - Gère la table de routage de votre réseau
* rpm - Gère les paquets sous les distributions Redhat et Fedora
* rsync - Permet la synchronisation de vos fichiers à travers un réseau

## S

* scp - Effectue une copie sécurisée à travers un réseau - données chiffrées
* screen - Permet de créer plusieurs terminaux à partir d'un seul
* sed - Effectue des modifications sur des chaînes de caractères
* setenv - Modifie la valeur d'une variable d'environnement d'un shell C
* shutdown - Éteint ou redémarre le système
* sleep - Retarde d'une certaine quantité de temps à déterminer
* ssh - Permet de se connecter de façon sécurisée à un hôte distant
* su - Change l'identité de l'utilisateur
* sudo - Exécute une commande sous l'identité d'un autre utilisateur (le plus souvent "root" - /etc/sudoers)

## T

* tail - Ne montre que les n dernières lignes d'un fichier
* tar - Archive des fichiers selon un certain format
* tcpdump - Purge le trafic sur le réseau TCP
* tee - Duplique la sortie standard vers un fichier
* time - Indique le temps nécessaire à une commande pour s'achever
* top - Montre les processus utilisant le plus de ressources du processeur
* touch - Crée un fichier ou modifie son étiquette temporelle
* traceroute - Montre la route empruntée par un paquet sur un réseau
* tac - Imprime un fichier en inversant l'ordre des lignes, à l'inverse de cat (cat X tac)

## U

* ulimit - Lit ou écrit certaines limitations pour le processus en cours
* umount - Démonte un périphérique (nécessite souvent les droits du groupe sudoers)
* uname - Affiche la version du noyau en fonction en plus d'autres détails
* uniq - Supprime une ligne en doublon dans un fichier trié
* unset - Efface de la mémoire les variables passées en paramètre (ne retourne pas de résultat)
* unzip - Décompresse des fichiers
* unrar - Décompresse des fichiers d'archivage rar
* uptime - Affiche la date et l'heure de la dernière mise en route de l'ordinateur
* useradd - Ajoute un utilisateur
* userdel - Supprime un utilisateur
* usermod - Modifie un utilisateur

## V

* vim - Éditeur de texte pur, fonctionnement modal. À distinguer d'un traitement de texte.
* Vgcreate - Créer des groupes de volumes LVM
* Vgdisplay - Groupes d'affichage de volumes LVM
* Vgs - Afficher des informations sur les groupes de volumes LVM
* Vgscan - Rechercher des groupes de volumes LVM
* vmstat - Affiche des informations sur l'activité des processus, de la mémoire, des signaux, du processeur, des disques durs, des entrées et sorties, etc.

## W

* who - Affiche qui est connecté sur le système
* which - Affiche le chemin d'un fichier exécutable
* whoami - Affiche votre véritable nom d'utilisateur
* wc - Word count ; permet de compter des bits, des caractères, des lignes, des mots dans un fichier
* write - Envoie un message à un autre utilisateur connecté

## X

* xargs - Exécute des commandes en utilisant pour arguments les données issues de l'entrée standard (pratique pour utiliser des commandes comme des filtres alors que ce n'en sont pas)
* xev - Affiche tous les événements relatifs à une fenêtre
* xkill - “Tue” une fenêtre de processus en le déconnectant du serveur X
* xosview - Affiche l'activité du processeur, de la mémoire, des disques-durs et plus encore…

## Y

* yacc - Générateur de programmes d'analyse syntaxique écrits en C
* yes - Affiche continuellement une chaîne de caractères
* yum - Un gestionnaire de paquets utilisé par les distributions Redhat et Fedora
* yast - Un gestionnaire de paquets utilisé par la distribution SUSE

## Z

* zip - Compresse un fichier
<noinclude>