Alias ​​bash útiles y generar una lista de los comandos más utilizados


10

Encontré este artículo discutiendo una forma rápida de ordenar su historial de bash y ver qué comandos usa más:

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

Realmente te abre los ojos para las tareas para las que deberías crear alias y para cuáles deberías trabajar por completo.

Me encantaría ver una lista de ServerFault de los alias de línea de comandos recomendados que le ahorran tiempo en el trabajo . ¿Qué tienes?

Entre nosotros, apuesto a que podemos salvar a cada usuario que lea esta publicación al menos 10 minutos al día. (¡Menos el primer día en el que pierden todo su tiempo leyendo ServerFault en lugar de hacer su trabajo, por supuesto!)


Para el registro, en Super User hay superuser.com/questions/7083/useful-command-line-aliases con un montón de alias Bash útiles
Jonik

Respuestas:


7

Trato con muchas máquinas diferentes, por lo que uno de mis favoritos es el alias para cada máquina que necesito frecuentemente para SSH para:

alias claudius="ssh dinomite@claudius"

También es útil configurar unas teclas buenas .ssh/configy ssh para facilitar aún más el salto entre máquinas.

Otro de mis alias favoritos es para subir directorios:

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

Y algunos para variaciones de uso común ls(y errores tipográficos):

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"

Casi siempre quiero egrep:

alias grep="egrep"

Obtenga páginas de manual de todas las secciones

alias man="man -a"

A menudo me encontraba canalizando la salida awkpara obtener una cierta columna de la salida, como df -h | awk '{print $2}'para encontrar el tamaño de cada uno de mis discos. Para facilitar esto, creé una función fawken mi .bashrc:

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

Ahora puedo ejecutar lo df -h|fawk 2que ahorra un poco de tipeo.

Trabajo con muchos Perl y necesito saber las versiones de los módulos instalados en un sistema:

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

3

Por lo general, me gusta escribir todo, porque me temo que me olvidaré de los comandos que estoy usando en poco tiempo. Sé que puedo estar equivocado, pero no creo que sabría tanto sobre el sistema si hubiera pegado todos los comandos en Commandlinefu en mi .bashrc.

Tenga en cuenta que no estoy diciendo que soy el mejor y que sé todo lo que hay que saber sobre Linux, lejos de eso, solo digo que me gusta aprender y recordar lo que he aprendido usando.

Eso no quiere decir que no aprecie cómo son los alias que ahorran tiempo (especialmente para funciones más grandes, pero luego hay que ver si un script no es mejor), pero, personalmente, no me gusta usarlos (al menos No siempre).

Dicho esto, Commandlinefu tiene una etiqueta especial para los alias. Vale la pena mirarlo.

También creo que esta es buena:

   alias less='less -FSRX'

Esto solo usará menos si la salida es mayor que la pantalla.


2

Mi favorito de todos los tiempos:

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

No necesita explicación, ¿verdad? :-)


55
¿No es eso para lo que está .ssh / config ?:-P Host nombre_servidor Nombre de host 1.2.3.4 Nombre de usuario, etc.
vartec

Usando bash_completion y tab, tab parece funcionar bien para mí, en lugar de configurar un montón de alias ssh
Clayton Stanley

2

alias lt='ls -lhart'

  • l = largo: h = tamaños legibles por humanos: a = todos: r = clasificación inversa: t = clasificación temporal
  • Pone el archivo más nuevo en la parte inferior, justo encima de la solicitud

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

  • muestra solo líneas que no están en blanco o comentadas
  • ejemplo: activo /etc/httpd/conf/httpd.conf

alias svi='sudo vim'

alias scr='screen -Rd'


Agradable, especialmente sudo vim
astropánico

1

Tengo que admitir que tengo algunos como este ...

alias sl=ls

Para tratar de combatir mis errores tipográficos :-)

tambien tengo

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

Por lo tanto, es agradable y simple agregar nuevos.



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

Escriba el nombre de host para iniciar sesión en el host. Nota: ssx es un alias en sí mismo:

ssx='ssh -Y'

Combinado con claves compartidas, es bastante elegante.


1

Me resulta molesto poner todas las cosas de apt-get y apt-cache en debian / * buntu, especialmente con el prefijo sudo, así que tengo:

alias apti='sudo apt-get install'
alias aptr='sudo apt-get remove'
alias apts='apt-cache search'

1

crear .tar.gz

alias tarc="tar czvf"

extraer .tar.gz

alias tarx="tar xzvf"

list .tar.gz

alias tart="tar tzvf"


0

Encontré esta página buscando una manera de hacer un alias para mostrarme la enésima columna de un archivo csv (tsv en realidad) usando awk. La función fawk anterior era casi exactamente lo que quería. Modifiqué ligeramente para agregar un segundo argumento opcional, el nombre de archivo, para poder usarlo como awk normalmente en lugar de solo a través de una tubería.

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

¡Gracias!


0

Esto no es un alias, pero puede ser útil ver personas que alias conexiones ssh.

El paquete Openssh tiene un binario llamado ssh-argv0 que funciona a través de enlaces simbólicos.

Entonces, si haces algo como esto:

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

Teniendo / usr / local / bin en $ PATH, ahora puede conectarse como usuario "usuario" a ssh.server.com escribiendo esto en un indicador de shell:

 $ user@ssh.server.com 

0

+1 para la respuesta de Drew Stephens. El único que no cubrió que también uso es alias de los diversos archivos de puntos a los que necesito acceder de forma regular como:

alias dotz='vi ~/.zshrc'

Vaya un paso más allá con la función de agregar alias sobre la marcha:

function add-alias {
echo "alias $1=\047$2\047" >> ~/.zshrc
}
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.