Alias ​​bash utiles et génération d'une liste de vos commandes les plus utilisées

10

J'ai trouvé cet article traitant d'un moyen rapide de trier votre historique de bash et de voir quelles commandes vous utilisez le plus:

cut -f1 -d" " .bash_history | sort | uniq -c | sort -nr | head -n 30

Cela vous ouvre vraiment les yeux sur les tâches pour lesquelles vous devez créer des alias et celles que vous devez supprimer complètement.

J'aimerais voir une liste ServerFault d'alias de ligne de commande recommandés qui vous font gagner du temps sur le travail . Qu'est-ce que tu as?

Entre nous, je parie que nous pouvons sauver chaque utilisateur qui lit ce post au moins 10 minutes par jour. (Moins le premier jour où ils perdent tout leur temps à lire ServerFault au lieu de faire leur travail bien sûr!)

Jax
la source
Pour mémoire, sur Super User, il y a superuser.com/questions/7083/useful-command-line-aliases avec de
nombreux
Voir aussi: serverfault.com/questions/15365/…
Aaron Copley

Réponses:

7

Je traite avec beaucoup de machines différentes, donc l'un de mes favoris est les alias pour chaque machine que je dois fréquemment SSH pour:

alias claudius="ssh dinomite@claudius"

Il est également utile de configurer une clé bonne .ssh/configet ssh pour rendre le saut parmi les machines encore plus facile.

Un autre de mes alias préférés est de remonter les répertoires:

alias ..="cd .."
alias ...="cd ../.."
alias ....="cd ../../.."
alias .....="cd ../../../.."

Et certains pour les variations couramment utilisées ls(et les fautes de frappe):

alias ll="ls -l"
alias lo="ls -o"alias lh="ls -lh"
alias la="ls -la"
alias sl="ls"
alias l="ls"
alias s="ls"

Je veux presque toujours egrep:

alias grep="egrep"

Obtenez des pages de manuel de toutes les sections

alias man="man -a"

Je me suis souvent retrouvé awkà passer la sortie pour obtenir une certaine colonne de sortie, comme df -h | awk '{print $2}'pour trouver la taille de chacun de mes disques. Pour faciliter cela, j'ai créé une fonction fawkdans mon .bashrc:

function fawk {
    first="awk '{print "
    last="}'"
    cmd="${first}\$${1}${last}"
    eval $cmd
}

Je peux maintenant exécuter df -h|fawk 2ce qui économise un peu de frappe.

Je travaille avec beaucoup de Perl et j'ai besoin de connaître les versions des modules installés sur un système:

function perlmodver {
    perl -M$1 -e 'print "Version " .
        $ARGV[0]->VERSION . " of " . $ARGV[0] .
        " is installed.\n"' $1
}
Drew Stephens
la source
3

J'aime généralement tout taper, car j'ai peur d'oublier toutes les commandes que j'utilise en un rien de temps. Je sais que je peux me tromper, mais je ne pense pas que j'en saurais autant sur le système si je venais de coller chaque commande dans Commandlinefu dans mon .bashrc.

Notez que je ne dis pas que je suis le meilleur et que je sais tout ce qu'il y a à savoir sur Linux, loin de là, je dis juste que j'aime apprendre et me souvenir de ce que j'ai appris en utilisant.

Cela ne veut pas dire que je n'apprécie pas le gain de temps des alias (spécialement pour les fonctions plus importantes, mais vous devez voir si un script n'est pas meilleur), mais, personnellement, je n'aime pas les utiliser (au moins non toujours).

Cela étant dit, Commandlinefu a une balise spéciale pour les alias. Ça vaut le coup d'oeil.

Je pense aussi que c'est une bonne chose:

   alias less='less -FSRX'

Cela n'utilisera moins si la sortie est plus grande que l'écran.

Flávio Amieiro
la source
2

Mon préféré de tous les temps:

alias server_name='ssh -v -l username ip_address'

Il n'a pas besoin d'explication, n'est-ce pas? :-)


la source
5
N'est-ce pas ce que .ssh / config est pour :-P Host server_name Hostname 1.2.3.4 User username etc.
vartec
En utilisant bash_completion et tab, tab semble fonctionner très bien pour moi, au lieu de configurer un tas d'alias ssh
Clayton Stanley
2

alias lt='ls -lhart'

  • l = long: h = tailles lisibles par l'homme: a = tout: r = tri inversé: t = tri temporel
  • Met le fichier le plus récent en bas, juste au-dessus de l'invite

alias active='grep -v -e "^$" -e"^ *#"'

  • affiche uniquement les lignes qui ne sont pas vides ou commentées
  • exemple: actif /etc/httpd/conf/httpd.conf

alias svi='sudo vim'

alias scr='screen -Rd'

CanyonR
la source
Nice, en particulier sudo vim
astropanic
1

Je dois admettre que j'en ai quelques-uns comme ça ..

alias sl=ls

Pour essayer de combattre mes fautes de frappe :-)

j'ai aussi

alias aliases='xterm -e vim ~/.bash_aliases;reload'
alias reload='. ~/.bash_aliases'

Il est donc agréable et simple d'en ajouter de nouveaux.

Vagnerr
la source
1
alias cd..='cd ..'
vartec
la source
1
for host in `awk '{ print $1 }' ~/.hostsILogIntoAllTheTime`; do
  alias $host='ssx '$host
done 

Tapez le nom d'hôte pour vous connecter à l'hôte. Remarque: ssx est un alias lui-même:

ssx='ssh -Y'

Combiné avec des clés partagées, c'est assez lisse.

Swoogan
la source
1

Je trouve ennuyeux de mettre toutes les choses apt-get et apt-cache dans debian / * buntu, en particulier avec le préfixe sudo, donc j'ai:

alias apti='sudo apt-get install'
alias aptr='sudo apt-get remove'
alias apts='apt-cache search'
astropanic
la source
1

créer .tar.gz

alias tarc="tar czvf"

extraire .tar.gz

alias tarx="tar xzvf"

list .tar.gz

alias tart="tar tzvf"
aeonflux
la source
0

J'ai trouvé cette page à la recherche d'un moyen de créer un alias pour me montrer la nième colonne d'un fichier csv (tsv en fait) en utilisant awk. La fonction fawk ci-dessus était presque exactement ce que je voulais. J'ai légèrement modifié pour ajouter un deuxième argument facultatif, le nom de fichier, donc je peux l'utiliser comme awk normalement plutôt que seulement via un pipe.

function fawk {
    first="awk '{print "
    last="}' $2"
    cmd="${first}\$${1}${last}"
    echo $cmd
    eval $cmd
}

Merci!

marlacparker
la source
0

Ce n'est pas un alias, mais voir des gens qui alias les connexions ssh peut être utile.

Le paquet openssh a un binaire appelé ssh-argv0 qui fonctionne via des liens symboliques.

Donc, si vous faites quelque chose comme ça:

sudo ln -s /usr/bin/ssh-argv0 /usr/local/bin/user@ssh.server.com

Ayant / usr / local / bin dans le $ PATH, vous pouvez maintenant vous connecter en tant qu'utilisateur "utilisateur" à ssh.server.com en écrivant ceci dans une invite de shell:

 $ user@ssh.server.com 
sntg
la source
0

+1 pour la réponse de Drew Stephens. Le seul qu'il n'a pas couvert et que j'utilise également est d'alias les différents fichiers de points auxquels j'ai besoin d'accéder régulièrement, comme:

alias dotz='vi ~/.zshrc'

Allez plus loin avec une fonction d'ajout d'alias à la volée:

function add-alias {
echo "alias $1=\047$2\047" >> ~/.zshrc
}
Somantra
la source