Pense-bête: lignes de commandes
Voici un nouvel article que je vais faire évoluer dans le temps au fil de mes découvertes. Le but est d'y centraliser (avec un classement par thème) les lignes de commandes Unix utiles et que j'ai toujours beaucoup de mal à retenir (c'est l'âge mon bon monsieur).
Lecteurs, vous êtes libre d'enrichir cette base avec vos commentaires.
Fichiers & répertoires
Affiche la taille d'un répertoire en octets.
Syntaxe:
1 | du -sh /mon/path | awk '{print $1}' |
Exemple:
1 2 3 | du -sh /usr/local/ |awk '{print $1}' 375M |
Système
Ajoute un dépôt PPA sous Ubuntu (9.04 ou supérieur).
Syntaxe:
1 | sudo add-apt-repository ppa:nicolargo |
Exemple:
1 2 3 4 | gpg: requête de la clé CEC06767 du serveur hkp keyserver.ubuntu.com gpg: clé CEC06767: clé publique « Launchpad Nicolargo PPA » importée gpg: Quantité totale traitée: 1 gpg: importée: 1 (RSA: 1) |
Réseau
Affiche les informations sur sa carte réseau.
Syntaxe:
1 | sudo mii-tool -v |
Exemple:
1 2 3 4 5 6 7 | eth0: negotiated 100baseTx-FD flow-control, link ok product info: vendor 00:50:43, model 11 rev 1 basic mode: autonegotiation enabled basic status: autonegotiation complete, link ok capabilities: 1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control link partner: 1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control |
Affiche son adresse IP publique.
Syntaxe:
1 | curl -s http://checkip.dyndns.org/ | grep -o "[[:digit:].]\+" |
Exemple:
1 | 89.122.166.229 |
Affiche les ports réseau en écoute sur sa machine.
Syntaxe:
1 | sudo lsof -Pni4 | grep LISTEN |
Exemple:
1 2 3 4 5 6 7 | sshd 912 root 3u IPv4 4255 0t0 TCP *:22 (LISTEN) netserver 1355 root 4u IPv4 5747 0t0 TCP *:12865 (LISTEN) ntop 1456 ntop 1u IPv4 6080 0t0 TCP *:3000 (LISTEN) master 1549 root 12u IPv4 6175 0t0 TCP *:25 (LISTEN) cupsd 1644 root 6u IPv4 649219 0t0 TCP 127.0.0.1:631 (LISTEN) beam.smp 2256 labo 16u IPv4 11238 0t0 TCP 127.0.0.1:44732 (LISTEN) dropbox 15432 labo 19u IPv4 227846 0t0 TCP *:17500 (LISTEN) |
Tester sa connectivité réseau de bout en bout avec mtr (ping+traceroute).
Syntaxe:
1 | mtr www.google.fr |
Exemple:

Audio/video
Encoder un VOB DVD vers un OGG Theora en qualité correcte.
Syntaxe:
1 | ffmpeg2theora -V 900 -x 540 --first-pass log input.vob -o output.ogv</code> <code>; ffmpeg2theora -V 900 -x 540 --second-pass log input.vob -o output.ogv |
Exemple:
'
A vous de sheller...







Twitter:
Rss:
Commentaires (de mes chers lecteurs):
Bon, un peu bourrin, mais voici la mienne :]
# Utilisation de TcpDump
tcpdump -i eth0 -n -s 1500 -w Capture.pcap udp port 5060
# Mappage de port
iptables -t nat -A PREROUTING -p tcp –dport 3389 -j DNAT –to 10.1.0.17
# Suppression
iptables -t nat -D PREROUTING -p tcp –dport 3389 -j DNAT –to 10.1.0.17
# Corriger le souci de :
# W: GPG error: http://www.ultramonkey.org sarge Release: Les signatures suivantes n’ont
# pas pu être vérifiées car la clé publique n’est pas disponible :
# NO_PUBKEY 03C0023E05410E97
ClePowa=03C0023E05410E97 && gpg –keyserver pgpkeys.mit.edu –recv-key $ClePowa && gpg -a –export $ClePowa | apt-key add -
# Faire de la place barbarement sur les Alix
rm -r /usr/share/man/*
rm -r /usr/share/doc/*
rm -rf /var/lib/apt/lists/security*
rm -rf /var/lib/apt/lists/debian*
rm -f /var/cache/apt/pkgcache.bin /var/cache/apt/srcpkgcache.bin
rm -f /var/lib/dpkg/available-old /var/lib/dpkg/status-old
rm -f /var/cache/debconf/config.dat-old /var/cache/debconf/templates.dat-old
apt-get clean > /dev/null
find /var/lib/apt/lists -type f \( -name “*Packages*” -o -name “*Sources*” -o -name “*Release*” \) -exec rm -f ‘{}’ ‘;’ 2>/dev/null
dpkg –clear-avail > /dev/null
rm -f /var/cache/apt/*.bin > /dev/null
apt-cache gencaches > /dev/null
find /usr/share/locale -name “*.mo” -exec rm ‘{}’ ‘;’ 2>/dev/null
find /usr/share/ -name “*.info.gz” -exec rm ‘{}’ ‘;’ 2>/dev/null
find /usr/share/locale -path ‘*/en’ -mindepth 1 -maxdepth 2 -prune -o -print -exec rm -rf ‘{}’ ‘;’ 2>/dev/null >/dev/null
rm -f /var/lib/dpkg/info/*.md5sums
rm -f /boot/*.bmp
mkdir /usr/share/man/man5
mkdir /usr/share/man/man8
mkdir /usr/share/man/man1
# Afficher l’IP publique
curl ip.appspot.com
# tout mettre a jour
aptitude update && aptitude update && aptitude safe-upgrade –without-recommends -y && aptitude full-upgrade –without-recommends -y && aptitude safe-upgrade –without-recommends -y && aptitude full-upgrade –without-recommends -y && aptitude purge
deborphan-y && aptitude purgedpkg -l | grep -v ii | awk '{ print $2 }' | sed '1,5d' | tr -s '\n ' ' '-y && aptitude clean && aptitude autoclean# supprimer les paquets casses et les dependances non utilisees :
aptitude purge
deborphan&& aptitude purgedpkg -l | grep -v ii | awk '{ print $2 }' | sed '1,5d' | tr -s '\n ' ' '# Tester la non-existence d’un fichier/repertoire
if [ ! -f /etc/squid3/users/g_list2 ]
then
echo “Merci de creer le fichier /etc/squid3/users/g_list”
exit 3
fi
# Trier et ne prendre qu’une seule occurence
uniq | sort | uniq
# trouver le nombre de slot memoire disponible
dmidecode | grep -i “size”
# Afficher la liste des processeurs
sed -n ‘s/^model name[ \t]*: *//p’ /proc/cpuinfo
# supprimer des lignes vides
sed -i ‘/^$/d’ FICHIER
# supprimer la 1ere ligne d’un fichier
sed -i ’1d’ FICHIER
# remplacer une chaine de caractere par une autre
sed -i ‘s/ChaineRemplacer/NouvelleChaine/g’ FICHIER
# parser un csv
exec /tmp/pouet <pouet
less pouet
# tuer plusieurs process ayant le m뮥 nom
killall NomProcess
# ou
Process=PROCESSaLAmano ; for cayapowa in
ps -edf | grep $Process | awk '{ print $2 }'; do kill -9 $cayapowa ; doneAlt + ImprEcr + R (Raw) : les codes “brutes” ds touches seront transmis (pas de translation)
Alt + ImprEcr + S (Sync) : vide le cache disque
Alt + ImprEcr + U (Unmount) : demonte et remonte en lecture seule
Alt + ImprEcr + E (tErm) : envoie le signal SIGTERM
Alt + ImprEcr + I (kIll) : envoie le signal SIGKILL
Alt + ImprEcr + B (reBoot) : redemarre le systeme
# forcer un fsck
touch /forcefsck
# Interdire un fsck au reboot
touch /fastboot
# variable de variable
eval MaVariableTordue=\$toto_$titi
# Reconstruire l’index d’une boite mail
su – cyrus -c ‘/usr/sbin/cyrreconstruct user/postmaster/Sent@billingfrance.net’
# Changer TOUS les serials des zones dns
for i in
ls; do cat $i | sed -e ‘s/.*[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9].*/\t\t\t\t2010012001\t\;\ Serial/’ $i > $i.done && mv $i.done $i; done# Renomme en masse : (vire le db. des noms de fichiers en dꣵt)
for i in
ls db.*; do mv $iecho $i | sed -e 's/db\.//'; done# Reload des zones en masse
for i in
ls; do rndc reload $i ; done# Retourner le nom d’un fichier debarasse son path
basename /sbin/ifconfig
# Retourner le path d’un fichier sans le nom du fichier
dirname /sbin/ifconfig
# Envoyer un mail en bash avec un fichier joint
cat /tmp/RapportSave.txt | mail -s “Rapport de Sauvegarde Mail” grabouin@neocom.fr
# Liste des arguments
echo $*
# Nombre d’arguments
echo $#
# Si utilisation d’un nombre d’argument trop grand (>10)
echo ${10}
# Configuration de ssmtp
cat > /etc/ssmtp/ssmtp.conf << EOF
mailhub=smtp.neocom.fr:25
hostname=neocom.fr
UseTLS=YES
FromLineOverride=YES
AuthUser=nagios@neonoc.fr
AuthPass=t6yfdlr2SSQ
EOF
# Tester la longueur d'une variable $toto
if [ ${#toto} -ne 9 ]
then
echo toto ne fait pas 9 caractères
fi
# Tester la validité d'une zone dns
for i in
ls; do named-checkzone $i $i | grep -v OK | grep -v ^zone ; doneA vous de sheller ? Ok.
http://www.universheller.net/
Oh ouizzzz !
+1
Pour créer des miniatures d’un lot d’images JPEG en conservant les proportions (même en cas de différence d’orientation) :
for fichier in /repertoire/source/*.JPG ; do convert -geometry 120×100 -quality 60 $fichier /repertoire/destination/
basename $fichier; doneA vous de sheller…
http://www.commandlinefu.com/commands/browse
Article très pratique, un grand merci.
J’aime notamment le http://www.commandlinefu.com/commands/view/209/check-command-history-but-avoid-running-it.
Je crois que c’est une fonctionnalité de Bash mais c’est très pratique quand même pour ne pas taper plein de fois de suite sur la flèche du haut pour rappeler une ancienne commande.