Ces commandes utiles
À 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
.
Il permet aussi d'exécuter directement une commande dans la location actuelle.