GNU/Linux >> Tutoriels Linux >  >> Linux

Vélocité terminale :se déplacer rapidement dans votre coquille

J'utilise un terminal quotidiennement depuis de nombreuses années maintenant. J'utilise un shell fortement personnalisé et non par défaut. Je fais un usage intensif de la complétion par tabulation et j'ai mémorisé les drapeaux pour de nombreuses commandes. Jusqu'à il y a environ un an, je pensais avoir atteint le pic de productivité du terminal. Ensuite, j'ai découvert une vague d'utilitaires shell qui, bien qu'obscurs, ont fondamentalement modifié la façon dont j'interagis avec mon environnement de terminal pour le mieux.

Cet article est le premier d'une série sur ces nouveaux utilitaires (plus quelques outils que je connais depuis plus longtemps et que j'adore). Aujourd'hui, nous examinerons des outils spécifiques pour se déplacer dans votre système de fichiers.

Sauter :z

Vous savez comment vous pouvez taper les premières lettres d'un site Web couramment utilisé dans votre navigateur et appuyer sur Entrée avec la certitude que vous serez redirigé vers le bon endroit ? Et si nous apportions cette même expérience dans votre coquille ? Imaginez que vous puissiez vous téléporter vers un répertoire couramment utilisé en tapant simplement une petite partie de son nom. C'est ce que z fait.

Le z Le script shell garde une trace des répertoires que vous visitez et du moment où vous les avez visités. Il combine la fréquence de votre accès à un annuaire avec la récence de votre accès pour déterminer la "fréquence" de votre accès. Lorsque vous fournissez quelques lettres pour le nom d'un répertoire, z choisit le candidat contenant la sous-chaîne fournie avec la fréquence la plus élevée. Le résultat est correct une quantité étrange de fois.

Le voici en action :

Faits en bref :

  • bash /zsh implémentation :GitHub
  • fish implémentation :GitHub
  • Licence (bash /zsh ) :WTFPLv2
  • Licence (fish ):MIT
  • Langage :script shell

Il existe un certain nombre d'outils similaires, comme autojump et fasd . Essayez-les tous !

Trouve floue :fzf

Parfois, rechercher des choses avec des expressions régulières est exagéré. Il y a des moments où il devrait suffire que les bonnes lettres apparaissent dans le bon ordre. Le fzf L'utilitaire vous permet de rechercher des correspondances floues sans douleur. Quel est le lien entre cet outil et le déplacement dans votre système de fichiers ? Attendez et vous verrez.

Par défaut, fzf fonctionne sur stdin, vous pouvez donc l'utiliser comme grep :

$ fzf < long-log-file.txt

Exemple en direct :

Parce que fzf fonctionne pour filtrer stdin et envoie la sortie sur stdout, vous pouvez faire bien plus que rechercher des fichiers avec cet outil. Voulez-vous rechercher un répertoire sous le répertoire actuel ?

$ fzf

C'est exact. Si stdin n'est pas un tube, fzf recherche tous les fichiers en dessous et émet votre choix sur stdout, ce qui facilite la combinaison des résultats avec d'autres commandes comme un éditeur.

Si vous souhaitez obtenir la même chose avec plus de contrôle, vous pouvez exécuter :

$ find . -type d | fzf

Vous pouvez utiliser fzf se déplacer en courant :

$ cd $(find . -type d | fzf) #bash/zsh
$ cd (find . -type d | fzf) #fish

Maintenant, il existe d'autres applications amusantes. Vous pouvez :

  • Rappelez les commandes de votre historique avec :
    $ eval $(history | fzf) #bash/zsh
    $ eval (history | fzf) #fish
    
  • Éditez un fichier sous le répertoire courant avec :
    $ $EDITOR $(find . | fzf) #bash/zsh
    $ $EDITOR (find . | fzf) #fish
    
  • Choisissez les packages à installer avec :
    $ sudo apt install $(apt search <word> 2>/dev/null | tail -n+3 | grep '^\w' | sed 's|([^/]+)/.*|\1|' | fzf) #bash/zsh
    $ sudo apt install (apt search <word> 2>/dev/null | tail -n+3 | grep '^\w' | string split / | fzf) #fish
    
  • Faites des choix, en général, basés sur n'importe quel texte délimité par des lignes. Le ciel est la limite !

Le fzf l'utilitaire a des intégrations existantes avec bash , zsh , et fish . Si vous installez ces shells, fzf augmente et étend naturellement les flux de travail tels que la "recherche d'index inversé" et l'achèvement des onglets. Je suis un gros utilisateur du fish intégration, moi-même.

Faits en bref :

  • Obtenir fzf :GitHub
  • Licence :MIT
  • Langue :Go

Vous en voulez plus ?

Si ces outils vous semblent utiles, restez à l'écoute pour plus d'articles. Si vous ne pouvez pas attendre, cette série est basée sur cette conférence que j'ai donnée à All Things Open 2019. Vous pouvez y trouver plus d'outils et d'astuces.


Linux
  1. Quelle est votre astuce de terminal Linux préférée ?

  2. Quel est votre émulateur de terminal Linux préféré ?

  3. Partez à l'aventure dans votre terminal Linux

  4. Quelle est votre astuce de terminal Linux préférée ?

  5. Comment Noëlsifier votre terminal et votre shell Linux

Détendez-vous au coin du feu sur votre terminal Linux

Frayez-vous un chemin à travers votre terminal Linux

Jouez à Tetris sur votre terminal Linux

Conduisez une locomotive via votre terminal Linux

Comment enregistrer votre session de terminal sous Linux

MapSCII – La carte du monde dans votre terminal