Não recomendo para quem quer aprender comandosOi pessoal.
Criei este tópico para facilitar e melhorar o uso do sistema no dia a dia.
Lógico que para dar certo será necessário da ajuda de todos. Se você sabe algum comando e quer compartilhar com a gente, por favor, sinta-se à vontade para adicionar neste tópico.
Aqui será como uma coletânia de comandos com alias ou funções para facilitar o uso do sistema Linux.
Serve tanto para iniciantes como para experientes.
Copiar para o arquivo ~/.bashrc
Aqui já vou colocar e explicar alguns comandos, e depois adiciono mais o que eu for lembrando.
Este tópico também foi inciado em https://forum.archlinux-br.org/viewtopic.php?id=4650 Obs: Caso esqueça algum nome de alias é só executar o comando alias
Para ver nomes de alias e funções
# Ver alias e function do bashrc
alias verbashrc='alias; echo -e "\n [ Funções ]\n"; grep -v alias ~/.bashrc | grep -i "[a-zA-Z]()" | sort | cut -d"(" -f1 '
Caso queira que mostre a funçao completa
alias verbashrc='alias; grep -v alias ~/.bashrc | grep -i -A 30 "()"'
Atualiza e edita o bashrc na sessão iniciada sem precisar reiniciar o terminal.
# Atualiza na sessão aberta as configurações no arquivo .bashrc
alias upbashrc="source ~/.bashrc"
# Abre o arquivo rc e depois atualiza na sessão
alias bashrc='$EDITOR ~/.bashrc ; source ~/.bashrc'
Alias e funções Alguns comandos é aconselhável colocar uma interatividade, por exemplo, o comando rm, pois você pode apagar o arquivo errado.
# Interativo
alias rm='rm -i'
alias ln='ln -i'
Comandos como mover e cp é legal ter um explicativo e interativo.
# Comando que é interativo e explica o que está sendo feito
alias mv='mv -vi'
alias cp='cp -vi'
Você digita o inicio e depois com a teclas de subir e descer do teclado ele irá procurar no histórico as conclusões.
~/.bashrc
bind '"\e[A": history-search-backward'
bind '"\e[B": history-search-forward'
ou afete todos os progranmas radline:
~/.inputrc
"\e[A": history-search-backward
"\e[B": history-search-forward
Para o comando df emitir tamanhos na potência de 1000 (p.ex.: 1.1G) ( mais próximo dos gerenciadores de arquivos)
## comando df ##
alias df='df -H'
Para o histórico
# Procura por comando no registro history
alias hs='history | grep $1'
Manuais
# Explicação de manuais
explain () {
if [ "$#" -eq 0 ]; then
while read -p "Command: " cmd; do
curl -Gs "https://www.mankier.com/api/explain/?cols="$(tput cols) --data-urlencode "q=$cmd"
done
echo "Bye!"
elif [ "$#" -eq 1 ]; then
curl -Gs "https://www.mankier.com/api/explain/?cols="$(tput cols) --data-urlencode "q=$1"
else
echo "Usage"
echo "explain interactive mode."
echo "explain 'cmd -o | ...' one quoted command to explain it."
fi
}
Ordenar a pasta e arquivos ou até as subpastas por tamanho.
Normalmente pelo gerenciador de arquivos ele só ordena os arquivos e não as pastas.
# Ordenar por tamanho
tamanho() {
if [ -z $1 ]; then
du --si -d 1 -a | sort -hr | tail -n +2
elif [ $1 -eq $1 2> /dev/null ]; then
du --si -d $1 -a | sort -hr | tail -n +2
else
echo "Use número, por exemplo, tamanho 2"
fi
}
Uso:
tamanho
tamanho 2
tamanho 10
O número seria referente as subpastas.
Remover espaço em branco no início do nome
# Remover espaço em branco no início do nome
rembranco(){
for b in "$@"; do
nome=$(echo "$b"|sed "s/^ //")
if [ "$b" != "$nome" ]; then
mv -v "$b" "$nome"
fi
done
}
Uso:
rembranco *
rembranco arquivo
Alguns alias interessantes
# Listar arquivos de hoje
alias lshoje='ls -al --time-style=+%D | grep `date +%D`'
# Mostrar permissão
alias permissão='stat -c "(%F)- %n %a %A" "$@"'
# Mostrar portas abertas/ativas tcp e udp
alias portas='netstat -tulanp'
# Passar opções para free ##
alias meminfo='free -m -l -t -h'
# Top processos comendo memória
alias psmem='ps auxf | sort -nr -k 4'
alias psmem10='ps auxf | sort -nr -k 4 | head -10'
# Top processos comendo cpu
alias pscpu='ps auxf | sort -nr -k 3'
alias pscpu10='ps auxf | sort -nr -k 3 | head -10'
# Obter informações da CPU do servidor
alias cpuinfo='lscpu'
# Temperatura da cpu
alias cputemp='sensors | grep Core'
# Mostrar as montagens por coluna
alias cmount="mount | column -t"
Pegar o pid do processo
# Pegar o pid do processo
pid (){
ps aux | grep -i "$1" | grep -v grep | awk '{print $2}'
}
Uso:
pid firefox
Lista somente usuário e não de serviços
# lista usuários
alias usuários="awk -F : '$3 >= 1000 { print $1}' /etc/passwd " # apenas usuários do sistema e não de serviços sem o root
alias usuários="awk -F : '$3 < 1 || $3 >= 1000 { print $1}' /etc/passwd " # apenas usuários do sistema e não de serviços com o usuário root
Lista todos os usuários
# lista usuários e grupos
alias usuários='cut -d \: -f1 /etc/passwd'
Ou use a
função para lista usuários (samba,serviços e criados)
# Lista usuários
usuarios(){
[[ "$1" == "r" && "$#" -lt 2 ]] && awk -F : '$3 < 1 || $3 >= 1000 { print $1}' /etc/passwd;
[[ "$1" == "c" && "$#" -lt 2 ]] && awk -F : '$3 >= 1000 { print $1}' /etc/passwd;
[[ "$1" == "s" && "$#" -lt 2 ]] && awk -F : '$3 > 0 && $3 < 1000 { print $1}' /etc/passwd;
[[ "$1" == "S" && "$#" -lt 2 ]] && sudo pdbedit -L | cut -d \: -f1;
if [[ "$#" -eq 0 ]]; then
cut -d \: -f1 /etc/passwd;
elif [[ "$#" -gt 1 || "$1" != "c" && "$1" != "r" && "$1" != "s" && "$1" != "S" ]]; then
cat << USOAJUDA
$@ não é uma opção válida.
ajuda: usuario [opções]
r : Mostra com o usuário root
c : Mostra usuários criados sem o serviços
s : Mostra usuários de serviços
S : Mostra usuários do samba
Exemplo:
usuarios r
usuarios
USOAJUDA
fi
}
Lista todos os grupos
alias grupos='cut -d: -f1 /etc/group'
Informações de usuários
# Informações de usuários
infouser(){
vuser=`grep -c "^$1:" /etc/passwd`
tuser=`grep "^$1:" /etc/passwd| cut -d':' -f3`
if [[ $vuser -gt 0 ]]; then
if [[ $# == 1 ]] ; then
usu=$1
echo -e "\e[1m Usuário: \e[0m $usu"
echo -e "\e[1m Diretório:\e[0m" `grep $usu /etc/passwd | cut -d: -f6`
echo -e "\e[1m Shell:\e[0m " `grep $usu /etc/passwd | cut -d: -f7`
echo -ne "\e[1m Tipo:\e[0m "
if [[ $tuser -ge 1000 ]]; then
echo "usuário comun"
elif [[ $tuser -eq 0 ]]; then
echo "super usuário"
else
echo "usuário de serviço"
fi
echo -e "\e[1m \n Lista os grupos que o $usu pertence \e[0m"
groups $usu
echo -e "\e[1m \n Lista os privilégios do usuário $usu \e[0m"
sudo -lU $usu
echo -e "\e[1m \n Sistem em atividade \e[0m"
echo -e "Tempo de atividade do sistema:" `uptime -p | sed 's/^up //g'`
echo -e "$usu iniciou em:" `last -n1 $usu | awk '{print $3" "$4" "$5" "$6}' | head -n1`
echo -e "$usu está no:" `last -n1 $usu | awk '{print $2}' | head -n1`
fi
else
[[ $# -gt 0 ]] && echo "O usuário $@ não existe" || echo "O usuário não foi informado";
echo "USO: infouser [usuário]"
fi
Sobre obter o ip público
# Pegue seu atual ip público e host
alias ipublic='curl icanhazip.com && curl icanhazptr.com'
mais informações aqui
https://major.io/icanhazip-com-faq/Colorir páginas de manuais
# Colorir páginas de manuais
export LESS_TERMCAP_mb=$(printf '\e[01;31m') # Entrar no modo intermitente - vermelho
export LESS_TERMCAP_md=$(printf '\e[01;35m') # Entrar no modo de duplo brilho - negrito, magenta
export LESS_TERMCAP_me=$(printf '\e[0m') # Desativar todos os modos de aparência (mb, md, so, us)
export LESS_TERMCAP_se=$(printf '\e[0m') # Deixar o modo standout
export LESS_TERMCAP_so=$(printf '\e[01;33m') # Entrar no modo standout - amarelo
export LESS_TERMCAP_ue=$(printf '\e[0m') # Deixar o modo sublinhado
export LESS_TERMCAP_us=$(printf '\e[04;36m') # Entrar no modo sublinhado - ciano
Cria e entra no diretório
# Cria e entra no diretório
mkcd() {
mkdir -p "$1"; cd "$1";
}
Entra e lista diretório
# Entra e lista diretório
cdls() {
cd "$1"; ls;
}
deletar diretórios vazios
deletarpastasvazias() {
read -p "Delete all empty folders recursively [y/N]: " OPT
[[ $OPT == y ]] && find . -type d -empty -exec rm -fr {} \; &> /dev/null
}
listar diretórios apos o comando cd
function cd() { builtin cd -- "$@" && { [ "$PS1" = "" ] || ls -hrt --color; }; }
10 comando mais usados
maisusados() { history | awk '{a[$2]++ } END{for(i in a){print a[i] " " i}}' | sort -rn | head; }
subir diretório (se não especificar quantos, sobe um nível)
subir() {
local d=""
limit=$1
for ((i=1 ; i <= limit ; i++)); do
d=$d/..
done
d=$(echo $d | sed 's/^\///')
if [[ -z "$d" ]]; then
d=..
fi
cd $d
}
Função parecida com a qual o
niquelnausea enviou, mas com algumas opções a mais.
Comando do histórico mais usado com numeração e porcentagem
maisusados(){
history | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n10
}
Para o comando ping
# Parar depois de enviar a contagem de pacotes ECHO_REQUEST
alias ping='ping -c 5'
# Não esparar o intervalo de 1 segundo, vá rápido
alias fastping='ping -c 100 -s.2'
Iptables - Firewall
# Mostrar todas as regras iptables
alias iptlist='sudo /sbin/iptables -L -n -v --line-numbers'
alias iptlistin='sudo /sbin/iptables -L INPUT -n -v --line-numbers'
alias iptlistout='sudo /sbin/iptables -L OUTPUT -n -v --line-numbers'
alias iptlistfw='sudo /sbin/iptables -L FORWARD -n -v --line-numbers'
alias firewall=iptlist