Aliases úteis do bash e gerar uma lista dos seus comandos mais usados


10

Encontrei este artigo discutindo uma maneira rápida de classificar seu histórico do bash e ver quais comandos você mais usa:

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

Ele realmente abre seus olhos para quais tarefas você deve criar aliases e quais você deve agendar completamente.

Eu adoraria ver uma lista ServerFault de aliases de linha de comando recomendados que economizam seu tempo no trabalho . O que voce conseguiu?

Entre nós, aposto que podemos salvar todos os usuários que lêem esta postagem pelo menos 10 minutos por dia. (Menos o primeiro dia em que perdem o tempo todo lendo ServerFault em vez de fazer o trabalho, é claro!)


Para que
conste

Respostas:


7

Eu lido com várias máquinas diferentes, então uma das minhas favoritas são aliases para cada máquina que eu preciso fazer SSH frequentemente para:

alias claudius="ssh dinomite@claudius"

Também é útil configurar teclas boas .ssh/confige ssh para tornar o salto entre máquinas ainda mais fácil.

Outro dos meus apelidos favoritos é para mover diretórios:

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

E alguns para variações geralmente usadas de ls(e erros de digitação):

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"

Eu quase sempre quero egrep:

alias grep="egrep"

Obter páginas de manual de todas as seções

alias man="man -a"

Muitas vezes eu me via canalizando a saída awkpara obter uma determinada coluna da saída, como df -h | awk '{print $2}'para encontrar o tamanho de cada um dos meus discos. Para facilitar isso, criei uma função fawkno meu .bashrc:

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

Agora posso executar o df -h|fawk 2que economiza um pouco de digitação.

Eu trabalho com muito Perl e preciso conhecer as versões dos módulos instalados em um sistema:

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

3

Normalmente, gosto de digitar tudo, porque receio esquecer todos os comandos que estou usando em pouco tempo. Sei que posso estar errado, mas acho que não saberia muito sobre o sistema se tivesse colado todos os comandos no Commandlinefu no meu .bashrc.

Observe que não estou dizendo que sou o melhor e sei tudo o que há para saber sobre o Linux; longe disso, estou apenas dizendo que gosto de aprender e lembre-se do que aprendi usando.

Isso não quer dizer que não aprecio como os pseudônimos de economia de tempo são (especialmente para funções maiores, mas você precisa ver se um script não é melhor), mas, pessoalmente, não gosto de usá-los (pelo menos nem sempre).

Dito isto, o Commandlinefu possui uma tag especial para aliases. Vale a pena olhar.

Também acho que essa é boa:

   alias less='less -FSRX'

Isso usará menos se a saída for maior que a tela.


2

Meu favorito de todos os tempos:

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

Não precisa de explicação, precisa? :-)


5
Não é isso que é .ssh / config é para :-P Anfitrião server_name Hostname 1.2.3.4 Usuário nome de usuário etc.
vartec

Usando bash_completion e guia, guia parece funcionar muito bem para mim, em vez de configurar um monte de aliases ssh
Clayton Stanley

2

alias lt='ls -lhart'

  • l = long: h = tamanhos legíveis por humanos: a = all: r = classificação inversa: t = classificação por tempo
  • Coloca o arquivo mais recente na parte inferior, logo acima do prompt

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

  • mostra apenas linhas que não estão em branco ou comentadas
  • exemplo: active /etc/httpd/conf/httpd.conf

alias svi='sudo vim'

alias scr='screen -Rd'


Bom, especialmente sudo vim
astropanic

1

Eu tenho que admitir que tenho alguns assim ..

alias sl=ls

Para tentar combater meus erros de digitação :-)

eu também tenho

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

Portanto, é agradável e simples adicionar novos.



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

Digite o nome do host para efetuar logon no host. Nota: ssx é um apelido em si:

ssx='ssh -Y'

Combinado com chaves compartilhadas, é bastante liso.


1

Acho irritante colocar todas as coisas do apt-get e apt-cache no debian / * buntu, especialmente com o prefixo sudo, por isso tenho:

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

1

criar .tar.gz

alias tarc="tar czvf"

extrair .tar.gz

alias tarx="tar xzvf"

list .tar.gz

alias tart="tar tzvf"


0

Encontrei esta página procurando uma maneira de criar um alias para me mostrar a enésima coluna de um arquivo csv (tsv, na verdade) usando o awk. A função fawk acima era quase exatamente o que eu queria. Modifiquei um pouco para adicionar um segundo argumento opcional, o nome do arquivo, para que eu possa usá-lo normalmente como awk, e não apenas através de um pipe.

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

Obrigado!


0

Este não é um alias, mas ver pessoas que usam alias conexões ssh pode ser útil.

O pacote Openssh possui um binário chamado ssh-argv0 que funciona via links simbólicos.

Então, se você fizer algo assim:

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

Tendo / usr / local / bin no $ PATH, agora você pode conectar-se como usuário "user" ao ssh.server.com escrevendo isso em um prompt de shell:

 $ user@ssh.server.com 

0

+1 para a resposta de Drew Stephens. O único que ele não cobriu e que eu também uso é o alias dos vários arquivos de ponto que eu preciso acessar regularmente, como:

alias dotz='vi ~/.zshrc'

Dê um passo adiante com a função add-alias on-the-fly:

function add-alias {
echo "alias $1=\047$2\047" >> ~/.zshrc
}
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.