Eu tenho um monte de aliases e funções shell definidas no meu ~/.bashrc
alias ll='ls -lh'
alias li='ls -lhi'
alias lll='ls -lhL'
alias l='ll'
complete -F _longopt l ll lll li # this doesn't actually work
psg(){ ps aux | grep ${*:-$USER} | grep -v grep; }
psgw(){ ps auxww | grep ${*:-$USER} | grep -v grep; }
# expand aliases for sudo
alias sudo='sudo '
alias imv='imv -i'
alias mv='mv -i'
alias cp='cp -i'
alias rm='rm -i'
alias prealloc-mv='rsync --remove-source-files --sparse --preallocate -aH'
alias m=less
export LESS=iMRj5
alias j='jobs -l'
alias dr='disown -r'
cmpll() { ll "$@"; cmp "$@" && echo identical; }
findll() { find "$@" -exec ls -dlh --color=auto {} +; }
findinamell() {
local i args=()
for i in "$@";do
args+=( '-iname' )
args+=( "*$i*" )
done
findll "${args[@]}";
}
Como outros apontaram, ~/bin
está no seu $PATH
por padrão, se existir, então você pode colocar coisas que são muito grandes para uma função de alias ou shell lá. Eu realmente tenho vários scripts realmente pequenos no meu ~/bin
, IDK porque eu decidi fazer arquivos em vez de aliases. Procure por "COMMAND EXECUTION" na página man bash para mais detalhes sobre como os comandos são interpretados. man bash
.
Se eu estiver preparando alguns comandos que são aplicáveis apenas a algo em que estou trabalhando em um determinado diretório, eu poderia colocar os comandos em um arquivo lá e executá-lo com ./do-stuff.sh. Seus dedos se acostumarão a digitar ./
rapidamente. Você também pode manter um arquivo de texto de comandos úteis que você usou, junto com uma descrição do que eles fazem. Eu faço isso algumas vezes quando não acho que vale a pena transformá-lo em uma função ou script que use parâmetros, mas apenas cole-o e edite-o conforme apropriado. por exemplo. para reproduzir audiobooks, geralmente uso:
mpl() { t=2200; mplayer -ss $(($t * (%2))) -endpos $(($t+5)) disc$(printf '%02d' $((1 + /2)))-38.mp3; date; }; mpl 4
(isso reproduz 2200 segundos de áudio, começando no início ($ 1 ímpar) ou 2200seg em uma das muitas trilhas numeradas. Basicamente mapeie um índice linear para um conjunto de arquivos de áudio que são cada um de dois blocos de áudio. longo.)
Eu posso fazer uma seta para cima e editar o final da linha de comando com o monitor desligado, enquanto adormeço. Eu uso uma função shell, então a parte que eu preciso editar está bem no final. Os aliases só funcionarão se todos os argumentos puderem ir direto ao final da parte fixa do comando.
Tenho certeza de que há uma boa quantidade de coisas boas por aí, se você pesquisar no Google, mas provavelmente há também uma tonelada de coisas desatualizadas e menos úteis, e não quero tirar um tempo para avaliar um guia agora.