Alias ​​de línea de comandos de Unix favoritos? [cerrado]

39

¿Cuáles son sus alias de línea de comandos favoritos (bash / sh / tcsh) alias? Aquí hay algunos míos.

alias lsr = 'ls -lrt'
alias gon = 'cd $ HOME / Notas'
alias devdb = 'mysql -h dev --user = x --password = secret dbname'
alias ec = 'rm * ~'; # limpieza de emacs
alias h = 'historia'
alias eb = 'exec bash'; # Solaris a veces por defecto es sh
alias mr = 'más'
alias mroe = 'más'
alias qd = 'echo export DISPLAY = $ DISPLAY'
alias ralias = '. $ HOME / .alias '; # releer alias
alias ,, = 'cd ../ ..'
alias .. = 'cd ..'
alias c = 'claro'
anon
fuente
18
En lugar de pasar su contraseña en la línea de comando a mysql(¡cualquier otra persona en el servidor podría verla!), Coloque el nombre de usuario y la contraseña en un archivo ~ / .my.cnf, y simplemente especifique -up. Las herramientas de MySQL recogerán esas credenciales automáticamente, lea mysql (1) para obtener más información.
Alex J
+1 Para alias .. = 'cd ..'
mosg
+1 para 'mroe'. Necesito ocuparme de mis errores ortográficos comunes ...
gWaldo

Respuestas:

12
function s()
{
    screen -t "$@" /usr/bin/ssh "$@"
}

Conéctese a un host en una nueva pestaña de pantalla, con el nombre del dispositivo como título de la pestaña.

Murali Suriar
fuente
11

Mis favoritos que no se han mencionado hasta ahora:

alias l='ls'
alias u='cd ..'
alias uu='cd ../..'
alias uuu='cd ../../..'
alias uuuu='cd ../../../..'

Normalmente no soy fanático de los alias que solo acortan las cosas, pero escribo mucho y solo necesito una mano.

C pirata
fuente
+1 - no es una mala idea
Rook
1
ls (y cd) solo necesita una mano ... ¡si el mapa de teclas es Dvorak! La misma mano que 'Enter', para el caso.
gbarry
8

ninguno ya que nunca puedo garantizar que se configurarán en CADA sistema en el que iniciaré sesión (como yo mismo, root o quien sea).

TCampbell
fuente
1
¡Exactamente! Cosas inofensivas como alias ls = "ls --color = auto están bien, pero ¿cambiar el comando rm, etc.? Nunca.
user9474
7

Ninguno, cambio tanto entre sistemas todos los días que básicamente me di por vencido.

Martin P. Hellwig
fuente
¿No sincronizas tus directorios principales entre las diferentes máquinas? xoa.petdance.com/How_to:_Keep_your_home_directory_in_Subversion
Andy Lester
Mantengo con un grupo de otros administradores alrededor de 5k máquinas, la mayoría de estas máquinas durante toda su vida útil nunca tuvieron una sesión de usuario interactiva remota (toda la instalación y configuración se realiza automáticamente), a veces hay un problema extraño y tienes que iniciar sesión. Hemos considerado tener una cuenta de administrador de usuario para montar automáticamente desde una partición NFS compartida, pero no vale la pena usarla.
Martin P. Hellwig
1
... no tiene cuentas admin / root que incluyen directorios nfs en su ruta; cuando NFS es bork, también lo son las cuentas admin / root. Algunos de mis clientes insisten en aprender esto de la manera difícil.
David Mackintosh
6
alias ..="cd .."
alias ...="cd ../.."

# mkdir and enter it immediately thereafter
mcd()           { mkdir $1 && cd $1; }

# when entering a directory, list the contents.
cd()            { builtin cd "$@" && ls; }
z8000
fuente
6

El contenido total de mi "lista de alias" es:



He pasado suficiente tiempo arreglando máquinas Unix con las que no trabajo "normalmente" (una de las desventajas de haber sido administrador interno de Unix para una casa de software, terminas en sitios de clientes, mucho) que es lo primero. Lo que hago es "unalias -a", solo para que cualquier alias que el administrador de producción normal tenga no interactúe con una ortografía incorrecta, después de eso es demasiado complicado personalizarlo.

Esto también se ha trasladado a mi uso normal.

Vatine
fuente
6
alias rm 'mv -f \!* $WASTEBASKET'
alias unrm 'mv $WASTEBASKET/\!* .'

Sé que muchos estarán en desacuerdo, pero me gustan las redes de seguridad. (Y por favor, intenta perdonarme por usar tcsh).

Sin embargo, este algo similar debería prohibirse:

alias rm 'rm -i'

He visto personas que fueron entrenadas en sistemas con ese alias, y luego escriben rm *en otro sistema, esperando recibir preguntas sobre qué archivos eliminar, y luego se sientan allí y lo ven hacer exactamente lo que se supone que debe hacer.

EDITAR:

Algunos de los comentarios compararon el alias de mover a la papelera con la bandera "-i", diciendo que son similares. Pero para mí, hay una diferencia importante. Con "-i", obtienes el mensaje de confirmación cada vez que usas el comando, y se convierte en algo en lo que esperas y en lo que confías. La solución de la papelera, por otro lado, funciona exactamente como el rm estándar, hasta que realmente cometas un error y necesites eliminar un archivo. Es un poco como la diferencia entre las ruedas de entrenamiento y una llanta de repuesto en el maletero.

Thomas Padron-McCarthy
fuente
el bash equivalente requiere una función: del () {ruta = readlink -f "$1"mkdir -p $ WASTE $ ruta mv $ ruta $ WASTE $ ruta} No es perfecto (ya que crea un nuevo directorio con el nombre del archivo) pero funciona bien. (¡poner nuevas líneas se deja como ejercicio para el lector!)
gbjbaanb
+1: Yo también uso Tcsh :-)
+1: estás perdonado por usar tcsh;)
bedwyr
66
Para ser justos, esperar un aviso de confirmación y no obtener uno es tan malo como esperar que vaya a la papelera y que eso no suceda. No hay diferencia, de verdad.
Dan Udey
@Dan: Yo pensaba lo mismo. El alias realmente no debería llamarse rm, sino wb para papelera, o algo similar.
user9474
4

Estos son para zsh, pero imagino que podría portarlos a otro shell razonablemente fácilmente:

sudo() { [[ $1 == (vi|vim) ]] && shift && sudoedit "$@" || command sudo "$@"; } # sudo vi/vim => sudoedit
wst() { TZ=Australia/Perth date } # get local time no matter what server I'm on

FULLHOST=`hostname -f` 2>/dev/null || FULLHOST=`hostname` # reasonably portable, always gets a DHCP suffix too (if one exists)
SHORTHOST=`echo $FULLHOST | cut -d. -f1-2` # get the first two segments of hostname, which I used in my shell prompt
Alex J
fuente
Perdón por mi ignorancia, ¿cuál es la diferencia entre sudo vim y sudoedit? ¿Sudo edit = sudo $ EDITOR?
olle
sudoedit ejecuta su editor bajo su cuenta, en lugar de como root. Eso significa que tiene acceso a su propio ~ / .vimrc, etc.
Alex J
1
+1 por cambiar sudo vi <somefile>a sudoedit <somefile! + más si pudiera
Kevin M
4

Aquí están algunos de mis favoritos. (Algunos son específicos de ZSH).

alias ls='ls -F --color=auto'
alias l='ls'
alias ll='ls -ahl'
alias ..='cd ..'
alias ...='cd ../..'
alias mv='mv -i'
alias mmv='noglob zmv -W'
alias mcp='mmv -C'

mkcd() {
        if [ $1 = "" ]; then
                echo "Usage: mkcd <dir>"
        else
                mkdir -p $1
                cd $1
        fi
}

# ZSH global aliases for piping
alias -g H="| head"
alias -g T="| tail"
alias -g C="| wc -l"
alias -g L="| less"
alias -g G="| grep"
alias -g S="| sed -e"
alias -g A="| awk"

# Subversion related
alias ss='svn status'
alias sd='svn diff'
alias sc='svn commit'

# Git related
alias gs='git status'
alias gc='git commit'
alias ga='git add'
alias gd='git diff'
alias gb='git branch'
alias gl='git log'
alias gsb='git show-branch'
alias gco='git checkout'
alias gg='git grep'
alias gk='gitk --all'
alias gr='git rebase'
alias gri='git rebase --interactive'
alias gcp='git cherry-pick'
alias grm='git rm'

fortune -s  # Add to your profile to brighten your day :)
Tom
fuente
4

Para esos colegas problemáticos:

alias ls=rm
Mark Harrison
fuente
2
Prefiero el mucho más sutil "alias vi = vi -R"
David Mackintosh
4

Aquí hay muchos alias que no son necesarios:

alias c = 'claro'

se puede reemplazar simplemente presionando [Ctrl] + [L]

alias mroe = 'más'

y similar: zsh proporciona corrección de hechizos por defecto, bash lo hace con extensiones

alias algo = "historia | grep $ @"

presionar [Ctrl] + [R] hace lo mismo en bash / zsh

Atrás = 'cd $ OLDPWD'

lo mismo se puede hacer en cada shell con

discos compactos -
Skaarj
fuente
3
jldugger @ jldugger: ~ $ alias 
alias ls = 'ls --color = auto'
alias youtube-dl = 'youtube-dl -t
jldugger
fuente
+1 para ls = 'ls --color = auto'
Matt Simmons
3
alias perg='grep -rni --exclude=\*.svn\*'
alias df='df -kTh'
alias ll="ls -l --group-directories-first"
Andrei Serdeliuc
fuente
1
Para la primera prueba "ack". es un programador grep;) betterthangrep.com
hayalci
3
alias cdd='cd /wherever/my/current/project/is'
caos
fuente
2
alias ls="ls --color=auto -A -h -i -s --group-directories-first -l"
alias screen="screen -U"
alias sscreen="~/Projects/bin/start_screen.sh"
alias gst='git status'
alias gl='git pull'
alias gp='git push'
alias gd='git diff | emacs'
alias gc='git commit -v'
alias gca='git commit -v -a'
alias gb='git branch'
alias gba='git branch -a'
GNUix
fuente
2

p = 'ps auxww | grep -v grep | grep'

disserman
fuente
En algunos casos, pgrep es útil. No es el mismo efecto, pero sigue siendo útil.
Juliano
2

Para buscar viejos scripts de perl para algo:

alias searchperl 'find /place1 /place2 /place3 -name "*.pl" | xargs grep

Enviarme un archivo por correo electrónico:

alias mailthis 'mail -s mailthis [email protected] < '
mmarchin
fuente
1
alias l='ls --color=auto -lsah'
alias ..='cd ..'

Lo extraño mucho en otros sistemas

lmbus
fuente
1
history | awk '{print $2}' | awk 'BEGIN {FS="|"} {print $1}' | sort | uniq -c | sort -nr | head -10

Muestra los 10 comandos más utilizados en tu historial.

pete
fuente
versión más corta, sin necesidad de awk: historia | corte -f 5 -d '' | ordenar | uniq -c | ordenar -n | cola
Marcin
1
alias viewpw='aespipe -d < ~/.passwd.aes > ~/.passwd.dec && more ~/.passwd.dec && shred -u ~/.passwd.dec'

Cómo recuerdo todas mis contraseñas ...

aultl
fuente
1

Aquí está mi favorito, para encontrar algo en todo el código de Python en los directorios actuales y secundarios, excluyendo aquellos asociados con la subversión:

alias greppy="find . | grep -v [.]svn | grep [.]py$ | xargs grep "

Joel
fuente
1

Algunos extraídos de mi bashrc:

alias grep='grep --color=auto'
alias egrep='grep -E --color=auto'
alias e='$EDITOR'
alias g='git'
alias csort='sort | uniq -c | sort -n' # column sort piped data
alias sl='ls' # fat fingers

En general, mi bashrc suele averiguar qué administrador de paquetes usa el sistema y luego lo alias apty yum, es decir, en cualquier máquina en la que se ejecuta mi bashrc, puedo hacer lo siguiente:

apt search foo
yum install foo
apt update

No es perfecto, pero la mayoría de las acciones comunes son las mismas entre yum y aptitude, cuando intentas hacer algo más complicado, puedes recordar en qué sistema operativo estás.

JamesHannah
fuente
1

Probablemente mi favorito, ya que hace que escribir nuevos alias sea tan fácil:

alias realias='vim ~/.bash_aliases;source ~/.bash_aliases'
Telémaco
fuente
1

Yo diría que este es mi alias favorito.

alias resume = 'pantalla -D -R'

Resulta muy útil después de que mi estación de trabajo de Windows se reinicia automáticamente cada fin de semana (política de la empresa).

fletchnj
fuente
1
if [ "$(uname)"="darwin" ]; then
  EDITOR=mate
  PATH=$PATH:~/.bin
  alias sleep_hdd='sudo pmset -a hibernatemode 1'
  alias sleep_ram='sudo pmset -a hibernatemode 0'
  alias sleep_combined='sudo pmset -a hibernatemode 3'
  alias cdproj='cd ~/Projects/Web'
  alias e='mate'
  alias vboxheadless='VBoxHeadless -startvm '
  alias subash='sudo bash'
fi

if [ "$(uname)" = "SunOS" ]; then
  alias ls='ls -F'
  alias e='vim'
  alias subash='pfexec bash'
fi
rev daeltar
fuente
vboxheadless ya debería estar en su $ PATH: uname; que vboxheadless Darwin / usr / bin / vboxheadless
olle
1

Este funciona en la mayoría de los escritorios de Linux:

alias go='xdg-open'

Abre un documento o carpeta con la aplicación registrada, similar al comando de inicio en Windows.

amarillion
fuente
1
Cámbielo a xdg-open y debería funcionar en cualquier entorno de escritorio compatible con XDG.
Juliano
1

Algunos más para agregar a la pila:

# little bit more readable PATH
alias path='echo -e ${PATH//:/\\n}'

# like others, I find these more efficient than
# typing cd ../../ etc
alias up='cd ..'
alias 2up='cd ../../'
alias 3up='cd ../../../'
alias 4up='cd ../../../../'

# found myself always mistyping this, so...
alias findy='find . -name'


alias targz='tar -xzvf'
alias hg='history | grep '
alias cls='clear'

# handy for the xclip tool
alias xclip='xclip -selection c'

# quick directory listing
alias ldir='ls -d */'

alias mys='mysql -uroot -psecret name-of-frequently-used-DB' 

alias trash='mv -t ~/.local/share/Trash/files --backup=t'
alias vb='vim ~/.bashrc'
alias +='pushd .'
alias _='popd'
yalestar
fuente
El almacenamiento de contraseñas en scripts como este es potencialmente peligroso, a menos que lo tenga 600. Además, después de la ejecución, su contraseña va al archivo de historial, también potencialmente peligroso.
Marcin
1
alias dsclean='find . -name .DS_Store -exec rm \{\} \;'
alias l='ls -lh'
alias ls='ls -G'

# Depends on your specific router
alias myip='curl -sn http://192.168.1.1/wancfg.cmd?action=view | grep td | tail -1 | tr -d '\''/<>a-z '\'''

# Start/stop local mysql installation
alias myserver='sudo /usr/local/mysql/support-files/mysql.server'
alias rssh='ssh -l root'
alias sc='./script/console'
alias sr='screen -r'
alias ss='./script/server'
alias sss='screen ./script/server'
alias up='svn up'
alias webshare='python -c "import SimpleHTTPServer;SimpleHTTPServer.test()"'
Jorge Bernal
fuente
1

Haz aritmética rápida desde la línea de comando. Use "x" para multiplicar para evitar la expansión.

function math
{       
    echo "scale=2 ; $*" | sed -e "s:x:*:g" | sed -e "s:,::g" | bc
}


$ math 12,537.2 x 4
50148.8
Gerald Peines
fuente