Xavier Lamorlette

Commandes shell utiles

!!

Re-exécute la dernière commande.
!!:gs/toto/tata : re-exécute la dernière commande, en remplaçant « toto » par « tata ».

column

Affiche la liste donnée en colonnes.
Exemple : mount | column -t

cut

Coupe chaque ligne en champs pour en extraire certains.
Exemple : cut -d: -f1,3 toto.txt

curl

Envoie une requête HTTP (ou autre). Exemple : curl -w "%{http_code} %{url_effective}\\n" -d "param1=toto&param2=tata" http://127.0.0.1:8000/titi

diff

Compare deux fichiers, ligne par ligne.

du

Calcule la taille des répertoires. Exemple avec un sort : du -sh * | sort -h

ed

Editeur de texte en ligne de commande.
Suppression des lignes 1 et 3 : ed -s test <<< $'3d\n1d\nw'

find

Recherche des fichiers. Exemple : find . -name "pattern" -exec command {} \;

free

Donne l'état de la mémoire utilisée.

getent

Liste des utilisateurs: getent passwd

less

Affiche le contenu d'un fichier, en permettant de naviguer en son sein.
/xxxrecherche xxx
?xxxrecherche xxx en remontant dans le fichier
Gva à la fin du fichier
gva au début du fichier
xxxgva à la ligne xxx
less -R : traite les caractères ANSI de contrôle des couleurs.

lsof

Liste les fichiers (connexions, bibliothèques partagées, etc.) utilisés par un processus.
Cf http://www.catonmat.net/blog/unix-utilities-lsof.

netstat

Affiche l'utilisation des ports réseaux sur la machine.
Ainsi pour investiguer un conflit de port : netstat -tulapn | grep ###

nfsstat

Affiche les statistiques NFS.

pmap

Affiche les informations sur la mémoire utilisée par un processus.

proc

Donne les détails de l'utilisation mémoire d'un processus.
Exemple : more /proc/###/status

ps

Liste les processus.
Exemple : ps -aufx

python

Démarre un serveur HTTP avec le contenu du répertoire courant : python -m SimpleHTTPServer 8080

reset

Réinitialise le terminal (utile après avoir affiché un binaire).

screen

Lance un shell indépendant du terminal depuis lequel il est lancé. Ainsi ce shell continue de fonctionner même lorsqu'on se déloggue.
screencrée une nouvelle console
screen -S titrecrée une nouvelle console en lui donnant un titre
screen -lsliste les consoles ouvertes
screen -r titrese reconnecte sur une console existante

Ctrl-a ?aide
Ctrl-a, Arenomme la console
Ctrl-a, Ctrl-d / ddétache la console (sans la terminer) (detach)
Ctrl-a, Ctrl-k / ktermine la console (kill)
Ctrl-a, Fredimensionne le terminal à la taille de la fenêtre
Ctrl-a, ccrée une nouvelle console (create)
Ctrl-a, p / nconsole précédente (previous) / suivante (next)
Ctrl-a, henregistre l'activité de la console dans un fichier
Ctrl-a, "liste les consoles
Ctrl-a, Qsupprime toutes les consoles, sauf la courante
Ctrl-a, m« look for activity »
Ctrl-a, _« look for silence »

Pour partager une console :
  alice > screen -S toto
    Ctrl-a, :multiuser on
    ctrl-a, :acladd bob
  bob > screen -x alice/toto

sort

Trie.

ssh

Tunnel : créer une connection ssh via une machine intermédiaire : ssh -t reachable_host ssh unreachable_host

ssh-copy-id

Copie sa clef publique sur une autre machine : ssh-copy-id remote-machine

strace

Enregistre les appels systèmes émis et les signaux reçus par un processus.

tar

Utilitaire d'archivage.

tput

Changer la fonte pour écrire sur le terminal. Exemple : tput bold ; tput setf 4 ; tput setb 7 ; echo test ; tput sgr0

tr

Supprimer les répétitions de caractères : tr -s

ulimit

Lit et modifie les limites pour l'utilisateur courant.

uniq

Supprime / compte les lignes en double.

watch

Exécute un programme régulièrement et affiche sa sortie en plein écran.
Exemple : watch df -h

xargs

Prend les arguments en entrée et les remet sur la commande en sortie Exemples :
grep -l "toto" * | xargs -i sh -c "ls -l {}; grep titi {}; grep \"toto\" {} | wc"
grep -l pattern **/*.cpp | xargs -l1 changeInPlace.pl -f pattern remplacement

La dernière mise à jour de cette page date d'avril 2017.

Le contenu de ce site est, en tant qu'œuvre originale de l'esprit, protégé par le droit d'auteur.
Pour tout commentaire, vous pouvez m'écrire à xavier.lamorlette@gmail.com.