sexta-feira, 20 de dezembro de 2019

obtendo informações de rede

informações sobre ip e placa de rede

$ ip addr show

ou

$ ifconfig

sobre roteador e ip e rotas
$ ip route

ou

$ route

informações sobre

tudo que esta escutando/ aguardando uma conexão
$ netstat -l

mostra apenas protocolos do tcp
$ ss -ltn

$ ss -lt (resolve nomes não mostra o numero das portas)
mostra protocolos udp
$ ss -lun

$ ss -lu (resolve nomes não mostra o numero das portas)

DNS config fica em /etc/resolv.conf
DNS local /etc/hosts

analisar logs de sistema

os logs ficam no diretório /var/log

quem cuida do gerenciamente de logs é o rsyslog
 o arquivo de configuração que cuida dos logs fica normalmente em
/etc/rsyslog.d/50-default.conf
/etc/rsyslog.conf

outro metodo simples para analisar o log do sistema é atravês do comando
$ dmesg

obter informações sobre a placa mãe

$ su

# dmidecode -t baseboard

quinta-feira, 19 de dezembro de 2019

linux comandos basicos

ver em qual tty o linux está rodando
$ tty

mudar tty
ctrl + alt + F2

informações sobre ttys
$ w

trocar bash alterar bash passwd
$ usermod -s /usr/bin/zsh
$ reboot

listar informações de arquivos
$ ls -Srlah

é possivel quebrar o comando com o \
ls \
-S \
-r \
-l \
-a \
-h

File Globbing
* = tudo

procurar arquivos apenas txt
$ ls *.txt

procurar apenas arquivos que começam com 2 digitos e final txt
$ ls ??.txt

procurar qualquer aquivo que começa com a palavra file + qualquer outro digito .txt
$ ls file?.txt

procurar arquivos que começam apenas com a letra f minuscula ou F maiusculo .txt
ls [Ff]*.txt

ignorar arquivos com a letra FfDd
ls [^FfDd]*

$PATH = procura qualquer comando que está declarado nos diretorios
para executar scripts pelo shell sem o ./
vamos supor que há um diretorio chamado binsh no diretorio /home/$USER
$ PATH=$PATH:/home/$USER/binsh


saber usuario
$ whoami
echo $LOGNAME

echo $USER


mostra quem está logado no momento
$ who

informações sobre usuario
id nomedousuario

trocar usuario
su nomedousuario


mostra o historico de sessões
$ last

desligar o linux
$ poweroff
$ halt
$ shutdown -h now
$ init 0

informações sobre kernel e arquitetura
$ uname -a
$ uname -p
$ uname -r

navegar nos diretorios
voltar para o home
$ cd
$ cd ~

entrar em diretorio com espaço
$ cd 'nome do diretorio'

voltar diretorio
$ cd -

voltar diretorio
$ cd ..

Entrar em diretorio com espaços
$ cd nome\ do\ diretorio/
ou

$ cd 'nome do diretorio'

diferença entre caminho absoluto e caminho relativo
/home/$USER/.config = caminho absoluto
~/.config = caminho relativo

historico do bash
os comandos ficam guardados em .bash_history do diretorio /home
as configurações do history utiliza variaveis locais

para listar variaveis
$ set | grep HIST

o .bash_history pode ter apenas 2000 linhas
HISTFILESIZE=2000

quantos comandos o history ira gravar na sessão
HISTSIZE=1000

exercutar novamente um comando
$ history
encontre o numero da linha que tenha o comando
$ !numerodocomando

arquivo de configuração do bash de todos os usuarios
$ cat /etc/bash.bashrc

arquivo de configuração do bash do usuario local /home/$USER/.bashrc
$ cat .bashrc

OBS: o arquivo .profile do bash só é chamado em shells não interativos (modo texto)

variaveis globais e locais
env = variaveis globais
set = variaveis locais

para exportar uma variavel local para global
$ export NOMEDAVARIAVEL


digitar varios comandos

sobre aspas duplas e simples
"aspas duplas" = indentifica variaveis
'aspas simples' = trata tudo como texto


cortar qualquer palavra antes de 2 pontos
$ cut -d : -f 1 /etc/passwd

procurar tudo que começa com a e termina com z e que no meio tenha qualquer conteúdo
$ grep '^a.*z$' nomedoarquivo

procurar tudo que começa com letra a ou z no começo do arquivo
$ grep '^[aAzZ]' nomedoarquivo

procurar tudo que não começo com a ou z
$ grep '^[^aAzZ]' nomedoarquivo

procura qualquer palavra que tenha como segunda letra a
$ grep '^.[a]' nomedoarquivo

procura por qualquer caracter que começa com www
$ grep 'www*' nomedoarquivo

ver grupos existentes para permissões
$ cat /etc/group

adicionar o usuario há um grupo
$ usermod -a -G nomedogrupo usuario

criar um grupo (obs: os grupos ficam no arquivo /etc/group)
$ groupadd nomedogrupo

os arquivos a serem copiados quando se cria um usuario padrão fica em /etc/skel pode-se adicionar arquivos nesse diretório e quando novos usuarios forem criados terão esses arquivos em seu /home

criar usuario e adicionar a um grupo
$ useradd -G IDdogrupo -m -c nomedousuario nomedelogin

arquivo de configuração do comando useradd
/etc/default/useradd 

definir senha de usuario
$ passwd nomedousuario

as senhas criptografadas de usuarios ficam em /etc/shadow
para informações sobre
$ man -k shadow

nas permissões sempre há 9 casas ex: rw-rw-r--
usuario dono/grupo dono/outros
as 3 primeiras casas sempre são relacionadas ao usuario
as proximas 3 casas são relacionadas ao grupo
e as proximas 3 relacionada a outros
r = read = 4
w = write = 2
x = execute = 1

forma octal ex: rw-rw-r--
rw = 4+2 = 6
rw = 4+2 = 6
r = 4 = 4
então no modo octal a permissão é 664
ex : # chmod 664 nomedoarquivoOUdiretorio
-rw-rw-r-- (permissão de leitura e escrita para usuario e grupo e apenas leitura para outros)

no chmod comando que dá permissões a diretorios e usuarios
usuarios são representados pela letra u
ex : # chmod u+r nomedoarquivoOUdiretorio

grupos são representados pela g
ex : # chmod g+w nomedoarquivoOUdireotiro

outros são representados pela letra o
ex : # chmod o+x nomedoarquivoOUdiretorio

apagar uma permissão no chmod
ex : # chmod u-w nomedoarquivoOUdiretorio

substituir uma permissão
ex: # chmod g=x nomedoarquivoOUdiretorio

aplicar uma permissão em tudo que esta dentro de um diretorio
e tudo que está dentro dele
# chmod u+rwx,g+rwx,o+rwx -R nomedodiretorio

mudar usuario ou grupo de arquivo
# chown usuario:grupo nomedoarquivo

mudar apenas usuario
# chown usuario: nomedoarquivo

mudar apenas grupo
# chown :grupo nomedoarquivo

mudar usuario e grupo em diretorio
# chown -R usuario:grupo nomedodiretorio

um link simbolico nada mais é que um atalho para outro arquivo

para criar um link

$ ln -s nomedoarquivo nomedolink

finalizar um link
$ unlink nomedolink

criar um link fisico
$ ln nomedoarquivo nomedolink

procurar arquivos e informações sobre comandos

procurar arquivos

$ updatedb
$ locate nomedo arquivo
 
$ find diretorio -iname nomedoarquivo

informações sobre arquivo

$ file nomedoarquivo

---

informações sobre o comando

$ which nomedoarquivo

$ whereis nomedocomando

$ type nomedocomando

segunda-feira, 2 de dezembro de 2019

ver todos os comandos do shell

listará todos os comandos que você pode executar.
$ compgen -c

listará todos os aliases que você pode executar.
$ compgen -a

listará todos os built-ins que você pode executar.
$ compgen -b

listará todas as palavras-chave que você pode executar.
$ compgen -k

listará todas as funções que você pode executar.
$ compgen -A function 

listará todos os itens acima de uma só vez.
$ compgen -A function -abck

lista todos os executáveis
printf '%s\n' ${PATH//:/\/* }

site com informações sobre comandos: https://ss64.com/bash/

domingo, 1 de dezembro de 2019

extrair initrd

*** extrair initrd ***
Extract:
zcat initrd.img | cpio -idm

*** compactar initrd ***
find . | cpio -o -H newc | gzip -9 > initrd.img
OBS: você deve estar dentro do director da nova initrd para compacta-la