Table of Contents

Xiki shell: Les bases

Xsh (abréviation de Xiki Shell) possède de nombreuses fonctionnalités:

Usage basique

Pour entrer dans xsh

$ xsh

Pour sorir de xsh.

On est maintenant de retour à Bash. Xsh est destiné à compléter bash plutôt que de le remplacer. Ainsi, on peut rapidement sauter dans xsh puis en sortir.

Raccourcis clavier à l'écran

Xsh affiche les raccourcis clavier directement à l'écran! Donc, vous n'aver pas à les mémoriser comme dans des shell traditionnels.

Les lettres soulignées indiquent les raccourcis Ctrl.

Utilisation dans bash

Toutes les clés sauf les 3 dernières peuvent être directement appellées depuis bash.

Dépannage: Si la “configuration par défaut” n'a été pas sélectionnée lors de la configuration de xsh, il est possible que les raccourcis clavier bash ne soient pas activés. Exécuter xsh --help dans bash pour afficher les équivalents en ligne de commande de chaque raccourci clavier.

Il suffit de taper des lettres pour filtrer la sortie de commande

Par exemple dans bash :

Utilisation des filtres rapides

Dans xsh, il est facile de filtrer la sortie des commandes shell. Il suffit de taper quelques lettres après l'exécution de la commande! Dans les shells traditionnels, il faut utiliser grep, ce qui est lent et fastidieux

Lorsque Filtre AZ apparait dans la barre inférieure, cela signifie que l'on peut taper des lettres à filtrer.

Taper bi pour filtrer progressivement jusqu'à ne contenir que les lignes contenant bi.

Lorsque Filtre AZ n'est pas affiché, les touches de lettre servent à la saisie, car tout est modifiable dans xsh.

Appuyer sur échap pendant le filtrage pour recommencer. Ensuite, taper quelques lettres pour filtrer à nouveau.

Utilisation intercative des commandes shell

Xsh fait de la sortie de commande une interface interactive! Pour la commande ls, cela signifie que l'on peut naviguer de manière visible dans les répertoires et les fichiers. Au lieu d'avoir à taper un tas de commandes ls et cd.

La barre du bas affiche à nouveau Filtre AZ, on peut donc taper des lettres à filtrer.

Si cela retourne une erreur «Aucune action shell n’est installée» créer le script ~/xiki/ls.xiki avec le contenu suivant.

    > @xiki .Shell action for navigating files
    $ ls
      |:anything

    !.#
    ! # This shell action lets you expand the output of
    ! # the ls command, like this:
    ! #
    ! # $ ls
    ! #   : etc/
    ! #   : home/
    ! #     : craig/
    ! #     : guest/
    ! #
    !
    ! # "$ ls", so change "|..." lines to ":..." lines...
    !
    ! if args == []
    !   return "|\n| This action lets you expand the output of the 'ls' shell command.\n|" if ! shell_output
    !   return shell_output.gsub(/^\|/, ':')
    ! end
    !
    ! path = args.map{|o| o.sub(/^: /, '')}.join("/")
    !
    ! # ": dir" line passed...
    !
    ! if File.directory? path
    !   return Shell.command("ls -p '#{path}/'").quoted
    ! end
    !
    ! View.open path
    ! ""   # Blank string means we handled
    ! # Shell.command("cat '#{path}'").snippet

Nous verrons plus tard comment xsh rend toutes sortes de commandes shell interactives, pas seulement ls.

Ctrl + O exécute des commandes et ouvre des choses. Alors que return insère généralement des sauts de ligne. Mais lorsque Filtre AZ est visible, le retour est similaire à Ctrl + O. Un double-clic agit également comme Ctrl + O (si le support de la souris est activé).

Utiliser l'éditeur de texte

Xsh s'intègre l'éditeur de texte par défaut.

Cela permet de visualiser le contenu du fichier /etc/hosts, pour l'éditer:

Xiki utilise l'éditeur spécifié dans la variable d'environnement bash “EDITOR”. Si cela n'est pas encore fait, on peut configurer l'éditeur favori (puis recharger via xsh --reload dans bash après). Si ce n'est pas défini, xsh utilise par défaut “nano” sur linux ou “TextEdit” sur mac.

Pour quitter l'éditeur de texte et retourner à bash.

en cas de problèmes, essayer échap pour aller à la vue précédente ou Ctrl + Z pour annuler.

Prise en charge optionnelle de la souris

Il existe un support de souris optionnel. Ne soyer pas trop inquiet s'il n'est pas activé pour votre configuration de terminal ou xsh. C'est complètement optionnel. Les utilisateurs avancés de xsh l'utilisent rarement.

Cliquer sur les mots dans la barre inférieure pour afficher une description de ce que fait chaque touche.

Si le support de la souris n'est pas activé, appuyer sur Ctrl + \ pour voir les descriptions.

Les notes

La création de notes est aussi simple que de créer un fichier texte (ou d’ajouter des éléments à un fichier texte existant).

Bloc-notes persistant pour les commandes et les notes

En bash, pourrevenir au dernier endroit en xsh, appuyer simplement sur Ctrl + G à l’invite de bash vide. De cette façon, xsh agit comme un bloc-notes persistant, dans lequel on peut entrer et sortir.

En xsh, tout est éditable! on peut taper n'importe où. Dans les shells traditionnels, on ne peut taper qu'à l'invite la plus basse. Lorsqu'on quitte xsh, il enregistre automatiquement la vue actuelle (et mémorise le répertoire en cours).

Ctrl + G fonctionne dans les deux sens. Lorsqu'on utilise une commande shell dans xsh, il accède à bash et exécute la commande.

Notes interactives par sujet

Xsh permet de créer des notes interactives! Les notes peuvent être ce qu'on veut. Elles peuvent être aussi simples qu'une commande shell ou deux et une description. Il peut même s'agir d'interfaces utilisateur légères et puissantes pour les commandes shell et autres API. Il est conseillé d'organiser les notes en sujets.

Chaque sujet est juste un fichier texte dans le répertoire ~/xiki/. Ils contiennent les notes. Les sujets listés ont été créés lors de l’installation de xsh, pour aider à démarrer. Les sujets créés par la suite seront ajoutés en haut de cette liste. Les rubriques utilisent une syntaxe wiki-ish simple et peuvent être créées et modifiées avec n’importe quel éditeur de texte.

Noter que la barre du bas indique qu'on se trouve dans le fichier ~/xiki/disk.xiki. Les lignes avec un fond gris sont des en-têtes de notes. Ils séparent chaque note. Les titres ne sont que des lignes commençant par >.

Accéder rapidement aux notes

C'est un peu accablant de voir toutes les notes d'un sujet à la fois. Voir seulement les noms de notes serait plus facile. Surtout pour les sujets avec beaucoup de notes. Disons 100 ou plus.

Ces trois retours auraient pu être Ctrl + O à la place. La seule différence est que return masque les autres éléments avant son ouverture.

On aurait aussi pu taper “espace disque” puis Ctrl + X à une invite bash vide, puis appuyer deux fois sur la touche retour. Cela montrerait le sujet “disque” et filtrerait jusqu'aux notes contenant le mot “espace”.

Moteur de recherche dans le terminal

Xsh transforme le terminal en moteur de recherche! Il suffit de taper un terme de recherche à l’invite bash et d’appuyer sur Ctrl + S. C'est plus rapide et moins gênant que de copier et coller des commandes à partir de recherches sur le Web.

Les résultats de la recherche sont des notes partagées par d'autres utilisateurs de xsh.

On aurait aussi pu taper “process cpu” puis Ctrl + S à l'invite bash.

Toutes les notes sont privées par défaut. Le partage est encore en version bêta privée, mais sera bientôt disponible pour tous les utilisateurs xsh.

Création de notes

Pour créer une note très simple:

C'est vide car il n'existe pas encore. Noter le chemin du fichier dans la barre inférieure.

> Nom d'utilisateur
$ echo $ USER

Vous pouver voir qu'un nouveau sujet est là, avec la note à l'intérieur. C'est en haut, puisqu'il s'agit du fichier le plus récemment mis à jour. On aurait pu accomplir la même chose en créant “~/ xiki/foo.xiki” avec n’importe quel éditeur de texte.

Utilisation avec Git

xsh permet de naviguer facilement dans git!

Créer référentiel Git

La rubrique “git”, fournit des exemples de notes avec xsh qui crée des référentiels.

la note “+ create example repository”. Il y a “+” au début car c'est une action (une note spéciale qui exécute quelque chose lorsqu'on l'ouvre). Pour créer une action, il suffit de mettre un point au début de son nom (par exemple: “> .Foo”).

Branches Git

Pour changer de branche, taper git et filtrer jusqu'à “branche” (bien que l'on puisse taper “git branche” directement).

On peut observer d'u'on a changé de branche.

On verra qu'il y a des commits “master” dans cette branche. Vous pouver les ouvrir pour voir les diffs.

Navigateur web

Ignorer cette section pour n'utiliser xsh qu'avec ssh ou docker (si on ne peut pas démarrer un navigateur Web à partir du shell).

Exécuter le code HTML dans le navigateur Web

La barre oblique à la fin indique à xsh d’exécuter une action spéciale qui affiche des extraits de code HTML dans le navigateur.

Les changements seront directement affichés dans le navigateur. Par défaut, un nouvel onglet est ouvert à chaque fois. Cela peut être évité en installant une dépendance qui permet à xsh d’avoir le contrôle total du navigateur.

Contrôle du navigateur

Par exemple pour créer une note expliquant comment faire une div avec des coins arrondis en CSS.

(Sinon, on aurait pu appuyer sur Ctrl + O et accéder au fichier de sujet.)

On peut modifier certaines valeurs et appuyer à nouveau sur Ctrl + O. On peut également essayer de rechercher “bootstrap”, “d3”, “threejs”, “fontawesome” ou “react” pour donner quelques exemples.

Interaction avec SQLite

Création de tables

En utilisant une note qui a été installée par défaut pour aider à réaliser le didacticiel. (A l'avenir, utiliser Ctrl + S pour rechercher d'autres notes pour les utiliser et les installer pour qu'elles soient faciles d'accès.)

On aurait pu taper “sqlite3 / tables” et Ctrl + X en bash pour accéder directement à l'action “tables”. Mais il existe un sujet “tables” pour le rendre encore plus rapide.

La barre oblique à la fin signifie exécuter l'action pour le sujet. Les actions de barre oblique sont des notes spéciales qui permettent aux sujets de se comporter éventuellement comme des actions.

On peut également taper “sqlite3/” dans bash, puis sur Ctrl + X pour exécuter des instructions SQL.