Você está na página 1de 46

CURSO SOBRE LINUX

O que é Linux?
Linux é um sistema operacional executado em um sistema de computador de
hardware

Quem usa Linux?


 Engenheiros de Rede
 Ciber Segurança
 Desenvolvimento/Programação
 Analise de dados
 Etc

Sintaxe de Comando Básico:

comando [opcoes…] [argumentos…]

Cada parte do comando é sensível ao teclado (ex: ls! =Ls)

Argumentos:
A parte de “Argumentos” pode ser usada para especificar algo para o comando agir,
uma ação, um exemplo é o argumento “Documents”:
ls / Documents

sysadmin@localhost:~$ ls Documents
School alpha-second.txt food.txt linux.txt os.csv
Work alpha-third.txt hello.sh longfile.txt
people.csv
adjectives.txt alpha.txt hidden.txt newhome.txt
profile.txt
alpha-first.txt animals.txt letters.txt numbers.txt red.txt

ls: irá exibir uma lista de informações sobre arquivos


Documents: ira exibir uma lista de arquivos contido no diretório
Como o Linux é um código aberto, existem certos segredos que foram adicionados
com o tempo, exemplo o comando “aptitude”, uma ferramenta de gerenciamento de
pacotes disponíveis em algumas distribuições, com este comando aceitara “moo”
como argumento:
sysadmin@localhost:~$ aptitude moo
There are no Easter Eggs in this program.

Opções:
As opções são usadas para alterar o comportamento do comando, na parte anterior o
comando “ls”, Na página anterior, o comando ls foi usado para listar o
conteúdo de um diretório. No exemplo a seguir, a opção -l é fornecida
ao comando ls, o que resulta em uma saída de “exibição muito longa”, significa
que a saída fornece mais informações sobre cada arquivo listado:

sysadmin@localhost:~$ ls -l
total 32
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Desktop
drwx------ 4 sysadmin sysadmin 4096 Dec 20 2017 Documents
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Downloads
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Music
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Pictures
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Public
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Templates
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Videos

Muitas vezes o caractere é escolhido para ser semelhante para o seu propósito. Por
padrão o comando “ls” imprime os resultados em ordem alfabética, portanto,
adicionar a opção “-r” irá imprimir os resultados em ordem inversa:

sysadmin@localhost:~$ ls -r
Videos Templates Public Pictures Music Downloads Documents
Desktop
Várias opções podem ser usadas de uma só vez, por exemplo, os comandos -l; -r/-lr (o
resultado será o mesmo, o comando ira exibir uma listagem):

sysadmin@localhost:~$ ls -rl
total 32
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Videos
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Templates
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Public
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Pictures
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Music
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Downloads
drwx------ 4 sysadmin sysadmin 4096 Dec 20 2017 Documents
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Desktop

Impressão do Diretório de Trabalho


Para descobrir onde você está atualmente localizado dentro do sistema de arquivos, o
comando “pwd” pode ser usado. O comando imprime o diretório de trabalho, sua
localização atual
Pwd=opções

O código abaixo indica que o usuário esta atualmente em sua pasta pessoal, mostrada
no sistema de arquivo seguinte:

sysadmin@localhost:~$ pwd
/home/sysadmin

Sistema de arquivo:
Lembre-se disso:
Observe que na máquina virtual em todos os momentos o prompt exibe um ~ isso
equivale ao diretório: /home/sysadmin
Depois de alterar os diretórios a nova localização pode ficar assim por exemplo:

sysadmin@localhost:/etc/calendar$

Alterando Diretorios:
Diretórios são as pastas que se usa para guardar os seus arquivos (imagens, códigos,
vídeos etc).
Quando se acessa o terminal ou uma máquina virtual, você está no diretório da pasta
pessoal, tipo exemplo abaixo

Para navegar entre os diretórios utilize o comando “cd”:

sysadmin@localhost:~$ cd Documents
sysadmin@localhost:~/Documents$

“cd” é um caminho de lista de diretórios separados pelo caractere “/”

Caminho Absoluto:
Um caminho absoluto permite que você especifique a exata localização da sua pasta,
ele começa na pasta root (“~/”), o caminho /home/sysadmin é um caminho
absoluto

Use este caminho como um argumento para o comando cd para voltar


para o diretório home do usuário sysadmin.

sysadmin@localhost:/$ cd /home/sysadmin
sysadmin@localhost:~$
Nenhuma saída significa que o comando foi bem-sucedido. Vá
em frente e confirme isso usando o comando pwd
Caminhos Relativos:
Caminhos Relativos oferece direções para um arquivo relativo na sua localização atual
e começam com o caractere “/”:

sysadmin@localhost:~$ cd Documents
sysadmin@localhost:~/Documents$

uma visão visual:

Vamos supor que você esta no diretório “Documents” e possui um diretório chamado
“Art”, mas está dentro de um repositório chamado “School”, você ira fazer o seguinte
caminho:

sysadmin@localhost:~/Documents/$ cd School/Art
sysadmin@localhost:~/Documents/School/Art$

Use o comando “pwd” para confirmar a alteração:

sysadmin@localhost:~/Documents/School/Art$ pwd
/home/sysadmin/Documents/School/Art
Uma forma mais visual para entender o que acabou de acontecer:

Atalhos:
-Caractere “..”:
Os caracteres “..” representa um diretório em que você esteja, exemplo do código
anterior, utilize o código “cd ..” para voltar do repositório “Art” para “School”

sysadmin@localhost:~/Documents/School/Art$ cd ..
sysadmin@localhost:~/Documents/School$

-Caractere “.” :
O caractere “.” Serve para representar o seu diretório atual. Para a tag “cd” não é
muito útil, mas serve para comandos nas próximas seções;
-Caractere “~”:
O diretório inicial (home) se simboliza com “~”, você pode utilizar a tag “cd ~” se você
quiser voltar para a home.

sysadmin@localhost:~/Documents/School$ cd ~
sysadmin@localhost:~$
Listando Arquivos:
Usando o arquivo “ls” você consegue ver a lista de arquivos que estão neste diretório.
Utilizando a tag –l junto de ls, você consegue uma longa listagem, exemplo abaixo:

sysadmin@localhost:~$ ls -l /var/log/
total 844
-rw-r--r-- 1 root root 18047 Dec 20 2017 alternatives.log
drwxr-x--- 2 root adm 4096 Dec 20 2017 apache2

Cada linha responde a um arquivo contido nesse diretório e cada parte dessa linha são
dividas da seguinte forma

Símbol Tipo de
o Arquivo Descrição

d diretorio Um arquivo usado para


armazenar outros
arquivos.

- arquivo Inclui arquivos legíveis,


regular arquivos de imagens,
arquivos binários e
arquivos compactados.

l link simbólico Aponta para outro


arquivo.

s tomada Permite a comunicação


entre processos.

p tubo Permite a comunicação


entre processos.

b bloquear Usado para se comunicar


arquivo com o hardware.

c arquivo de Usado para se comunicar


caracteres com o hardware.
-Permissões:

d rwxr-xr-x 2 root root 4096 Apr 11 2014 upstart

As permissões indicam como certos usuários podem acessar tal arquivo


-Contagem: de links físicos:

-rw-r----- 1 syslog adm 1346 Oct 2 22:17 auth.log

Esse numero demarcado mostra quantos links rígidos apontam para tal arquivo

-Proprietário do Usuário:

-rw-r----- 1 syslog adm 106 Oct 2 19:57 kern.log

O usuário syslog possui este arquivo. Toda vez que um arquivo é criado,
a propriedade é automaticamente atribuída ao usuário que o criou.

-Proprietário do Grupo:

-rw-rw-r-- 1 root utmp 292584 Oct 2 19:57 lastlog

Indica qual grupo possui este arquivo.

-Tamanho do arquivo:

-rw-r----- 1 syslog adm 19573 Oct 2 22:57 sylog

-Registro de data/hora

drwxr-xr-x 2 root root 4096 Dec 7 2017 fsck

Isso indica a hora em que o conteúdo do arquivo foi modificado pela


última vez.

-Nome do arquivo

-rw-r--r-- 1 root root 47816 Dec 7 2017 bootstrap.log


O campo final contém o nome do arquivo ou diretório.

Organizando:
As opções nos exemplos abaixo serão combinadas com a opção -l para
que os detalhes relevantes dos arquivos sejam exibidos. Campos de
aviso correspondentes à opção de pesquisa.

-t = classifica os arquivos por data/hora


-S= classifica por tamanho de arquivo
-r= inverte a ordem de qualquer tipo de classificação de menor para maior

Acesso administrativo:
Existem muitos comandos que lidam com senhas e outras coisas.
O comando “su” permite que você atue como outro usuário de forma temporária, ele
faz isso criando um novo Shell que fornece privilégios de administração.
Após executar o comando “su” é necessário aplicar a senha da máquina virtual (por
exemplo, a senha da máquina virtual do curso é netlab123):

sysadmin@localhost:~$ su -
Password: senha da maquina
root@localhost:~#

para sair do usuário e voltar ao usuário normal use o comando “exit”

root@localhost:~# exit
logout
sysadmin@localhost:~$

Comando “sudo”
O comando “sudo” permite que o usuário execute um novo comando em outro
usuário sem criar um novo shell:

sudo [OPTIONS] COMANDO

Considere o seguinte

O comando sudo também pode ser usado para alternar para outras
contas de usuário. Para especificar uma conta de usuário diferente, use a
opção -u.
Usando o comando “sudo sl” a maquina irá pedir para colocar a senha da máquina
(lembre-se que as senhas variam de máquina para maquina):

sysadmin@localhost:~$ sudo sl
[sudo] password for sysadmin:

Permissões:
As permissões determinam as maneiras como os usuários podem interagir com
arquivos e diretórios utilizando o comando “ls -l” para incluir as permissões de cada
arquivo/diretório.
Para exemplo, vamos usar um script chamado “hello.sh” que está no diretório
documents :
-Primeiro mude o diretório atual:

sysadmin@localhost:~$ cd ~/Documents

-Agora use o comando “ls -l”:

sysadmin@localhost:~/Documents$ ls -l hello.sh
-rw-r--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh

Observe o seguinte:

- rw-r--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh

O conjunto “rw” é para o usuário que possui o arquivo, se a conta atual for sua e do
proprietário as três primeiras tag de permissões não terão efeito.
O segundo conjunto “r--” é para o grupo que possui o arquivo, se a sua conta atual não
for do proprietário, mas for um membro desse grupo que tem o arquivo, as
permissões do grupo serão aplicadas e outras permissões não terão efeito.
Tipos de permissão:

Permissã Efeitos no Efeitos no


o arquivo diretório

ler (r) Permite que o Sem permissão


conteúdo do de execução no
arquivo seja lido diretório, permite
ou copiado. uma lista não
detalhada de
arquivos. Com
permissão de
execução, ls -
l pode fornecer
uma lista
detalhada.

escrever Permite que o Para que essa


(w) conteúdo seja permissão
modificado ou funcione, o
substituído. diretório também
Permite que deve ter
arquivos sejam permissão de
adicionados ou execução.
removidos de
um diretório.

executar Permite que um Permite que um


(x) arquivo seja usuário mude
executado como para o diretório
um processo, se os diretórios
embora os pai também
arquivos de tiverem
script exijam permissão de
Permissã Efeitos no Efeitos no
o arquivo diretório

permissão de execução.
leitura, também.

Alterando permissões de arquivo:

O comando “chmod” se usa para alterar as alterações de um arquivo ou diretório,


somente o usuário root ou que possui o arquivo é capaz de alterar as permissões.

-Método Simbólico:
Para usar o método simbólico de “chmod” de permissões esta sendo alterado:

chmod [ <CONJUNTO> <AÇAO><PERMISSÕES>]... ARQUIVO

Em seguida, especifique um símbolo de ação:

chmod [<CONJUNTO> <AÇAO> <PERMISSÕES>]... ARQUIVO

Signifi
Símbolo cado

u Usuár
io: o
usuári
o que
possu
io
arquiv
o.

g Grupo
:o
Signifi
Símbolo cado

grupo
que
possu
io
arquiv
o.

o Outro
s:
qualq
uer
pesso
a que
não
seja o
propri
etário
do
usuári
o ou
memb
ro do
propri
etário
do
grupo.

a Todos
:
refere
-se ao
usuári
o,
grupo
e
outro
s.

Simbol Significado
Signifi
Símbolo cado

+ Adicione a permissão,
se necessário

= Especifique a
permissão exata

- Remova a permissão,
se necessário

Finalmente, um espaço e os nomes de caminho para os arquivos


atribuírem essas permissões.

chmod [<CONJUNTO><AÇAO><PERMISSÕES>

O arquivo “hello.sh” usado nos exemplos é um script, o script é um arquivo que pode
ser executado, semelhante a um comando :

sysadmin@localhost:~/Documents$ ls -l hello.sh
-rw-r--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh

Porém, atualmente a permissão não esta definida para nenhum dos grupos:

-rw-r--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh

Como o sistema está como o usuário “syasadmin” e esse usuário é o proprietário desse
arquivo oque oferece a permissão de execução deve permitir que você execute este
script. Usando a tag “chmod” com o caractere “u” para representar o conjunto de
permissões do proprietário e o caractere “+” para indicar a permissão esta sendo
adicionado e a letra “x” para representar a permissão da execução, executando dessa
forma:

sysadmin@localhost:~/Documents$ chmod u+x hello.sh


se não houver nenhuma saída, significa que o comando foi bem sucedido. Se for feito
da maneira certa use a tag “ls-l” para mostrar a seguinte saída

sysadmin@localhost:~/Documents$ ls -l hello.sh
-rwxr--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh

Isso significa que o proprietário do usuário agora tem a permissão de execução.

Alterando a propriedade do arquivo:

o propietario de um arquivo é o usuário que cria. Alterar o proprietário de arquivos e


diretórios precisa de acesso administrativo, um usuário regular não pode usar a tag
“chmod” para alterar o propietario de um arquivo, mesmo para dar a propriedade de
um de seus próprios arquivos a outro usuário. No entanto, a tag “chown” também
permite alterar a propriedade do grupo, o que pode ser feito pela root ou o
proprietário do arquivo.
Para mudar o propietario do usuário de um arquivo. A seguinte sintaxe pode ser usada

chown [OPÇÕES] [PROPRIETÁRIO] ARQUIVO

(Lembre-se de mudar o diretório usando a tag “cd”)


Por exemplo, todos os arquivos na pasta “Documents” são da propriedade do
“sysadmin” (incluindo o script “hello.sh”), para alternar pro usuário root use “root”
como primeiro argumento e “hello.sh” como segundo. Não esqueça da tag “sudo” para
ter os privilégios de administrador.
Se o propietario foi alterado, use a tag “ls-l”. use o argumento para limitar a saída:

sysadmin@localhost:~/Documents$ ls -l hello.sh
-rwxr--r-- 1 root sysadmin 647 Dec 20 2017 hello.sh

O campo propietario agora é o root. Porem se tentar executar o script ele vai falhar:

sysadmin@localhost:~/Documents$ ./hello.sh
-bash: ./hello.sh: Permission denied

Apenas o propietario tem a permissão de execução e agora o usuario root é o


propietario do usuario, O arquivo agora precisa de acesso administrativo para ser
executado, por isso lembre-se de usar o comando “sudo” como usario root
sysadmin@localhost:~/Documents$ sudo ./hello.sh
[sudo] password for sysadmin:

Exibindo arquivos:
No Linux, existe comandos para visualizar o conteúdo do arquivo, a tag “cat” é usado
para visualizar de forma rápida o conteúdo de arquivos pequenos.
A tag “cat” exibira todo o arquivo, por isso é recomendado para arquivos pequenos.
A sintaxe para esse comando é a seguinte:

cat [OPÇÕES] [ARQUIVO]

Vamos usar o exemplo de um arquivo txt chamado “animals.txt”


Use a tag “cat” e o arquivo txt:

sysadmin@localhost:~/Documents$ cat animals.txt


1 retriever
2 badger
3 bat
4 wolf
5 eagle

O comando cat exibe todas as cinco linhas do arquivo acima. Ao


visualizar arquivos maiores, o comando cat pode resultar em uma saída
muito longa que não pode ser pausada para rolar.

Outras maneiras de ver o conteúdo dos arquivos é a tag “head” e “tail”.


Essas tags

São usadas para exibir um numero selecionado de linhas na parte superior ou inferior
do arquivo , a sintaxe desses comandos são iguais a do comando “cat”
Vamos usar o exemplo txt de “alpha.txt” com tag “head”:
sysadmin@localhost:~/Documents$ head alpha.txt
A is for Apple
B is for Bear
C is for Cat
D is for Dog
E is for Elephant
F is for Flower

Agora com o a tag “tail”:

sysadmin@localhost:~/Documents$ tail alpha.txt


Q is for Quark
R is for Rat
S is for Sloth
T is for Turnip
U is for Up
V is for Velvet

Copiando Arquivos:
Criar cópias de arquivos pode ser útil por vários motivos:

 Se uma cópia de um arquivo for criada antes que as alterações


sejam feitas, é possível voltar ao original.
 Uma cópia de um arquivo pode ser usada para transferir um
arquivo para dispositivos de mídia removíveis.
 Uma cópia de um documento existente pode ser usada como
modelo para um novo documento.

Utilizamos a tag “cp” com a seguinte sintaxe:

cp [OPÇÕES] FONTE DESTINO

vamos usar o exemplo de passar o arquivo /etc/passwd para o diretório atual


(Documents), use o seguinte comando:

sysadmin@localhost:~/Documents$ cp /etc/passwd .

“Nota
O segundo argumento é caratere (.). Lembre-se da seção Alterando
Diretórios que é um atalho que representa o diretório atual.”

O resultado dessa execução sera a criação do arquivo /etc/passwd no diretório


Documents
Importante:
As permissões podem ter um impacto nos comandos de gerenciamento
de arquivos, como o comando cp. Para copiar um arquivo, é necessário
ter permissão de execução para acessar o diretório onde o arquivo está
localizado e a permissão de leitura para o arquivo que está sendo
copiado.
Também é necessário ter permissão de gravação e execução no diretório
para o qual o arquivo está sendo copiado. Normalmente, há dois lugares
onde você sempre deve ter permissão de gravação e execução no
diretório: seu diretório home e o diretório /tmp.

Outra forma de copiar arquivos:

O comando dd é um utilitário para copiar arquivos ou partições inteiras


no nível de bits.

Este comando tem vários recursos úteis, inclusive:

 Pode ser usado para clonar ou excluir (limpar) discos ou partições


inteiros.
 Pode ser usado para copiar dados brutos para dispositivos
removíveis, como unidades USB e CDROMs.
 Pode fazer backup e restaurar o MBR (Master Boot Record).
 Pode ser usado para criar um arquivo de tamanho específico
preenchido com zeros binários, que pode ser usado como um
arquivo de swap (memória virtual).

Usamos a seguinte sintaxe para a tag “dd”:

dd [OPÇÕES] OPERANDO

Vamos supor que o arquivo /tmp/swapex tem 50 blocos de zeros ,oque equivale a
um megabyte, utilizamos o seguinte código:

sysadmin@localhost:~$ dd if=/dev/zero of=/tmp/swapex bs=1M count=50

O comando dd usa argumentos especiais para especificar como ele


funcionará. A seguir ilustra alguns dos argumentos mais comumente
usados:
Argumen
to Descrição

if Arquivo de entrada: O arquivo de entrada a ser lido.

dd if=/dev/zero of=/tmp/swapex bs=1M count=50

O exemplo lê do arquivo /dev/zero, um arquivo


especial contendo um número ilimitado de zeros.

of Arquivo de saída: O arquivo de saída a ser gravado.

dd if=/dev/zero of=/tmp/swapex bs=1M count=50

bs Tamanho do bloco: O tamanho do bloco a ser


usado. Por padrão, o valor é considerado em bytes.
Use os seguintes sufixos para especificar outras
unidades: K, M, G e T para kilobytes, megabytes,
gigabytes e terabytes respectivamente.

dd if=/dev/zero of=/tmp/swapex bs=1M count=50

O exemplo usa um tamanho de bloco de um


megabyte.

count Contagem: O número de blocos a serem lidos a


partir do arquivo de entrada.

dd if=/dev/zero of=/tmp/swapex bs=1M count=50

O comando de exemplo lê 50 blocos.

Importante:
Nenhum tamanho de bloco ou contagem precisa ser especificado ao
copiar em dispositivos inteiros. Por exemplo, para clonar de um disco
rígido (/dev/sda) para outro (/dev/sdb) execute o seguinte comando:
dd if=/dev/sda of=/dev/sdb

Mover Arquivos:
A tag “mv” é usado para mover um arquivo de um local do sistema para o outro sando
a seguinte sintaxe:

mv FONTE DESTINO
O primeiro argumento é o caminho para o arquivo ser movido e o segundo argumento
é o destino do arquivo movido, muitas vezes os arquivos movidos são chamados de
origem e o local que o arquivo a ser movido como destino.
Vamos mover o arquivo “people.csv” para a pasta “work”:

sysadmin@localhost:~/Documents$ mv people.csv Work

Se um arquivo for movido de um diretório para outro sem especificar um


novo nome para o arquivo, ele manterá seu nome original. A
movimentação acima pode ser confirmada usando o comando ls no
diretório Work

Caso você queira mover vários arquivos, use a tag “mv”:

sysadmin@localhost:~/Documents$ mv numbers.txt letters.txt alpha.txt


School
sysadmin@localhost:~/Documents$ ls School
Art Engineering Math alpha.txt letters.txt numbers.txt

Mover um arquivo dentro do mesmo diretório é uma boa forma maneira


de mudar o nome do arquivo, por exemplo, vamos mudar o “animals.txt”

mv animals.txt zoo.txt

Importante:
Mover um arquivo requer permissões de gravação e execução tanto nos diretórios e
destinos.
Removendo Arquivos:
Caso você queira deletar algum arquivo, use a tag “rm” com a seguinte sintaxe:

rm [OPÇÕES] ARQUIVO

mas lembre-se que os arquivos deletados não entram em uma lixeira como ocorre no
Windows por exemplo, no Linux, esse arquivo é deletado permanentemente, vamos
usar o exemplo de remover o arquivo “linux.txt”:

sysadmin@localhost:~/Documents$ rm Work
rm: cannot remove 'Work': Is a directory
sysadmin@localhost:~/Documents$ rm -r Work
sysadmin@localhost:~/Documents$ ls Work
ls: cannot access Work: No such file or directory
O comando “rm” ignora os diretórios que é solicitado a excluir, para remover um
diretório use opções recursivas, como “-r” ou “-R”:

sysadmin@localhost:~/Documents$ rm Work
rm: cannot remove 'Work': Is a directory
sysadmin@localhost:~/Documents$ rm -r Work
sysadmin@localhost:~/Documents$ ls Work
ls: cannot access Work: No such file or directory

Considere isto

As permissões podem ter um impacto nos comandos de gerenciamento


de arquivos, como o comando rm.
Para excluir um arquivo dentro de um diretório, um usuário deve ter
permissão de gravação e execução em um diretório. Normalmente, os
usuários regulares só têm esse tipo de permissão em seu diretório
(home) pessoal e seus subdiretórios.

Filtragem de Entrada:
a tag “grep” irá fazer um filtro de texto que irá procurar linhas de entrada e retorno
que contêm a correspondência de um padrão:

grep [OPÇÕES] PADRÃO [ARQUIVO]

o arquivo “passwd” que copiamos anteriormente contém detalhes de contas especiais


e usuários no sistema, o arquivo é grande mas com o comando “grep” podemos filtrar
as informações de um usuário específico ,por exemplo, o usuário sysadmin:

sysadmin@localhost:~/Documents$ grep sysadmin passwd


sysadmin:x:1001:1001:System Administrator,,,,:/home/sysadmin:/bin/bash

O comando acima retornou a linha do passwd que contém


o sysadmin padrão. O exemplo usado é simples, porém a tag “grep” pode
criar padrões mais complexos:
-Expressões regulares:

As expressões tem formas comuns básica e estendida, a maioria dos


comandos regulares utilizam expressões básicas, no entanto, extensões
regulares estendidas não são disponíveis para todos os comandos e uma
opção de comando é necessária para que funcione.

A tabela a seguir resume os caractere básicos de expressão regular:

Caracteres Regex
básicos Significado

. Qualquer caractere único

[ ] Qualquer caractere especificado

[^ ] Não é o caractere especificado

* Zero ou mais caracteres anteriores

^ Se o primeiro caractere do padrão, o


padrão deve estar no início da linha
para corresponder, caso contrário,
apenas um literal ^

$ Se o último caractere do padrão, o


padrão deve estar no final da linha
para corresponder, caso contrário,
apenas um literal $

A próxima tabela resume as expressões regulares estendidas, que deve


ser usada com a tag “egrep” ou “-E” com o comando “grep”:

Caracteres Regex
extendidos Significado

+ Um ou mais do padrão anterior


Caracteres Regex
extendidos Significado

? O padrão anterior é opcional

{ } Especifique correspondências
mínimas, máximas ou exatas do
padrão anterior

| Alternação - um "ou" lógico

( ) Usado para criar grupos

-Padrões básicos

Expressões regulares podem ser expandidas para corresponder a


determinadas sequencias de caracteres

 Caracteres Ancora:
Caracteres âncora são uma das formas como expressões regulares
podem ser usadas para restringir os resultados da pesquisa. Por
exemplo, a root padrão aparece muitas vezes no
arquivo /etc/passwd:

sysadmin@localhost:~/Documents$ grep 'root' passwd


root:x:0:0:root:/root:/bin/bash
operator:x:1000:37::/root:

O primeiro caractere âncora ^ é usado para garantir que um padrão


apareça no início da linha. Por exemplo, para encontrar todas as linhas
em /etc/passwd que começam com root use o padrão ^root. Observe
que ^ deve ser o primeiro caractere no padrão para ser efetivo.

Pode usar também caractere específicos que aparecem nos arquivos:

sysadmin@localhost:~/Documents$ grep 'r$' alpha-first.txt


B is for Bear
F is for Flower
Para o próximo exemplo, primeiro examine o arquivo alpha-first.txt. O
comando cat pode ser usado para imprimir o conteúdo de um arquivo:

sysadmin@localhost:~/Documents$ cat alpha-first.txt


A is for Animal
B is for Bear
C is for Cat
D is for Dog
E is for Elephant
F is for Flower

 Combine um Único caractere com .


Vamos usar um arquivo exemplo chamado “red.txt”:

sysadmin@localhost:~/Documents$ cat red.txt


red
reef
rot
reeed
rd
rod
roof
reed
root
reel
read

Uma das expressões mais uteis é o caractere “..” ele vai corresponder a
qualquer caractere, exceto para nova linha de caractere, o padrão “r..f” vai
encontrar qualquer linha que contenha letra “r” e em seguida a letra “f”:

sysadmin@localhost:~/Documents$ grep 'r..f' red.txt


reef
roof

esse caractere pode ser usado varias vezes.

 Corresponder um único caractere com []


Os colchetes [] correspondem a um único caractere da lista ou em um
intervalo:

sysadmin@localhost:~/Documents$ grep '[0-9]' profile.txt


I am 37 years old.
3121991
I have 2 dogs.
123456789101112

Se você preferir encontrar todas linhas que contem caractere sem ser
números, insira um ^ como primeiro caractere:

sysadmin@localhost:~/Documents$ grep '[^0-9]' profile.txt


Hello my name is Joe.
I am 37 years old.
My favorite food is avocados.
I have 2 dogs.

Nota

Não confunda [^0-9] para corresponder às linhas que não contêm


números. Na verdade, corresponde a linhas que contêm não-números.
Olhe para o arquivo original para ver a diferença. A terceira e a sexta
linhas contêm apenas números, elas não contêm os não-números então
essas linhas não correspondem.

 Combine um personagem ou padrões repetidos com *


O caractere de expressão regular * é usado para corresponder zero ou mais
ocorrências de um caractere ou padrão que o precede. Por
exemplo e* corresponderia a zero ou mais ocorrências da letra e:
sysadmin@localhost:~/Documents$ grep 're*d' red.txt
red
reeed

Também é possível combinar zero ou mais ocorrências de uma lista de


caracteres utilizando os colchetes. O padrão [oe]* usado no exemplo a
seguir corresponderá a zero ou mais ocorrências do caractere o ou do
caractere e:

sysadmin@localhost:~/Documents$ grep 'r[oe]*d' red.txt


red
reeed
rd
rod
reed

Quando usado com apenas um outro caractere, * não é muito útil.


Qualquer um dos padrões a seguir corresponderia a cada string ou linha
no arquivo: .* e* b* z*:

sysadmin@localhost:~/Documents$ grep 'e*' red.txt


red
reef
rot
reeed
rd
rod
roof
reed
root
reel
read

 Entrada padrão:
Se um nome de arquivo não for fornecido, o comando “grep” será lido a partir
de entrada padrão que normalmente vem do teclado fornecido pelo usuário

Desligando:
O comando “shutdown” faz com que o sistema faz o sistema ser desligado de forma
segura e todos os usuários conectados serão notificados do desligamento (esse
comando requer o acesso administrativo):

root@localhost:~# shutdown now

Broadcast message from sysadmin@localhost


(/dev/pts/0) at 2:05 ...

The system is going down for maintenance NOW!

Diferente de outros comandos para desligar o sistema, o comando “shutdown” requer


um argumento de tempo especificando quando o desligamento vai ocorrer, esse
argumento pode ser como: palavra (“now”), hora do dia (“hh:mm”) ou número de
minutos para atrasar (“+minutos”):

root@localhost:~# date
Sat Oct 3 22:15:58 UTC 2020
root@localhost:~# shutdown 01:51

Broadcast message from sysadmin@localhost


(/dev/pts/0) at 1:50 ...

The system is going down for maintenance in 1 minute!

Broadcast message from sysadmin@localhost


(/dev/pts/0) at 1:51 ...

The system is going down for maintenance NOW!


E também podem ter comentários:

root@localhost:~# shutdown +1 "Goodbye World!"

Broadcast message from sysadmin@localhost


(/dev/pts/0) at 3:07 ...

The system is going down for maintenance in 1 minute!


Goodbye World!
shutdown: Unable to shutdown system
root@localhost:~#
Broadcast message from sysadmin@localhost
(/dev/pts/0) at 3:08 ...

The system is going down for maintenance NOW!


Goodbye World!
Configuração de Rede:
O comando “ifconfig” é usado para exibir informações sobre configuração de rede
usando a seguinte sintaxe:

ifconfig [OPÇÕES]

Nota

O comando iwconfig é semelhante ao comando ifconfig, mas é


dedicado a interfaces de rede sem fio.

root@localhost:~# ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:c0:a8:01:02
inet addr:192.168.1.2 Bcast:192.168.1.255
Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:59 errors:0 dropped:0 overruns:0 frame:0
TX packets:86 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4346 (4.3 KB) TX bytes:5602 (5.6 KB)

lo Link encap:Local Loopback


inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:2 errors:0 dropped:0 overruns:0 frame:0
TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:100 (100.0 B) TX bytes:100 (100.0 B)

A informação importante a analisar é o endereço IPv4 do dispositivo de


rede principal “eth0” é 192.168.1.2 e o dispositivo (UP):
Considere o seguinte
O dispositivo lo é referido como o dispositivo de loopback. É um dispositivo de rede
especial usado pelo sistema ao enviar dados baseados em rede para si mesmo.

O comando “ifconfig” também pode ser usado para modificar temporariamente as


config/ de rede, mas é bastante raro.

O comando ping é usado para verificar a conectividade entre dois computadores, ele
faz isso mandando pacotes para a outra máquina, se o remetente receber uma
resposta deverá ser possível se conectar com essa máquina, esses pacotes vão ser
enviados até o comando “break” seja inserido (para limitar a quantidade de pacotes
use a tag “-c e o número que deseja limitar” ex: “-c 5)
Se o comando funcionar irá aparecer a seguinte mensagem:

root@localhost:~# ping -c 4 192.168.1.2


PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
64 bytes from 192.168.1.2: icmp_req=1 ttl=64 time=0.051 ms
64 bytes from 192.168.1.2: icmp_req=2 ttl=64 time=0.064 ms
64 bytes from 192.168.1.2: icmp_req=3 ttl=64 time=0.050 ms
64 bytes from 192.168.1.2: icmp_req=4 ttl=64 time=0.043 ms

--- 192.168.1.2 ping statistics ---


4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.043/0.052/0.064/0.007 ms
root@localhost:~#

Se falhar irá aparecer a seguinte:

root@localhost:~# ping -c 4 192.168.1.3


PING 192.168.1.3 (192.168.1.3) 56(84) bytes of data.
From 192.168.1.2 icmp_seq=1 Destination Host Unreachable
From 192.168.1.2 icmp_seq=2 Destination Host Unreachable
From 192.168.1.2 icmp_seq=3 Destination Host Unreachable
From 192.168.1.2 icmp_seq=4 Destination Host Unreachable

--- 192.168.1.3 ping statistics ---


4 packets transmitted, 0 received, +4 errors, 100% packet loss, time
3065ms
pipe 4

O comando “ping” pode falhar mesmo se a máquina remota esteja se conectando, isso
acontece porque alguns administradores configuram suas máquinas ou redes para não
responder ao comando “ping”. O comando “ping” também funciona com um nome de
host/ nome de domínio, por exemplo yahoo.com, usando este primeiro, se o
comando ping for bem-sucedido, haverá uma resolução apropriada do nome e o
endereço IP também estará funcionando corretamente.

Exibindo processos:
A execução de um comando resulta em processos, no Linux processos são executados
com privilégio dos usuários que executam o comando, oque permite que esses
processos sejam limitados com base no usuário.
O comando “ps” pode ser usado para listar os processos:

sysadmin@localhost:~$ ps
PID TTY TIME CMD
80 pts/0 00:00:00 bash
94 pts/0 00:00:00 ps

A saída desse comando exibira as seguintes informações:

 PID: O identificador do processo, que é exclusivo para o processo.


Esta informação é útil para controlar o processo pelo seu número
de identificação.
 TTY: O nome do terminal em que o processo está sendo executado.
Esta informação é útil para distinguir entre diferentes processos
que têm o mesmo nome.
 TIME: A quantidade total de tempo do processador usado pelo
processo. Normalmente, essas informações não são usadas por
usuários comuns.
 CMD: O comando que iniciou o processo.
Você pode usar também o argumento “-e” para exibir todos os processos:

sysadmin@localhost:~$ ps -e
PID TTY TIME CMD
1 pts/0 00:00:00 init
33 ? 00:00:00 rsyslogd
37 ? 00:00:00 cron
39 ? 00:00:00 sshd
56 ? 00:00:00 named
69 pts/0 00:00:00 login
79 pts/0 00:00:00 bash
94 pts/0 00:00:00 ps

E também pode usar o argumento “-f” para exibir mais detalhes na saída, se quiser
usar os dois argumentos use “-ef”:

sysadmin@localhost:~$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 19:16 pts/0 00:00:00 /sbin??? /init
syslog 33 1 0 19:16 ? 00:00:00 /usr/sbin/rsyslogd
root 37 1 0 19:16 ? 00:00:00 /usr/sbin/cron
root 39 1 0 19:16 ? 00:00:00 /usr/sbin/sshd
bind 56 1 0 19:16 ? 00:00:00 /usr/sbin/named -u
bind
root 69 1 0 19:16 pts/0 00:00:00 /bin/login -f
sysadmin 79 69 0 19:16 pts/0 00:00:00 -bash
sysadmin 95 79 0 19:43 pts/0 00:00:00 ps -ef

Gerenciando, Instalando, Atualizando e Deletando Pacotes:


-Gerenciando:
Gerenciar pacotes é o sistema pelo qual o software pode instalar, atualizar e remover
de um sistema de arquivos. No Linux existem diversos tipo de software de
gerenciamento, mas os principais são o Debian e a Red Hat.
-Instalando:
Os arquivos de pacote são instalados diretamente dos repositórios em servidores na
internet,uma boa pratica é sempre atualizar a lista de pacote usando o comando “apt-
get update” :

sysadmin@localhost:~$ sudo apt-get update


[sudo] password for sysadmin:
Ign file: amd64/ InRelease
Ign file: amd64/ Release.gpg
Ign file: amd64/ Release
Reading package lists... Done

Para procurar a chave desses pacotes use o comando: "apt-cache search”:

apt-cache search [palavra chave]

a chave deve corresponder a parte do nome/descrição que o pacote está localizado.


Para encontrar palavras pacotes com a palavra-chave use o comando “cow”:

sysadmin@localhost:~$ apt-cache search cow


cowsay - configurable talking cow

após achar o pacote que deseja, use o comando “apt-get install”:

sysadmin@localhost:~$ sudo apt-get install cowsay


[sudo] password for sysadmin:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
filters
The following NEW packages will be installed:
cowsay
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/18.5 kB of archives.
After this operation, 90.1 kB of additional disk space will be used.
Selecting previously unselected package cowsay.
(Reading database ... 24313 files and directories currently
installed.)
Preparing to unpack .../cowsay_3.03+dfsg1-6_all.deb ...
Unpacking cowsay (3.03+dfsg1-6) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Setting up cowsay (3.03+dfsg1-6) ...

-Atualizando:
O comando apt-get install também pode atualizar um pacote, se esse pacote estiver
instalado e uma versão mais recente estiver disponível. Se o pacote ainda não estiver
no sistema, ele será instalado; se estiver no sistema, ele será atualizado
automaticamente.
A atualização deve ser feita em duas etapas: primeiro , atualize o cache de todos os
pacotes disponíveis com o comando “apt-get update”, em seguida execute o comando
“apt-get upgrade”:

sysadmin@localhost:~$ sudo apt-get update


[sudo] password for sysadmin:
Ign file: amd64/ InRelease
Ign file: amd64/ Release.gpg
Ign file: amd64/ Release
Reading package lists... Done
sysadmin@localhost:~$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

-Removendo:
Um administrador tem acesso para executar o comando “apt-get remove” para
remover um pacote ou comando “apt-get purge” para limpar completamente o
sistema:

apt-get remove [pacote]


apt-get purge [pacote]
Por exemplo, para limpar cowsay completamente, execute o seguinte comando.
Digite Y quando solicitado:

sysadmin@localhost:~$ sudo apt-get purge cowsay


Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
cowsay*
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 90.1 kB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 24377 files and directories currently
installed.)
Removing cowsay (3.03+dfsg1-6) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...

Atualizando senhas do usuário:


O comando “passw” é usado para atualizar a senha de um usuário. Os usuários podem
atualizar as suas senhas enquanto o root pode atualizar a senha de qualquer usuário:

passwd [OPÇÕES] [UTILIZADOR]

após digitar o comando o sistema irá pedir para inserir a senha existente e inserir a
nova senha duas vezes seguidas:

sysadmin@localhost:~$ passwd
Changing password for sysadmin.
(current) UNIX password: netlab123
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

Se o usuário quiser exibir informações de status sobre sua senha, ele pode usar a
opção -S:

sysadmin@localhost:~$ passwd -S sysadmin


sysadmin P 12/20/2017 0 99999 7 -1

Os campos de saída são explicados abaixo:

Campo Exemplo Significado

User sysadmin O nome do usuário.


Name

Password P P indica uma senha utilizável.


Status
L indica uma senha bloqueada.

NP indica que não há senha.

Change 03/01/2015 A data em que a senha foi alterada


Date pela última vez.

Minimum 0 O número mínimo de dias que deve


passar antes que a senha atual possa
ser alterada pelo usuário.

Maximum 99999 O número máximo de dias restantes


para a senha expirar.

Warn 7 O número de dias antes da expiração


da senha que o usuário é avisado.

Inactive -1 O número de dias após a expiração da


senha que a conta do usuário
permanece ativa.
Se o usuário root quiser alterar a senha para “sysadmin” ele vai executar o seguinte
comando:

root@localhost:~# passwd sysadmin


Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

Redirecionamento:
Linux tem editores de texto que pode ser usado para adicionar conteúdo dentro de um
arquivo. Existe a forma usando as linhas de comando chamado de redirecionamento
de entrada/saída (I/O), o redirecionamento de I/O permite que as informações na
linha de comando sejam enviadas para arquivo , dispositivos e outros comandos, é
como se fosse uma série de trilhos , onde tem um “switch” que pode ser habilitado
para levar a saída de um comando em uma faixa diferente para que ele vá para outro
lugar no shell.
Quando se fala de entrada e saída de comando existem três caminhos que são
chamados de “descritores de arquivos”: a primeira forma é Standard Input(Entrada
padrão) ou STDIN é quando a informação que o comando recebe e processa quando é
executado, especificamente quando o usuário digita no teclado . A segunda forma é a
Standard Output(Saida padrão) ou STDOUT é a informação exibida , a saída do
comando e a terceira forma Standard Erro(erro padrão) ou STDERR, erro padrão são as
mensagem de erro que gera quando o comando não é executado corretamente:
STDIN:

sysadmin@localhost:~$ ls ~/Documents

STDOUT:

Desktop Documents Downloads Music Pictures Public Templates


Videos

STDERR:

sysadmin@localhost:~$ ls fakefile

ls: cannot access fakefile: No such file or directory


veremos mais sobre o STDOUT e como redirecionar o STDOUT de onde normalmente é
visto.
Para usar o redirecionamento use o caractere >junto com o nome do arquivo:

[COMANDO] > [ARQUIVO]

Vamos usar a saída de comando “cat” que será exibida no terminal:

sysadmin@localhost:~/Documents$ cat food.txt


Food is good.

Agora use o caractere > para redirecionar o STDOUT do comando “cat food.txt” acima
para um novo arquivo chamado newfile1.txt:

sysadmin@localhost:~/Documents$ cat food.txt > newfile1.txt


sysadmin@localhost:~/Documents$

Lembre-se de verificar se o comando “cat food.txt” está em “newfile1.txt”:

sysadmin@localhost:~/Documents$ cat newfile1.txt


Food is good.

Se você precisar adicionar um comentário/nota no arquivo use o comando “echo” para


imprimir a saída no terminal:

sysadmin@localhost:~/Documents$ echo "Hello"


Hello
sysadmin@localhost:~/Documents$

Use também o comando “echo” como redirecionamento no arquivo “newfile1.txt”:

sysadmin@localhost:~/Documents$ cat newfile1.txt


Food is good.
sysadmin@localhost:~/Documents$ echo "I like food." > newfile1.txt
sysadmin@localhost:~/Documents$ cat newfile1.txt
I like food.
sysadmin@localhost:~/Documents$
se você precisar anexar uma mensagem ao invés de substituir use o caractere > duas
vezes (>>):

sysadmin@localhost:~/Documents$ echo "This food is good." >>


newfile1.txt
sysadmin@localhost:~/Documents$ cat newfile1.txt
I like food.
This food is good.
sysadmin@localhost:~/Documents$

Lembre-se: o usuário deve ter permissões gravadas nesse arquivo, para


redirecionar

Editor de texto:
O principal editor de texto para Linux é o UNIX chamdo como “vi” em forma de
comando e existem editores menores (nano) e editores enormes (emacs), mas existem
varias vantagens de usar o editor “vi”:
 O editor vi está disponível em todas as distribuições Linux do mundo. Isto não é
verdade para qualquer outro editor.
 O editor vi pode ser executado tanto em uma CLI (interface de linha de
comando) quanto em uma GUI (interface gráfica do usuário).
 Embora novos recursos tenham sido adicionados ao editor vi, as funções
principais já existem há décadas. Isso significa que se alguém aprendeu o
editor vi na década de 1970, eles poderiam usar uma versão moderna sem
qualquer problema. Embora pareça trivial, pode não parecer tão trivial daqui a
20 anos.
Para usar o “vi” digite o comando o comando seguido do nome do arquivo para editar
ou criar:

sysadmin@localhost:~$ vi newfile.txt

existem três formas de usar o “vi”:


-Movimento do modo do comando:
movimento no Vi consistem em um movimento e um prefixo numérico opcional que
indica quantas vezes esse movimento deve ser repetido. O formato geral desses
comandos é o seguinte: [comando de movimento] [prefixo numérico]. O programa Vi
inicia no modo de comando, onde você pode inserir comandos para várias ações,
como navegar em um documento, editar texto e acessar outros modos. Para retornar
ao modo de comando a qualquer momento, basta pressionar a tecla "Esc". Quando há
texto no documento, é necessário pressionar "Esc" antes de executar ações como
mover o cursor. Isso pode parecer trabalhoso, mas lembre-se de que o Vi é projetado
para ser usado em um ambiente de terminal onde um mouse não é útil. Os comandos
de:

[contagem] movimento

A tabela a seguir resume as teclas de movimento disponíveis:

Movimento Resultado

h Deixou um caractere

j Abaixo uma linha

k Acima uma linha

l Um caractere à direita

w Uma palavra para a frente

b Uma palavra atrás

^ Início da linha

$ Fim da linha

-Ações do modo de comando:


A convenção padrão para edição de conteúdo com processadores de texto é usar
copiar, cortar e colar. O programa vi não tem nenhum destes. Em vez disso, vi usa os
três comandos a seguir:

Padrão Vi Significado

cut d deletar
Padrão Vi Significado

copy y copiar

paste P | p colar

Os movimentos aprendidos na página anterior são usados para


especificar onde a ação deve ocorrer, sempre começando com a
localização atual do cursor. Qualquer um dos seguintes formatos gerais
para comandos de ação é aceitável:

açao [contagem] movimento


[contagem] movimento ação

-Excluir:
Excluir remove o texto indicado da página e o guarda no buffer, sendo o
buffer o equivalente à “área de transferência” usada no Windows ou Mac
OSX. A tabela a seguir fornece alguns exemplos de uso comuns:

Ação Resultado

dd Excluir linha atual

3dd Excluir as próximas três linhas

dw Excluir a palavra atual

d3w Excluira as próximas três palavras

d4h Excluir quatro caracteres à esquerda


-Mudar:
Mudança é muito semelhante a excluir; o texto é removido e guardado no
buffer, no entanto, o programa é alternado para o modo de inserção para
permitir alterações imediatas no texto. A tabela a seguir fornece alguns
exemplos de uso comuns:

Ação Resultado

cc Mudar linha atual

cw Mudar palavra atual

c3w Mudar as próximas três palavras

c5h Mudar cinco caracteres para a esquerda

-Arrancar:
Yank coloca conteúdo no buffer sem excluí-lo. A tabela a seguir fornece
alguns exemplos de uso comuns:

Ação Resultado

yy Arranque a linha atual

3yy Arranque as próximas três linhas

yw Arranque as próximas três linhas


Ação Resultado

y$ Arranque até o fim da linha

-Colocar:
O colocar, posiciona o texto guardado no buffer antes ou depois da posição do cursor.
Observe que estas são as duas únicas opções, o colocar não usa os movimentos como
os comandos de ação anteriores.

Ação Resultado

p Colocar (colar) após o cursor

P Colocar antes do cursor

-Pesquisando em vi:
Outra função padrão que os processadores de texto oferecem é o encontrar. Muitas
vezes, as pessoas usam CTRL-F ou observam o menu de edição. O programa vi usa a
pesquisa. O pesquisar é mais eficiente do que o encontrar porque suporta padrões de
texto literal e expressões regulares.
Para pesquisar a partir da posição atual do cursor, use / para iniciar a pesquisa, digite
um termo de pesquisa e pressione a tecla Enter para iniciar a pesquisa. O cursor se
moverá para a primeira correspondência que for encontrada.
Para prosseguir para a próxima correspondência usando o mesmo padrão, pressione a
tecla n. Para voltar a uma partida anterior, pressione a tecla N. Se o fim ou o início do
documento for atingido, a pesquisa se estenderá automaticamente para o outro lado
do documento.
Para começar a pesquisar para trás a partir da posição do cursor, comece esc
revendo ?, depois digite o padrão para procurar correspondências e pressione a
tecla Enter.

-Modo de Inserção:
O modo de inserção é usado para adicionar texto ao documento. Há
algumas maneiras de entrar no modo de inserção a partir do modo de
comando, cada uma diferenciada por onde a inserção de texto começará.
A tabela a seguir abrange o mais comum:

Entrad
a Objetivo

a Entrar no modo de inserção logo após o cursor

A Entrar no modo de inserção no final da linha

i Entrar no modo de inserção logo antes do cursor

I Entrar no modo de inserção no início da linha

o Entrar no modo de inserção em uma linha em branco


após o cursor

O Entrar no modo de inserção em uma linha e

-Ex Mode:
Originalmente, o editor vi era chamado de editorex. O nome vi era a abreviação do
comando visual no editor ex que mudou o editor para o modo “visual”.
No modo normal original, o editor ex só permitia aos usuários ver e modificar uma
linha de cada vez. No modo visual, os usuários podiam ver o máximo possível do
documento que caberia na tela. Como a maioria dos usuários preferia o modo visual
ao modo de edição de linha, o arquivo ex programa foi vinculado a um arquivo vi, para
que os usuários pudessem iniciar ex diretamente no modo visual quando executassem
o link vi.
Eventualmente, o arquivo de programa real foi renomeado vi e o editor ex tornou-se
um link que apontava o editor vi.
Quando o modo ex do editor vi está sendo usado, é possível visualizar ou alterar
configurações, bem como executar comandos relacionados a arquivos, como abrir,
guardar ou interromper alterações em um arquivo. Para chegar ao modo ex, digite um
caractere : no modo de comando. A tabela a seguir lista algumas ações comuns
executadas no modo ex:

Entrada Objetivo

:w Salvar o arquivo atual no sistema de


arquivos

:w nome_do_arquiv Salvar uma cópia do arquivo atual


o
como nome_do_arquivo

:w! Forçar salvar arquivo atual

:1 Vá para a linha número 1 ou qualquer


número fornecido

:e nome_do_arquiv Abrir nome_do_arquivo


o

:q Sair se nenhuma alteração for feita no


arquivo

:q! Sair sem salvar as alterações no arquivo

Considere o seguinte

Embora o modo ex ofereça várias maneiras de salvar e sair, também


há ZZ que está disponível no modo de comando; este é o equivalente
a :wq. Existem muitas mais funções sobrepostas entre o modo ex e o
modo de comando. Por exemplo, o modo ex pode ser usado para navegar
para qualquer linha no documento, digitando : seguido do número da
linha, enquanto o G pode ser usado no modo de comando como
demonstrado anteriormente.
Acompanhe

Se você tiver um arquivo de texto aberto, saia dele executando


o :q! comando. Isso será encerrado sem salvar as alterações.
~
~
:q!_

Você também pode gostar