O documento discute vários comandos e conceitos do Linux, incluindo:
1) Redirecionamento de entrada e saída, links simbólicos vs hard links, documentação, comandos de busca e manipulação de arquivos;
2) Pipes, seções do manual, comandos como man, whereis e find;
3) Comandos join, fmt, uniq, pr, paste para manipular arquivos de texto.
2. Objetivos
● Redirecionamento de entrada e saída
(continuação);
● Links simbólicos x hard links;
● Documentação no GNU/Linux;
● Comandos de busca no sistema de arquivos;
● Comandos para manipulação de arquivos de
texto;
● Introdução a metacaracteres;
6. Introdução ao Linux
Pipe
# ls / | tee /tmp/teste4.txt
# cat /tmp/teste4.txt
# echo “egeekacademy” | tr [a-z] [A-Z]
7. Introdução ao Linux
Pipe
# cat /etc/passwd | grep root
# cat /etc/passwd | grep -v root
# grep -v root /etc/passwd | tee /root/root.txt
8. Introdução ao Linux
Links simbólicos (sym links)
● Pode apontar para um arquivo ou diretório em qualquer lugar:
● Funciona em vários sistemas de arquivos;
● Funciona para arquivos ou diretórios que estão em outras
partições ou discos;
● Funciona em sistemas de arquivos remotos: NFS;
● Ocupa pouco espaço;
● Não funciona se o arquivo original for removido (link quebrado);
9. Introdução ao Linux
Links simbólicos (sym links)
# cp /etc/passwd /tmp
# cd /tmp
# ln -s passwd link.simbolico
# cp passwd passwd2
# stat passwd
# stat link.simbolico
# ls -i passwd
# ls -i link.simbolico
10. Introdução ao Linux
Hard Link
● Não é um link;
● Aponta para o mesmo endereço físico (conhecido como inode);
● Continua funcionando caso o “arquivo original” seja removido;
● Possui as seguintes limitações:
– o “arquivo original” e o hard link devem estar localizados no
mesmo sistema de arquivos;
– Não pode apontar para diretórios;
11. Introdução ao Linux
Hard Link
# cd /tmp
# ln passwd2 link.hard
# stat passwd2
# stat link.hard
# ls -i passwd2
# ls -i link.hard
13. Introdução ao Linux
Seções do man:
● man 1 – Programas e executáveis disponíveis ao usuário;
● man 2 – Rotinas de sistema Unix e C;
● man 3 – Rotinas de bibliotecas da linguagem C;
● man 4 - Arquivos especiais (dispositivos em /dev);
● man 5 - Arquivos de configuração e convenções;
● man 6 – Games;
● man 7 – Diversos (macros textuais, por exemplo, regex);
● man 8 - Comandos administrativos;
● man 9 - Rotinas de Kernel.
14. Introdução ao Linux
Comando man
# man ls
# man 1 passwd
# man 5 passwd
# man 7 regex
# man -L pt_BR ls
# man 7 undocumented
15. Introdução ao Linux
Comando apropos / catman / whatis
# apropos copy
# man -k copy
# catman
# whatis ls
16. Introdução ao Linux
Comando info / whereis / which
# info ls
# whereis passwd
# which ls
28. Introdução ao Linux
dd e du
# dd if=/dev/random bs=2 count=6 | base64 - >
/tmp/senhas.txt
# dd if=/dev/sda1 of=/dev/sdb2
# dd if=/dev/zero of=/tmp/arquivo.iso bs=1M count=10
# du -h /tmp/arquivo.iso
# du -hs /home/leo
29. Introdução ao Linux
split
$ split -b 1MB /tmp/arquivo.iso
$ ls -lh /tmp
$ cat /etc/passwd > /tmp/teste1.txt
$ split -l 2 /tmp/teste1.txt
$ ls -lh /tmp
30. Introdução ao Linux
expand e unexpand
$ nano url.txt
<ESTAÇO> egeeked <ESTAÇO> .com <TAB> .br
$ cat url.txt
$ expand -t1 url.txt
$ unexpand -a1 url.txt
31. Introdução ao Linux
od | hexdump | xxd
$ cat arq1.txt
$ od -x arq1.txt
$ od -xc arq1.txt
$ hexdump arq1.txt
$ hexdump -C arq1.txt
32. Introdução ao Linux
od | hexdump | xxd
$ echo “Teste” | hexdump -v -e '/1 “%02Xn”'
$ xxd arq1.txt > arq2.txt
$ cat arq2.txt
$ xxd -r arq2.txt
$ od -t x1 -An arq1.txt | tr -d 'n'
33. Introdução ao Linux
Comandos sequenciais
Executar 3 comandos em sequência independente do
resultado de cada um:
$ Comando 1 ; Comando 2 ; Comando 3
Executar o próximo comando apenas se o anterior executar
com sucesso:
$ Comando 1 && Comando 2 && Comando 3
Executar o próximo comando apenas se o anterior executar
sem sucesso:
$ Comando 1 || Comando 2 || Comando 3
34. Introdução ao Linux
Comandos sequenciais – Exemplos
$ ls arquivonaoexistente ; cat /etc/issue
$ ls arquivonaoexistente && cat /etc/issue
$ ls arquivonaoexistente || cat /etc/issue
36. Introdução ao Linux
ls
$ cat /etc/ld.so.conf
$ ls -dl `cat /etc/ld.so.conf`
$ ls -dl $(cat /etc/ld.so.conf)
$ ls --color
$ ls -a
$ ls /dev/sd*
37. Introdução ao Linux
ls
$ ls /etc/host*
$ ls /dev/s??
$ ls /dev/sd[abc]
$ ls /dev/sda[!01]
38. Introdução ao Linux
diff
Arquivo Teste1.java
1.public class Teste1 {
2.
3. public static void main(String args[]) {
4.
5. System.out.println("Hello World!");
6.
7. }
8.
9.}
39. Introdução ao Linux
diff
Arquivo Teste2.java
1.public class Teste2 {
2.
3. public static void main(String args[]) {
4.
5. System.out.println("Alo Mundo!");
6.
7. }
8.
9.}
40. Introdução ao Linux
diff
$ diff Teste1.java Teste2.java
1c1
< public class Teste1 {
---
> public class Teste2 {
5c5
< System.out.println("Hello World!");
---
> System.out.println("Alo Mundo!");
41. Introdução ao Linux
sed
# echo "O Windows é um sistema operacional muito seguro. O
Windows é um sistema operacional multitarefa" | sed
's/Windows/Linux/'
# echo "O Windows é um sistema operacional muito seguro. O
Windows é um sistema operacional multitarefa" | sed
's/Windows/Linux/g'