En continuant à naviguer sur mon site, vous consentez à ce que j'utilise des cookies pour collecter les statistiques de visites. En savoir plus

#Informatique Naviguer plus simplement en ligne de commande (Linux)

Si comme moi, vous avez plusieurs sites sur votre serveur voire plusieurs sous-domaines, plusieurs applis web stockées dans des sous-dossiers, et que les commandes cd/ls deviennent pénibles pour s'y retrouver, j'ai un petit quelque chose pour vous, qui devrait faciliter un peu les choses.

Tout d'abord, les prérequis :

  • Avoir PHP installé (j'ai fait mon script en PHP uniquement par pure facilité, mais le script peut facilement être traduit dans d'autres langages), avec la version CLI de PHP pour pouvoir l'utiliser en ligne de commande ;
  • Utiliser un environnement Linux de type Bash (je ne connais pas les spécificités des autres lignes de commandes qui pourraient permettre de faire cela, une fois encore, il est peut-être possible de traduire cela en sh ou je ne sais quoi d'autre).

Tout d'abord, j'ai mis à votre disposition le script sur GitHub. Ensuite, comme indiqué sur GitHub, il vous faudra modifier votre .bash_aliases pour pouvoir appeler le script depuis n'importe quel répertoire. Sur GitHub, je propose d'utiliser la commande cdls, mais sur mon serveur j'ai pour habitude d'appeler ce script avec la simple lettre "w".

Que se passe-t-il ensuite ?

Comme il n'est pas possible de changer le répertoire dans lequel l'utilisateur se trouve depuis un script, j'ai donc dû ruser pour pouvoir provoquer un cd. C'est pourquoi le script PHP affiche le répertoire sélectionné sur la sortie standard.

Mais comment afficher toute l'interface de sélection du répertoire ?

En utilisant la sortie d'erreur. C'est un peu crade, certes. Mais ça fonctionne, juste pour un petit script qui permet de changer de répertoire, on n'allait pas s'embêter à faire dans la dentelle.

Ensuite, il n'y a plus qu'à définir dans quel répertoire on souhaite d'abord effectuer la première sélection. Personnellement tous mes sites se trouvent dans /web. C'est pourquoi, j'ai mis /web en paramètre par défaut de la fonction cd().

Et comment naviguer dans les sous-répertoires ?

Grâce à une technique très simple : pour tous les répertoires où il est nécessaire de continuer la navigation, il faudra ajouter un fichier .folder . J'ai préféré utiliser cette technique plutôt que de naviguer jusqu'à ce que l'on écrive "ok" par exemple. Ça permet d'économiser une étape de sortie pour un script qui veut faciliter la navigation.

Notez que si l'interface propose de naviguer avec des numéros (et des lettres s'il y a plus de 10 répertoires), il est aussi possible de saisir les premières lettres du nom du répertoire dans lequel vous souhaitez vous déplacer.

Les suggestions d'amélioration sont les bienvenues :)

Rédigé le .

Commentaires

comments powered by Disqus