4 moyens efficaces de lancer des applications à partir du terminal
Agence web » Actualités du digital » 4 moyens efficaces de lancer des applications à partir du terminal

4 moyens efficaces de lancer des applications à partir du terminal

Vous avez probablement commencé une demande à partir du terminal à un moment donné, mais avez-vous remarqué qu'il maintient votre terminal occupé jusqu'à ce que vous fermiez la demande? Cela peut être assez ennuyeux. Parfois, cependant, il est utile de lancer des applications de cette façon – j'explique comment je le fais efficacement.

Certaines personnes utilisent des menus, d'autres utilisent des lanceurs – je lance personnellement toutes les applications, comme Firefox, du terminal. Cette habitude remonte à mes premiers jours en utilisant Linux (il y a environ 15 ans), alors que je ne savais pas comment créer des raccourcis. Au fil du temps, je me suis habitué à lancer des applications de cette façon, et comme j'ai toujours une fenêtre de terminal ouverte, cela a du sens. De plus, je suis trop paresseux pour configurer et maintenir une configuration de lanceur. Avec le terminal, je peux rechercher flou de mes applications comme un lanceur, mais avec l'avantage supplémentaire des commandes d'édition avant de les lancer.

Tout d'abord, comprenez Nohup et l'opérateur d'arrière-plan

Lorsque vous ouvrez une application à partir du terminal, puis fermez le terminal, la demande se ferme souvent aussi, ce qui n'est probablement pas ce que vous voulez. Sur Linux, lorsqu'une application démarre une autre, il alimente le processus, donc l'application d'origine devient le parent.

Lorsque vous tuez le processus parent, tous ses processus d'enfants sont également généralement résiliés. Vous pouvez l'essayer vous-même: saisissez la commande suivante dans un terminal, attendez qu'il commence, puis fermez la fenêtre du terminal.

        firefox
    

Pour maintenir les processus d'enfants en cours d'exécution après la fermeture du terminal, nous utiliserons un outil éprouvé appelé NoHup.

Nohup

La commande noHup fait en sorte qu'un processus ignore le signal de suspension (SIGUP), ce qui lui permet de continuer à fonctionner même après la fin de l'utilisateur ou que la session du terminal se termine.

Maintenant que nous avons un moyen de maintenir notre processus en cours d'exécution après la fermeture du terminal, il convient de noter que NoHup écrira automatiquement la sortie dans un fichier nohup.out dans le répertoire actuel. À moins que vous ne vouliez que ces fichiers soient dispersés dans votre système de fichiers, vous devrez aborder ce comportement. Vous pouvez soit éliminer toutes les sorties, soit la rediriger vers un fichier spécifique pour la journalisation.

Pour ignorer toute sortie, redirigez simplement tout vers / dev / null, qui agit comme un trou noir pour les données indésirables:

        nohup firefox &>/dev/null
    

Maintenant, si vous fermez le terminal, Firefox continuera de fonctionner. Cependant, cette configuration envoie tous les journaux au vide. Alternativement, vous pouvez plutôt rediriger la sortie vers un fichier journal:

        nohup firefox &>/tmp/firefox.log
    

Maintenant, s'il y a un problème avec Firefox, vous pouvez lire le fichier journal.

Opérateur de fond

Lorsque vous exécutez NoHup avec Firefox, il reprend votre ligne de commande, ce qui signifie que vous ne pouvez pas exécuter d'autres commandes. Ce n'est pas idéal si vous voulez utiliser le même terminal pour d'autres choses. C'est là que l'opérateur d'arrière-plan entre en jeu.

L'opérateur d'arrière-plan est simplement un ampère et placé à la fin de la commande, vous permettant de continuer à utiliser le terminal pendant que l'application s'exécute. Essayez-le:

        firefox &
    

Si vous fermez votre terminal maintenant, vous remarquerez qu'il ferme également la demande. En effet, si l'opérateur d'arrière-plan met votre application en arrière-plan, il obéit toujours au signal SIGHUP – alors la fermeture du terminal arrête le processus. C'est pourquoi nous utilisons également Nohup.

Une caractéristique utile de l'opérateur d'arrière-plan est que vous pouvez ramener un processus au premier plan. Après avoir envoyé Firefox à l'arrière-plan, tapez FG Pour le ramener au premier plan.

Utilisation de NoHup avec l'opérateur d'arrière-plan

En utilisant NoHup avec l'opérateur d'arrière-plan, votre application s'exécute entièrement en arrière-plan, vous permettant de continuer à travailler dans votre terminal ou même de le fermer – votre processus continuera de s'exécuter sans interruption.

nohup firefox &>/tmp/firefox.log &

Utiliser des alias mnémoniques

Un alias Shell fonctionne comme un surnom pour une commande. Par exemple, vous pouvez définir la lettre F pour lancer Firefox, vous n'avez donc qu'à taper F dans le terminal pour l'ouvrir. Si cela est nouveau pour vous, vous devez lire notre article sur la façon de créer des alias shell.

Dans le monde de la personnalisation de la coquille, il est courant d'utiliser des alias mnémoniques – corst et des combinaisons mémorables de lettres qui représentent des commandes plus longues. Par exemple, vous pouvez créer des raccourcis Firefox qui lancent le navigateur avec des arguments spécifiques:

        alias ffaa="firefox about:about"
alias ffac="firefox about:config"
alias ffnt="firefox --new-tab"
alias ffp="firefox --profile"
alias ffsm="firefox --safe-mode"

En commandant les alias par ordre alphabétique, il est plus facile de voir quels alias ont déjà été utilisés.

Vous voudrez peut-être utiliser NoHup et l'opérateur d'arrière-plan pour lancer Firefox.

Utilisez l'historique des coquilles floues

L'utilitaire de shell le plus utile que vous aurez jamais installé est un outil d'historique flou. Atuin est une application qui fait exactement cela, et cela fonctionne n'importe où. J'utilise personnellement la recherche ZSH-FZF-History, qui est un plugin ZSH, mais les deux sont presque identiques.

Si vous passez du temps à taper laborieusement une longue commande, il est logique d'avoir un moyen rapide de l'exécuter à nouveau. Je passe souvent une minute ou deux à construire une commande complexe, puis j'utilise l'historique des coquilles floues pour l'exécuter des centaines de fois au cours des mois ou même des années.

Si vous enlevez une seule chose: utilisez un plugin ou une application d'historique de shell flou. Je recommande Atuin. Si vous êtes intéressé, nous avons une introduction à Atuin.

Un fichier plat de commandes

L'idée derrière l'historique Fuzzy Shell est simple – elle recueille l'historique de votre coquille, supprime quelques détails inutiles et envoie le résultat à un programme appelé FZF. Nous ferons quelque chose de similaire, sauf que nous utiliserons FZF pour choisir nos commandes dans un vieux fichier texte simple afin que nous puissions les exécuter.

FZF est conçu pour vous aider à sélectionner rapidement les éléments des longues listes. C'est un outil essentiel qui fait partie de toute boîte à outils de coquille avancée, et si vous souhaitez améliorer vos compétences en terminal, je recommande fortement d'apprendre à l'utiliser. FZF est facile à ramasser et comprend de nombreuses fonctionnalités avancées pour les utilisateurs plus expérimentés.

Ce qui suit est l'exemple le plus simple qui montre comment FZF peut être utilisé pour rechercher à travers plusieurs lignes de texte:

        echo "foonbar" | fzf
    

Lorsque vous commencez à taper, FZF rétrécit la liste dynamiquement, à la mise à jour des options en temps réel. Une fois que vous avez fait une sélection, FZF imprime votre entrée choisie. La plupart des utilisateurs envoient ce choix à une autre commande pour un traitement ultérieur. Par exemple, avec echo « foo nbar » | FZF | tr '(: inférieur :)' '(: supérieur :)'votre mot sélectionné est converti en majuscule.

Maintenant, nous voulons construire et rechercher notre propre liste de commandes. Tout d'abord, créez un fichier avec des commandes dedans:

        echo "ls -alndir" > ~/.commands
    

Ajoutez ensuite la fonction suivante à votre fichier .bashrc. Si vous ne savez pas ce que c'est, nous avons un article qui explique ce qu'est le fichier .bashrc:

        fe() {
  eval "$(fzf <"${HOME}/.commands" || return)"
}

Recharger votre coquille avec Source ~ / .Bashrcet courir fe (Fuzzy Execute). Lorsque vous sélectionnez une commande, il s'exécute automatiquement. Vous êtes libre d'ajouter toutes les commandes au fichier texte « ~ / .commands ».

Si vous êtes sur Zsh, vous avez le luxe de pouvoir modifier les commandes avant de les exécuter. Dans votre fichier .zshrc put:

        fe() {
  print -z "$(fzf <"${HOME}/.commands" || return)"
}

Maintenant, lorsque vous exécutez ceci, il remplira d'abord votre ligne de commande, et vous pouvez le modifier ou simplement appuyer sur le retour pour l'exécuter.


Maintenant que vous savez comment envoyer complètement les commandes à l'arrière-plan, vous pouvez lancer des applications en toute sécurité à partir du terminal sans encaisser votre espace de travail avec plusieurs fenêtres de terminal. Vous pouvez ajouter ces commandes, avec NoHup et l'opérateur d'arrière-plan – à votre fichier de commande ou à votre historique de shell pour lancer rapidement les applications. Pour les commandes avec des paramètres complexes, les alias sont utiles.

J'utilise tous ces principes pour lancer rapidement les applications à partir du terminal. Bien que les lanceurs dédiés soient une bien meilleure solution, vous voulez parfois exécuter quelque chose directement dans le terminal pour plus de commodité. Maintenant, c'est plus facile que jamais.

★★★★★