Table des matières
Bash
Find + chmod
To change all the directories to 755 (drwxr-xr-x):
find . -type d -exec chmod 755 {} \;
To change all the files to 644 (-rw-r–r–):
find . -type f -exec chmod 644 {} \;
Augmenter le nombre de lignes stocké dans l'historique
Editez:
.bash_profile
Ajoutez:
HISTSIZE=10000 HISTFILESIZE=10000
Programmes
Système
Lister les entrées d'un dossier par ordre de modification
ls -l -rt
rt (ordre inversé) peut être remplace par t et permet de lister en fonction de la date de modification.
Lister les appels système
strace -p PID -e trace=all
Ou PID est le pid du programme a tracer.
L'argument trace peut prendre plusieurs valeurs (voir la page de man).
Par exemple, pour lister les ouvertures de fichier:
strace -p PID -e trace=open
Surveiller les accès sur un dossier/fichier
Pour récupérer les différents accès fait sur les fichiers d'un dossier:
inotifywatch --recursive /my/path/
Faire ensuite les opérations a tracker. Puis annuler le processus. En quittant, il affiche les informations suivantes:
total modify close_write open moved_from moved_to create filename 2877 2872 1 1 1 1 1 /my/path/
Connaitre la version de sa distrib
lsb_release -d
Retourne quelque chose comme:
Description: Ubuntu 10.04.4 LTS
Retrouver le pid d'un programme depuis son nom
ps aux | grep dolphin
Renvoi:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND toto 3033 0.3 0.2 472748 66516 ? Sl 15:04 0:57 dolphin toto 7762 0.0 0.0 4304 756 pts/12 S+ 19:56 0:00 grep dolphin
Autre methode:
pidof dolphin
Renvoi:
3033
Classer les processus par utilisation mémoire
ps -eo user,size,command | sort -k2 -rn | head -10
- -e: simple selection: all processes.
- -o: output format: user-defined, suivi des valeurs a afficher.
sort trie les résultats:
- -k2: Classer la seconde colonne (size dans notre cas).
- -r: Reverse result.
- -n: Trier en temps que valeur numérique.
Et head -10 n'affiche que les 10 premiers résultats.
Lister les fichiers ouvert sur le système
lsof
Plus d'exemples ici: lsof - list open files examples
Lister les fichiers ouvert par un programme:
lsof -p 3033
Repeter toute les 3 secondes:
lsof -p 3033 -r 3
Compter le nombre de fichiers ouverts:
lsof -p 3033 | wc -l
Compte le nombre de lignes renvoyées en fait.
Exemples d'utilisation de find
Page sur le fonctionnement de find
Cherche les fichiers/dossiers dont les noms contiennent “foo”:
find / -name foo
Cherche un fichier ou la dernière modification a été faite il y a moins de sept jours:
find / -type f -mtime -7
Lister les fichiers dont le nom correspond a pattern:
find . -type f -name "*.py" | grep 'pattern'
Lister les fichiers contenant le pattern (recherche directement dans le fichier):
find . -type f -name "*.py" -exec grep -l 'pattern' {} \;
Exemples d'utilisation de grep
Skipper les fichiers binaires:
grep -I "word" ./
Rechercher en récursif:
grep -R "word" ./
Printer le résultat dans un fichier:
grep --line-buffered "word" ./ > output.txt
Ne pas afficher les messages d'erreurs:
grep -s "word" ./
Rechercher un pattern a l’intérieur des fichiers (source):
grep -rn ./ -e "pattern"
-r pour la récursion, -n pour afficher la ligne.
Lister le hardware
lshw
Lister uniquement le contenu du sous menu network:
lshw -C network
Lister les valeurs de S.M.A.R.T. d'un disque dur
sudo smartctl -a /dev/sda
Compiler un package source sous Debian
Source ici: http://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics.html
Il faut d’abord récupérer les fichiers sources du package:
- *.dsc
- *.tar.gz
- *.diff.gz (non obligatoire sur les packages Debian natifs).
dpkg-source -x foo_version-revision.dsc
Cela va extraire le package dans un dossier nommé foo-version.
Il suffit d'aller dans le dossier:
cd foo-version/
Puis de construire le package avec
dpkg-buildpackage -rfakeroot -b
Ce qui devrait vous creer un jolie .deb installable via:
dpkg -i ../foo_version-revision_arch.deb
Monter un image ISO
sudo mkdir /mnt/iso sudo mount -o loop -t iso9660 '/path/to/isoFile.iso' /mnt/iso
Et pour démonter:
sudo umount /mnt/iso sudo rm /mnt/iso
Connaître le poids d'un dossier
du -hs /path/to/directory
Source: how to check folder size
Connaître l'espace disque restant
df -h
Source: Commande espace disque libre
Supprimer récursivement tout les fichier d'un dossier
Cette commande permet de supprimer uniquement les fichiers d'un dossiers et ainsi de conserver la structure des dossiers.
Très pratique pour virer les caches de Nuke sans le faire râler. :)
find /tmp/nuke/ -type f -exec rm -v '{}' \;
Utiliser les liens symboliques pour stocker des infos courtes
J'avoue que c'est un peu dégueulasse mais le fait de pouvoir stocker/accéder a une information sans faire d'ouverture de fichier sur le système est très intéressant.
$ ln -s "the data" ./a_file $ readlink ./a_file the data
Déplacer tous les fichiers d'un certain type vers un dossier
find ./ -iname "*.pdf" -exec mv {} /your/dst \;
Démarrage
Quelques outils/conseils pour gérer le démarrage de Linux.
sysv-rc-conf
Ce petit tool permet de gérer le lancement des services Linux facilement.
sudo sysv-rc-conf
Source:
Lister tous les services actifs
sudo service --status-all
Permissions
Impossible de lancer des commandes en sudo
Si vous rencontrez ce message:
user is not in the sudoers file. This incident will be reported.
Passez en root:
su
Puis éditez le fichier des groupes:
/etc/group
Verifiez que votre user est dans le groupe sudo:
sudo:x:27:narann
Relogguez vous, le problème devrait être résolu.
Notez que le problème est le même si vous avez le message d'erreur suivant:
Le mécanisme d'autorisation sous-jacent (sudo) ne vous autorise pas à lancer ce programme.
Réseau
Lister les ports ouverts sur la machine
netstat -tulpn
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 353/sshd tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 883/mysqld tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 899/nginx tcp6 0 0 :::22 :::* LISTEN 353/sshd tcp6 0 0 :::9090 :::* LISTEN 1028/apache2 tcp6 0 0 :::443 :::* LISTEN 1028/apache2 udp 0 0 0.0.0.0:68 0.0.0.0:* 792/dhclient udp 0 0 0.0.0.0:60370 0.0.0.0:* 697/avahi-daemon: r udp 0 0 0.0.0.0:5353 0.0.0.0:* 697/avahi-daemon: r
Il y a aussi:
sudo netstat -lp --inet
Plus d'infos:Quels sont mes ports ouverts sous Ubuntu ?
Récupérer les ports ouverts depuis l’extérieur
nmap supersite.com -p0-65500
Starting Nmap 5.00 ( http://nmap.org ) at 2011-11-01 18:00 CET Illegal character(s) in hostname -- replacing with '*' Interesting ports on localhost* (127.0.0.1): Not shown: 65496 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 443/tcp open https 3306/tcp open mysql 9090/tcp open http-proxy Nmap done: 1 IP address (1 host up) scanned in 4.78 seconds
Configurer un .htaccess
Empêcher de lister les éléments d'un dossier:
IndexIgnore *
Empêcher de lister les .pdf d'un dossier:
IndexIgnore *.pdf
Rediriger le display d'un serveur X en ssh
Il est possible de rediriger la sortie display d'un serveur X pour ouvrir une application depuis ssh.
setenv DISPLAY hostname:0
Il faut que hostname soit accessible depuis la machine sur laquelle on est loggué.
Savoir si une extension PHP est installée
php -i | grep -i 'SSL'
Source: http://snipplr.com/view/5068/
X
Regénérer un fichier xorg.conf
sudo Xorg -configure
Source: Create A xorg.conf File
Reconfigurer xserver
Sous Debian:
dpkg-reconfigure xserver-xorg
Sous les autres:
cd /etc/X11/ && Xorg -configure
Source: http://www.cyberciti.biz/faq/howto-linux-configure-xorg-x11/
Tester un fichier xorg.conf
X -config -retro /root/xorg.conf.new X -config -retro /etc/X11/xorg.conf
Récupérer des informations sur une fenêtre
>xwininfo
xwininfo: Please select the window about which you
would like information by clicking the
mouse in that window.
xwininfo: Window id: 0x1eac011 "bin - Dolphin"
Absolute upper-left X: 2135
Absolute upper-left Y: 26
Relative upper-left X: 0
Relative upper-left Y: 16
Width: 1490
Height: 919
Depth: 24
Visual Class: TrueColor
Border width: 0
Class: InputOutput
Colormap: 0x20 (installed)
Bit Gravity State: NorthWestGravity
Window Gravity State: NorthWestGravity
Backing Store State: NotUseful
Save Under State: no
Map State: IsViewable
Override Redirect State: no
Corners: +2135+26 -215+26 -215-135 +2135-135
-geometry 1490x919+2134+9
Conflit entre xfdestop et le desktop Gnome
Il faut savoir que lancer nautilus sans l'option –no-desktop force l'affichage du desktop Gnome…
C'est particulièrement gênant si nautilus est lancé après le démarrage d'une session. Dans mon cas, nautilus et xfdestop sont lancé tout les deux au démarrage et c'était nautilus (et donc le desktop Gnome) qui avaient l'avantage.
Le problème c'est qu'il n'est pas forcément aisé de s'assurer que tout les nautilus lancés le soit bien avec l'option –no-desktop. Il existe donc une option pour ça. Ouvrez gconf-editor.
gconf-editor
Puis d'aller dans:
apps/nautilus/preferences
Et de decocher l'option:
show_desktop
Si vous n'avez pas gconf-editor, ouvrez:
.gconf/apps/nautilus/preferences/%gconf.xml
Puis editez la ligne:
<entry name="show_desktop" mtime="1326487410" type="bool" value="true"/>
Et passez la valeur à false.
Mettre a jour cache des fonts
Si vous mettez une nouvelle police de caractère (dans .fonts par exemple), il faut mettre a jour le cache:
fc-cache
Réinitialiser la sensibilité et l’accélération de la souris
xset mouse 0 0
Vous pouvez placer cette commande dans votre .xsession pour en profiter à chaque démarrage.
Activer les compose key et faire des accents sous avec clavier anglais
setxkbmap -option compose:ralt
Faites ensuite un AltDroite+` (tilde) puis tapez la lettre a et vous obtenez un à. Vous pouvez aussi faire l'inverse: AltDroite+a puis tapez `(tilde). Pour le â: AltDroite+a puis tapez Shift+6 (du clavier alphabétique): â. Faites quelques essais pour trouver les différents accents.
Cette combine peut fonctionner pour les lettres suivantes:
- lalt: Left Alt, Alt Gauche.
- ralt: Right Alt, Alt Droite.
- lctrl: Left Ctrl, Ctrl Gauche.
- rctrl: Right Ctrl, Ctrl Droite.
Source: Getting your way with setxkbmap
Reinitialiser les options de setxkbmap
setxkbmap -option
Audio
Supprimer PulseAudio au profit d'ALSA
Si vous désinstallez PulseAudio, il peut arriver que vous ayez des soucis de son. Un exemple flagrant est une lenteur au démarrage d'une application sonore (VLC, Flash, etc…) car il essaye de se connecter au serveur PulseAudio alors que celui ci n'est plus la…
La faute a un fichier de config:
/etc/asound.conf
ou
~/.asoundrc
Qui est la version “user” du premier.
Ces fichiers servent a dire avec quel matériel, serveur sonore, etc… ALSA doit lire tel ou tel type de son. C'est vraiment la config de ALSA.
Si vous n'avez pas de matériel spécial, le plus simple est de le supprimer pour forcer l'utilisation de ALSA dans tout les cas (c'est ce que j'ai fait). Sinon vous pouvez supprimer les groupes faisant référence a pulse. De cette façon, ALSA n'essaiera pas de lancer PulseAudio.
Compression/Décompression
tar
Compresser une archive tar
Compresser le dossier myArchive (en gzip):
tar -czvf myArchive.tar.gz myArchive
L'argument z, c'est pour compresser en gzip.
Décompresser une archive tar
Decompresser dans un sous dossier myArchive:
tar -xvf myArchive.tar
Lister le contenu d'une archive tar
Pour afficher la liste du contenu d'un fichier myArchive.tar :
tar -tvf myArchive.tar
Compresser/Décompresser une archive zip
Compresser récursivement le dossier myArchive:
zip -r myArchive.zip myArchive
Décompresser dans un sous dossier myArchive:
unzip myArchive.zip -d myArchive
Décompresser tout les fichier zip d'un dossier:
unzip *.zip
Ou bien:
for z in *.zip; do unzip $z; done
Compresser/Décompresser une archive rar
unrar e myArchive.rar unrar x myArchive.rar
Source: Open RAR File / Extract RAR Files Under Linux or UNIX
7z
Compresser:
7z a -t7z -mx9 -mmt=on -pmypassword archive.7z files
Plus complexe:
7z a -t7z -mx9 -mfb=256 -md=256m -ms=on -mmt=on archive.7z files
Décompresser:
7z x stuff.7z
Divers
Logiciels divers
Clipboard managers
Ces petits logiciels se calent souvent dans la barre des taches et stockent le contenu des copier/coller. Très pratique pour les utilisateurs avancés.
- Klipper - KDE
- Clipman - XFCE
- Parcellite - GTK+
Source: http://www.webupd8.org/2010/08/best-linux-clipboard-manager.html
Changer la résolution de grub2
Il faut d'abord connaître la résolution VESA disponible (VESA ne supporte pas 1920×1080).
sudo hwinfo --framebuffer
Ce qui vous donne une liste.
Par exemple, chez moi je prend la plus haute disponible:
Mode 0x0346: 1400x1050 (+5632), 24 bits
Éditez le fichier:
sudo nano /etc/default/grub
Décommentez:
#GRUB_GFXMODE=640x480
Et mettez:
GRUB_GFXMODE=1400x1050x24 GRUB_GFXPAYLOAD_LINUX=keep
GRUB_GFXPAYLOAD_LINUX dit a grub2 de ne pas changer la résolution si on lance linux (cela permet d'avoir des terminaux tty en haute résolution).
C'est fini! Faite un:
sudo update-grub2
Puis redémarrez votre ordinateur.
Des liens en vrac:
Lancer nedit en utf8
Cette manip marche sûrement pour d'autres logiciels.
LANG=fr_FR nedit&
Screencast
ffmpeg -f alsa -ac 2 -i hw:0,0 -f x11grab -s 1680x1050 -r 30 -i :0.0 -vcodec mpeg2video -sameq -acodec libmp3lame -ab 128k screencast.mpg
Supprimer les associations de fichier Wine
rm -fr ~/.local/share/applications/wine-extension-* rm -fr ~/.local/share/mime/packages/*wine-extension* rm -fr ~/.local/share/icons/*wine-extension*
Source: https://linuxfr.org/forums/astucesdivers/posts/wine-extension-desktop
Créer un nouveau Wineprefix
Pour créer un nouveau dossier Wine prêt a l'emploi:
WINEPREFIX=~/.wine-foo wineboot
Mais ce dossier ne sera pas accessible depuis le menu 'Winetricks. Pour ça il faut lancer le faire dans le bon dossier:
WINEPREFIX=~/.local/share/wineprefixes/foo wineboot
On peut meme pousser le vice en créant un fichier wrapper.cfg avec le nom du préfixe dedans (pour qu'il apparaisse dans Winetricks:
echo ww_name=\"My Foo\" > ~/.local/share/wineprefixes/wrapper.cfg
Extraire la piste Ogg d'une vidéo WebM sans ré-encodage
Le format WebM est un container Matroska qui empaquète un (ou plusieurs) flux vidéos encodés en VP8 et un (ou plusieurs) flux audios encodés en Vorbis. Le Ogg est un container principalement (de facto disons) utilisé pour l'audio encodé en Vorbis.
De ce fait, il est possible d'extraire la piste audio d'un fichier WebM de la placer dans un container Ogg sans avoir à la modifier, et donc, sans avoir à la ré-encoder. La méthode ici consiste à utiliser jDownloader pour télécharger une vidéo Youtube au format WebM dans sa plus haute résolution disponible (Ici, 720p).
Une fois le fichier téléchargé, il suffit d'extraire la piste audio grâce à cette commande (nécessite le package mkvtoolnix).
$ mkvextract tracks "Avicii - Super Mario World Levels (Full Version)(720p_VP8-Vorbis).webm" 2:monSuperFichierOgg.ogg Extracting track 2 with the CodecID 'A_VORBIS' to the file 'monSuperFichierOgg.ogg'. Container format: Ogg (Vorbis in Ogg) Avancement : 100%
Le chiffre 2 correspond au numéro de la piste à extraire.
Et bam! Vous avez un fichier Ogg de super qualité!
Source: http://notepad.patheticcockroach.com/2430/extracting-a-vorbis-audio-track-to-an-ogg-audio-file/
Extraire le son d'une vidéo MP4 sans ré-encodage
ffmpeg -i myVideo.mp4 -vn -acodec copy mySound.aac
Convertir un CD audio en wav
Cette commande fait un rapport des pistes disponibles:
cdparanoia -vsQ
Cette commande va extraire le CD audio en wav en mode batch (les fichiers sont séparés: Un par piste).
cdparanoia -B
Cette commande extrait du début de la piste deux à la fin de la piste deux (soit, juste la piste deux).
cdparanoia "2-2"
Sur certains CD, il se peut que la derniere piste affiche des messages d'erreurs et que l'extraction ne finisse jamais. Il suffit d'ouvrir avec Audacity le fichier .wav généré et de le resauvegarder en wav.
Source: http://www.cyberciti.biz/faq/linux-ripping-and-encoding-audio-files/
Repérer des fichiers identiques
Très pratique pour trouver des photos identiques.
fdupes -r repertoire
Exemple:
$ fdupes -r ./ ./IMG_7608 (copie).JPG ./IMG_7608.JPG
Dumper un CD
Il y a plusieurs façons de dumper un CD. La plus simple étant celle ci:
dd if=/dev/cdrom of=mydump.iso
Cette methode fonctionne egalement avec des DVDs.
En revanche, si votre CD contient des pistes audios, il vaut mieux utiliser cette méthode:
cdrdao read-cd --read-raw --datafile mydump.bin --device /dev/cdrom --driver generic-mmc-raw mydump.toc toc2cue mydump.toc mydump.cue
N'oubliez pas de démonter le lecteur CD avant de faire cette manipulation:
sudo umount /dev/cdrom
Source: Trouver des fichiers identiques sous Linux avec fdupes
Renommer toutes les extensions des fichiers d'un dossier
Cet exemple renomme tout les .txt en .dat.
for i in *.txt;do mv $i ${i%txt}dat ;done
Convertir un PDF en fichier image
pdftoppm /path/to/the/my_file.pdf /path/to/extract/images
Vous pouvez extraire que les pages voulues:
pdftoppm -f 12 -l 12 /path/to/the/my_file.pdf /path/to/extract/images
Extraire les images d'un fichier PDF
pdfimages /path/to/the/my_file.pdf /path/to/extract/images
Vous pouvez extraire les images des pages uniquement voulues:
pdfimages -f 12 -l 12 /path/to/the/my_file.pdf /path/to/extract/images
Créer un gif animé depuis un movie
ffmpeg -ss 431 -t 20 -i my_movie.mp4 -vf crop=1280:536:0:92 -r 15 toto%05d.png
- -ss est le début en seconde.
- -t est le nombre de seconde à extraire.
- -i le fichier vidéo en entré.
- -vf crop=width:heigh:left:top la taille à croper et le decalage à partir du coin supèrieure gauche.
- -r le nombre d'image seconde en sortie (à placer après le input).
Voyez large et supprimez les images en trop au début et en fin de vidéo.
Puis:
convert -delay 6.666 -resize 200x200 toto*.png -loop 0 toto.gif
- -delay le temps en centième de seconde entre chaque image: (1/15)*100
- -resize la hauteur et la largeur maximum. Pour ne pas concerver le ration, placez un point d'exclamation (!) à la fin.
- -loop 0 pour faire tourner l'animation en boucle.
Et si je gif animé s'y prette, une ligne qui réduit le nombre de couleur, et donc, sa taille:
gifsicle --color-method median-cut --colors 256 --optimize=03 toto200.gif > toto200optim.gif
Activer l'anti-aliasing dans une application Java
java -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true -jar <your_jar_file>