Alias Bash vous ne pouvez pas vivre sans

0 Comments

Un alias Bash est une méthode pour compléter ou remplacer les commandes Bash par de nouvelles. Les alias Bash permettent aux utilisateurs de personnaliser facilement leur expérience dans un terminal POSIX. Ils sont souvent définis dans HOME HOME/.bashrc ou $HOME/bash_aliases (qui doit être chargé par HOME HOME/.bashrc).

la plupart des distributions ajoutent au moins quelques alias populaires par défaut .fichier bashrc de tout nouveau compte utilisateur. Ce sont des exemples simples pour démontrer la syntaxe d’un alias Bash:

alias ls="ls -F"
alias ll="ls -lh"

cependant, toutes les distributions ne sont pas livrées avec des alias pré-remplis., Si vous ajoutez des alias manuellement, vous devez les charger dans votre session Bash actuelle:

$ source ~/.bashrc

sinon, vous pouvez fermer votre terminal et le rouvrir afin qu’il recharge son fichier de configuration.

avec ces alias définis dans votre script D’initialisation Bash, vous pouvez ensuite taper ll et obtenir les résultats de ls-l, et lorsque vous tapez ls, vous obtenez, au lieu de la sortie de l’ancien LS.

ces alias sont géniaux à avoir, mais ils ne font que rayer la surface de ce qui est possible. Voici le top 10 Bash Alias qui, une fois que vous les Essayez, vous ne serez pas en mesure de vivre sans.,

la première

Avant de commencer, créez un fichier nommé ~/.bash_aliases:

$ touch ~/.bash_aliases

Ensuite, assurez-vous que ce code s’affiche dans votre ~/.fichier bashrc:

if ; then
source $HOME/.bash_aliases
fi

Si vous voulez essayer l’un des alias de cet article par vous-même, entrez-les dans votre .bash_aliases fichier, puis les charger dans votre session Bash avec la source ~/.bashrc de commande.,

Trier par taille de fichier

Si vous avez commencé votre vie informatique avec des gestionnaires de fichiers GUI comme Nautilus dans GNOME, le Finder dans MacOS ou Explorer dans Windows, alors vous êtes probablement habitué à trier une liste de fichiers par leur taille. Vous pouvez également le faire dans un terminal, mais ce n’est pas exactement succinct.

ajoutez cet alias à votre configuration sur un système GNU:

alias lt="ls --human-readable --size -1 -S --classify"

cet alias remplace lt par une commande ls qui affiche la taille de chaque élément, puis le trie par taille, dans une seule colonne, avec une notation pour indiquer le type de fichier., Chargez votre nouvel alias, puis essayez-le:

sur MacOS ou BSD, la commande ls n’a pas les mêmes options, donc cet alias fonctionne à la place:

alias lt="du -sh * | sort -h"

les résultats de cette version sont un peu différents:

$ du -sh * | sort -h
0 compile
0 COPYING
0 install-sh
0 missing
4.0K configure.ac
4.0K dot-gitlab.ci.yml
4.0K flatpak.path.patch
4.0K git-portal.spec
4.0K info.slackermedia.Git-portal.json
4.0K Makefile.am
8.0K README.md
12K config.log
16K bin
24K Makefile
24K Makefile.in
32K config.status
36K LICENSE
44K aclocal.m4
60K share
140K configure
476K autom4te.cache

en fait, même sous Linux, cette commande répertorie les répertoires et les liens symboliques comme étant de taille 0, ce qui peut ne pas être l’information que vous voulez réellement. C’est votre choix.

Merci à Brad Alexander pour cette idée d’alias.

Afficher uniquement les lecteurs montés

La commande mount utilisé pour être si simple., Avec une seule commande, vous pouvez obtenir une liste de tous les systèmes de fichiers montés sur votre ordinateur, et il a souvent été utilisé pour un aperçu des lecteurs qui ont été attachés à un poste de travail. Il était impressionnant de voir plus de trois ou quatre entrées parce que la plupart des ordinateurs n’ont pas beaucoup plus de ports USB que cela, donc les résultats étaient gérables.,

Les ordinateurs sont un peu plus compliqués maintenant, et entre LVM, les disques physiques, le stockage réseau et les systèmes de fichiers virtuels, les résultats de mount peuvent être difficiles à analyser:

pour résoudre ce problème, essayez un alias comme celui-ci:

alias mnt="mount | awk -F" " "{ printf \"%s\t%s\n\",\$1,\$3; }" | column -t | egrep ^/dev/ | sort"

cet alias utilise awk pour analyser la sortie de mount par colonne, réduisant la sortie à ce que vous monté):

sur MacOS, la commande mount ne fournit pas une sortie terriblement verbeuse, donc un alias peut être exagéré., Cependant, si vous préférez un rapport succinct, essayez ceci:

alias mnt="mount | grep -E ^/dev | column -t"

les résultats:

trouvez une commande dans votre historique grep

parfois, vous trouvez comment faire quelque chose dans le terminal, et promettez-vous que vous n’oublierez jamais ce que vous venez d’apprendre. Puis une heure passe, et vous avez complètement oublié ce que vous avez fait.

la recherche dans votre historique Bash est quelque chose que tout le monde doit faire de temps en temps., Si vous savez exactement ce que vous recherchez, vous pouvez utiliser Ctrl+R pour effectuer une recherche inverse dans votre historique, mais parfois vous ne vous souvenez pas de la commande exacte que vous souhaitez trouver.

Voici un alias pour rendre cette tâche un peu plus facile:

alias gh="history|grep"

Voici un exemple de comment l’utiliser:

$ gh bash
482 cat ~/.bashrc | grep _alias
498 emacs ~/.bashrc
530 emacs ~/.bash_aliases
531 source ~/.bashrc

Trier par heure de modification

cela arrive tous les lundis: vous vous mettez au travail, vous vous asseyez devant votre ordinateur, vous vous avez oublié ce que vous faisiez vendredi dernier., Ce dont vous avez besoin, c’est d’un alias pour lister les fichiers les plus récemment modifiés.

Vous pouvez utiliser la commande ls pour créer un alias pour vous aider à trouver l’endroit où vous l’avez laissé:

alias left="ls -t -1"

La sortie est simple, mais vous pouvez l’étendre avec l’ –option si vous préférez., L’alias, tel que répertorié, affiche ceci:

$ left
demo.jpeg
demo.xcf
design-proposal.md
rejects.txt
brainstorm.txt
query-letter.xml

compter les fichiers

Si vous avez besoin de savoir combien de fichiers vous avez dans un répertoire, la solution est l’un des exemples les plus classiques de construction de commandes UNIX: vous lister les fichiers avec la commande ls, contrôler sa sortie pour être une seule colonne avec l’option -1, puis canaliser cette sortie vers la commande wc (word count) pour compter le nombre de lignes de fichiers uniques.

c’est une brillante démonstration de la façon dont la philosophie UNIX permet aux utilisateurs de construire leurs propres solutions en utilisant de petits composants système., Cette combinaison de commandes est également beaucoup à taper si vous le faites plusieurs fois par jour, et elle ne fonctionne pas exactement pour un répertoire de répertoires sans utiliser l’option-R, qui introduit de nouvelles lignes dans la sortie et rend l’exercice inutile.

Au Lieu de cela, cet alias facilite le processus:

alias count="find . -type f | wc -l"

celui-ci compte les fichiers, ignorant les répertoires, mais pas le contenu des répertoires. Si vous avez un dossier de projet contenant deux répertoires, chacun contenant deux fichiers, l’alias en renvoie quatre, car il y a quatre fichiers dans l’ensemble du projet.,

$ ls
foo bar
$ count
4

Créer un environnement virtuel Python

avez-vous de code en Python?

codez-vous beaucoup en Python?

Si vous le faites, alors vous savez que la création d’un environnement virtuel Python nécessite, à tout le moins, 53 frappes.
c’est 49 de trop, mais c’est facilement contournable avec deux nouveaux alias appelés ve et va:

alias ve="python3 -m venv ./venv"
alias va="source ./venv/bin/activate"

L’exécution de ve crée un nouveau répertoire, appelé venv, contenant le système de fichiers d’environnement virtuel habituel pour Python3., L’alias va active l’environnement dans votre shell actuel:

$ cd my-project
$ ve
$ va
(venv) $

ajouter une barre de progression de copie

Tout le monde se moque des barres de progression car elles sont tristement inexactes. Et pourtant, au fond, nous semblons tous les vouloir. La commande unix cp n’a pas de barre de progression, mais elle a une option-v pour la verbosité, ce qui signifie qu’elle fait écho au nom de chaque fichier copié sur votre terminal. C’est un très bon hack, mais cela ne fonctionne pas si bien lorsque vous copiez un gros fichier et que vous voulez une indication de la quantité de fichier qui doit encore être transférée.,

la commande pv fournit une barre de progression lors de la copie, mais elle n’est pas courante en tant qu’application par défaut. D’autre part, la commande rsync est incluse dans l’installation par défaut de presque tous les systèmes POSIX disponibles, et elle est largement reconnue comme l’un des moyens les plus intelligents de copier des fichiers à distance et localement.

Mieux encore, il a une barre de progression.,

alias cpv="rsync -ah --info=progress2"

ce pseudo est le même que l’aide de la commande cp:

$ cpv bigfile.flac /run/media/seth/audio/
3.83M 6% 213.15MB/s 0:00:00 (xfr#4, to-chk=0/4)

Un effet secondaire de l’utilisation de cette commande est que rsync copies de fichiers et de répertoires sans-r du pavillon que le cp nécessiterait autrement.

Protégez-vous des accidents de suppression de fichiers

Vous ne devez pas utiliser la commande rm. Le rm manuel même le dit:

Avertissement: Si vous utilisez la  » rm  » pour supprimer un fichier, il est généralement possible de récupérer le contenu de ce fichier., Si vous voulez plus d’assurance que le contenu est vraiment irrécupérable, pensez à utiliser « déchiquetage ».

Si vous souhaitez supprimer un fichier, vous devez déplacer le fichier vers la Corbeille, comme vous le faites lorsque vous utilisez un ordinateur de bureau.

POSIX facilite cela, car la Corbeille est un emplacement réel accessible dans votre système de fichiers. Cet emplacement peut changer, en fonction de votre plate-forme: sur un FreeDesktop, la Corbeille se trouve à ~/.local / share / Trash, alors que sur MacOS c’est ~/.,Corbeille, mais de toute façon, c’est juste un répertoire dans lequel vous placez les fichiers que vous voulez hors de vue jusqu’à ce que vous soyez prêt à les effacer pour toujours.

cet alias simple permet de jeter des fichiers dans la corbeille de votre terminal:

alias tcn="mv --force -t ~/.local/share/Trash "

cet alias utilise un indicateur mv peu connu qui vous permet de fournir le fichier que vous souhaitez déplacer comme argument final, en ignorant l’exigence habituelle pour que ce fichier soit répertorié en premier., Maintenant, vous pouvez utiliser votre nouvelle commande pour déplacer des fichiers et des dossiers dans votre corbeille système:

$ ls
foo bar
$ tcn foo
$ ls
bar

maintenant, le fichier est « parti », mais seulement jusqu’à ce que vous réalisiez dans une sueur froide que vous en avez toujours besoin. À ce stade, vous pouvez sauver le fichier de la corbeille de votre système; assurez-vous de donner un pourboire aux développeurs Bash et mv à la sortie.

Remarque: Si vous avez besoin d’une commande Trash plus robuste avec une meilleure conformité FreeDesktop, voir Trashy.

Simplifiez votre workflow Git

Tout le monde a un workflow unique, mais il y a généralement des tâches répétitives quoi qu’il arrive., Si vous travaillez régulièrement avec Git, il y a probablement une séquence que vous vous retrouvez à répéter assez fréquemment. Peut-être que vous vous retrouvez à revenir à la branche principale et tirer les dernières modifications encore et encore au cours de la journée, ou peut-être que vous vous retrouvez à créer des balises et ensuite les pousser à la télécommande, ou peut-être que c’est autre chose entièrement.

quelle que soit L’incantation Git que vous en avez marre de taper, vous pourrez peut-être soulager certaines douleurs avec un alias Bash., En grande partie grâce à sa capacité à passer des arguments à des hooks, Git a un riche ensemble de commandes introspectives qui vous évitent d’avoir à effectuer des exploits étranges dans Bash.

par exemple, alors que vous pourriez avoir du mal à localiser, dans Bash, le répertoire de niveau supérieur d’un projet (qui, en ce qui concerne Bash, est une désignation entièrement arbitraire, puisque le niveau supérieur absolu d’un ordinateur est le répertoire racine), Git connaît son niveau supérieur avec une simple requête., Si vous étudiez les hooks Git, vous vous retrouverez en mesure de trouver toutes sortes d’informations dont Bash ne sait rien, mais vous pouvez tirer parti de ces informations avec un alias Bash.,

Voici un alias pour trouver le niveau supérieur d’un projet Git, peu importe où dans ce projet vous travaillez actuellement, puis pour y changer de répertoire, passer à la branche principale et effectuer un pull Git:

alias startgit="cd `git rev-parse --show-toplevel` && git checkout master && git pull"

Ce type d’alias n’est en aucun cas un alias universellement utile, mais il montre comment un alias relativement simple peut éliminer beaucoup de navigation laborieuse, de commandes et d’attente d’invites.

un alias plus simple, et probablement plus universel, vous renvoie au niveau supérieur du projet Git., Cet alias est utile car lorsque vous travaillez sur un projet, ce projet devient plus ou moins votre répertoire « temporaire ». Il doit être aussi simple d’aller « à la maison », comme il est d’aller à votre domicile, et voici un alias pour le faire:

alias cg="cd `git rev-parse --show-toplevel`"

Maintenant, la commande cg vous emmène au sommet de votre projet Git, n’importe comment profondément dans sa structure de répertoire que vous avez descendu.,

changer les répertoires et afficher le contenu en même temps

Il a été (prétendument) proposé par un scientifique de premier plan que nous pourrions résoudre de nombreux problèmes énergétiques de la planète en exploitant l’énergie dépensée par les geeks tapant cd suivi de LS.
C’est un modèle commun, parce que généralement quand vous changez de répertoire, vous avez l’impulsion ou le besoin de voir ce qui est autour.

mais « marcher » dans l’arborescence des répertoires de votre ordinateur ne doit pas nécessairement être un processus de démarrage et d’arrêt.

celui-ci triche, car ce n’est pas du tout un alias, mais c’est une excellente excuse pour explorer les fonctions Bash., Alors que les alias sont parfaits pour les substitutions rapides, Bash vous permet d’ajouter des fonctions locales dans votre .fichier bashrc (ou un fichier de fonctions séparé dans lequel vous chargez .bashrc, tout comme vous faites votre fichier d’alias).

pour garder les choses modulaires, créez un nouveau fichier appelé~/.bash_functions et ensuite avoir votre .,bashrc load it:

if ; then
source $HOME/.bash_functions
fi

dans le fichier functions, ajoutez ce code:

chargez la fonction dans votre session Bash, puis essayez-la:

$ source ~/.bash_functions
$ cl Documents
foo bar baz
$ pwd
/home/seth/Documents
$ cl ..
Desktop Documents Downloads

$ pwd
/home/seth

Les fonctions sont beaucoup plus flexibles que les alias, mais avec cette flexibilité vient la responsabilité pour vous de vous assurer que votre code Les alias sont censés être simples, alors gardez-les faciles, mais utiles. Pour modifier sérieusement le comportement de Bash, utilisez des fonctions ou des scripts shell personnalisés enregistrés dans un emplacement de votre PATH.,

Pour mémoire, il existe des hacks intelligents pour implémenter la séquence cd et ls en tant qu’alias, donc si vous êtes assez patient, alors le ciel est la limite même en utilisant d’humbles alias.

démarrer le aliasing et le fonctionnement


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *