0% acharam este documento útil (0 voto)
13 visualizações9 páginas

Linux

Enviado por

Ederson Leite
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
13 visualizações9 páginas

Linux

Enviado por

Ederson Leite
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 9

2.7 file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22
2.8 find . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.9 finger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Apostila de Linux 2.10 grep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.11 groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.12 head . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Josiney de Souza, Leonardo Gomes
2.13 id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
March 6, 2013 2.14 jobs (comando embutido do bash) . . . . . . . . . . . . . . . 26
2.15 kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.16 less . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.17 ln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Contents 2.18 ls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.19 man . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1 Introdução ao Linux 4
2.20 mkdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.1 Shell e Terminal . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.21 more . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.2 Man page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.22 mv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.3 Navegação em diretórios . . . . . . . . . . . . . . . . . . . . . 5
2.23 passwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.3.1 Locomoção . . . . . . . . . . . . . . . . . . . . . . . . 5
2.24 pkill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.3.2 Diretório HOME . . . . . . . . . . . . . . . . . . . . . 6
2.25 ps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.4 Permissões de acesso . . . . . . . . . . . . . . . . . . . . . . . 7
2.26 quota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.4.1 chmod . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.27 rm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.5 Executando programas . . . . . . . . . . . . . . . . . . . . . . 9
2.28 rmdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.6 Redirecionando entradas e saı́das . . . . . . . . . . . . . . . . 10
2.29 sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
1.6.1 Redirecionamento de saı́da . . . . . . . . . . . . . . . 10
2.30 tail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.6.2 Redirecionamento de entrada . . . . . . . . . . . . . . 11
2.31 tar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.6.3 Redirecionamento de ambos . . . . . . . . . . . . . . . 13
2.32 touch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
1.6.4 Pipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.33 wc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
1.7 Metacaracteres . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.7.1 Asterisco . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.7.2 Interrogação . . . . . . . . . . . . . . . . . . . . . . . 14
1.7.3 Colchetes . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.7.4 Chaves . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.8 Processos e jobs . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.8.1 Matando processos . . . . . . . . . . . . . . . . . . . . 16
1.9 Boas práticas em nomenclaturas Linux . . . . . . . . . . . . . 16
1.10 Redirecionamento de e-mail . . . . . . . . . . . . . . . . . . . 17

2 Comandos Linux 17
2.1 cat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2 cd (comando embutido do bash) . . . . . . . . . . . . . . . . 19
2.3 cp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.4 diff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5 du . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.6 echo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

1 2

Apostila de Linux está licenciado segundo a licença da Creative Com- 1 Introdução ao Linux
mons Atribuição-NãoComercial-SemDerivados 3.0 Brasil License. http:
//creativecommons.org/licenses/by-nc-nd/3.0/br/ Esta seção é um tutorial básico de Linux para quem tem pouca ou nen-
huma familiaridade com o sistema. O Linux é um sistema operacional livre
Apostila de Linux is licensed under a Creative Commons Atribuição-NãoComercial- baseado no antigo UNIX, desenvolvido nos anos 60. Nos laboratórios do
SemDerivados 3.0 Brasil License. http://creativecommons.org/licenses/ DInf, a versão do Linux (também chamada de distribuição Linux) adotada
by-nc-nd/3.0/br/ é o Ubuntu, porém as técnicas e comandos aqui apresentados servem para
quase a totalidade das distribuições.

1.1 Shell e Terminal


Atualmente, existem excelentes interfaces gráficas muito amigáveis que per-
mitem realizar todo o tipo de operação em Linux, mas ainda assim é muito
importante ter domı́nio sobre o ambiente CLI (Command Line Interface)
que é uma interface na qual comandos e respostas são transmitidos em forma
de texto. Shell é a classe de programas responsável por implementar a lin-
guagem desta interface (exemplo: bash, dash, csh, zsh), e terminal é a classe
de programas que traz uma interface gráfica ao shell. Dentre os programas
terminal, alguns dos mais conhecidos são: gnome-terminal, xterm, konsole.
“ls”, “man” (ver seção 1.2), “fpc”, “alomamae” (após compilado) são
exemplos de comandos que são executados em shell. Normalmente, a parte
que o usuário vê do shell é o prompt de comandos, representado por “$ >”.
Para executar um terminal dentro dos laboratórios do DInf, basta nave-
gar nos menus existentes na parte superior da tela e dentro de “Aplicações”
estará o programa chamado “Terminal”.
Para facilitar a utilização do terminal, repare que as setas cima e baixo
no teclado podem ser utilizadas para navegar entre os últimos comandos
digitados; e, ao pressionar TAB duas vezes consecutivas, o terminal muitas
vezes pode lhe oferecer opções de como auto-completar nomes de comandos
e nomes de arquivos.

1.2 Man page


Muitos programas em Linux possuem diversas opções para que o usuário
possa realizar seu trabalho. Nem sempre é fácil ou mesmo possı́vel memo-
rizar cada uma das opções existentes dos mais variados programas disponı́veis.
Devido a isso, os criadores dos programas desenvolvem manuais virtuais para
auxiliar no uso de suas aplicações.
A man page ou simplesmente man é um recurso valioso para se descobrir
a forma correta de uso (sintaxe) de programas, suas opções ou entender o
que um programa faz. Utilize as setas para navegar no manual e a tecla ‘q’
para sair. Para executar este programa, basta digitar man seguido do nome
do programa que se deseja inspecionar como no exemplo abaixo:

$> man ls

3 4
$> man mkdir /home/prof/professor$> cd ..
/home/prof$>
1.3 Navegação em diretórios
É possı́vel usar esse comando para construir um caminho relativo maior:
Para navegar entre diretórios em ambiente shell é necessário entender dois
tipos de endereçamento, os caminhos absolutos e caminhos relativos. /home/prof/professor$> cd ../..
Caminhos absolutos são a localização de diretórios e arquivos a partir da /home$>
raiz do sistema “/” (barra, root). Por exemplo: /home/prof/professor/disciplina/pdfs
Caminhos relativos dependem do diretório corrente. Por exemplo: Assu- Assim como o “..” representa o diretório anterior, o ‘.’ (ponto) repre-
mindo que a cadeia de diretórios (/home/prof/professor/disciplina/pdfs) e senta o diretório corrente1 .
assumindo que o usuário esteja no diretório /home/prof/professor, para ele
chegar ao diretório “pdfs” bastaria se locomover para a seguinte sequência 1.3.2 Diretório HOME
de caminhos: “disciplina/pdfs”.
Em qualquer distribuição Linux, por ser um sistema multiusuário, cada
Comparado ao caminho absoluto, o caminho relativo é bem mais com-
usuário possui seu login e seu diretório HOME. Diretório HOME é a área
pacto; contudo, depende necessariamente do ponto de partida do usuário.
privada de cada usuário, onde seus arquivos ficam armazenados.
Já o caminho absoluto, pode ser utilizado independente de onde o usuário
É possı́vel endereçar também esse diretório durante a navegação em shell.
esteja, pois sua referência é global, enquanto no caminho relativo a referência
Se o usuário desejar se mover para seu diretório HOME, ele pode realizar
é local.
qualquer um dos seguintes comandos:

1.3.1 Locomoção $> cd $HOME


O Linux dispõe de ferramentas para locomoção entre diretórios. O comando
$> cd ~
que faz essa tarefa é o comando “cd” (change directory). Ele aceita tanto
caminhos absolutos quanto caminhos relativos. Do exemplo da subseções
$> cd ~usuario
acima, o comando “cd” seria o seguinte para caminhos absolutos:
$> cd
$> cd /home/prof/professor/disciplina/pdfs
A primeira opção é uma variável em shell que guarda o diretório HOME
Após confirmar o comando com ENTER, é possı́vel notar que o prompt de cada usuário. Essa variável é definida cada vez que um usuário faz login
de comandos muda para: no sistema e cada usuário visualiza essa variável com um valor diferente, pois
se trata da sua área particular. É possı́vel imprimir o valor dessa variável,
/home/prof/professor/disciplina/pdfs$>
a tı́tulo de curiosidade:
Essa mudança é para mostrar que o diretório de origem foi trocado pelo
$> echo $HOME
novo diretório de destino. Isso se reflete no prompt, para informar o usuário
/home/bcc/usuario
sobre sua atual localização.
Dado isso, o exemplo para caminhos relativos ficaria da seguinte forma: A segunda opção é um alias, um apelido, um link para a primeira opção.
Se for impresso o valor de “∼” (til), será idêntico ao valor de “$HOME”.
/home/prof/professor$> cd disciplina/pdfs A terceira opção é mais genérica que a segunda, pois ela usa o nome do
/home/prof/professor/disciplina/pdfs$> usuário para ir ao seu diretório HOME. Da mesma forma que é possı́vel ir
a seu próprio diretório HOME, se houver permissões, o usuário pode ir a
Da mesma forma que é possı́vel ir adiante com caminhos relativos, também
1
é possı́vel ir para trás na sequência. Isso é feito com o caminho especial “..” Parecido com o significado de diretório corrente, arquivos ocultos (normalmente ar-
(ponto-ponto). Ele é como o “..” do prompt de comandos do MS-DOS e quivos de configuração) são identificados por um ‘.’ (ponto) no inı́cio do nome do arquivo.
Veja mais detalhes consultando a man page do comando “ls”, lendo sobre o parâmetro
leva a um diretório anterior na sequência de caminhos. Exemplo: “-a”

5 6

qualquer outro diretório HOME existente; basta digitar o nome do outro outros usuários não está representada na saı́da desse comando; mas, por ex-
usuário que se deseja visualizar a HOME em vez do seu próprio. clusão, os outros usuários que podem trabalhar com esse arquivo são aqueles
A quarta opção é um atalho do comando “cd” para voltar ao diretório que não são nem o dono (“josineys”) nem os que estão no grupo “ppginf”.
HOME do usuário. É possı́vel estar em qualquer localização no sistema, se Essas permissões mostradas podem ser do tipo leitura (read ), escrita
o comando “cd” for dado sem mais argumentos, o usuário se moverá para (write) ou de execução (execute). Representam a forma como cada um
seu diretório HOME. desses usuários podem operar sobre os arquivos ou diretórios existentes. O
Como uma curiosidade, há também o diretório “-” (menos), que nada Linux considera diretórios como sendo arquivos especiais, por isso há uma
mais é do que a última localização visitada pelo usuário fora a atual. Caso pequena distinção de significado dessas permissões entre arquivos comuns e
o usuário estivesse na raiz do sistema, mudasse para seu diretório HOME diretórios.
e desejasse voltar para a raiz do sistema; ele poderia se mover para a raiz Para os arquivos comuns, as permissões ‘r’, ‘w’ e ‘x’ garantem que o
através desse diretório. usuário que o acessa pode ler o conteúdo do arquivo, fazer modificações
sobre o arquivo ou executar o arquivo (se for um programa executável -
1.4 Permissões de acesso semelhante ao .exe do Windows) respectivamente; de acordo com o grupo
de permissões que o usuário pertença.
O sistema de arquivos no Linux trabalha com conjunto de permissões. Para Já para diretórios, ‘r’, ‘w’ e ‘x’ permitem que usuários possam ler (lis-
cada arquivo ou diretório existente, está associado um conjunto de per- tar, ver) o conteúdo do diretório, fazer modificações (apagar ou criar novos
missões de acesso. Elas garantem a posse ou propriedade sobre arquivos ao arquivos ou subdiretórios) ou acessar (entrar em) um certo diretório; respec-
seu devido possuidor. tivamente.
A posse de arquivos pode ser vista em três nı́veis: usuário dono do Caso alguma dessas permissões esteja com um ‘-’, significa que aquela
arquivo (user ), grupo que tem privilégios sobre o arquivo (group) e outros determinada permissão que deveria estar ali presente não foi atribuı́da, ou
usuários (others) que não é nem o dono nem mesmo são do grupo de possui seja, o usuário não tem a capacidade de se valer do que aquela permissão
privilégios. A seguir, está o resultado que o programa “ls” mostra após sua lhe concederia.
execução: Resumindo:
arquivos diretórios
$> ls -l
‘r’ (read ) ler, abrir, copiar listar, ver o conteúdo
-rw-r--r-- 1 josineys ppginf 0 2012-03-06 14:59 meu_codigo.pas
‘w’ (write) alterar o conteúdo criar, apagar ou mover arquivos
drwxr-xr-x 2 josineys ppginf 6 2012-03-06 15:18 exercicios
‘x’ (execute) executar acessar, entrar
$>
‘-’ nega a permissão nega a permissão
Os dez primeiros caracteres de cada linha acima estão representando ‘d’ (directory) denota um diretório
as permissões de acesso. Na primeira linha temos um arquivo denominado Há outros estados que essas permissões podem assumir, como ‘x’, ‘X’,
“meu codigo.pas” e na segunda linha um diretório chamado “exercicios”. O ‘s’, ‘t’. Para ler sobre eles, acesse a man page (ver seção 1.2) do comando
primeiro caractere está reservado para denotar se o arquivo em questão é ou “chmod”.
não um diretório (‘d’ para diretório e ‘-’ para arquivo).
Os nove caracteres que se seguem podem ser divididos em três grupos de 1.4.1 chmod
três elementos cada um. Cada um desses grupos podem ser povoados com O comando “chmod” modifica as permissões de um arquivo ou diretório
as letras ‘r’, ‘w’ ou ‘x’; cada uma dessas ocupando as posições um, dois ou baseado na seguinte lista de opções:
três dentro do grupo, respectivamente.
O primeiro grupo está reservado para mostrar as permissões do usuário • u, significa usuário;
dono do arquivo; o segundo, para mostrar as permissões do grupo que possui
privilégios sobre o arquivo; o terceiro, para os demais usuários (others). • g, significa grupo;
Nos exemplos acima, tanto o arquivo quanto o diretório pertencem ao
• o, significa outros;
usuário “josineys”. Este usuário pertence ao grupo de usuários “ppginf”,
mesmo grupo que tem privilégios sobre esse arquivo. Já a informação de • a, significa todos os usuários;

7 8
• r, significa leitura; 1.6 Redirecionando entradas e saı́das
• w, significa escrita; Entradas e saı́das (do inglês input e output) são as formas com que o sis-
tema operacional faz a comunicação entre programas, comandos, processos
• x, significa execução; e usuário. A entrada mais conhecida é o teclado, enquanto a saı́da mais
conhecida é a tela do computador. Por isso, são as entrada e saı́da padrões,
• +, significa adicionar permissão;
respectivamente.
• -, significa remover permissão. Contudo, essas entradas e saı́das podem ser redirecionadas para outros
locais. Um programa executado na linha de comando provavelmente pro-
o comando é executado como no exemplo: duzirá resultados que serão visı́veis na tela, porém pode-se querer que a
saı́da desse programa seja enviada diretamente para um arquivo do disco
$> chmod go-rx rı́gido.
De forma semelhante, um arquivo do disco pode ser usado como entrada
Remove a permissão de leitura e execução aos usuários do grupo e outros. de comandos. Em vez do usuário digitar todos os valores para cada uma das
variáveis do programa, ele pode criar um arquivo com os valores desejados
$> chmod a+rwx e usar esse arquivo no lugar de sempre digitar toda a sequência de valores.
Em Linux, a entrada padrão é definida para o descritor de arquivo2 0
Dá permissão de leitura, execução e escrita para todos os usuários.
(zero); a saı́da padrão, para o descritor de arquivos 1 (um) e a saı́da de erros,
para o descritor de arquivos 2. São esses os valores utilizados no momento
1.5 Executando programas de se redirecionar entradas e saı́das.
Para se executar programas, é necessário que:
1.6.1 Redirecionamento de saı́da
• Tenha sido compilado previamente;
Começando pela saı́da padrão, quando se quer redirecioná-la, usa-se o de-
• Tenha permissão de execução. scritor de arquivos 1. No shell (ver seção 1.1), o descritor de arquivos 1 é
usado junto com o ‘>’ (maior). Dessa forma, para se transferir a saı́da para
Programas como “ls” e “fpc” foram compilados anteriormente e estão um arquivo, faz-se:
disponı́veis no sistema para uso. A forma de executá-los é através de um
shell (ver seção 1.1), digitando o nome do arquivo executável no prompt de $> ls 1> saida_ls.txt
comandos.
Outros comandos precisam ainda ser compilados antes de seu uso. Quando É equivalente a:
se escreve um código-fonte, somente depois de se executar um conversor de
linguagem de alto nı́vel (instruções em uma linguagem de programação de $> ls > saida_ls.txt
alto nı́vel - por exemplo, Pascal) para linguagem de máquina é que se terá um
Nos casos acima, a saı́da do comando “ls” não será apresentada na tela,
arquivo executável que realiza o mesmo trabalho do escrito no código-fonte.
mas sim será gravada no arquivo “saida ls.txt”. Vale mencionar que esse
Também é preciso que um programa executável possua permissão de
arquivo não precisa existir previamente, quando o redirecionamento for feito,
execução (ver seção 1.4). Confirmado esses requisitos, ou se executa os pro-
ele será criado (se não existir) ou será sobrescrito (caso já exista). Isso é
gramas compilados anteriormente simplesmente digitando seu nome no shell
chamado de redirecionamento destrutivo.
ou digitando o nome do arquivo compilado adicionado de ‘./’ (ponto-barra),
Se deseja-se um redirecionamento não destrutivo, ou melhor, um redi-
indicando que se trata de um arquivo executável localizado no diretório local
recionamento que não apague o conteúdo já existente de um arquivo, nesse
(ver seção 1.3.1).
caso é preciso usar um segundo ‘>’ (maior). Para os exemplos acima, o
redirecionamento não destrutivo ficaria:
2
http://pt.wikipedia.org/wiki/Descritor_de_arquivo

9 10

$> ls 1>> saida_ls.txt Após compilado e posto para executar, o programa esperará que três
números sejam lidos da entrada padrão, só depois disso os três números são
Ou: impressos na saı́da padrão em ordem inversa.
$> ls >> saida_ls.txt $> ./le_e_imprime
1 2 3
O mesmo pode ser feito para a saı́da de erros, cujo descritor de arquivos é
3 2 1
o 2. Essa saı́da cuida de quaisquer erros que possam acontecer na execução
$>
de um comando. Por exemplo, tentar listar um arquivo que não exista,
produz um erro que será enviado para a tela: Enquanto trata-se da leitura de apenas três números, não é muito esforço
sempre digitá-los enquanto se testa o programa desenvolvido. Contudo, se
$> ls arquivo-inexistente.txt
o programa precisasse ler 50 números e então imprimi-los em ordem inversa
ls: impossı́vel acessar arquivo-inexistente.txt: Arquivo ou diretório n~
ao encontrado
a digitada, testar esse programa sempre digitando os números torna-se uma
$>
tarefa cansativa.
Esse não é o comportamento esperado para o comando “ls”, trata-se de Para isso, é possı́vel automatizar o processo, escrevendo os números em
um erro que foi informado pelo sistema. Caso o usuário queira, ele pode um arquivo texto e usando-o como entrada para o programa:
redirecionar essa saı́da de erro para um arquivo:
$> cat entrada_numerica.txt
$> ls arquivo-inexistente.txt 2> saida_erro_ls.txt 1 2 3 4 5 6 7 8 9 10
$> 11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
Dessa vez, o erro não foi mostrado na tela, mas foi guardado no arquivo 31 32 33 34 35 36 37 38 39 40
“saida erro ls.txt”. Esse redirecionamento com “2>” é destrutivo, assim 41 42 43 44 45 46 47 48 49 50
como o “1>”. Caso deseje fazê-lo não destrutivo, deve-se usar o “2>>”. $>

1.6.2 Redirecionamento de entrada Seja o novo programa em Pascal, alterado para ler 50 números e imprimi-
los em ordem inversa:
Finalmente, para se redirecionar a entrada padrão (teclado), usa-se o cam-
inho contrário do redirecionamento. Agora, o sı́mbolo usado é “<”. Seja o program le_e_imprime;
seguinte programa em Pascal:
var vetor50nums : array [1..50] of integer;
program le_e_imprime; i: integer;

var vetor3nums : array [1..3] of integer; begin


i: integer; (* Le 50 numeros e os imprime em ordem inversa *)
for i := 1 to 50 do
begin read(vetor50nums[i]);
(* Le tres numeros e os imprime em ordem inversa *)
for i := 1 to 3 do for i := 50 downto 1 do
read(vetor3nums[i]); write(vetor50nums[i], ’ ’);
writeln;
for i := 3 downto 1 do end.
write(vetor3nums[i], ’ ’);
writeln; Após compilado, usa-se então o arquivo texto com todos os números a
end. serem testados:

11 12
$> ./le_e_imprime < entrada_numerica.txt O comando acima executa o programa “ls” em todos os arquivos e pastas do
50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 diretório corrente cujo nome inicie por “lista” incluindo um arquivo chamado
23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 apenas “lista”, caso ele exista. “*lista” e “l*a” são outros exemplos válidos
$> de uso do asterisco.

1.6.3 Redirecionamento de ambos 1.7.2 Interrogação


É possı́vel combinar ambos os redirecionamentos em um mesmo comando: O ‘?’ (ponto de interrogação) simboliza qualquer um (e exatamente um)
caractere. por exemplo:
$> ./le_e_imprime < entrada_numerica.txt > saida_numerica.txt
$> $>ls ?ala
$>
Neste exemplo, o conteúdo do arquivo chamado “entrada numerica.txt”
(tal qual descrito anteriormente) é redirecionado para a entrada do pro- Este comando irá executar o programa em “ls” em arquivos com nomes
grama le e imprime feito em Pascal. Por sua vez, a saı́da do programa como “cala”, “bala”, “fala”, “mala”. Mas não em um cujo nome seja “ala”
compilado que antes era mostrada na tela, agora é redirecionada para o ou “coala”.
arquivo chamado “saida numerica.txt”.
1.7.3 Colchetes
1.6.4 Pipe
Os sı́mbolos ‘[’ ‘]’ (abre e fecha colchetes) em conjunto simbolizam qualquer
É possı́vel encadear comandos Linux utilizando o sinal da barra vertical, um (e exatamente um) caractere que esteja dentro do conjunto interno ao
também chamado de pipe, |. Por exemplo: colchetes, por exemplo:

$> ls | sort $>ls lista[123].txt


$> $>

Esse comando irá redirecionar a saı́da do programa “ls” para a entrada Este comando irá executar o comando “ls” em um arquivo que se chame
do programa “sort”. É equivalente a fazer em sequência: “lista1.txt” ou “lista2.txt” ou “lista3.txt”.

$> ls > lista.txt $>rm notas_da_turma_[a-f].txt


$> sort < lista.txt $>
$>
Este comando executa o comando “rm” em todos os arquivos chamados
1.7 Metacaracteres “notas da turma ” seguido de qualquer caractere que esteja entre ‘a’ e ‘f’
(a,b,c,d,e,f) seguido de “.txt”.
Os metacaracteres são caracteres reservados dotados de alguma função es-
pecial; eles aumentam muito a versatilidade dos comandos Linux. 1.7.4 Chaves

1.7.1 Asterisco Os sı́mbolos ‘{’ ‘}’(abre e fecha chaves) em conjunto simbolizam que ex-
atamente a sequência de caracteres de um elemento que esteja dentro do
O ‘*’ (asterisco) simboliza qualquer número variado de caracteres. Por ex- conjunto interno às chaves deve coincidir. Aqui, cada um dos elementos do
emplo: conjunto é separado por ‘,’ (vı́rgula). Por exemplo:

$>ls lista* $> ls lista{1,2,3}.txt


$> lista1.txt lista2.txt lista3.txt

13 14

O exemplo mostra que o comando “ls” vai procurar por exatamente $> xclock
cada um dos elementos ‘1’, ‘2’ e ‘3’; adicionados do prefixo “lista” e do ^Z
sufixo “.txt”. [1]+ Stopped xclock
$> ps
$> ls lista{1,2,3,4-6}.txt PID TTY TIME CMD
lista1.txt lista2.txt lista3.txt lista4-6.txt 2068 pts/0 00:00:00 bash
2825 pts/0 00:00:00 xclock
Dessa vez, o sı́mbolo ‘-’ (menos) não denota uma sequência de valores, 2834 pts/0 00:00:00 ps
não se trata de um alcance de 4 a 6. Neste caso, é procurado pela ex- $> jobs
istência do arquivo “lista4-6.txt”; e não pelos arquivos “arquivo4.txt”, “ar- [1]+ Stopped xclock
quivo5.txt” e “arquivo6.txt” como seria se em vez de chaves fosse usado $> fg 1
colchetes. xclock

$> ls lista{,1,2,3,4-6}.txt No exemplo acima o comando “xclock” foi executado, este programa
lista.txt lista1.txt lista2.txt lista3.txt lista4-6.txt exibe uma pequena janela contendo um relógio. O “ˆZ” indica que CTRL
+ Z foi pressionado o que suspendeu o “xclock” e devolveu o controle do
Aqui, o primeiro elemento do conjunto interno às chaves é nada. Dessa terminal ao usuário. Ao executar o comando “ps”, o PID de cada programa
forma, o prompt vai interpretar que, para o primeiro elemento, nenhum em execução pode ser verificado, enquanto “jobs” exibe o número job de
caractere deve ser usado para compor o nome do arquivo desejado. Ou seja, cada programa em colchetes, no caso “[1]” significa que o “xclock” é o job
o prompt vai procurar pelo arquivo “lista.txt”. de número 1. Por fim “fg 1” colocou novamente o programa xclock em
Diferentemente do colchetes, para as chaves todos os elementos do con- execução e com o controle do terminal.
junto interno devem existir.
1.8.1 Matando processos
1.8 Processos e jobs
Para matar um processo que esteja suspenso ou em background basta digitar
Em Linux todos os programas em execução podem ser chamados de proces- o comando “kill %numero do job” também é possı́vel matar o processos
sos e são identificados por um número identificador próprio chamado PID, pelo PID, bastando digitar “kill numero do PID” o parâmetro “-9” força o
Process Identification. processo a fechar mesmo quando ele se recusa a encerrar.
O comando “ps” pode ser utilizado para verificar informações referentes
aos processos em execução.
1.9 Boas práticas em nomenclaturas Linux
Os processos podem estar em 3 estados diferentes: em foreground (primeiro
plano), em background (segundo plano) ou suspensos. Seguem algumas sugestões de boas práticas de nomenclatura de nomes de
Processos em foreground costumam segurar o controle do terminal até arquivos que evitam principalmente problemas com a codificação de carac-
encerrarem, um modo de executar o processo sem que este mantenha o teres e manipulação de arquivos.
controle do terminal é deixá-lo em background. Para deixar um processo
em background ao executá-lo coloque o sı́mbolo ‘&’ ao final do comando • Evite utilizar acentos e sı́mbolos em nomes de arquivo, ao invés de
separado por um espaço. Se o processo já estiver em execução é possı́vel espaço prefira underscore como separador. Por exemplo, meu codigo.pas;
pressionar CTRL + Z para suspender o processo e depois digitar o comando
• Utilize extensões usuais para seus arquivos. Por exemplo, “.c” para
“bg” para colocar o processo suspenso em background.
códigos escritos em linguagem C, “.pas” para códigos em Pascal, “.txt”
Ao digitar o comando “jobs”, você verá a lista dos processos que estão
para arquivos de texto comuns;
rodando em background. Para colocar um processo em foreground é possı́vel
digitar o “fg %numero do job”, “fg” sem parâmetros fará o último processo • Adote letras minúsculas para iniciar nome de arquivos.
posto em background ficar em foreground.
Exemplo:

15 16
1.10 Redirecionamento de e-mail 4305
13709
Dentro do DInf, junto ao login é criado um e-mail particular para cada
30617
usuário <login>@inf.ufpr.br. É possı́vel acessar este e-mail através do link :
27806
http://webmail.inf.ufpr.br com o mesmo login e senha dos laboratórios do
DInf. É possı́vel também redirecionar os e-mail recebidos nestes e-mail Na ordem: “lista.txt” contém um conjunto de nomes de disciplinas;
criando um arquivo de texto, utilizando qualquer editor, e escrevendo nele “lista2.txt”, um conjunto de linguagens de programação; “lista3.txt”, um
somente o e-mail para o qual deseja redirecionar, este arquivo deve ser salvo conjunto de logins; “números.txt”, um conjunto de números obtidos aleato-
com o nome “.forward” dentro da HOME. riamente.
Para informação adicional, acessar a página http://www.inf.ufpr.br e Além destes, também aparecem nos textos a seguir os arquivos:
visitar o menu “Infraestrutura >> Sobre o sistema computacional”.
• “verbos.txt” que possui como conteúdo um conjunto de verbos;
2 Comandos Linux • “substantivos.txt”, um conjunto de substantivos;

Nesta seção, é apresentada uma coletânea com os comandos Linux mais • “foto1.jpg” e “foto2.jpg”, dois arquivos binários que representam fotos;
comuns. Cada um desses comandos está listado de acordo com um determi-
nado número de campos explicativos: sintaxe (representando a forma de uso • “linklista”, um link para arquivo;
do comando em um terminal), descrição (explicação do que o comando faz), • “.arquivo-oculto”, um arquivo oculto;
opções (as opções, argumentos, parâmetros mais utilizados para o programa)
e exemplo (exemplificação de uso do programa). • “diretorio-listas” e “dir-arquivos/documentos”, diretórios.
Para tanto, são usados arquivos com o seguinte conteúdo:
OBS.: as opções descritas nas subseções a seguir podem não ser todas
$> cat lista.txt as opções disponı́veis para o programa. Verificar todas as opções acessando
Circuitos Logicos a man page do comando desejado.
Algoritmos e Estrutura de Dados I
Calculo Diferencial e Integral I 2.1 cat
Sintaxe: cat [OPÇÃO]... [ARQUIVO]...
$> cat lista2.txt
Pascal Descrição: Concatena arquivos e imprime na saı́da padrão
C
Java Opções: -n (enumera todas as linhas de saı́da)

Exemplo:
$> cat lista3.txt
leg04 $> cat lista.txt
jos04 Circuitos Logicos
rums04 Algoritmos e Estrutura de Dados I
Calculo Diferencial e Integral I
$> cat numeros.txt
1236 $> cat -n lista2.txt
4498 1 Pascal
14366 2 C
18951 3 Java
6958
28317 $> cat lista.txt lista2.txt lista3.txt

17 18

Circuitos Logicos em cada arquivo origem e uma escrita para o destino. Assim, com esta
Algoritmos e Estrutura de Dados I opção, (Isto é uma falha. Ele pensar que você tem que evitar -r e usa -R
Calculo Diferencial e Integral I se você não sabe o que esta na árvore que você está copiando. Abrindo
Pascal um arquivo de dispositivo desconhecido, por exemplo um scanner, tem
C efeito desconhecido sobre o hardware.))
Java
leg04 Exemplo:
jos04
$> cp lista.txt lista2.txt lista3.txt diretorio-listas
rums04
$> cp -r diretorio-listas dir-arquivos/documentos
2.2 cd (comando embutido do bash)
Sintaxe: cd [-L|-P] [dir] $> cp -i lista.txt lista2.txt
cp: sobrescrever ‘lista2.txt’? y
Descrição: Muda o diretório corrente para “dir”.
$> cp -f lista.txt lista2.txt
Opções: -L (segue links simbólicos)
$>
-P (usa a estrutura fı́sica de diretórios em vez de seguir links simbólicos)

Exemplo: 2.4 diff

$> cd /home/prof/professor/disciplina/pdfs Sintaxe: diff [opções] do-arquivo para-arquivo


/home/prof/professor/disciplina/pdfs$> Descrição: Acha diferenças entre dois arquivos

/home/prof/professor$> cd disciplina/pdfs Opções:


/home/prof/professor/disciplina/pdfs$>
Exemplo:
/home/prof/professor$> cd ..
$> diff verbos.txt substantivos.txt
/home/prof$>
2,3c2,3
< Para
/home/prof/professor$> cd ../..
< Continua
/home$>
---
> Paralisacao
2.3 cp > Continuo
Sintaxe: cp [opções] arquivo caminho
cp [opções] arquivo... diretório $ diff lista.txt lista2.txt
1,3c1,3
Descrição: Copia arquivos e diretórios < Circuitos Logicos
< Algoritmos e Estrutura de Dados I
Opções: -i (pergunta se será sobrescrito o arquivo regular de destino)
< Calculo Diferencial e Integral I
-f (remove os arquivos de destino existentes, e nunca pergunta antes
---
de fazer isto)
> Pascal
-r (copia diretórios de forma recursiva, copiando qualquer não- di-
> C
retório e não-ligação simbólica (isto é, FIFOs e arquivos especiais)
> Java
como se fossem arquivos regulares. Isto significa tentar uma leitura

19 20
$> diff foto1.jpg foto2.jpg Nova linha de texto$>
Arquivos binários foto1.jpg e foto2.jpg diferem
$> echo -e "Nova\nlinha\nde\ntexto\n"
$> diff lista.txt lista.txt Nova
$> linha
de
2.5 du texto

Sintaxe: du [opções] [arquivo...] $>


Descrição: Estima o espaço utilizado
$> echo -en "Nova\nlinha\nde\ntexto\n"
Opções: -h (anexa o rótulo de tamanho, como por exemplo M para binários Nova
de megabytes (’mebibytes’), para cada tamanho) linha
-s (exibe somente um total para cada argumento) de
texto
Exemplo: $>
$> du lista.txt
4 lista.txt 2.7 file
Sintaxe: file [-bchikLnNprsvz] [–mime-type] [–mime-encoding] [-f namefile]
$> du -h lista.txt lista2.txt lista3.txt [-F separator] [-m magicfiles] file
4,0K lista.txt file -C [-m magicfile]
4,0K lista2.txt file [–help]
4,0K lista3.txt
Descrição: Determina o tipo do arquivo
$> du -sh .
Opções: -i (mostra o tipo MIME do arquivo)
943M .
Exemplo:
2.6 echo
$> file lista.txt
Sintaxe: echo [OPÇÃO-CURTA]... [STRING]... lista.txt: ASCII text
echo OPÇÃO-LONGA

Descrição: Imprime uma linha de texto $> file -i lista.txt


lista.txt: text/plain; charset=us-ascii
Opções: -e (habilita interpretação de meta caracteres disparados pela ‘\’
(contrabarra - backslash escape) $> file dir-arquivos
-n (não mostra nova-linha à direita - trailing newline) dir-arquivos: directory
Exemplo:
2.8 find
$> echo "Nova linha de texto" Sintaxe: find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
Nova linha de texto
$> Descrição: Procura por arquivos em uma hierarquia de diretórios

$> echo -n "Nova linha de texto"

21 22

Opções: -name (procura por arquivos que contenham esse nome) 2.10 grep
-newer (procura por arquivos que sejam mais novos que este)
Sintaxe: grep [OPÇÕES] PADRÃO [ARQUIVO...]
-size (procura por arquivos que tenham o tamanho especificado aqui)
grep [OPÇÕES] [-e PADRÃO — -f ARQUIVO] [ARQUIVO...]
-exec (executa um comando sobre o resultado da busca - o conjunto
de resultados é representado por {}) Descrição: Imprime linhas que coincidam com um padrão
Exemplo: Opções: -i (ignora diferenciação de maiúsculas e minúsculas - case sensi-
$> find . -name "lista*" tive)
./lista.txt Exemplo:
./lista2.txt
./lista3.txt $> grep "al" lista*txt
lista2.txt:Pascal
$> find . -name "lista?.txt" lista.txt:Calculo Diferencial e Integral I
./lista2.txt
./lista3.txt $> grep "cal" lista*txt
lista2.txt:Pascal
$> find . -size +30M
$> grep -i "cal" lista*txt
$> find . -name "lista*txt" -exec ls -l {} \; lista2.txt:Pascal
-rw-r--r-- 1 josineys ppginf 85 2012-04-20 17:24 ./lista.txt lista.txt:Calculo Diferencial e Integral I
-rw-r--r-- 1 josineys ppginf 14 2012-04-20 17:24 ./lista2.txt
-rw-r--r-- 1 josineys ppginf 19 2012-04-20 17:24 ./lista3.txt
2.11 groups
$> find . -newer lista.txt Sintaxe: groups [OPÇÃO]... [NOME DE USUÁRIO]...
.
Descrição: Imprime os grupos de usuários em que um usuário está
./lista2.txt
./lista3.txt Opções:

2.9 finger Exemplo:

Sintaxe: finger [-lmsp] [usuário ...] [usuário@máquina ...] $> groups


Descrição: Programa de busca por informações de usuários bcc

Opções: $> groups danilok


danilok : c3sl
Exemplo:
$> finger danilok 2.12 head
Login: danilok Name: Danilo Kiyoshi Simizu Yorinori
Directory: /home/c3sl/danilok Shell: /bin/bash Sintaxe: head [OPÇÃO]... [ARQUIVO]...
Office Phone: 2009-03-10 Home Phone: resp. Castilho Descrição: Mostra a primeira parte de arquivos
Last login Thu Dec 29 02:44 (BRST) on pts/3 from 187.59.71.243
Mail forwarded to /home/c3sl/danilok/Mail/Mailbox Opções: -c (mostra os primeiros N bytes de cada arquivo - se tiver ‘-’
No mail. (menos) antes do número, mostra tudo menos os N últimos bytes)
No Plan. -n (mostra as primeiras N linhas em vez das 10 primeiras (10 primeiras

23 24
é o comportamento padrão) - se tiver ‘-’ (menos) antes do número, $> id danilok
mostra tudo menos as N últimas linhas) uid=1246(danilok) gid=1005(c3sl) grupos=1005(c3sl)

Exemplo:
2.14 jobs (comando embutido do bash)
$> head -c 20 lista.txt Sintaxe: jobs [-lnprs] [ jobspec ... ]
Circuitos Logicos jobs -x command [ args ... ]
Al$>
Descrição: Lista os jobs ativos para o shell atual
$> head -c 18 lista.txt
Opções:
Circuitos Logicos
$> Exemplo:

$> head -c -18 lista.txt $> jobs


Circuitos Logicos $>
Algoritmos e Estrutura de Dados I
Calculo Diferen$> $> jobs
josineys@macalan:~$ jobs
$> head -n 1 lista.txt [1]- Executando xterm &
Circuitos Logicos [2]+ Executando xterm &

$> head -n -1 lista.txt 2.15 kill


Circuitos Logicos
Algoritmos e Estrutura de Dados I Sintaxe: kill [ -signal — -s signal ] pid ...
kill [ -L — -V, –version ]
$> head -n 0 lista.txt kill -l [ signal ]
$> Descrição: Manda um sinal para um processo

$> head -n -0 lista.txt Opções: -9 (manda o sinal de matar - SIGKILL - aos processos identifica-
Circuitos Logicos dos pelo número de PID)
Algoritmos e Estrutura de Dados I -1 (após -9, informa que deve ser mortos todos os processos que o
Calculo Diferencial e Integral I usuário pode matar)

2.13 id
Exemplo:
Sintaxe: id [OPÇÃO]... [NOME DE USUÁRIO]...
$> kill 123 543 2341 3453
Descrição: Imprime IDs reais e efetivos para usuário e grupo

Opções: $> kill -9 123 543 2341 3453

Exemplo: $> kill -9 -1

$> id $> kill %1


uid=2847(josineys) gid=1011(ppginf) grupos=1005(c3sl),1011(ppginf)

25 26

2.16 less 2.18 ls


Sintaxe: less -? Sintaxe: ls [opções] [arquivo...]
less –help
Descrição: Lista o conteúdo de um diretório
less -V
less –version Opções: -a (inclui os arquivos com o nome iniciando com ‘.’ na listagem)
less [-[+]aBcCdeEfFgGiIJKLmMnNqQrRsSuUVwWX ] [-b space] [-h -R (lista os diretórios encontrados, recursivamente)
lines] [-j line] [-k keyfile] [-oO logfile] [-p pattern] [-P prompt] [-t tag] -d (lista nome de diretórios como arquivo, preferencialmente no lugar
[-T tagsfile] [-x tab,...] [-y lines] [-[z] lines] [-# shift] [+[+]cmd] [–] de seus conteúdos)
[filename]... -l (escreve várias informações sobre o arquivo ou diretório listado) -r
(inverte a ordem do ordenação)
Descrição: Exibe conteúdo de arquivos de forma mais sofisticada do que
-1 (para saı́da em colunas simples)
“more”
Exemplo:
Opções: -N (mostra o número da linha visualizada, como no comando “cat”
(ver Seção 2.1) $> ls
dir-arquivos lista2.txt lista3.txt lista.txt
Exemplo:

$> less lista.txt $> ls -l


drwxr-xr-x 1 josineys ppginf 85 2012-04-20 17:24 dir-arquivos
$> less -N lista.txt -rw-r--r-- 1 josineys ppginf 85 2012-04-20 17:24 lista.txt
-rw-r--r-- 1 josineys ppginf 14 2012-04-20 17:24 lista2.txt
-rw-r--r-- 1 josineys ppginf 19 2012-04-20 17:24 lista3.txt
2.17 ln
Sintaxe: ln [opções] origem [destino] $> ls dir-arquivos
ln [opções] origem... diretório foto1.jpg foto2.jpg

Descrição: Cria uma ligação simbólica entre arquivos $> ls -d dir-arquivos


Opções: -i (questiona se remove o arquivo de destino existente) dir-arquivos
-f (remove o arquivo de destino existente) -s (cria uma ligação fraca -
soft, simbólica - ao invés de ligações fortes) $> ls -R
.:
Exemplo: dir-arquivos lista2.txt lista3.txt lista.txt

$> ln -s lista.txt linklista ./dir-arquivos:


foto1.jpg foto2.jpg
$> ln -i lista.txt linklista
ln: substituir ‘linklista’? y $> ls -a
. .. .arquivo-oculto dir-arquivos lista2.txt lista3.txt lista.txt
$> ln -f lista.txt linklista
$> $> ls -1
dir-arquivos
lista2.txt
lista3.txt
lista.txt

27 28
2.19 man 2.21 more
Sintaxe: man [-C file] [-d] [-D] [–warnings[=warnings]] [-R encoding] [-L lo- Sintaxe: more [-dlfpcsu] [-num] [+/padrão] [+linhanum] [arquivo ...]
cale] [-m system[,...]] [-M path] [-S list] [-e extension] [-i—-I] [–regex—–
wildcard] [–names-only] [-a] [-u] [–no-subpages] [-P pager] [-r prompt] Descrição: Exibe conteúdo de um arquivo
[-7] [-E encoding] [–no-hyphenation] [–no-justification] [-p string] [-t] Opções:
[-T[device]] [-H[browser]] [-X[dpi]] [-Z] [[section] página ...] ...
man -k [apropos options] regexp ... Exemplo:
man -K [-w—-W] [-S list] [-i—-I] [–regex] [section] term ...
man -f [whatis options] page ... $> more lista.txt
man -l [-C file] [-d] [-D] [–warnings[=warnings]] [-R encoding] [-L lo-
cale] [-P pager] [-r prompt] [-7] [-E encoding] [-p string] [-t] [-T[device]] 2.22 mv
[-H[browser]] [-X[dpi]] [-Z] arquivo ... Sintaxe: mv [opção...] origem destino
man -w—-W [-C file] [-d] [-D] página ... mv [opção...] origem... destino
man -c [-C file] [-d] [-D] página ...
man [-hV] Descrição: Movimenta e/ou renomeia arquivos

Descrição: Uma interface para os manuais on-line de referência Opções: -i (questiona ao usuário se deseja sobrescrever um arquivo de des-
tino existente)
Opções: -f (apaga o arquivo de destino existente sem perguntar ao usuário)
Exemplo: Exemplo:

$> man ls $> mv lista.txt lista_renomeada.txt

2.20 mkdir $> mv -i lista.txt lista2.txt


mv: sobrescrever ‘lista2.txt’? n
Sintaxe: mkdir [opções] diretório...

Descrição: Cria diretórios $> mv -f lista.txt lista2.txt


$>
Opções: -p (cria os diretórios-pai de um caminho, caso eles não existam
ainda) 2.23 passwd
-m (indica o modo - permissões - de um diretório no momento de sua
criação) Sintaxe: passwd [opções...] [LOGIN]

Exemplo: Descrição: Modifica a senha do usuário

Opções: -x (Dá um número máximo de dias para aquela senha, depois desse
$> mkdir -m 760 novo-dir
tempo exige que seja dado uma nova senha)
$> mkdir dir-arquivos/dir1/dir2/dir3/novo-dir Exemplo:
mkdir: é impossı́vel criar o diretório ‘dir-arquivos/dir1/dir2/dir3/novo-dir’:
Arquivo ou diretório n~ao encontrado $> passwd
Password:
$> mkdir -p dir-arquivos/dir1/dir2/dir3/novo-dir New password:
Confirm new password:
passwd: senha atualizada com sucesso

29 30

2.24 pkill Opções: -s (tenta usar unidades legı́veis aos humanos - KB, MB, ...)
Sintaxe: pkill [-sinal] [-fvx] [-n—-o] [-P ppid,...] [-g pgrp,...] [-s sid,...] [-u Exemplo:
euid,...] [-U uid,...] [-G gid,...] [-t term,...] [padrão]
$> quota
Descrição: Mata processos baseado no nome e outros atributos Cotas de disco para user josineys (uid 2847):
Opções: -sinal (sinal a ser enviado ao processo - tanto sinal numérico Sistema de arquivos blocos quota limite gracearquivos quota limite
quanto nome simbólico do sinal) grace
10.17.110.3:/home
Exemplo: 1787884 2000000 2200000 35381 0 0

$> pkill -9 firefox $> quota -s


Cotas de disco para user josineys (uid 2847):
2.25 ps Sistema de arquivos blocos quota limite gracearquivos quota limite
Sintaxe: ps [opções] grace
10.17.110.3:/home
Descrição: Retorna uma fotografia dos processos correntes 1746M 1954M 2149M 35381 0 0

Opções: a (todos os processos no sistema)


2.27 rm
x (lista todos os processos pertencentes ao usuário)
u (mostra em formato de orientação ao usuário) Sintaxe: rm [opções] arquivo...

Exemplo: Descrição: Apaga arquivos e diretórios

$> ps Opções: -i (questiona se cada arquivo será apagado. Se a reposta for neg-
PID TTY TIME CMD ativa, o arquivo é preservado) de destino existente)
17906 pts/26 00:00:00 bash -f (ignora arquivos não existentes a nunca questiona o usuário) -r
18064 pts/26 00:00:00 ps (apaga o conteúdo dos diretórios de forma recursiva) -R (igual a -r)

Exemplo:
$> ps xu
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND $> rm lista.txt
josineys 9779 0.0 0.0 96920 2568 ? SN 14:26 0:00 sshd: josineys@pts/21
josineys 9780 0.0 0.0 20160 5800 pts/21 SNs 14:26 0:00 -bash $> rm dir-arquivos
josineys 17407 0.0 0.0 172012 8876 pts/21 SNl+ 15:16 0:00 vi documento.txt rm: n~
ao foi possı́vel remover ‘dir-arquivos/’: É um diretório
josineys 17905 0.0 0.0 96920 2568 ? SN 15:19 0:00 sshd: josineys@pts/26
josineys 17906 0.3 0.0 20160 5784 pts/26 SNs 15:19 0:00 -bash $> rm -r dir-arquivos
josineys 18253 0.0 0.0 12232 1132 pts/26 RN+ 15:20 0:00 ps xu
$> rm -i lista.txt
2.26 quota rm: remover arquivo comum ‘lista.txt’? n
Sintaxe: quota [ -F format-name ] [ -guqvswi ] [ -l — [ -QAm ]]
quota [ -F format-name ] [ -qvswi ] [ -l — [ -QAm ]] -u user... 2.28 rmdir
quota [ -F format-name ] [ -qvswi ] [ -l — [ -QAm ]] -g group...
Sintaxe: rmdir [opções] diretório...
quota [ -F format-name ] [ -qvswugQm ] -f filesystem...
Descrição: Remove diretórios vazios
Descrição: Mostra o uso de disco e limites

31 32
Opções: $> cat lista.txt | sort
Algoritmos e Estrutura de Dados I
Exemplo: Calculo Diferencial e Integral I
Circuitos Logicos
$> rmdir dir-arquivos
rmdir: falhou em remover ‘dir-arquivos’: Diretório n~
ao vazio
$> sort -r lista.txt
Circuitos Logicos
$> rmdir dir-vazio
Calculo Diferencial e Integral I
Algoritmos e Estrutura de Dados I
2.29 sort
Sintaxe: sort [OPÇÃO]... [ARQUIVO]... 2.30 tail
sort [OPÇÃO]... –files0-from=F
Sintaxe: tail [OPÇÃO]... [ARQUIVO]...
Descrição: Ordena linhas de arquivos de texto ou da entrada padrão
Descrição: Mostra a última parte de arquivos
Opções: -n (compara de acordo com o valor da string numérica)
Opções: -c (mostra os últimos N bytes - se tiver ‘+’ (mais) antes do número,
-r (ordenação em ordem reversa)
mostra tudo a partir dos N primeiros bytes)
-u (ordena de forma única - exclui repetições)
-n (mostra as últimas N linhas em vez das 10 primeiras (10 primeiras
Exemplo: é o comportamento padrão) - se tiver ‘+’ (mais) antes do número,
mostra tudo a partir da N-ésima linhas)
$> sort numeros.txt
1236 Exemplo:
13709
$> tail -n 1 lista.txt
14366
Calculo Diferencial e Integral I
18951
27806
$> tail -n +1 lista.txt
28317
Circuitos Logicos
30617
Algoritmos e Estrutura de Dados I
4305
Calculo Diferencial e Integral I
4498
6958
$> tail -c 10 lista.txt
ntegral I
$> sort -n numeros.txt
1236
$> tail -c +10 lista.txt
4305
Logicos
4498
Algoritmos e Estrutura de Dados I
6958
Calculo Diferencial e Integral I
13709
14366
18951 2.31 tar
27806 Sintaxe: tar [-] A –catenate –concatenate — c –create — d –diff –compare
28317 — –delete — r –append — t –list — –test-label — u –update — x
30617 –extract –get [options] [pathname ...]

33 34

Descrição: Gerencia compactação de arquivos no formato tar $> wc lista.txt


3 13 85 lista.txt
Opções: -c (cria um novo arquivo)
-x (extrai arquivos de um arquivo compactado) $> wc -l lista2.txt
-j (filtra o arquivo compactado através do bzip2) 3 lista2.txt
-lzma (filtra o arquivo compactado através do lzma)
-z (filtra o arquivo compactado através do gzip)
-t (lista o conteúdo do arquivo compactado)
- (menos - opcional)

Exemplo:

$> tar xzf slides.tar.gz

$> tar cf listas.tar lista*

$> tar tf listas.tar


lista2.txt
lista3.txt
lista.txt

2.32 touch
Sintaxe: touch [-acm][-r arquivo de referência—-t tempo] arquivo...

Descrição: Altera o rótulo de tempo do arquivo

Opções: -c (não cria arquivos que não existam; por padrão, apenas o uso
do “touch” sem argumentos faz com que arquivos inexistentes sejam
criados com tamanho zero - arquivos vazios)

Exemplo:

$> touch arquivo_vazio

2.33 wc
Sintaxe: wc [OPÇÃO]... [ARQUIVO]...
wc [OPÇÃO]... –files0-from=F

Descrição: Imprime o número de linhas, palavras e bytes para cada arquivo

Opções: -c (imprime o número de bytes)


-m (imprime o número de caracteres)
-l (imprime o número de linhas)
-w (imprime o número de palavras)

Exemplo:

35 36

Você também pode gostar