bash and shell tips and tricks
Some of khemael’s tricks
Relancer la commande en root
su -c !!
nice output of mount
mount | column -t
Query wikipedia à travers le DNS
dig +short txt <keyword>.wp.dg.cx
afficher les 10 processus les plus gourmant en RAM
ps aux | sort -nk +4 | tail
“BEEP” when the IP comes online
ping -a IP_address
Extract a tarball without local saving.
wget -qO - "http://www.tarball.com/tarball.gz" | tar zxvf -
My cool terminal clock 🙂
watch -t -n1 "date +%T|figlet"
Binary clock
watch -n 1 'echo "obase=2;`date +%s`" | bc'
Quick share of a file through a port
nc -w 5 -v -l -p 80 < file.ext
Stream youtube url directly to mplayer (no cclive needed)
mplayer -fs $(echo "http://youtube.com/get_video.php?$(curl -s $youtube_url | sed -n "/watch_fullscreen/s;.*\(video_id.\+\)&title.*;\1;p")")
Sympa mais la Fork Bomb n’a pas vraiment lieu d’être là, surtout en 2eme position…
Lire ligne par ligne un fichier:
Lire un fichier ligne par ligne et stocker chaque “colonne” dans une variable (IFS correspond au délimiteur):
il semble que la commande pour youtube ne marche pas. une erreur “404” apparait.
(j’ai bien mis un champs dans la variable youtube_url)
et oui, la commande fork est un peu mal placé…
faudrait mettre un article pour “comment se protéger d’un fork” voir un lien pour en prévenir.
dans /etc/security/limits.conf :
# Limit user processes to 100 processus
* soft nproc 100
* hard nproc 100
# limits size of any one of users’ files” /etc/security/limits.conf
* hard fsize 50000
Grace à ça un utilisateur de ton système ne peux pas avoir plus de 100 processus.
Un utilisateur de ton système ne peut pas posséder de fichiers supérieur à 50Mo.
for i in * ; do mv “$i” “`echo $i | perl -pe ‘s/foo_regex/bar/’ `”; done
-> man rename
`echo $i | perl -pe ‘s/gif$/png/’ `
-> ${i/gif/png}
@noob
“-> ${i/gif/png}”
si le fichier s’appèle “gifts.gif” ça le renomme en “pngts.gif”
De plus l’exemple donné est très basique mais l’intérêt de passer par perl est d’utiliser la puissance des regex, exemple : s/\D*(\d+)\.(gif|bmp|jpg|svg)$/plop_\1.png/