one_liners
Table of Contents
One-Liners
Des lignes de commandes qui réalisent en une seule ligne des traitements complexes. (Voir aussi Shell commands)
Shell
Find
- Trouver des fichier possédant des “SID” (SUID (4000), SGID (2000), StickyBit (1000)):
find . -type f \( -perm -4000 -o -perm -2000 \) -exec ls {} \; 2>/dev/null
- Réaliser une opération sur certains fichiers:
find . -user DE05425A -exec chmod 777 {} \;
- Lister certains repertoires:
find $home -type d -name "*foobar" -ls
- Lister uniquement les fichiers du répertoire (pas de récursivité):
# Versions GNU & BSD: find /path -maxdepth 1 -name "plop*" # Autres versions cd /path find . ! -name . -prune -name "plop*"
- Exécuter plusieurs commandes:
find /path -maxdepth 1 -name "plop*" -exec cmd1 {} \&\& cmd2 \; find . -name file1.cpp -exec ls -l {} \; -exec cat {} \; # Exécuter une fonction shell: export -f dosomething find . -exec bash -c 'dosomething {}' \;
- Sélectionner un fichier au hasard :
find '/some/foobar/path' -name '*.txt' | shuf -n1 # Lire une video au hasard vlc "$(find '/media/videos' -name '*.mp4' -o -name '*.flv' -o -name '*.avi' -o -name '*.wmv' | shuf -n1)"
Random
- Obtenir une chaine aléatoire (ici 8 caractères):
- Alpha seulement :
tr -dc "[:alpha:]" < /dev/urandom | head -c 8
- Alphanumérique :
tr -dc "[:alnum:]" < /dev/urandom | head -c 8
Perl
Pour faire un Perl one-liner: passer les arguments n
et e
. En cas de traitement d'un fichier en entrée, on peut récupérer le flux via <>
.
- Lister des données immergées dans de l'xml dans différents fichiers:
cat *20110201* | perl -ne '@talbe = split(/PRM/, <>); foreach (@talbe) {if (/.*<Identifiant>(\d{14})<\/Identifiant>.*/) {print "$1\n";};};'
Astuce SSH
Pour communiquer un fichier via SSH sans scp, sftp et consorts:
ssh user@host cat /path/file.zip > file.zip
Cinnamon
Eteindre la machine proprement via cinnamon (ne requière pas d'élévation de privilèges) :
cinnamon-session-quit --power-off
one_liners.txt · Last modified: 2014/09/15 01:09 by ginko