Excelente Curso de Linux Básico / Certificação LPIC - 1
Vídeo-aulas de Linux que podem ser utilizadas como material de estudo para a certificação LPI
Alguns comando Linux mais utilizados.
ls
- Listando Arquivos e DiretóriosExecutando ls
sem nenhuma opção lista arquivos e diretórios em um formato onde não somos capazes de vizualizar detalhes como tipo, tamanho, data/hora de modificação, permissão e links, etc.
[jarbelix@jarbelix ~]$ ls
'Área de trabalho' Documentos Downloads Imagens Modelos Música Público Vídeos
Agora, ls -l
(-ls
é letra l
e não número 1
seguido da letra s
) mostra arquivos or diretórios, tamanho, data/hora de modificação, arquivo ou diretório e dono do arquivo, e sua permissão.
[jarbelix@jarbelix ~]$ ls -l
total 0
drwxr-xr-x. 2 jarbelix jarbelix 6 nov 27 08:34 'Área de trabalho'
drwxr-xr-x. 3 jarbelix jarbelix 71 ago 6 21:45 Documentos
drwxr-xr-x. 2 jarbelix jarbelix 27 mai 6 2022 Downloads
drwxr-xr-x. 2 jarbelix jarbelix 6 mar 25 2022 Imagens
drwxr-xr-x. 2 jarbelix jarbelix 6 mar 25 2022 Modelos
drwxr-xr-x. 2 jarbelix jarbelix 6 mar 25 2022 Música
drwxr-xr-x. 2 jarbelix jarbelix 6 mar 25 2022 Público
drwxr-xr-x. 3 jarbelix jarbelix 21 ago 6 21:45 Vídeos
Listar todos arquivos incluindo arquivos ocultos que começam com .
(ponto).
[jarbelix@jarbelix ~]$ ls -a
. .bash_history .cache Documentos Imagens .mozilla .ssh .Xauthority
.. .bash_logout .cinnamon Downloads .imwheelrc Música .themes
.anydesk .bash_profile .config .gtkrc-2.0 .local .pki Vídeos
'Área de trabalho' .bashrc .dbus .icons Modelos Público .viminfo
Agora no formato longo
[jarbelix@jarbelix ~]$ ls -la
total 44
drwx------. 21 jarbelix jarbelix 4096 dez 12 18:28 .
drwxr-xr-x. 3 root root 22 ago 9 09:27 ..
drwxr-xr-x 4 jarbelix jarbelix 100 ago 6 21:46 .anydesk
drwxr-xr-x. 2 jarbelix jarbelix 6 nov 27 08:34 'Área de trabalho'
-rw-------. 1 jarbelix jarbelix 500 dez 8 21:50 .bash_history
-rw-r--r--. 1 jarbelix jarbelix 18 jan 19 2022 .bash_logout
-rw-r--r--. 1 jarbelix jarbelix 141 jan 19 2022 .bash_profile
-rw-r--r--. 1 jarbelix jarbelix 492 jan 19 2022 .bashrc
drwx------. 34 jarbelix jarbelix 4096 dez 8 21:47 .cache
drwxr-xr-x 4 jarbelix jarbelix 40 nov 27 08:21 .cinnamon
drwxr-xr-x. 39 jarbelix jarbelix 4096 dez 10 23:34 .config
drwx------ 3 jarbelix jarbelix 25 ago 6 21:48 .dbus
drwxr-xr-x. 3 jarbelix jarbelix 71 ago 6 21:45 Documentos
drwxr-xr-x. 2 jarbelix jarbelix 27 mai 6 2022 Downloads
-rw-r--r-- 1 jarbelix jarbelix 27 abr 3 2022 .gtkrc-2.0
drwxr-xr-x 2 jarbelix jarbelix 6 abr 3 2022 .icons
drwxr-xr-x. 2 jarbelix jarbelix 6 mar 25 2022 Imagens
-rw-rw-r-- 1 jarbelix jarbelix 345 abr 3 2022 .imwheelrc
drwx------. 4 jarbelix jarbelix 32 mar 25 2022 .local
drwxr-xr-x. 2 jarbelix jarbelix 6 mar 25 2022 Modelos
drwxr-xr-x. 4 jarbelix jarbelix 39 jan 20 2022 .mozilla
drwxr-xr-x. 2 jarbelix jarbelix 6 mar 25 2022 Música
drwx------ 3 jarbelix jarbelix 19 abr 26 2022 .pki
drwxr-xr-x. 2 jarbelix jarbelix 6 mar 25 2022 Público
drwx------. 2 jarbelix jarbelix 71 nov 27 08:23 .ssh
drwxr-xr-x 2 jarbelix jarbelix 6 abr 3 2022 .themes
drwxr-xr-x. 3 jarbelix jarbelix 21 ago 6 21:45 Vídeos
-rw------- 1 jarbelix jarbelix 1028 mai 6 2022 .viminfo
-rw------- 1 jarbelix jarbelix 64 abr 26 2022 .Xauthority
Uma combinação de -ltr
irá mostrar uma listagem longa (-l
) de arquivos/diretórios ordenados pela data/hora da última alteração (-t
) invertida (-r
)
[jarbelix@jarbelix ~]$ ls -ltr
total 0
drwxr-xr-x. 2 jarbelix jarbelix 6 mar 25 2022 Público
drwxr-xr-x. 2 jarbelix jarbelix 6 mar 25 2022 Modelos
drwxr-xr-x. 2 jarbelix jarbelix 6 mar 25 2022 Música
drwxr-xr-x. 2 jarbelix jarbelix 6 mar 25 2022 Imagens
drwxr-xr-x. 3 jarbelix jarbelix 71 ago 6 21:45 Documentos
drwxr-xr-x. 3 jarbelix jarbelix 21 ago 6 21:45 Vídeos
drwxr-xr-x. 2 jarbelix jarbelix 6 nov 27 08:34 'Área de trabalho'
drwxr-xr-x. 2 jarbelix jarbelix 122 dez 13 12:24 Downloads
[jarbelix@jarbelix ~]$
DICA: Sempre consultar os manuais on-line
man ls
para mais opções.
[jarbelix@jarbelix ~]$ man ls
LS(1) Comandos de usuário LS(1)
NOME
ls - lista conteúdo de diretórios
SINOPSE
ls [OPÇÃO]... [ARQUIVO]...
DESCRIÇÃO
Lista informações sobre os ARQUIVOs (o diretório atual por padrão). Classifica as entradas em ordem
alfabética se não for usada nenhuma opção -cftuvSUX nem --sort.
Argumentos obrigatórios para opções longas também o são para opções curtas.
-a, --all
não ignora entradas começando com .
-A, --almost-all
não lista as entradas implícitas . e ..
--author
com -l, emite o autor de cada arquivo
-b, --escape
emite escapes no estilo C para caracteres não-gráficos
--block-size=TAM
com -l, escala os tamanhos por TAM ao exibi-los; por exemplo, “--block-size=M”; veja o formato de
TAM abaixo
-B, --ignore-backups
não lista as entradas implícitas terminadas com ~
-c com -lt: ordena por, e mostra, ctime (hora da última modificação da informação de estado do
arquivo); com -l: mostra o ctime e ordena por nome demais casos: ordena por ctime, mais novos
Manual page ls(1) line 1 (press h for help or q to quit)
cd
- Entrando em DiretóriosAlterando o diretório atual para /usr/local.
jarbelix@jarbelix ~]$ cd /usr/local
[jarbelix@jarbelix local]$
Acessando o diretório base do usuário (também conhecido como ~
)
[jarbelix@jarbelix local]$ cd ~
[jarbelix@jarbelix ~]$
Acessando o diretório /usr/share/backgrounds/
utilizando o TAB como auto-complete
[jarbelix@jarbelix ~]$ cd /u<TAB>/sh<TAB>/bac<TAB>
[jarbelix@jarbelix backgrounds]$ ls
default.png default.xml f36 f37 fedora-workstation gnome images tiles
[jarbelix@jarbelix backgrounds]$
Alternando para um diretório contendo ESPAÇOS
[jarbelix@jarbelix backgrounds]$ cd ~/Área\ de\ trabalho/
[jarbelix@jarbelix Área de trabalho]$ cd
[jarbelix@jarbelix ~]$ cd 'Área de trabalho'/
[jarbelix@jarbelix Área de trabalho]$
Retornando ao diretório anterior (utilizando o sinal de menos -
)
[jarbelix@jarbelix Área de trabalho]$ cd -
/home/jarbelix
[jarbelix@jarbelix ~]$
ln
- Criando link simbólicoA utilização de link simbólico facilita e muito o trabalho de redirecionar as leituras/escritas em diretórios cujos caminhos sejam complexos de digitar.
Vamos criar um atalho para o diretório /usr/share/backgrounds/images/
e chamá-lo de ibagens
(como o Datena costuma falar)
[jarbelix@jarbelix ~]$ ln -s /usr/share/backgrounds/images/ ibagens
[jarbelix@jarbelix ~]$ cd ibagens/
[jarbelix@jarbelix ibagens]$ ls
default-16_10.png default-5_4.png earth_from_space.jpg ladybugs.jpg tiny_blast_of_red.jpg
default-16_9.png default.png flowers_and_leaves.jpg stone_bird.jpg
[jarbelix@jarbelix ibagens]$
pwd
- Mostrando o diretório de trabalho atual[jarbelix@jarbelix ibagens]$ pwd
/home/jarbelix/ibagens
[jarbelix@jarbelix ibagens]$ pwd -L
/home/jarbelix/ibagens
[jarbelix@jarbelix ibagens]$ pwd -P
/usr/share/backgrounds/images
[jarbelix@jarbelix ibagens]$ pwd --help
pwd: pwd [-LP]
Mostra o nome do diretório de trabalho atual.
Opções:
-L mostra o valor de $PWD se ele tiver o nome do diretório de
trabalho atual
-P mostra o diretório físico, sem quaisquer links simbólicos
Por padrão, `pwd' se comporta como se a opção `-L' foi especificada.
Status de saída:
Retorna 0, a menos que uma opção inválida seja fornecida ou o diretório
atual não possa ser lido.
[jarbelix@jarbelix ibagens]$
mkdir rmdir
- Criando/Removendo diretóriosUm dos usos fundamentais do comando mkdir é criar um diretório nomeado em um determinado caminho. Então vamos criar um diretório com o nome rpm-distros
no diretório de trabalho atual:
mkdir rpm-distros
Agora, vamos utilizar o ls -ld rpm*
para constatar que o diretório foi criado:
ls -ld rpm*
drwxrwxr-x 1 jarbelix jarbelix 0 mai 26 20:52 rpm-distros
Vamos criar três diretórios dentro do diretório deb-distros
usando um único comando:
mkdir -p deb-distros/kali deb-distros/mint deb-distros/ubuntu
Agora, vamos conferir se realmente foram criados:
ls -l deb-distros/
total 0
drwxrwxr-x 1 jarbelix jarbelix 0 mai 26 20:57 kali
drwxrwxr-x 1 jarbelix jarbelix 0 mai 26 20:57 mint
drwxrwxr-x 1 jarbelix jarbelix 0 mai 26 20:57 ubuntu
Vamos criar rpm-distros
e dentro dele mais três diretórios alma
, centos
, fedora
utilizando colchetes
mkdir -p rpm-distros/{alma,centos,fedora}
Bora conferir:
ls -l rpm-distros/
total 0
drwxrwxr-x 1 jarbelix jarbelix 0 mai 26 21:00 alma
drwxrwxr-x 1 jarbelix jarbelix 0 mai 26 21:00 centos
drwxrwxr-x 1 jarbelix jarbelix 0 mai 26 21:00 fedora
O comando rmdir
tem o propósito de apagar um diretório (que esteja vazio). Assim uma tentativa de remover um que tenha conteúdo será negado:
rmdir rpm-distros
rmdir: falhou em remover 'rpm-distros': Diretório não vazio
Se tivermos certeza que não há conteúdo dentro dos diretórios podemos fazer:
rmdir -v -p rpm-distros/{alma,centos,fedora}
rmdir: removendo o diretório 'rpm-distros/alma'
rmdir: removendo o diretório 'rpm-distros'
rmdir: falhou em remover o diretório 'rpm-distros': Diretório não vazio
rmdir: removendo o diretório 'rpm-distros/centos'
rmdir: removendo o diretório 'rpm-distros'
rmdir: falhou em remover o diretório 'rpm-distros': Diretório não vazio
rmdir: removendo o diretório 'rpm-distros/fedora'
rmdir: removendo o diretório 'rpm-distros'
Observe acima que diferentemente da criação silenciosa de diretórios utilizando { }
, a remoção completa do diretório rpm-distros
só foi possível no final quando todos os sub-diretórios haviam sido excluídos.
cp mv rm
- Copiando, movendo e removendo arquivosVamos criar três arquivos vazios:
touch arq-{1,2,3}.txt
ls -l arq-*txt
-rw-rw-r-- 1 jarbelix jarbelix 0 mai 26 21:14 arq-1.txt
-rw-rw-r-- 1 jarbelix jarbelix 0 mai 26 21:14 arq-2.txt
-rw-rw-r-- 1 jarbelix jarbelix 0 mai 26 21:14 arq-3.txt
Agora vamos copiar esses três arquivos para o diretório dir-1
, depois mover os mesmos arquivos para o dir-1
, remover os arquivos e remover o diretório já vazio.
mkdir dir-1
cp arq-?.txt dir-1
ls dir-1/
arq-1.txt arq-2.txt arq-3.txt
mv arq-?.txt dir-1/
rm dir-1/*
rmdir dir-1
host
- Pesquisando IPs (ao invés de ping)É muito comum usuários iniciantes utilizarem o ping
para descobrir o IP de um determinado nome de DNS:
ping -c 2 terra.com.br
PING terra.com.br (208.84.244.116) 56(84) bytes of data.
64 bytes from www.terra.com.br (208.84.244.116): icmp_seq=1 ttl=53 time=169 ms
64 bytes from www.terra.com.br (208.84.244.116): icmp_seq=2 ttl=53 time=126 ms
--- terra.com.br ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 126.037/147.720/169.404/21.683 ms
Para saber qual o IP do terra.com.br basta fazer assim:
host terra.com.br
terra.com.br has address 208.84.244.116
terra.com.br mail is handled by 10 vip-us-br-mx.terra.com.
Agora, se desejarmos perguntar diretamente pro DNS do google (8.8.8.8) qual é o IP do terra.com.br fazemos assim:
host terra.com.br 8.8.8.8
Using domain server:
Name: 8.8.8.8
Address: 8.8.8.8#53
Aliases:
terra.com.br has address 208.84.244.116
terra.com.br mail is handled by 10 vip-us-br-mx.terra.com.
Tem muito mais recursos no comando host
. Esperimente um man host
e ficará surpreso.
mtr
- Uma combinação de ping
e traceroute
Usado informando apenas o destino temos um comportamento similar ao htop
[jarbelix@jarbelix ~]$ mtr www.youtube.com
My traceroute [v0.95]
ubuntu-01 (10.0.0.66) -> www.youtube.com (142.250.78.238) 2022-12-15T16:22:18-0400
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. 140.91.208.1 0.0% 5 0.2 0.2 0.2 0.3 0.0
2. 8.243.148.238 0.0% 4 0.9 0.8 0.7 0.9 0.1
3. 8.243.148.237 0.0% 4 1.4 7.0 1.4 23.8 11.2
4. Google-level3-100G.SaoPaulo1.Level3.net 0.0% 4 1.1 1.1 1.1 1.1 0.0
5. 74.125.243.65 0.0% 4 2.4 2.9 2.4 3.9 0.7
6. 74.125.243.76 0.0% 4 1.6 1.6 1.5 1.6 0.0
7. 209.85.252.68 0.0% 4 1.5 1.6 1.4 1.9 0.2
8. 172.253.79.161 0.0% 4 8.0 8.0 7.9 8.2 0.1
9. 142.250.39.225 0.0% 4 9.0 8.6 8.4 9.0 0.3
10. 142.251.48.153 0.0% 4 7.5 7.4 7.4 7.5 0.0
11. rio07s02-in-f14.1e100.net 0.0% 4 7.6 7.6 7.6 7.6 0.0
Usado com os parâmetros adequados temos
mtr -rwc1 www.youtube.com
Start: 2022-12-15T16:12:27-0400
HOST: ubuntu-01 Loss% Snt Last Avg Best Wrst StDev
1.|-- 140.91.208.7 0.0% 1 0.2 0.2 0.2 0.2 0.0
2.|-- as31898.saopaulo.sp.ix.br 0.0% 1 0.7 0.7 0.7 0.7 0.0
3.|-- as15169.saopaulo.sp.ix.br 0.0% 1 1.4 1.4 1.4 1.4 0.0
4.|-- 108.170.245.139 0.0% 1 1.7 1.7 1.7 1.7 0.0
5.|-- 142.250.226.15 0.0% 1 2.2 2.2 2.2 2.2 0.0
6.|-- 209.85.254.251 0.0% 1 9.0 9.0 9.0 9.0 0.0
7.|-- 108.170.248.241 0.0% 1 8.5 8.5 8.5 8.5 0.0
8.|-- 216.239.42.205 0.0% 1 7.4 7.4 7.4 7.4 0.0
9.|-- rio09s09-in-f14.1e100.net 0.0% 1 7.7 7.7 7.7 7.7 0.0
curl
- Baixando informações da internetObtendo o IP externo junto com outras informações de sua conexão
[jarbelix@jarbelix ~]$ curl https://ipinfo.io/json
{
"ip": "179.181.177.34",
"city": "Goiânia",
"region": "Goiás",
"country": "BR",
"loc": "-16.6786,-49.2539",
"org": "AS18881 TELEFÔNICA BRASIL S.A",
"postal": "74000-000",
"timezone": "America/Sao_Paulo",
"readme": "https://ipinfo.io/missingauth"
}
[jarbelix@jarbelix ~]$ curl https://ipinfo.io/ip
179.181.177.34
[jarbelix@jarbelix ~]$ curl https://ipapi.co/json/
{
"ip": "2804:1b3:8201:b27:dbb1:e8db:deb2:69fa",
"network": "2804:1b3:8200::/39",
"version": "IPv6",
"city": "Campo Grande",
"region": "Mato Grosso do Sul",
"region_code": "MS",
"country": "BR",
"country_name": "Brazil",
"country_code": "BR",
"country_code_iso3": "BRA",
"country_capital": "Brasilia",
"country_tld": ".br",
"continent_code": "SA",
"in_eu": false,
"postal": null,
"latitude": -20.4428,
"longitude": -54.6464,
"timezone": "America/Campo_Grande",
"utc_offset": "-0400",
"country_calling_code": "+55",
"currency": "BRL",
"currency_name": "Real",
"languages": "pt-BR,es,en,fr",
"country_area": 8511965.0,
"country_population": 209469333,
"asn": "AS18881",
"org": "TELEFONICA BRASIL S.A"
}
Obtendo uma imagem de um site
[jarbelix@jarbelix ~]$ curl -s https://www.google.com.br/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png -o ~/Imagens/googlelogo.png
Baixando uma ISO
da internet e gravando dentro de diretório específico
[jarbelix@jarbelix ~]$ curl -# -C - -L https://download.fedoraproject.org/pub/fedora/linux/releases/37/Workstation/x86_64/iso/Fedora-Workstation-Live-x86_64-37-1.7.iso -o ~/Downloads/Fedora-Workstation-Live-x86_64-37-1.7.iso
##### 5,3%
DICAS: Se atente às opções:
-L
diz pro curl seguir redirecionamentos de URLs de forma transparente
-#
você vera uma barra de progresso do download
-o
permite que você especifique um arquivo que será utilizado para despejo do conteúdo da URL
-C -
você pode retornar de onde parou o download caso algum problema ocorra antes de ter seu arquivo completamente baixado
Baixando um arquivo de um servidor de FTP
"protegido" por usuário/senha
[jarbelix@jarbelix ~]$ curl -s -u demo:password ftp://test.rebex.net/readme.txt -o ~/Documentos/readme.txt
tmux
- Multiplexador de terminalIniciando uma sessão
[jarbelix@jarbelix ~]$ tmux
Dento dessa sessão você pode continuar a baixar seu arquivo
Para deixar a sessão aberta e voltar pro terminal normal, digite CTRL+B D
[jarbelix@jarbelix ~]$ tmux
[detached (from session 0)]
Para acessar novamente a sessão anterior chame novamente o tmux com o parâmetro attach-session
jarbelix@jarbelix ~]$ tmux attach-session
hostnamectl
- Informações do Host[jarbelix@jarbelix ~]$ hostnamectl
Static hostname: jarbelix.sytes.net
Icon name: computer-laptop
Chassis: laptop 💻
Machine ID: d28b7d99064c4078a37c4717be5eab2b
Boot ID: 19008523af374146bc409b2c61924560
Operating System: Fedora Linux 37 (Workstation Edition)
CPE OS Name: cpe:/o:fedoraproject:fedora:37
Kernel: Linux 6.0.11-300.fc37.x86_64
Architecture: x86-64
Hardware Vendor: SAMSUNG ELECTRONICS CO., LTD.
Hardware Model: RV411/RV511/E3511/S3511/RV711/E3411
Firmware Version: 04PA.M006.20110615.XW
file
- Mostra informações sobre os tipos de arquivoVerificando os tipos dos arquivos baixados
[jarbelix@jarbelix ~]$ file ~/Documentos/readme.txt
/home/jarbelix/Documentos/readme.txt: ASCII text, with CRLF line terminators
[jarbelix@jarbelix ~]$ file ~/Downloads/Fedora-Workstation-Live-x86_64-37-1.7.iso
/home/jarbelix/Downloads/Fedora-Workstation-Live-x86_64-37-1.7.iso: ISO 9660 CD-ROM filesystem data (DOS/MBR boot sector) 'Fedora-WS-Live-37-1-7' (bootable)
[jarbelix@jarbelix ~]$ file ~/Imagens/googlelogo.png
/home/jarbelix/Imagens/googlelogo.png: PNG image data, 272 x 92, 8-bit/color RGBA, non-interlaced
cat tac
- Mostra conteúdo de arquivoMostrando o conteúdo do arquivo
[jarbelix@jarbelix ~]$ cat ~/Documentos/readme.txt
Welcome,
You are connected to an FTP or SFTP server used for testing purposes by Rebex FTP/SSL or Rebex SFTP sample code.
Only read access is allowed and the FTP download speed is limited to 16KBps.
For information about Rebex FTP/SSL, Rebex SFTP and other Rebex .NET components, please visit our website at https://www.rebex.net/
For feedback and support, contact [email protected]
Thanks!
Mostrando o conteúdo do arquivo (de trás pra frente)
[jarbelix@jarbelix ~]$ tac ~/Documentos/readme.txt
Thanks!
For feedback and support, contact [email protected]
For information about Rebex FTP/SSL, Rebex SFTP and other Rebex .NET components, please visit our website at https://www.rebex.net/
Only read access is allowed and the FTP download speed is limited to 16KBps.
You are connected to an FTP or SFTP server used for testing purposes by Rebex FTP/SSL or Rebex SFTP sample code.
Welcome,
tree
- Visualizando árvore de diretórios[jarbelix@jarbelix ~]$ tree
.
├── Área de trabalho
├── Documentos
├── Downloads
│ ├── etc-hosts.txt
│ ├── Fedora-Workstation-Live-x86_64-37-1.7.iso
│ └── linuxmint-21.1-cinnamon-64bit-beta.iso
├── ibagens -> /usr/share/backgrounds/images/
├── Imagens
├── Modelos
├── Música
├── Público
└── Vídeos
└── AnyDesk
10 directories, 3 files