20/05/2010

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")")
  1. Tycale
    | #1

    Sympa mais la Fork Bomb n’a pas vraiment lieu d’être là, surtout en 2eme position…

  2. sd76
    | #2

    Lire ligne par ligne un fichier:

    while read i
    do
    echo $i
    done < fichier.txt

    Lire un fichier ligne par ligne et stocker chaque “colonne” dans une variable (IFS correspond au délimiteur):

    while IFS=; read col1 col2
    do
    echo “$col1 $col2”
    done < fichier.txt

  3. Mick_
    | #3

    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.

  4. | #4

    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.

  5. noob
    | #5

    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}

  6. madx
    | #6

    @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/

  1. Pas encore de trackbacks