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!)

Jax
fuente
Para el registro, en Super User hay superuser.com/questions/7083/useful-command-line-aliases con un montón de alias Bash útiles
Jonik
Ver también: serverfault.com/questions/15365/…
Aaron Copley

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
}
Drew Stephens
fuente
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.

Flávio Amieiro
fuente
2

Mi favorito de todos los tiempos:

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

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


fuente
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'

CanyonR
fuente
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.

Vagnerr
fuente
1
alias cd..='cd ..'
vartec
fuente
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.

Swoogan
fuente
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'
astropanico
fuente
1

crear .tar.gz

alias tarc="tar czvf"

extraer .tar.gz

alias tarx="tar xzvf"

list .tar.gz

alias tart="tar tzvf"
Aeon Flux
fuente
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!

marlacparker
fuente
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 
sntg
fuente
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
}
revs Somantra
fuente