Aliases de linha de comando favoritos do Unix? [fechadas]


39

Quais são os seus aliases de linha de comando favoritos (bash / sh / tcsh)? Aqui estão alguns dos meus.

alias lsr = 'ls -lrt'
alias gon = 'cd $ HOME / Notas'
alias devdb = 'mysql -h dev --user = x --password = secret dbname'
alias ec = 'rm * ~'; # limpeza emacs
alias h = 'histórico'
alias eb = 'exec bash'; # Solaris às vezes assume como padrão sh
alias mr = 'mais'
alias mroe = 'mais'
alias qd = 'exportação de eco DISPLAY = $ DISPLAY'
alias ralias = '. $ HOME / .alias '; # reler aliases
alias ,, = 'cd ../ ..'
alias .. = 'cd ..'
alias c = 'clear'

18
Em vez de passar sua senha na linha de comando para mysql(qualquer pessoa no servidor pode vê-la!), Coloque o nome de usuário e a senha em um arquivo ~ / .my.cnf e simplesmente especifique -up. As ferramentas do MySQL selecionam essas credenciais automaticamente, leia mysql (1) para mais informações.
314 Alex J

+1 Para alias .. = 'cd ..'
mosg

+1 para 'mroe'. Eu preciso cuidar dos meus erros comuns ...
gWaldo

Respostas:


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

Conecte-se a um host em uma nova guia da tela, com o nome do dispositivo como o título da guia.


11

Meus favoritos que não foram mencionados até agora:

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

Normalmente, não sou fã de pseudônimos que apenas encurtam as coisas, mas eu digitei muito e só preciso de uma mão.


+1 - não é uma má ideia
Rook

1
LS (e CD) só precisa de uma mão ... se o mapa de teclas for Dvorak! Mesma mão que 'Enter', nesse caso.
Gbarry

8

nenhum, pois nunca posso garantir que eles serão configurados em TODOS os sistemas nos quais efetuarei login (como eu, root ou quem quer que seja).


1
Exatamente! Coisas inofensivas como ls alias = "ls --color = auto são muito bem, mas mudando o comando rm etc. Nunca?.
user9474

7

Nenhuma, eu mudo tanto entre os sistemas todos os dias que basicamente desisti.


Você não sincroniza seus diretórios pessoais entre as várias máquinas? xoa.petdance.com/How_to:_Keep_your_home_directory_in_Subversion
Andy Lester

Eu mantenho com um grupo de outros administradores cerca de máquinas de 5k, a maioria dessas máquinas durante toda a sua vida útil nunca teve uma sessão interativa remota do usuário (toda a instalação e configuração acontece automaticamente), às vezes há um problema estranho e você precisa fazer logon. Consideramos que a conta de administrador do usuário é montada automaticamente a partir de uma partição NFS compartilhada, mas o uso dela não vale a pena.
9133 Martin P. Hellwig

1
... não tem contas de administrador / raiz que incluem diretórios nfs em seu caminho - quando o NFS é bork, o mesmo ocorre com contas de administrador / raiz. Alguns de meus clientes insistem em aprender isso da maneira mais 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; }

6

O conteúdo total da minha "lista de alias" é:



Passei bastante tempo consertando máquinas unix com as quais "normalmente" não trabalho (uma das desvantagens de ter sido o administrador unix interno de uma empresa de software, você acaba nos sites de clientes, muito) para que a primeira coisa O que faço é "unalias -a", apenas para que qualquer apelido que o administrador de produção normal não interaja com erros de ortografia, depois disso seja muito complicado personalizar.

Isso também passou para o meu uso normal.


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

Eu sei que muitos vão discordar, mas eu gosto de redes de segurança. (E, por favor, tente me perdoar por usar o tcsh.)

Este algo similar deve ser proibido, no entanto:

alias rm 'rm -i'

Vi pessoas treinadas em sistemas com esse alias e depois digitavam rm *em algum outro sistema, esperando obter perguntas sobre quais arquivos excluir e, em seguida, sentam-se e assistem ao programa fazer exatamente o que deve fazer.

EDITAR:

Alguns dos comentários compararam o alias da mudança para a cesta de lixo com a bandeira "-i", dizendo que eles são semelhantes. Mas para mim, há uma diferença importante. Com "-i", você recebe o prompt de confirmação toda vez que usa o comando e ele se torna algo em que você espera e confia. A solução da lixeira, por outro lado, funciona exatamente como a rm padrão, até você cometer um erro e precisar remover um arquivo. É um pouco como a diferença entre rodinhas e um pneu sobressalente no porta-malas.


o equivalente do bash requer uma função: del () {caminho = readlink -f "$1"mkdir -p $ WASTE $ caminho mv $ caminho $ WASTE $ caminho} Não é perfeito (pois cria um novo diretório com o nome do arquivo), mas funciona bem. (colocando em novas linhas é deixada como exercício para o leitor!)
gbjbaanb

+1: Eu também uso o Tcsh :-)

+1: você está perdoado por usando tcsh;)
Bedwyr

6
Para ser justo, esperar um aviso de confirmação e não receber um é tão ruim quanto esperar que ele entre na lixeira e isso não aconteça. Realmente não há diferença.
Dan Udey

@ Dan: Eu pensei o mesmo. O alias realmente não deve ser chamado de rm, mas sim para lixeira, ou algo semelhante.
user9474

4

Estes são para zsh, mas eu imagino que você possa portá-los para outro shell razoavelmente facilmente:

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

Desculpe pela minha ignorância, qual é a diferença entre sudo vim e sudoedit? O sudo edit = sudo é $ EDITOR?
olle

O sudoedit executa seu editor na sua conta, e não como root. Isso significa que você obtém acesso ao seu próprio ~ / .vimrc e assim por diante.
Alex J

1
+1 para mudar sudo vi <somefile>para sudoedit <somefile! + mais se eu pudesse
Kevin M

4

Aqui estão alguns dos meus favoritos. (Alguns são específicos para 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 :)


4

existem muitos apelidos aqui que não são necessários:

alias c = 'clear'

pode ser substituído apenas pressionando [Ctrl] + [L]

alias mroe = 'mais'

e similar: zsh fornece correção ortográfica por padrão, o bash faz isso com extensões

alias something = "history | grep $ @"

pressionar [Ctrl] + [R] faz a mesma coisa no bash / zsh

back = 'cd $ OLDPWD'

o mesmo pode ser feito em todo shell com

cd -

3
jldugger @ jldugger: ~ $ alias 
alias ls = 'ls --color = auto'
alias youtube-dl = 'youtube-dl -t

+1 para ls = 'ls --color = auto' #
Matt Simmons


3
alias cdd='cd /wherever/my/current/project/is'

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'

2

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


Em alguns casos, o pgrep é útil. Não é o mesmo efeito, mas ainda é útil.
Juliano

2

Para pesquisar scripts antigos do Perl por algo:

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

Enviar a mim mesmo um arquivo:

alias mailthis 'mail -s mailthis email@email.com < '

1
alias l='ls --color=auto -lsah'
alias ..='cd ..'

Sinto muita falta em outros sistemas


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

Mostre os 10 principais comandos mais usados ​​em seu histórico.


versão mais curta, sem necessidade de awk: history | cut -f 5 -d '' | classificar | uniq -c | classificar -n | tail
Marcin

1
alias viewpw='aespipe -d < ~/.passwd.aes > ~/.passwd.dec && more ~/.passwd.dec && shred -u ~/.passwd.dec'

Como me lembro de todas as minhas senhas ...


1

Aqui está o meu favorito, para encontrar algo em todo o código Python nos diretórios atual e filho, excluindo os associados ao subversion:

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


1

Alguns arrancados do meu 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

Geralmente, geralmente o meu bashrc descobre qual gerenciador de pacotes o sistema usa e depois o alias como apte yum, ou seja, em qualquer máquina na qual meu bashrc roda, eu posso:

apt search foo
yum install foo
apt update

Não é perfeito, mas a maioria das ações comuns é a mesma entre o yum e o aptitude, quando você tenta fazer algo mais complicado, pode se lembrar em qual sistema operacional está.


1

Provavelmente o meu favorito, pois facilita a escrita de novos aliases:

alias realias='vim ~/.bash_aliases;source ~/.bash_aliases'

1

Eu diria que este é meu apelido favorito.

alias resume = 'tela -D -R'

Isso prova ser muito útil depois que minha estação de trabalho do Windows é reiniciada automaticamente todo fim de semana (política da empresa).


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

O vboxheadless já deve estar no seu $ PATH: uname; qual vboxheadless Darwin / usr / bin / vboxheadless
olle

1

Este funciona na maioria dos desktops linux:

alias go='xdg-open'

Abre um documento ou pasta com o aplicativo registrado, semelhante ao comando iniciar no Windows.


1
Altere para xdg-open e ele deve funcionar em qualquer ambiente de desktop compatível com XDG.
Juliano

1

Mais alguns para adicionar à pilha:

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

Armazenar senhas em scripts como esse é potencialmente perigoso, a menos que você o tenha 600. Também após a execução, sua senha vai para o arquivo de histórico - também potencialmente perigoso.
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()"'

1

Faça aritmética rápida na linha de comando. Use "x" para multiplicação para evitar expansão.

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


$ math 12,537.2 x 4
50148.8

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.