Tutoriel Bash utile, simple, efficace

Recherche rapide:


La commande: cd

La navigation d’un répertoire à un autre s’effectue avec la commande cd suivie du nom du répertoire.

cd /Permet d'aller à la racine du disque.

cd ou cd ~Accéder au répertoire de l’utilisateur.

cd /users/files/Aller dans le répertoire /users/files.


La commande: ls

La commande ls permet d'afficher le contenu d'un répertoire.

ls -lAffiche les informations de manière détaillée.

ls -aAffiche les fichiers cachés.

ls -shAffiche la taille des fichiers.

ls -rTri inversé.

ls -tTri les fichiers par date du plus récent au plus ancien.

ls -STri par taille décroissante.

ls -laAffiche tous les fichiers ainsi que les fichiers cachés.

ls -lhSAffiche les informations des fichiers ainsi que leurs tailles le tout ordonné du plus grand au plus petit.


La commande: cp

Permet de créer une copie d’un fichier.

cp fruit/banana.txt yellow/Copier le fichier banana.txt dans le répertoire yellow.

cp -r fruit/ yellow/Copier des répertoires entiers, la cible sera yellow/fruit/.


La commande: mv

La commande mv permet de déplacer vos fichiers mais aussi de les renommer.

mv fruit/banana.txt yellow/Déplacer le fichier banana.txt dans le répertoire yellow.

mv bonono.txt banana.txtRenommer le fichier bonono.txt en banana.txt.


La commande: rm

Pour effacer un fichier ou un répertoire on utilise la commande rm.

rm *.txtSupprime tous les fichiers ayant pour extension txt.

rm apple.txt orange.txtSupprimer les fichiers apple.txt et orange.txt.

rm -rf fruit/Supprimer le répertoire fruit ainsi que tout son contenu.


La commande: mkdir

Pour créer un répertoire il suffit d’utiliser la commande mkdir. Celle-ci vous permettra de créer un répertoire ou a l'emplacement que vous souhaiter en argument de la commande.

mkdir fruitCréer le répertoire fruit.

mkdir -vRetourne des informations lors de la création d'un répertoire.

mkdir -pCette option permet de créer une arborescence complète.

mkdir -v fruit /vegetal/broccoliCréer les répertoires fruit et /vegetal/broccoli.

mkdir -p fruit/yellow/bananaCréer l’arborescence fruit/yellow/banana.


La commande: chmod

La commande chmod permet de changer les droits d'un fichier ou d'un répertoire.

chmod u+w fileAjouter les droits d'écriture au propriétaire (user, write)

chmod g+r fileAjouter les droits de lecture au groupe du fichier (group, read)

chmod o-x fileSupprimer les droits d'exécution aux autres utilisateurs (other, execution)

chmod a+rw fileAjouter les droits de lecture / écriture à tous (all)

chmod -R a+rx folderAjouter les droits de lecture et d'exécution à tout ce que contient le repertoire dossier.

chmod 764 folderTous les droits pour le propriétaire (7xx), lecture et ecriture pour le groupe (x6x) et lecture uniquement pour les autres (xx4).

chmod -R 755 folderDonner au propriétaire tous les droits (7xx), alors que seuls les droits de lecture et d'accès seront donnés aux autres (x55). Grace à l'option -R ces droits seront appliqués à tous ce que contient le répertoire.


La commande: chown

La commande chown permet de changer le propriétaire d'un fichier ou d'un répertoire.

chown bob:admin banana.txtAttribuer l’utilisateur bob et le groupe admin au fichier banana.txt.


La commande: ssh

La commande ssh permet de se connecter de façon sécurisée à une machine distante.

ssh john@62.42.42.177Connexion à la machine distante avec le login john.

ssh -l john 62.42.42.177Equivalant à la commande précédente.

ssh-keygen -t dsaGénération d'une clé DSA (à faire sur la machine locale).

ssh-copy-id -i ~/.ssh/id_dsa.pub john@62.42.42.177Copie de la clé publique sur la machine distante.


La commande: scp

La commande scp permet de copier des fichiers entre le serveur et le client en ssh et de manière sécurisée.

scp apple.txt john@62.42.42.177:Transfère le fichier apple.txt situé dans le répertoire courant vers le home du compte john de la machine remotehost.example.com.

scp john@62.42.42.177:apple.txt ./Récupère le fichier apple.txt situé dans le home du répertoire du compte john pour le copier dans le répertoire courant.

scp john@62.42.42.177:/backups/*.sql backups/Récupére les fichiers .sql situés dans le répertoire backups pour le copier dans le sous-répertoire backups.

scp -P 17654 john@62.42.42.177:/files/ files/Récupére les fichiers via un autre port (17654) que le port par défaut (22).

scp -r vegtal/ john@62.42.42.177:Transfère l'intégralité du répertoire vegetal.


La commande: sed

La commande sed est un utilitaire qui parcourt un fichier texte ligne par ligne afin de lui appliquer un traitement ou un remplacement.

sed 's/good/bad/' banana.txtTransforme la première occurence 'good' de chaque ligne par 'bad'.

sed 's/\t/ /g' file.txtTransforme toutes les tabulations par deux espaces.

sed '/^#/ d' file.txtSupprime toutes les lignes commancant par #.

sed '/^Hello/,/^Good Bye/d' civility.txtSupprime toutes les lignes comprises entre les deux motifs.

sed -n '/good/p' banana.txtAffiche uniquement les lignes où l'expression est trouvée.


La commande: grep

La commande grep permet de rechercher une chaîne de caractères dans un fichier.

grep 'good' apple.txtRecherche l'occurence 'good' dans le fichier apple.txt.

grep -nri 'apple' /fruitRecherche toutes les occurences de 'foobar' dans le repertoire /fruit.

grep -nri '\(apple\|banana\|blueberry\)' /fruitRecherche toutes les occurences à 'apple', 'banana' et 'blueberry' dans le repertoire /fruit.


La commande: find

La commande find permet de chercher des fichiers et éventuellement d'exécuter des commandes dessus.

find apple* -printRecherche un fichier commençant par "apple".

find -name *banana*.txt -printRecherche un fichier contenant "banana" et ayant pour extention ".txt".

find /www -type d -printAffiche tous les répertoires de /www.

find $HOME \( -name '*.txt' -o -name '*.pdf' \)Affiche tous les fichiers .txt ou .pdf dans le répertoire home de l'utilisateur.

find $HOME -name *.txt -atime +7 -exec rm {} \;Supprime tous les fichiers .txt qui n'ont pas été consultés depuis plus de 7 jours dans le répertoire home de l'utilisateur.

find $HOME -name '*.txt' -size +4k -exec ls -l {} \;Affiche la taille de tous les fichiers de plus de 4 kilos.


La commande: test

La commande test permet comparer des chaines de caractères, des nombres et vérifier certaines propriétés de fichiers et répertoires.

test -e blueberry.txtTeste si le fichier blueberry.txt existe.

test -d vegetalTeste que vegetal soit un répertoire.

test -w apple.txtTeste si le fichier apple.txt est accessible en écriture.

test -x banana.txtTeste si le fichier banana.txt est exécutable.

[ "string1" != "string2" ]Vérifie que la chaine string1 est différente de string2.

[ int1 != int2 ]Vérifie que le nombre int1 est différent de int2.


La commande: tar

Archives sert à compresser ou décompresser des fichiers ou des dossiers

tar -cvf archive.tar bananaCréation d’une archive nommée archive.tar contenant le fichier banana.

tar -cvf archive.tar apple bananaCréation d’une archive contenant deux fichiers apple et banana.

tar -cvf archive.tar fruit/Création d’une archive a partir du répertoire fruit.

tar -czvf archive.tar.gz vegetal/Création d’une archive au format tar.gz du répertoire vegetal.

tar -cjvf archive.tar.bz2 vegetal/Création d’une archive au format tar.bz2 du répertoire vegetal.

tar -xzvf archive.tar.gzExtraction de l’archive tar.gz.

tar -xjvf archive.tar.bz2Extraction de l’archive tar.bz2.

Pour utiliser la commande si-dessus n'oubliez pas d'installer bzip2 via la commande sudo apt install bzip2

tar -tf banana.tarListe tous les fichiers contenus dans une archive.


La commande: apt-get

L'installation et la désinstallation de paquets sous Debian, Ubuntu et distribution dérivées peut se faire grâce à la commande apt.

apt-get updateMettre à jour la liste des fichiers disponibles dans les dépôts APT.

apt-get install sambaInstalle le paquet Samba.

apt-get install php5=2.2-1Installe le paquet php5 dans sa version 2.2-1.

apt-get remove sambaDésinstalle le paquet Samba mais en laissant les fichiers de configuration.

apt-get purge sambaSupprime complètement le paquet Samba et ses fichiers de configuration.

apt-cache policy php5Récupére les informations sur l'état du paquet php5

dpkg -l | grep phpListe tous les paquets php installés sur la machine