Você não está autenticado.

Anúncio

Devido a quantidade de spam e a ineficácia de integração do Google Captcha com o fluxbb, o registro de novos usuários foi desativado.
Caso queira se registrar, por favor, entrar contato pelo e-mail: forum at archlinux-br.org

Arch Linux Brasil está precisando de sua colaboração para realizar o pagamento do domínio e do host, para colaborar, realizar doações via paypal.
Para mais informações: contato at archlinux-br.org.

#1 07/01/2017 00:36:20

swatquest
Moderador
Registrado: 05/10/2010
Mensagens: 1.962

.bashrc - Alias / Funçòes/ Export / Dicas para o uso dia a dia

Oi pessoal.
  Decidi criar 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.

  Obs: Caso esqueça algum nome de alias é só executar  o comando alias
Este tópico também foi inciado em  http://ubuntuforum-br.org/index.php/topic,121282.0.html
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'

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'

Pacman
Limpar arquivos orfãos

# Remover arquivos orfãos
limpar_orfaos() {
declare ORPHAN=$(pacman -Qdtq)
 [ "$UID" != 0 ] && SU=sudo
 [ -z "$ORPHAN" ] && echo "não há nada a fazer" || $SU pacman -Rsn ${ORPHAN}
}

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 "[email protected]"; 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" "[email protected]"'

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

# Pegue seu atual ip público e host
alias ipublic='curl icanhazip.com && curl icanhazptr.com'

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

# lista usuários e grupos
alias usuários='cut -d \: -f1 /etc/passwd'  
alias grupos='cut -d: -f1 /etc/group'

Última edição por swatquest (18/01/2017 15:48:16)

Offline

#2 07/01/2017 00:48:52

swatquest
Moderador
Registrado: 05/10/2010
Mensagens: 1.962

Re: .bashrc - Alias / Funçòes/ Export / Dicas para o uso dia a dia

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/

Offline

#3 07/01/2017 00:49:54

swatquest
Moderador
Registrado: 05/10/2010
Mensagens: 1.962

Re: .bashrc - Alias / Funçòes/ Export / Dicas para o uso dia a dia

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 

Offline

#4 07/01/2017 01:06:42

swatquest
Moderador
Registrado: 05/10/2010
Mensagens: 1.962

Re: .bashrc - Alias / Funçòes/ Export / Dicas para o uso dia a dia

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
cls() { 
 cd "$1"; ls;
}

Última edição por swatquest (07/01/2017 01:11:58)

Offline

#5 10/01/2017 23:50:47

niquelnausea
Membro
De: PR
Registrado: 28/09/2010
Mensagens: 110

Re: .bashrc - Alias / Funçòes/ Export / Dicas para o uso dia a dia

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 -- "[email protected]" && { [ "$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
    }

Última edição por niquelnausea (11/01/2017 00:36:53)


7ZOPIQe.gif

Offline

#6 11/01/2017 22:02:43

swatquest
Moderador
Registrado: 05/10/2010
Mensagens: 1.962

Re: .bashrc - Alias / Funçòes/ Export / Dicas para o uso dia a dia

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
[email protected] 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
}

Pesquisar do pacman colorido

# Pacman ao pesquisar colorido
pesquisar() {
  echo -e "$(pacman -Ss [email protected] | sed \
       -e 's#core/.*#\\033[1;31m&\\033[0;37m#g' \
       -e 's#extra/.*#\\033[0;32m&\\033[0;37m#g' \
       -e 's#community/.*#\\033[1;35m&\\033[0;37m#g' \
       -e 's#^.*/.* [0-9].*#\\033[0;36m&\\033[0;37m#g' )"
}

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 [email protected] não existe" || echo "O usuário não foi informado";
 echo "USO: infouser [usuário]"
fi

Offline

#7 13/01/2017 23:09:01

swatquest
Moderador
Registrado: 05/10/2010
Mensagens: 1.962

Re: .bashrc - Alias / Funçòes/ Export / Dicas para o uso dia a dia

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'

Pacman opções

# Pacman
alias atualizar='sudo pacman -Syu'
alias yatualizar='yaourt -Syua'
alias remover='sudo pacman -Rsn'
alias pac='sudo pacman -S'
alias ypac='yaourt -S'
alias pacinst='sudo pacman -U'  
alias otimizar='sudo pacman-optimize && sync'
alias procurar='pacman -Qs'
alias ypesquisar='yaourt -Ss'


# Sincroniza o pacman no modo repositórios remotos e na opção files
alias sincronizar='sudo pacman -Sy && sudo pacman -Fy'
# Adicionais pacman alias
alias pacabs='sudo pacman -Sy && sudo abs'     
alias pacinsd='sudo pacman -S --asdeps'   

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

Última edição por swatquest (17/01/2017 19:57:34)

Offline

#8 15/01/2017 11:09:40

sistematico
Admin
De: Campo Grande / MS
Registrado: 13/06/2008
Mensagens: 1.023
Website

Re: .bashrc - Alias / Funçòes/ Export / Dicas para o uso dia a dia

Parabens swatquest e niquelnausea!

Offline

#9 15/01/2017 22:05:46

swatquest
Moderador
Registrado: 05/10/2010
Mensagens: 1.962

Re: .bashrc - Alias / Funçòes/ Export / Dicas para o uso dia a dia

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 mostra a funçao completa

alias verbashrc='alias; grep -v alias ~/.bashrc | grep -i -A 30 "()"'

Última edição por swatquest (15/01/2017 22:47:26)

Offline

#10 18/01/2017 15:48:34

swatquest
Moderador
Registrado: 05/10/2010
Mensagens: 1.962

Re: .bashrc - Alias / Funçòes/ Export / Dicas para o uso dia a dia

consertada a função tamanho

Offline

#11 30/01/2017 15:44:20

phillipe
Moderador
De: Novo Gama - GO
Registrado: 23/03/2008
Mensagens: 1.327
Website

Re: .bashrc - Alias / Funçòes/ Export / Dicas para o uso dia a dia

Execução de comandos remotos via ssh passando login do usuário como login remoto:

assh() { ssh -t ${USER}@$1 "${@:1}" }

Exemplo de uso: 
    assh host.remoto uname -a

Pesquisa via ldap:

alias adsearch="ldapsearch -h adserver -b 'dc=minha,dc=organizacao,dc=com,dc=br' -E pr=1000/noprompt "

Exemplo de uso:
    adsearch cn=UsuarioX

"NÃO HÁ NADA COMO A LIBERDADE." (Nelson Mandela)

Offline

#12 01/03/2017 23:26:08

swatquest
Moderador
Registrado: 05/10/2010
Mensagens: 1.962

Re: .bashrc - Alias / Funçòes/ Export / Dicas para o uso dia a dia

Remover orfãos

# Remover arquivos orfãos
limpar_orfaos() {
declare ORPHAN=$(pacman -Qdtq)
 [ "$UID" != 0 ] && SU=sudo
 [ -z "$ORPHAN" ] && echo "não há pacotes orfãos" || $SU pacman -Rsn ${ORPHAN}
 echo 'Verificando cache de pacotes'
 paccache -rvuk0 | sed -e 's/no candidate packages found for pruning/nenhum pacote encontrado para ser removido/g' -e 's/finished:/concluído:/g' -e 's/packages removed/pacotes removidos/g' -e 's/disk space saved/espaço em disco salvo/g'

}

Offline

Rodapé do site