GoConqr has a new look! Let us know what you think.

Notes

101 - anotações

Maicon Alencar Portuguese 1 page

Content of the notes (1)

Page 1

Iniciando curso

Aula 13 -

Topico 103 - Comandos GNU e Unix

#PID# Process IDentification

- Dois processos de uma mesma aplicação recebe PIDs diferentes

- O PID 1 é atribuido a um processo especial - init

- O que é o Shell?

Temos varios tipos de shell. O tipo coberto na LPI é o bash (ba_sh), que é uma evolução do "sh"

- Como saber qual Shell estou utilizando?

echo $SHELL

- #echo --> lista na tela o que vc digitar na frente

- Também pode colocar variaveis:

#echo $SHELL (imprime o conteudo da variavel SHELL)

O que é um comando interno?

-> Um comando embutido no shell

O que é um comando externo

-> Um comando que o vc baixa

Para saber se é interno ou externo, utilize o TYPE

#type echo

#type cd

#type clear (hashed - cache interno)

#type tar (tar is /bin/tar -> comando externo)

Quando eu digito um comando externo, o shell busca o PATH, que é o caminho deste programa externo

#echo $PATH

/usr/local/sbin:/usr/local/bin:/usr:sbin/:/usr/bin:/bin

O shell busca em todos os diretorios acima a fim de identificar onde está o comando

Mas e se o comando que eu quero executar não está no path?

R. Você precisa indicar para o shell onde está este comando

1. Se o programa for interno, o shell já reconhece e executa de onde vc estiver, não importa o diretorios

2. Se o programa for externo, é necessário apontar o programa no path, para que ele seja executado

3. Caso não esteja no path, você precisa digitar o caminho do executal

caminho absoluto - Desde a raiz até o executavel

- Exemplo: /home/desktop/maico/show.sh

caminho relativo (já estando no desktop) - /maico/show.sh

----------------------------------------------

Aula 14. 103.1

Variaveis de ambiente são carregadas ao abrir o shell

para definir variaveis:

#nome_variavel=valor

para exibir conteudo:

#echo nome_variavel

valor

Porém, esta variavel foi definida localmente somente nesta sessão do shell

Quando a variavel é local, processos iniciados a partir de outros shells (cujo o pai seja este shell que vc esta usando) não enxergam esta variavel

Para exportar a variavel:

#export nome_variavel

Pronto, a partir de agora a variavel virou global a partir desta sessão bash. Novos bashs a partir desse vão enxergar ela.)

Se eu abrir uma aba de shell que não é filha do primeiro bash, ela n vai enxergar

Uma forma de criar a variavel já exportada

#export LINUX=xubuntu

Como visualizar variaveis exportadas?

#set | less

-- Todas as variaveis iniciadas, declaradas e exportadas

#env

--> Mostra apenas variaveis globais, pq e um comando externo

pq o env e externo.

env is /usr/bin/env

O set e local, por isso enxerga tudo

Logo, se vc criar uma variavel e nao exportar, somente o set vai visualizar.

Se exportar, o env tbm visualiza

#env TESTE=Windows ./Script_Variavel.sh

--> Apenas nessa execucao, o valor da variavel TESTE sera alterado para Windows

como remover uma variavel?

#unset ABC

#unset nome_variavel

Conhecendo variaveis importantes (a partir do set)

--- HISTFILE=arquivo history = path

--- HISTFILESIZE

--- HISTSIZE

--- HOME - endereco da pasta home do usuario logado

--- HOSTNAME -- nome da maquina

--- LOGNAME -- nome do login que fez login nessa sessao (root p exemplo)

--- PATH = endereco onde os programas sao guardados para exercussao

--- PWD = ultimo diretorio que vc visitou

--- TERM = qual terminal vc entrou

Se grafico = xterm

Se entrou via texto (ssh) = tty

--- USER = semelhante ao logname

#echo $$

Variavel que mostra o PID do shell atual

#echo $!

PID do ultimo processo que executei em background

#echo $?

Mostra o codigo de retorno (exitcode) do ultimo processo que rodou

*Sempre que o comando foi executado com sucesso, ele retorna 0

*Sempre que o cod for diferente de 0, pode ser considerado erro

#cp arquivoqnaoexiste /tmp

#echo $?

1

#echo ~

home do usuario atual

#echo ~usuarionome

home do usuario/home

----------------------------------------------

Aula 15. 103.1

Principais Variáveis de Ambiente

É importante conhecer a função de algumas variáveis de ambiente existentes no sistema, as principais são:

DISPLAY: Indica às aplicações gráficas onde as janelas deverão ser exibidas. Será estudado no Tópico 106.

HISTFILE: Arquivo do histórico de comandos

HISTFILESIZE: Quantidade de linhas/comandos armazenados no arquivo de histórico

HOME: Indica o diretório do usuário atual

LOGNAME e USER: Nome do usuário atual

PATH: Diretórios em que o Linux irá procurar por arquivos executáveis

PS1: Aparência do prompt do shell.

PWD: Diretório atual

OLDPWD: Diretório anterior

----------------------------------------------

Aula 16. 103.1 = Comandos Sequenciais, history, man

Executar comandos de forma sequencial

#clear ; date ; ls

vai executar os tres em sequencial

#ls /tmp/teste && echo LINUX

Se o primeiro comando for executado com sucesso, ele executara o segundo

#ls /tmp/teste || echo LINUX

so executa o segundo comando se o primeiro n funcionou

history

#!!

repete o ultimo comando que executei

#!19

(de acordo com o numero do history) executa o numero do comando

#!uname

vai executar o ultimo comando que contem a string "uname"

Como limpar o history?

#history -c

historico limpo

Esses comandos ficam armazenados em um arquivo. Cada usuario tem o seu

A variavel HISTFILE diz isso

Este arquivo e gravado todas as vezes que fecho a sessao

Cada usuario so consegue ler o seu bash history. Com excecao do administrador

#CTRL+R para pesquisar um comando no seu historico de comandos

recurso de ajuda

man - para executaveis e alguns arquivos de configuracao

man type - n encontra

pq o type e um comando interno, ele faz parte do bash

entao

#man bash

para encontrar o manual de todos os comandos internos

#info ls

igual o man, porem, reduzido

#man -k

#man -k "system information"

traz a referencia de todos os comandos que possuam esta string

por exemplo

#man -k "update system"

fwupdate - update system firmware

#whatis fwupdate

fwupdate - update system firmware

#whatis tar

#apropos

= man-k

#uname

imprime informacoes do sistema

#uname -a

mostra versao do linux, data que foi compilado, versao do kernel, etc etc

#alias

Uma forma de criar um atalho/apelido para um programa.

por exemplo, se exister um alias ll=ls

toda vez que executar um ll ele vai converter em ls

#alias lt='ls /tmp'

para criar um alias. O alias fica somente nessa sessao

----------------------------------------------

Aula 18 . 103.1 = Quoting

Temos no shell caracteres especiais.

A primeira coisa que o shell faz e interpretar as variaveis

Podemos proteger a interpretecao das variaveis

#echo *

mostrar todos os arquivos do diretorio local

#echo "*"

Impede a interpretacao da variavel * e imprime o caractere *

#echo '*'

igual opcao interior

#echo \*

igual opcao interior. \ protege o caractere seguinte

#echo \*\!\$

Qual a diferenca entre " e '

" = protege todos os caracteres, EXCETO $ ` /

' = protege todos os caracteres

#echo "Curso Linux"

Curso Linux

#echo Curso Linux

Curso LINUX

#echo Curso \ \ \ \ \ \ \ Linux

Curso Linux

#echo "Curso Linux"

Curso Linux

----------------------------------------------

Aula 19 . 103.1 = Which

Which server para procurar um arquivo dentro dos diretorios que estao incluidos no $PATH

#whatis which

Localiza um comando

#which echo

/bin/echo

Localiza qualquer arquivo que esta no diretorio $path

----------------------------------------------

Aula 20 . 103.1 = exercicios

103.1 Trabalhando na Linha de Comando

1. Encontre as seguintes informações sobre a sua instalação Linux:

O caminho completo do arquivo .bash_history para o seu usuário;

-- /root/.bash_history

O release do kernel instalado

-- uname -r OR uname -a

Os diretórios incluídos em seu PATH

#echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

O hostname da máquina

#hostname

kali

O PID da sua sessão shell atual

#echo $$

3237

2. Crie e exporte uma variável chamada "NOME" que contenha o seu nome completo.

criada e exportada

#export NOME=Maicon....

aberta nova sessao

#bash

#echo $NOME

Maicon ...

3. Crie um comando que escreva na tela a seguinte frase: "O Nome do Próximo Certificado LPI 1 é: <utilize a variável NOME>"

FIM DO TOPICO 103.1

----------------------------------------------

Aula 21 . 103.2 = Aplicando Filtros a textos e arquivos - cat, head, tail, wc, sort, less

#cat -n arquivo

- Lista as linhas dos arquivos por numeracao

#cat -b arquivo

mostra apenas as linhas nao brancas numeradas

#cat -s arquivo

Se tiver duas ou mais linhas em branco juntas, ele aglomera e transforma em uma so

#cat -A arquivo

Mostra todos os caracteres que tem no arquivo

#cat --help

#tac

inverte o resultado do cat, mostra ao inverso (primeira linha no final)

#head arquivo

Mostra o cabecalho do arquivo, as primeiras linhas. O padrao e 10 linhas em algumas distros e 5 em outras

#head -n2 arquivo OU head -2 arquivo

mostra apenas as duas primeiras linhas

#head -c50 arquivo

mostra os 50 primeiros bytes

#tail arquivo

mostra as ultimas 10 linhas

#tail -n5 arquivo OU tail -5 arquivo

mostra as ultimas cinco linhas

#tail -f arquivo

Aguarda uma nova escrita no arquivo e fica monitorando

#tail -n5 -f arquivo

mistura dos dois comandos

less

navegacao

dentro do less

#/related

Procura a palavra dentro da visualizacao (CTRL F)

Se vc apertar "n", ele vai pro proximo

se vc apertar "N", ele volta pro match anterior

#CTRL +G

Mostra o status da leitura do arquivo (linha, coluna, porcentagem da leitura)

| - pega a saida do primeiro comando e usa de entrada pro segundo comando

#wc arquivo

ler a quantidade de linhas, palavras e bytes

(um caractere comum = byte. Caracteres especiais podem ser > 1 byte)

#wc -l arquivo

Mostra apenas quantidade de linhas

#wc -w arquivo

quantidade de palavras

#wc -c OU wc --bytes

Quantidade de bytes

#wc -m OU wc --chars

Quantidade de caracteres

#wc *

roda o wc para todos os arquivos da pasta e soma todos

#cat arquivo | wc -l

le o conteudo e trata com wc -l

#tail -n10 arquivo | wc

#nl arquivo

= cat - b

Numera as linhas do arquivo desconsiderando as linhas em branco

#sort arquivo

ordena o arquivo

#sort -r arquivo

Ordena reverso - do Z ao A

#sort -k2 arquivo

Ordena pelo segundo campo (apos espaco)

#sort --help

Information

Description
Note on 101 - anotações, created by Maicon Alencar on 17/07/2019.
Created by
Maicon Alencar · Jul 2019
Updated
Jul 18, 2019
Views
3
Rating

More on Comandos Linux

Feedback

What is it about?

What do you think of the new look?

How do you like it?