Sugestões de alias para usar no Linux

O comando alias permite facilitar a digitação de sequências de comandos muito grandes e/ou muito usadas, unificando tudo em apenas um nome (apelido).
Sugiro a leitura dos artigos relacionados (ao final) na seção de referências, caso queira se aprofundar um pouco mais no assunto.


Se você ainda não conhece o comando, por favor leia esta introdução.
Quando temos um procedimento complexo, que envolve uma série de linhas de comando para ser realizado, podemos montar um script — que, ao ser invocado, realiza toda a tarefa.
Shell scripts não são solução para tudo. Você pode associar uma pequena sequência de comandos a um alias.
Segue alguns exemplos.

Alias para troca de diretórios

O comando atende a heavy users de sistemas GNU/Linux ou UNIX.
Trocas constantes de diretórios, para realizar tarefas administrativas pode ser cansativo — até para quem é rápido no teclado.
Experimente estas sugestões:

# volta para o diretório pai do atual
alias ..="cd .." 

# volta 2 níveis de diretórios
alias ...="cd ../.."

# volta 3 níveis de diretórios
alias ....="cd ../../.." 

Também gosto da seguinte alternativa:

alias .2="cd ../.."
alias .3="cd ../../.."
alias .4="cd ../../../.."

Quando estiver realizando procedimentos em 2 diretórios diferentes e precisar ir e voltar frequentemente entre eles crie um apelido chamado ‘volta’:

alias volta='cd $OLDPWD'

crie alias para ir rapidamente para diretórios específicos:

alias docs="cd ~/Documentos"
alias facul="cd ~/Documentos/faculdade"
alias vids="cd ~/Vídeos"

Atalhos para listagens de diretórios

O comando ls permite uma série de ajustes de parâmetros e opções que podem ser incorporadas todas dentro de apelidos.
Veja algumas sugestões:

alias ll='ls -l'     
alias lf='ls -F'
alias l='ls -al'
alias lm="ls -al | more"

Para o ls sempre sair colorido:

alias ls="ls --color"

Alias para comandos de data e hora

Se você costuma checar o tempo no terminal, experimente estas configurações:

alias d='date +%F'
alias agora='date +"%T"'
alias hoje='date +"%d/%m/%Y"'

Force a confirmação de comandos

Para forçar a confirmação de comandos de copiar, mover ou apagar, sugiro estes:

alias cp='cp -i'
alias ln='ln -i'
alias mv='mv -i'
alias ln='ln -i'

Alias para comandos variados

Estou sempre pesquisando no meu histórico para rever o funcionamento de algum comando dado há algumas semanas atrás.
Criar um apelido para um procedimento que combine o comando history ao more ou ao comando grep é uma ótima ideia:

alias hm="history | more"
alias hg="history | grep -i"

veja um exemplo de uso deste último:


hg getconf

 1500  getconf LONG_BIT
 1502  man getconf
 1533  getconf -a | grep arq
 1534  getconf -a | grep -i bit

Segue um exemplo para encontrar arquivos no sistema:

alias ff="find / -type f -name"

Agora basta indicar o nome do arquivo, após ff:


ff hello.c

Para fazer buscas dentro dos subdiretórios atuais, use o comando assim:


alias buscar="find . -name "

buscar hello

./hello
./python/scripts/hello

O comando mount pode ser ajustado para exibir uma listagem em colunas organizadas:

alias mount="mount |column -t"

Use estes, para obter informações do sistema:

alias df="df -Tha --total"
alias du="du -ach | sort -h"
alias free="free -mt"
alias ps="ps auxf | more"

Note que já existem utilitários com estes nomes (df, du, free e ps).
O alias se sobrepõe ao nome de um comando preexistente.
Uma variante do último alias, da lista acima, permite buscar informações sobre um determinado processo:


alias psg="ps aux | grep -v grep | grep -i -e VSZ -e"

psg bash

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
justinc+ 28944  0.0  0.0  21992  6064 pts/0    Ss   10:26   0:00 bash

Segue algumas sugestões para fazer a atualização do sistema:

alias sau="sudo apt update"
alias alu="apt list --upgradable"
alias saf="sudo apt full-upgrade"

Para desligar, reiniciar, suspender, hibernar ...

# encerrar a sessão no terminal atual
alias sair="exit"   

# reiniciar o sistema
alias reset="systemctl reboot"

# desligar o sistema
alias desligar="systemctl poweroff"

# suspender o sistema
alias suspender="systemctl suspend"

# hibernar
alias hibernar="systemctl hibernate"

No artigo Como copiar arquivos na linha de comando com exibição do progresso da tarefa, ensino um truque interessante, com o uso do rsync e alias.
Não esqueça que as definições em alias são perdidas quando terminamos uma sessão.
Para que sejam persistentes, é necessário gravá-las em arquivos de inicialização do Bash, como .bashrc ou o .bash_profile ou, ainda, .bash_aliases.

Referências

https://www.networkworld.com/article/2782375/operating-systems/unix-tip--useful-unix-aliases.html.

https://www.linuxtrainingacademy.com/23-handy-bash-shell-aliases-for-unix-linux-and-mac-os-x/.

https://www.digitalocean.com/community/tutorials/an-introduction-to-useful-bash-aliases-and-functions.

https://lifehacker.com/398258/ten-handy-bash-aliases-for-linux-users.

https://www.cyberciti.biz/tips/bash-aliases-mac-centos-linux-unix.html.

Personalize ou crie comandos próprios no Linux com o alias

Mesmo que você não conheça o comando alias, ele provavelmente já está sendo usado em seu sistema.
Os arquivos de configurações pessoais .bashrc ou .bash_profile devem ter uma série de configurações com o uso do alias.

“Alias”, quer dizer apelido.
Sua função é dar nomes curtos para sequências grandes de comandos.

Por exemplo, você pode criar um alias para realizar a atualização do seu sistema, na linha de comandos (CLI):


alias atualiza="sudo apt update"

atualiza

[sudo] senha para justincase: 

O arquivo de configuração .bashrc, presente no seu diretório home (no Debian), já vem com alguns alias predefinidos:

 
cat .bashrc | grep alias

# enable color support of ls and also add handy aliases
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'
    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
# some more ls aliases
alias ll='ls -l'
alias la='ls -A'
alias l='ls -CF'

No meu caso, a maioria está relacionada ao comando grep e ls.

Armazene os apelidos em um arquivo externo

Opcionalmente, você pode adicionar todos os seus alias a um arquivo externo, chamado .bash_aliases (ou outro nome, à sua escolha). Para isto, acrescente ao arquivo de configuração pessoal do Bash (.bashrc), as seguintes linhas:

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

No Debian, estas linhas já estão presentes. De forma que é possível já criar e editar o arquivo .bash_aliases.
Não é obrigatório. Apenas pode ajudar a organizar melhor seus arquivos de configuração do sistema.

Sugestões de alias para usar no seu sistema

Se há sequências de comandos muito longas e usadas, elas podem ser encurtadas em apelidos.
As sequências de atualização do sistema, por exemplo:

alias sau="sudo apt update"
alias alu="apt list --upgradable"
alias saf="sudo apt full-upgrade"

Você pode adicionar apelidos para chegar mais rápido às suas pastas de arquivos mais acessadas:

alias documentos="cd ~/Documentos"
alias scripts="cd ~/scripts/python"
alias vid="cd ~/Vídeos"
alias down="cd ~/Downloads/"
alias mus="cd ~/Músicas/"
alias wallp="cd ~/Imagens/wallpapers"

Alguns comandos úteis para o seu sistema:

alias sair="exit" # para encerrar a sessão no terminal atual
alias reset="systemctl reboot" # para reiniciar o sistema
alias desligar="systemctl poweroff" # para desligar o sistema
alias suspender="systemctl suspend" # para suspender o sistema
alias hibernar="systemctl hibernate" # para hibernar

Obtenha outras sugestões de uso do alias, neste artigo.


Saiba mais sobre as diferenças entre suspender, hibernar e hybrid-sleep.
Use sempre alias para criar apelidos curtos para sequências de comandos grandes — mas que não são tão extensos, que justifique criar um script. 😉
Você tem outras sugestões?! Então, conta pra gente, na caixa de comentários.

IP aliasing no Linux

Este post mostra como aplicar o recurso de IP aliasing a uma interface de rede em uma máquina Linux — o que permite que uma única interface física tenha mais de um endereço IP (como se você tivesse várias placas de rede independentes no seu computador).
A maioria das distro Linux atuais tem o recurso de IP aliasing compilado no kernel. Se este não for o seu caso, você vai ter que carregar o módulo, via insmod
interfaces de rede

O recurso de IP aliasing consiste na associação de um ou mais endereços IP a uma única interface de rede física.
A partir daí, um nó da rede pode ter múltiplas conexões, cada qual servindo a um propósito diferente.
(Wikipedia).

Motivos para usar o recurso de IP aliasing

Há várias razões para alguém querer organizar seu sistema através do uso de várias interfaces lógicas de rede.
Com este recurso, o seu computador vai ficar parecendo “várias computadores” dentro da rede — um pode ser o servidor de impressão, outro o servidor de arquivos, um “terceiro” o servidor web etc.
Esta situação pode ser útil se você tem planos de realmente introduzir outra(s) máquina ao seu parque atual e deseja testar as configurações — basta, depois, transferir tudo pro novo servidor.
O caso contrário também é interessante — concentrar todas as funções de vários servidores em um único, mais parrudo, para poupar o trabalho de manutenção e administração.
Alguns usuários fazem uso do recurso para poder manter seu computador ligado a 2 (ou mais) subredes distintas, simultaneamente.

A vantagem que se sobressai no uso do IP aliasing é que não precisa ter um endereço IP para cada peça de hardware — pelo contrário, você pode gerar um pool de interfaces de rede virtuais (ou aliases) em um único dispositivo.

Como configurar IP aliasing com o ifconfig

A ferramenta ifconfig já foi abordada em outros artigos — recomendo, caso você tenha interesse, ver outros exemplos práticos de uso deste utilitário.
Imagine que tenhamos um interface Ethernet ‘eth0’ no endereço IP 192.168.0.150 e queremos criar um alias ‘eth0:0’ com o endereço 192.168.0.151. Para fazer isto, siga o exemplo:

sudo ifconfig eth0:0 192.168.0.151

Para testar, use o ping:

ping 192.168.0.151

ou use o próprio ifconfig:

ifconfig
...

eth0      Link encap:Ethernet  Endereço de HW 50:b7:c3:04:da:48  
          inet end.: 192.168.0.150  Bcast:192.168.0.255  Masc:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Métrica:1
          pacotes RX:0 erros:0 descartados:0 excesso:0 quadro:0
          Pacotes TX:0 erros:0 descartados:0 excesso:0 portadora:0
          colisões:0 txqueuelen:1000 
          RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

eth0:0    Link encap:Ethernet  Endereço de HW 50:b7:c3:04:da:48  
          inet end.: 192.168.0.151  Bcast:192.168.0.255  Masc:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Métrica:1
...

Como criar interfaces de rede virtuais permanentes

Até agora, as alterações podem ser desfeitas com um simples reboot — ou seja, não são permanentes.
Para que elas persistam após a reinicialização, é necessário editar o arquivo (nas distribuições derivadas do Debian) /etc/network/interfaces.
Abra o arquivo com o seu editor favorito e acrescente (ou altere) de acordo com o exemplo a seguir:

auto eth0:0
iface eth0:0 inet static
name eth0 Alias
address 192.168.0.151
netmask 255.255.255.0
broadcast 192.168.0.255
network 192.168.0.0

Grave o arquivo /etc/network/interfaces e reinicie o serviço de rede do seu sistema:

sudo service networking restart

ou

sudo /etc/init.d/networking restart

Da mesma forma como você procedeu até aqui, pode continuar a criar novas interfaces lógicas de rede: eth0:1, eth0:2, eth0:3 … eth0:254.

Referências

O comando ifconfig, em exemplos práticos: https://elias.praciano.com/2015/05/como-configurar-sua-interface-de-rede-com-o-ifconfig/.
Penguintutor: http://www.penguintutor.com/linux/networking-ip-alias-tutorial.
Wikipedia – IP aliasing: http://en.wikipedia.org/wiki/IP_aliasing.
Yourownlinux: http://www.yourownlinux.com/2013/09/how-to-create-alias-for-network.html.

Como usar as cláusulas WHERE e AS no MySQL

O MySQL não permite que você se refira a um alias ou apelido de uma coluna (nome de um campo) de uma tabela, com a cláusula WHERE.
Vamos ver como contornar esta limitação e criar outras possibilidades e encontrar novas soluções.

Exemplo de erro 1054 no MySQL
Exemplo de erro 1054 no MySQL.

Atualmente, a query MySQL, que segue abaixo, é ilegal e vai retornar um erro:

SELECT NomeCliente, IdadeCliente, CredCliente*1000 AS Credito FROM ClientesCidades WHERE Credito < 20000;

O resultado é um erro 1054:

ERROR 1054 (42S22): Unknown column 'Credito' in 'where clause'

A cláusula WHERE não consegue enxergar a “nova” coluna Credito.

O erro 1054 (42S22) ocorre por que, enquanto o alias (AS) faz output (saída) de colunas, a cláusula WHERE opera na entrada dos dados — determinando quais linhas devem ser selecionadas para o output.

O resultado pretendido é este aqui:

SELECT NomeCliente, IdadeCliente, CredCliente*1000 AS Credito FROM ClientesCidades WHERE CredCliente < 20;
+-----------------+--------------+---------+
| NomeCliente     | IdadeCliente | Credito |
+-----------------+--------------+---------+
| Jaden Moon      |           29 |   17000 |
| Cathleen Harvey |           39 |   12000 |
| Marcia Cole     |           49 |   13000 |
| Charity Leblanc |           31 |   10000 |
| Alea Beach      |           21 |   15000 |
| April Hubbard   |           28 |   13000 |
| Fay Shaffer     |           50 |   19000 |
| Minerva Hanson  |           39 |   19000 |
| Kelsie Whitney  |           20 |   16000 |
| Illana Cannon   |           21 |   15000 |
| Kylie Bradshaw  |           20 |   16000 |
| Carly Alston    |           34 |   15000 |
| Althea Knight   |           42 |   18000 |
+-----------------+--------------+---------+
13 rows in set (0.02 sec)

Uma outra forma de obter este resultado é assim:

SELECT NomeCliente, IdadeCliente, CredCliente*1000 AS Credito FROM ClientesCidades WHERE CredCliente*1000 < 20000;
+-----------------+--------------+---------+
| NomeCliente     | IdadeCliente | Credito |
+-----------------+--------------+---------+
| Jaden Moon      |           29 |   17000 |
| Cathleen Harvey |           39 |   12000 |
| Marcia Cole     |           49 |   13000 |
| Charity Leblanc |           31 |   10000 |
| Alea Beach      |           21 |   15000 |
| April Hubbard   |           28 |   13000 |
| Fay Shaffer     |           50 |   19000 |
| Minerva Hanson  |           39 |   19000 |
| Kelsie Whitney  |           20 |   16000 |
| Illana Cannon   |           21 |   15000 |
| Kylie Bradshaw  |           20 |   16000 |
| Carly Alston    |           34 |   15000 |
| Althea Knight   |           42 |   18000 |
+-----------------+--------------+---------+
13 rows in set (0.00 sec)

Como combinar nomes de colunas com a função CONCAT() do MySQL

No MySQL, a função CONCAT tem a função de concatenar strings, ou seja, juntar cadeias de caracteres com o objetivo de formar novos nomes para as suas colunas e enriquecer a apresentação dos dados da sua tabela.
Capa do tutorial da função concat no MySQL
No artigo Como nomear as colunas das tabelas no MySQL, mostrei como melhorar a apresentação das colunas ao exibir as informações da sua tabela — recomendo dar uma olhada.
Neste texto, vou mostrar como usar a função CONCAT() para juntar valores alfanuméricos e formar novos nomes de campos em uma tabela.

Como usar a função CONCAT, do MySQL, para juntar cadeias de caracteres

Em conjunto com o alias (ou AS) é possível criar nomes mais interessantes e significativos para as colunas exibidas de uma tabela.
Veja a sintaxe da função CONCAT():
CONCAT(string1,string2,string3...);
Pode ficar mais fácil de entender, dentro de um exemplo prático.
Veja como concatenar as strings “just”, “in” e “case”:
CONCAT("just","in","case");
O resultado da operação acima é justincase. Foi fácil?
Tome, como exemplo, a seguinte tabela:

SELECT * FROM ClientesCidades WHERE Id<10;
+----+-----------------+--------------+------------------+-------------+
| id | NomeCliente     | IdadeCliente | CidadeCliente    | CredCliente |
+----+-----------------+--------------+------------------+-------------+
|  1 | Dara Chase      |           40 | Buti             |          21 |
|  2 | Hanae Kane      |           26 | Whitehorse       |          28 |
|  3 | Jaden Moon      |           29 | Bertiolo         |          17 |
|  4 | Cathleen Harvey |           39 | Exeter           |          12 |
|  5 | Marcia Cole     |           49 | Fortune          |          13 |
|  6 | Winter Fischer  |           47 | Girifalco        |          53 |
|  7 | Irene Mann      |           48 | Rocca San Felice |          78 |
|  8 | Yetta Wood      |           46 | Doues            |          89 |
|  9 | Alfreda Church  |           38 | Tarnów           |          96 |
+----+-----------------+--------------+------------------+-------------+
9 rows in set (0.00 sec)

Vamos usar o CONCAT() e o AS para exibir a idade de cada cliente entre colchetes e ao lado de cada nome:

SELECT Id AS Ordem, CONCAT(NomeCliente,'[',IdadeCliente,']') AS 'Cliente[Idade]' FROM ClientesCidades WHERE Id<10;
+-------+---------------------+
| Ordem | Cliente[Idade]       |
+-------+---------------------+
|     1 | Dara Chase[40]      |
|     2 | Hanae Kane[26]      |
|     3 | Jaden Moon[29]      |
|     4 | Cathleen Harvey[39] |
|     5 | Marcia Cole[49]     |
|     6 | Winter Fischer[47]  |
|     7 | Irene Mann[48]      |
|     8 | Yetta Wood[46]      |
|     9 | Alfreda Church[38]  |
+-------+---------------------+
9 rows in set (0.00 sec)

Vamos elaborar melhor este exemplo, incluindo informações sobre sua cidade e o valor de seu crédito:

SELECT CONCAT(NomeCliente,', tem ',IdadeCliente,' anos de idade. Mora em ',CidadeCliente,' e possui R$ ',CredCliente,' em créditos.') AS 'Maiores correntistas' FROM ClientesCidades WHERE CredCliente > 97;
+------------------------------------------------------------------------------------+
| Maiores correntistas                                                               |
+------------------------------------------------------------------------------------+
| Cynthia Levy, tem 21 anos de idade. Mora em Pukekohe e possui R$ 99 em créditos.   |
| Tasha Walters, tem 19 anos de idade. Mora em Goutroux e possui R$ 98 em créditos.  |
| Zelenia Moss, tem 18 anos de idade. Mora em Elx e possui R$ 99 em créditos.        |
+------------------------------------------------------------------------------------+
3 rows in set (0.00 sec)

Experimente outras combinações, para obter resultados diferentes e fixar melhor o aprendizado.
Se quiser aprofundar o aprendizado, use caixa de busca, no topo deste site, para encontrar outros exemplos MySQL.
Divirta-se!