memo commandes shell bash
Tutoriel linux valant le détour :
Système de fichiers
Répertoire | Description - contenu | ||||
---|---|---|---|---|---|
/ | |||||
/bin | les programmes essentiels au système | ||||
/boot | les images de noyaux Linux | ||||
/dev | l’accès aux périphériques | ||||
/etc | la configuration du système | ||||
/home | les comptes utilisateurs | ||||
/home/user | la racine du compte de l’utilisateur user (~) | ||||
/lib | les bibliothèques essentielles au système | ||||
/proc | les ressources matérielles détectées | ||||
/root | la racine du compte de l’administrateur root | ||||
/sbin | les exécutables essentiels réservés à l’administrateur | ||||
/usr | les programmes installés par le système | ||||
/usr/bin | les exécutables installés | ||||
/usr/include | les fichiers d’en-tête installés | ||||
/usr/lib | les bibliothèques installées | ||||
/usr/local | les programmes installés manuellement (hors gestion de paquets) | ||||
/usr/sbin | les exécutables réservés à l’administrateur installés | ||||
/usr/share | la documentation installée | ||||
/var | données fréquemment réécrites |
Raccourcis Terminal
touche tab : pour l’auto-complétion des chemins
~/ : Répertoire Home/[user]/
| ctrl + z | | annuler |
| ctrl + c | | stopper |
| ctrl + u | | undo |
| ctrl + shift + c | | copier |
| ctrl + shift + v | | coller |
| ctrl + r | | rechercher commande dans l’historique |
| ctrl + a | | retour début de ligne |
Exécution non bloquante :
$ gedit hello.c &
Exécuter plusieurs commandes :
$ commande_1 && commande_2
Les données relatives au profil utilisateur pour l’utilisation des différents programme se retrouvent sous forme de fichiers cachés (précédés de ‘.’) dans
~/ ou ~/.config/ ; pour les faire apparaitre dans un explorateur de fichier : ctrl+H (hide).
L’effacement de ces fichiers peut réinitialiser un programme manifestant un comportement étonnant.
Commandes de base
#! /bin/bash
#=======================================================================
# COMMANDES DE BASE
#=======================================================================
man [commande]
pwd # Où suis-je ?
file [FICHIER] # Infos sur un fichier
ls # liste du répertoire courant
ls -al # liste + détailes+ fichiers cachés
cp [SOURCE] [DEST] # Copier-Coller Fichier
cp -r [SOURCE] [DEST] # Copier-Coller récursif (dossiers)
cp -u [SOURCE] [DEST] # update : copie si fichier plus récent
cp -arv [SOURCE] [DEST] # copie récursive all (avec infos fichiers date, user)
# -v : verbose
cd [répertoire] # Change Directory
cd .. # Retour
cd / # Racine
mkdir [rep] # Make Directory (créer répertoire)
mv [SOURCE] [DEST] # Rename / Couper-Coller
ln -s [SOURCE] [NON LIEN] # link --> Création d'un raccourcis
cat [FICHIER] # afficher fichier dans console
cat [FICHIER_1][FICHIER_2] > [DEST] # Concaténation de fichiers
chmod +x [FICHIER] # Rendre exécutable un fichier
chmod 777 [FICHIER/DOSSIER] # UGO (User/Group/Others) rwxrwxrwx (read/write/exec)
# Exécution Programme
chmod +x [PROG] # Rendre exécutable
./[PROG] # Exécution Programme Binaire
bash [PROG].sh # Exécution Shell
nano [FICHIER] # Editeur de texte dans le terminal
#=======================================================================
# RECHERCHE D'UN FICHIER / PATTERN DANS UN FICHIER
#=======================================================================
find ./[REPERTOIRE RACINE DE RECHERCHE] -name [FICHIER_RECHERCHE] -print
# sans warnings :
find ./[REPERTOIRE RACINE DE RECHERCHE] -name [FICHIER_RECHERCHE] -print 2> /dev/null
grep "phrase dans un fichier" [fichier] # mot/phrase dans un fichier
# grep récursif dans des dossiers/sous-dossiers :
grep -r "mot/phrase dans un fichier" ./
# Remplacement d'un pattern dans des fichiers :
grep -rl oldtext . | xargs sed -i 's/oldtext/newtext/g'
#=======================================================================
# GESTION DES PAQUETS UBUNTU
#=======================================================================
nano /etc/apt/source.list # Liste des paquetages
apt-get update && apt-get upgrade # mise à jour paquetages
apt-get install [PACKAGE]
apt-get remove [PACKAGE]
#=======================================================================
# COMPRESSION / DECOMPRESSION
#=======================================================================
# ZIP
zip -r [NOM].zip [A_COMPRESSER] # Compression
unzip [A_DECOMPRESSER] -d [REPERTOIRE_DEST] # Extraction
# TAR
tar -cvf [NOM].tar [REP_A_ARCHIVER] # Archivage
tar -czvf [NOM].tar.gz [REP_A_COMPRESSER] # tar -cv MonRepertoire | gzip > archive.tar.gz
tar -cjvf [NOM].tar.bz2 [REP_A_COMPRESSER] # tar -cv MonRepertoire | bzip2 > archive.tar.bz2
tar -xvf [archive].tar # Extraction
tar -xvzf [REP_COMP].tar.gz # Extraction
tar -xvjf [REP_COMP].tar.bz2
#=======================================================================
# VARIABLES D'ENVIRONNEMENT
#=======================================================================
printenv # liste des variables d'evironnement
echo $PATH # Affichage variable PATH
export PATH=$PATH:/home/user/mes_prog # Ajouter un répertoire à PATH
nano /etc/environment # Redéfinition des variables d'environnement
#=======================================================================
# GESTION DES PROCESSUS
#=======================================================================
# Liste des Processus
top # equivalent ctrl+alt+suppr sous windows
ps -el
# Stop processus
kill -9 [N°PROC] # Kill forcé
pkill [NOM_PROCESSUS]
#=======================================================================
# MONTER UNE CLE / DISQUE
#=======================================================================
sudo fdisk -l
#ou
lsblk # Quel /dev/sd[xi] correspond à la clé ?
mkdir /mnt/[REP] # Création répertoire de montage
mount /dev/sd[xi] /mnt/[REP] # Montage
umount /dev/sd[xi] # Démontage
#ou
umount /mnt/[REP]
#=======================================================================
# FORMATAGE CLE USB
#=======================================================================
# !! Ne pas aller trop vite !!
sudo fdisk -l # Quel /dev/sd[xi] correspond à la clé ?
umount /media/votre_disque # Démontage si déjà monté
ls -l /dev/disk/by-id/*usb*
sudo mkfs.vfat /dev/sd[xi] # Formatage !!! Bien Vérifier le N° de partition
#=======================================================================
# CREER LIVE USB SOUS LINUX
#=======================================================================
lsblk # quel device ?
umount /dev/sd[x]
sudo dd bs=4M if=[nom].iso of=/dev/sd[1 lettre]
sync
#=======================================================================
# GESTION MULTIECRAN
#=======================================================================
# Essayer dans un premier temps avec touche windows + P (Affichage)
# en cas de problème, se tourner vers le terminal :
xrandr # repérer noms sortie (screen)
xrandr -s 1600x900 # Changer la Résolution
xrandr --output [SCREEN_2] --mode 1024x768 # changer résol NOM_SORTIE
xrandr --output [SCREEN_2] --mode 1024x768 --same-as [SCREEN] # Ecrans Miroir
#=======================================================================
# RESEAU
#=======================================================================
# ANCIENNE VERSION
ifconfig # Affichage adresses IP
ifconfig eth0 192.168.0.1 # Forçage adresse IP pour eth0
ping 192.168.0.2
ping www.google.com # Test liaison
route -n # affichage du routage
# NOUVELLE VERSION ( IP COMMAND )
ip a
ip a show eth0
ip a add 192.168.0.1/255.255.255.0 dev eth0
ip r # table de routage
# CONFIGURATION DU PROXY
export http_proxy=http://[NOM_UTILISATEUR]:[PASSWORD]@proxy.enib.fr:3128
# REINITIALISATION
unset http_proxy
# CONNECTION SSH
ssh pi@192.168.1.12 # cf ~/.ssh/known_hosts
# COPIE SECURISEE Host --> Cible
scp [FICHIER] pi@192.168.1.12:/home/pi/
#=======================================================================
# SERVEUR WEB LIGHTTPD
#=======================================================================
sudo apt-get install gamin lighttpd
nano /etc/lighttpd/lighttpd.conf
# server.document-root = "/var/www"
# Placer les .html à afficher dans /var/www
lighttpd -f /etc/lighttpd/lighttpd.conf
#=======================================================================
# OPERATION SUR DES IMAGES (ImageMagick)
#=======================================================================
# Rotation
convert -rotate 90 image_initiale.jpg image_rotation.jpg
convert image_initiale.jpg -resize 50% image.jpg
# Plusieurs images :
mogrify -resize 800x600 *.jpg
#=======================================================================
# OPERATION SUR DES FICHIERS AUDIO ( soundconverter)
#=======================================================================
# ex : .wma --> .mp3
soundconverter -b -m audio/mpeg -s .mp3 "file_to_convert.wma"
# convertir des mp4 en mp3 dans un dossier avec ffmpeg :
find . -type f -iname "*.mp4" -exec bash -c 'FILE="$1"; ffmpeg -i "${FILE}" -vn -ab 128k -ar 44100 -y "${FILE%.mpr}.mp3";' _ '{}' \;
#=======================================================================
# DIAGNOSTIQUES
#=======================================================================
# mémoire ram
free -h
# Espace disque disponible ( disk free )
df -h
# taille des répertoires ( disk usage )
du -h [Repertoire]
du -sk [PATH_TO_FOLDER]/* 2>/dev/null | sort -k1n
#=======================================================================
# VERSIONS
#=======================================================================
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.2 LTS
Release: 18.04
Codename: bionic
$ uname -a
Linux kerhoas-dell 4.15.0-46-generic #49-Ubuntu SMP Wed Feb 6 09:33:07 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
#=======================================================================
Editeur de Texte NANO
#===============================================================
# FICHIER
#===============================================================
CTRL + o : write Out ( save )
CTRL + x : eXit
#===============================================================
# NAVIGATION
#===============================================================
CTRL + v : Next Page
CTRL + y : Previous page
CTRL + a : line beginning
CTRL + e : line End
#===============================================================
# COPIER COLLER
#===============================================================
CTRL + SHIFT + 6 : Set Mark
ALT + SHIFT + 6 : Copy
CTRL + k : cut
CTRL + u : paste
#===============================================================
# RECHERCHER / REMPLACER
#===============================================================
CTRL + w : Where is ?
ALT + w : Where is ( next instance ) ?
ALT + r : search and Replace
#===============================================================