Escolar Documentos
Profissional Documentos
Cultura Documentos
O que é Linux?
Linux é um sistema operacional executado em um sistema de computador de
hardware
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
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
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
sysadmin@localhost:~$ cd Documents
sysadmin@localhost:~/Documents$
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
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$
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$
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
Esse numero demarcado mostra quantos links rígidos apontam para tal arquivo
-Proprietário do Usuário:
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:
-Tamanho do arquivo:
-Registro de data/hora
-Nome do arquivo
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.
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:~#
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:
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
sysadmin@localhost:~/Documents$ ls -l hello.sh
-rw-r--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh
Observe o seguinte:
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ão de execução.
leitura, também.
-Método Simbólico:
Para usar o método simbólico de “chmod” de permissões esta sendo alterado:
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
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:
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$ ls -l hello.sh
-rwxr--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh
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
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:
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
Copiando Arquivos:
Criar cópias de arquivos pode ser útil por vários motivos:
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.”
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:
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”:
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
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:
Caracteres Regex
básicos Significado
Caracteres Regex
extendidos Significado
{ } Especifique correspondências
mínimas, máximas ou exatas do
padrão anterior
-Padrões básicos
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:
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”:
Se você preferir encontrar todas linhas que contem caractere sem ser
números, insira um ^ como primeiro caractere:
Nota
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:~# date
Sat Oct 3 22:15:58 UTC 2020
root@localhost:~# shutdown 01:51
ifconfig [OPÇÕES]
Nota
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)
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:
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
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
-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”:
-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:
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:
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:
STDERR:
sysadmin@localhost:~$ ls fakefile
Agora use o caractere > para redirecionar o STDOUT do comando “cat food.txt” acima
para um novo arquivo chamado newfile1.txt:
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
[contagem] movimento
Movimento Resultado
h Deixou um caractere
l Um caractere à direita
^ Início da linha
$ Fim da linha
Padrão Vi Significado
cut d deletar
Padrão Vi Significado
copy y copiar
paste P | p colar
-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
Ação Resultado
-Arrancar:
Yank coloca conteúdo no buffer sem excluí-lo. A tabela a seguir fornece
alguns exemplos de uso comuns:
Ação Resultado
-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
-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
-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
Considere o seguinte