ExSitu

Recherche et expérimentation artistique

Outils pour utilisateurs

Outils du site


Panneau latéral

prod:recherches:code:bash-commands-basics

[Code] Bash - Commandes basiques

Forcer le reboot du système (hors terminal)

Ctrl+Alt ImpEc S U I B

Généralités

$				( utilisateur normal )
~				( raccourci répertoire personnel )
/				( root )

whoami				( qui suis-je )
pwd				( où suis-je )

clear				( vider l’écran terminal )

top				( afficher la console système )
htop				( afficher la console système plus sexy )

xkill				( forcer à quitter une application )

Passer en root

sudo su root
Ctrl d				( déconnecter )

Afficher les options de la commande

man command
commande --help			( afficher l'Aide )

Afficher l'historique des commandes

history
!123				( relancer la commande 123 de l'historique )

Installer un programme

sudo apt install XXX
sudo apt-get --purge remove XXX		( Désinstaller XXX )

Fichiers

Se déplacer

cd /				( se déplacer en racine )
cd ./XXX			( se déplacer dans XXX depuis l'emplacement actuel (.)
cd ..				( remonter d'un niveau )

Lister

ls				( lister le contenu détaillé )
ls -l 				( afficher la liste des fichiers )
ls -l /CIBLE/			( lister le contenu d'un dossier )

Copier

cp /SOURCE /CIBLE		( copie de fichier )
cp -R /SOURCE /CIBLE		( copie de dossier )

Chercher des fichiers

find ./ -name "*.jpg" | more		( liste les JPGs dans le dossier actuel )
find ./ -name "*.jpg" | less		( liste les JPGs dans le dossier actuel )
find ./ -name "*.jpg" > list.txt	( liste les JPGs et enregistre dans un fichier )

Afficher une arborescence

tree ./CIBLE				( affiche l'arborescence du dossier )
tree ./CIBLE -P "*.jpg"			( affiche l'arborescence du dossier pour les JPGs )
tree /CIBLE/ -d > /CIBLE/texte.txt	( imprimer l’arborescence des dossiers uniquement )

Éditions de fichiers

Créer un fichier file.txt

touch ./file.txt

Afficher le contenu du fichier file.txt

cat ./file.txt

Éditer le fichier file.txt dans le terminal

nano ./file.txt				

Supprimer le fichier file.txt

rm ./file.txt
rm -i ./file.txt			( supprimer avec confirmation )

Supprimer le contenu d'un dossier

sudo rm -r -f /CIBLE
sudo rm -rf ~/.local/share/Trash/*	( FORCER : Supprimer le contenu de la corbeille )

Spliter un fichier texte en plusieurs fichiers

csplit -s -b %03d.txt -f post- file.txt /----/ --suppress-matched '{*}'

Convertir des fichiers rtf en html

for FILE in *.rtf; do unrtf --html "$FILE" > "${FILE%.*}.html"; done

Outil vim tuppervim (éditeur de texte)

vim file.txt				( ouvrir le fichier )
i					( activer l'édition )
esc:q					( fermer )
esc:x					( enregistrer )
esc:q!					( fermer sans enregistrer )

Éditions de Dossiers

Créer un dossier

mkdir ./CIBLE

Supprimer un dossier

rmdir ./CIBLE

Créer une liste de dossiers

mkdir dir{1..50}			( 50 dossiers dir1 > dir50 )
mkdir -p dir{1..50}/pre{1..50}		( 50 dossiers dir1 > dir50 dans chaque pre1 > pre50 )

Créer des dossiers nommés d'après une liste de fichiers

for file in *; do mkdir "${file%.*}"; done

Volumes

lsblk				( lister les disques montés et leur partitions )
sudo fdisk -l			( lister les partitions des volumes )

Afficher l'occupation des disques

df
df -h				( afficher en Mo )

Formater un disque en exFat

sudo mkexfatfs -n MonEXFAT /dev/sdXN

Droits

Modifier le groupe et le propriétaire d'un fichier

sudo chown groupe:user /CIBLE/file.txt

Modifier le groupe et le propriétaire d'un dossier

sudo chown -R groupe:user /CIBLE

Modifier les droits

sudo chmod -R 664 /CIBLE		( tous les fichiers en rw-rw-r-- )
sudo chmod -R u+X,g+X,o+X /CIBLE	( tous les dossiers en rwxrwxr-x )

Copies / Sync

sudo rsync -avP --progress --stats /SOURCE /CIBLE/

Rsync vers exFat

sudo rsync -vrltD --progress --stats /SOURCE /CIBLE/     

Copier une image disque sur SD RasPi

sudo dd bs=4M if=/SOURCE/image.img of=/CIBLE/volumeSD
sync

Images

Écrire une signature sur toutes les images

mogrify -format jpg -gravity SouthEast -font Ubuntu-Bold -pointsize 16 -fill 'rgba(0,0,0,0.85)' -draw 'text 6,6 "© Barth Péron"' -fill 'rgba(255,255,255,0.65)' -draw 'text 7,7 "© Copyright"' *.jpg

Renommer tous les jpeg d'uune arborescence en jpg

find -name "*.jpeg" -exec rename 's/\.jpeg/\.jpg/' {} \;

Convertir une liste d'images en GIF

convert -delay 4 -size 160x160 -loop 0 *.jpg /CIBLE/titre.gif

Convertir une liste d'images en PDF

convert -compress jpeg *.jpg output.pdf

Convertir des listes d'images dans plusieurs sous dossiers en autant de PDFs

find . -type d | while read d; do convert "${d}"/*.jpg ./"${d##*/}.pdf"; done

Convertir une liste d'images en planche-contact

montage *.jpg -background 'black' -tile 7x -geometry 300x+6+16 -quality 85 board.jpg

Compresser des JPGs

mogrify -quality 70 *.jpg

Resizer des JPGs

mogrify -resize 400x400 *.jpg              ( conserve les proportions )
mogrify -resize 400x400\! *.jpg            ( force le format )

Recadrer des JPGs

mogrify -gravity center -background black -extent 400x400 *.jpg

Convertir des PNGs en JPGs dans plusieurs dossiers

find ./SOURCE -name "*.png" -exec mogrify -quality 90 -format jpg {} \;
find ./SOURCE -name "*.png" -exec rm {} \;       (supprimer les PNGs ensuite)

Vidéos

Convertir une vidéo en liste d'images

ffmpeg -i /SOURCE/video.mp4  -r 25 '/CIBLE/titre-%03d.jpg'

Convertir une liste de vidéos en images (1 capture par vidéo à 30s)

for f in *.mp4; do ffmpeg -ss 30 -i "$f" -frames:v 1 "${f%.mp4}_%03d.jpg"; done

Convertir une liste de vidéos en listes d'images

Une image chaque 30s

for f in *.mp4; do ffmpeg -i "$f" -vf fps=1/30 "${f%.mp4}_%03d.jpg"; done

Une image à chaque changement de plan (50% modif)

for f in *.mp4; do ffmpeg -i "$f" -vf  "select=gt(scene\,0.5)" -vsync vfr "${f%.mp4}_%03d.jpg"; done

Une image à chaque changement de plan (I-frame)

for f in *.mp4; do ffmpeg -i "$f" -vf "select='eq(pict_type,PICT_TYPE_I)'" -vsync vfr "${f%.mp4}_%03d.jpg"; done

EXIFs

Afficher l'EXIF d'une série de fichiers

exiftool -fileOrder FileModifyDate DateTimeOriginal -filename -FileModifyDate -datetimeoriginal -filesize -duration -framecount -FocalLength35efl -FOV -DOF -measuredev -aperturevalue -shutterspeedvalue -ISO -AutoISO -BaseISO -WB_RGGBLevels -numchannels -samplerate -bitspersample -framerate -ImageSize -Model -originator -FileType -encoding -videocodec -encodingprocess /CIBLE/

Imprimer l'EXIF dans le nom du fichier

sudo exiftool -r '-filename<${ImageSize;}_${Model;}_%f.%e' /CIBLE/

Cryptage

Créer une copie cryptée du fichier file.txt

mcrypt file.txt

Créer une copie non-cryptée de file.txt.nc

mdecrypt file.txt.nc

Divers

wget http://www.site		( récupère le contenu de l'url et l'enregistre )
espeak blabla			( lecture audio du texte )
lullaby				( enregistre une séquence audio et la rejoue modifiée )
cal				( affiche un calendrier )
sudo apt install gnome-sushi	( installer Aperçu de fichiers (space) )
sudo apt install gnome-xcf-thumbnailer	( vignettes sur les fichiers Gimp (.xcf) )
shotwell -d /home/bartho/Documents/shotwell/exsitu	( lancer Shotwell avec une librairie ciblée )
sh /usr/share/processing/processing-3.5.3/processing	( lancer Processing )

lynx (navigateur dans le terminal)
W3e (navigateur dans le terminal)

prod/recherches/code/bash-commands-basics.txt · Dernière modification: 22 05 2020 de barth