Ces commandes utiles

Lecture de 4 minutes

À passer autant de temps sur divers projets, autant en développement web qu'en programmation interactive, on finit tôt ou tard par avoir besoin de connaissances de base avec le terminal. Or, il y a quelques années maintenant que j'y ai plongé, et malgré l'aridité de la chose, je ne m'en passerais pour rien au monde aujourd'hui.

Voici les commandes dont je ne peux plus me passer!

CTRL+C

Lorsque j'ai commencé à explorer le terminal, je croyais que pour quitter une opération en cours, il fallait quitter le terminal, puis en ouvrir un autre… Or, il existe une façon nettement plus simple : il suffit d'appuyer sur CTRL+C lorsqu'un opération est en cours pour l'interrompre!

CTRL+A et CTRL+E

Facilite le déplacement du curseur : CTRL+A renvoie au début de la ligne, et CTRL+E renvoie à la fin de la ligne.

CTRL+R

Recherche une commande dans l'historique. Il ne reste plus qu'à presser ENTER pour exécuter.

pwd

Sans doute l'une des commandes les plus simples, pwd retourne simplement le path complet où l'on se trouve. Utilise pour copier-coller, ou s'assurer de la location actuelle avant d'exécuter une commande risquée. Par exemple, sur MacOSX, si vous ouvrez un terminal vide, il sera par défaut dans le dossier Home. En faisant pwd, vous obtiendrez:

$ pwd
/Users/<username>

ls -la

Affiche la liste des fichiers et dossiers (incluant les fichiers cachés et les fichiers système)

$ ls -la
drwxr-xr-x    3 jmcouillard  staff    102 28 sep  2012 Applications
drwx------@  38 jmcouillard  staff   1292 18 aoû 12:19 Desktop
drwx------+  19 jmcouillard  staff    646  9 aoû 16:47 Documents
drwx------@  73 jmcouillard  staff   2482  3 mai 11:45 Library
drwx------+   7 jmcouillard  staff    238 18 avr 13:17 Movies
drwx------@   7 jmcouillard  staff    238 18 avr 13:17 Music
drwx------+  36 jmcouillard  staff   1224 18 aoû 00:38 Pictures
drwxr-xr-x+   8 jmcouillard  staff    272 18 avr 13:17 Public
drwxr-xr-x+   3 jmcouillard  staff    102 18 avr 13:17 Sites

wget

Télécharge un fichier à l'emplacement actuel. Cela permet entre autres de gagner du temps en contrôlant un serveur par SSH, car wget peut être nettement plus rapide qu'un transfert ftp.

Cette commande n'est pas installée par défaut sur OSX, mais est disponible sur la plupart des distributions de Linux. Pour l'installer sur OSX, il suffit de suivre ces étapes.

wget http://ftp.drupal.org/files/projects/drupal-7.23.tar.gz

tar (compresser)

Cette commande permet de créer une archive contennat un dossier spécifique. De plus, elle exclue les fichiers cachés OSX. Il suffit de remplacer directory dans la commande suivante par le nom du dossier à compresser.

tar -zcf archive.tar.gz --exclude=.DS* --exclude="._*" directory

tar (décompresser)

Décompresse une archive spécifique.

tar -zxf archive.tar.gz

ssh

Cette commande établie une connexion sur un autre ordinateur. En d'autres mots, cela vous permet de prendre le contrôle du terminal d'un autre ordinateur. Si la connexion est faite en tant que root, alors vous avez le contrôle total de l'ordinateur distant.

ssh user@host

Par exemple:

ssh root@jmcouillard.com

scp

Cette commande est géniale pour les administrateurs de sites web qui veulent copier des fichiers d'un serveur à un autre (migration par exemple). Elle permet de copier le contenu intégral d'un dossier d'un dossier distant sur le serveur actuel. Elle requiert toutefois une connexion SSH, donc le serveur distant doit permettre ce genre de connexion

scp -r username@host:/path/* ./

Les permissions et le propriétaire sont toutefois conservés, alors il sera sans doute nécessaire d'associer les fichiers à un utilisateur existant sur le serveur.

chown -R username:group *

rm -R

Supprime un dossier et son contenu. La plupart du temps, il faut utiliser la commande en mode sudo pour éviter des confirmations inutiles. ATTENTION: cette commande peu supprimer l'ensemble de vos fichiers si elle est mal utilisée!

sudo rm -R myfolder

top

$ top
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
  809 root      20   0 11304 1052  868 S  0.0  0.1   0:00.05 mysqld_safe                                                         
 1343 mysql     20   0 1033m  92m 7720 S  0.0  4.5  22:58.84 mysqld                                                              
 1524 root      20   0  114m  732  644 S  0.0  0.0   0:06.33 crond                                                               
 1578 root      20   0  4064  496  492 S  0.0  0.0   0:00.00 mingetty                                                            
 1579 root      20   0  4064  496  492 S  0.0  0.0   0:00.00 mingetty                                                            
 9294 nginx     20   0 51840 4064 1648 S  0.0  0.2   0:25.66 nginx    

which

Permet de connaitre le dossier d'installation d'une librarie.

$ which php
/usr/bin/php

Être plus rapide que Flash Gordon

Sur OSX, Alfred est un utilitaire qui peut vous simplifier grandement la vie! À l'aide de ce module supplémentaire, vous pouvez ouvrir une fenêtre terminal directement à la location actuelle du finder. Cela vous évitera de faire d'interminables suites de cd.

Run Terminal Command Here

Il permet aussi d'exécuter directement une commande dans la location actuelle.