bash and shell tips and tricks
Le but de cet l’article est de partager avec vous des petits “trucs”, que nous rédacteur geekfault utilisons dans nos consoles préférées tous les jours, et souhaitons échanger avec vous petits scarabées.
En faite mon idée est partie de ce petit délire que m’a sorti khemael :
tr -c "[:digit:]" " "
Les astuces sont livrées de façon brute de fonderie.
Noob s'abstenir.
Nota Noob : Ne tappe pas une commande sur ton shell que tu ne comprends pas.
Some of madx's tricks
Redirections
commande 1> fichier : Redirige stdout dans fichier
commande 2> fichier : Redirige stderr dans fichier
commande 2>&1 : Redirige stderr vers stdout
commande &> fichier : Redirige stdout et stderr dans fichier
Fork bomb ! Warning, ne pas utiliser ça sur un serveur non protégé
f(){ f|f&};f
Bash and perl regexp
for i in * ; do mv "$i" "`echo $i | perl -pe 's/foo_regex/bar/' `"; done
for i in *.gif ; do convert "$i" "`echo $i | perl -pe 's/gif$/png/' `"; done
scp resume
rsync --partial --progress -e ssh file user@host:/dir
Remote backup
tar -cv / | ssh user@host -T -e none "cat > backup.tar"
ssh root@host "tar -c /" | cat > backup.tar
burning
mkisofs -v -R -r -V "dvd title" -o dvd.iso file1 file2 ...
cdrecord -v -dao -fs=500m -dev=/dev/sg1 -data dvd.iso
cdrecord -dev=/dev/sg1 blank=fast
perl regex sur un fichier
perl -pi -e 's/^(#)?TIMEZONE=.*$/TIMEZONE="Europe\\/Paris"/' /etc/conf.d/clock
encode to theora/ogg
ffmpeg -i whatever.avi -f ogg -vcodec libtheora -vb 2000k -acodec libvorbis -ab 128k -y whatever.ogg
Some of bragon's tricks
Perfect rsync + remote
#!/bin/sh
time /usr/bin/rsync \\
--rsh="ssh -2 -l root" \\
--verbose \\
--archive \\
--hard-links \\
--numeric-ids \\
--progress \\
--stats \\
--delete \\
--exclude "/proc/*" \\
--exclude "/sys/*" \\
--exclude "/vservers/*/proc/*" \\
--exclude "/vservers/*/dev/*" \\
--exclude "/vservers/*/sys/*" \\
--exclude "/data/*" \\
/vservers/sam/ gerontius:/vservers/sam/
config backup
cp /etc/httpd/conf/httpd.conf{,.bak}
for file in * ; do cp $file $file.bak; done
Afficher un calendrier rapidement
cal -3
La date d'aujourd'hui
date +%d-%b-%Y
16-May-2010
today=$(date +%d-%b-%Y)
echo $today
16-May-2010
repeting an argument
mkdir /path/to/exampledir
cd !$
Majuscule are useless
bragon@shaytan ~ $ shopt -s cdspell
bragon@shaytan ~ $ cd Downloads/
bragon@shaytan ~/Downloads $ cd
bragon@shaytan ~ $ cd downloads
Downloads
bragon@shaytan ~/Downloads $
Socket information sur ta workstation
ss -ari
ss -arn
Change user shell
chsh -s /bin/bash utilisateur # lui definir bash en tant que shell
chsh -s /bin/false utilisateur # pas de shell
chsh -s /bin/zsh utilisateur # zsh
iptables line del
chsh -s /bin/bash utilisateur # lui definir bash en tant que shell
chsh -s /bin/false utilisateur # pas de shell
chsh -s /bin/zsh utilisateur # zsh
iptables line del
iptables -L -n --line-numbers
iptables -D INPUT 34 # vires la ligne 34
history clean / dmesg clean
history -c
dmesg -c
petit script de screenshot
#!/bin/bash
export DISPLAY=":1"
/usr/bin/firefox --display :1 "$1" > /dev/null 2> /dev/null &
/bin/sleep 10
/usr/bin/import -window root -display :1 "$2"
killall firefox-bin
Se déconnecter d'un ssh quand on a timeout pour récupérer sa console
~.
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
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
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")")