Table of Contents

Comandos Linux

Desativar beep do pc linux

#desativar
$ xset b off 
#ativar
$ xset b on

Fonte: https://unix.stackexchange.com/questions/214607/how-to-disable-beep-tone-in-xfce-when-the-delete-button-is-pressed

Alterar kernel linux para linux-lts

  1. install pacman -S linux-lts
  2. (optional) check if kernel, ramdisk and fallback are available in ls -lsha /boot
  3. (optional) remove the standard kernel pacman -R linux (se nao remover, use a lista do grub durante o boot)
  4. update the grub config grub-mkconfig -o /boot/grub/grub. cfg
  5. reboot

xfce4-popup-whiskermenu e apps no menu

Configurar tecla iniciar/super com atalho para whisker menu:

Adicionar entradas/atalhos ao menu whisker/iniciar:

Para adicionar entradas ao menu, copie um dos atalhos existentes no diretório /usr/share/applications/ ou /home/user/.local/share/applications/ e faça as alterações conforme o novo app. Feito isso, a entrada aparecerá no menu em Others ou conforme a categoria editada no arquivo *.desktop.

Youtube download

Virtualbox

Ativar Nested VT-x/AMD-v via linha de comando:

VBoxManage list vms
VBoxManage modifyvm VM_Name --nested-hw-virt on
VBoxManage modifyvm "VM Name" --nested-hw-virt on

Efetue login na VM e execute o seguinte comando para verificar se o recurso aninhado está ativado ou não:

grep -E --color -i "svm|vmx" /proc/cpuinfo

Adicionar uma host-only com outro endereçamento de rede:

No Linux, macOS e Solaris, o Oracle VM VirtualBox permitirá apenas que endereços IP no intervalo 192.168.56.0/21 sejam atribuídos a adaptadores host-only. Para IPv6, apenas endereços locais de link são permitidos. Se outros intervalos forem desejados, eles podem ser habilitados criando /etc/vbox/networks.conf e especificando os intervalos permitidos lá. Por exemplo, para permitir os intervalos IPv4 10.0.0.0/8 e 192.168.0.0/16, bem como o intervalo 2001::/64, coloque as seguintes linhas em /etc/vbox/networks.conf:

  * 10.0.0.0/8 192.168.0.0/16
  * 2001::/64

Fonte: https://www.virtualbox.org/manual/ch06.html#network-manager-host-only-tab

Ativação do acesso USB para o usuário Linux

Instalar o VirtualBox Extension Pack

Executar o comando:

sudo usermod -aG vboxusers NOMBRE_DE_USUARIO

Configurar USB no virtualbox.

Fonte: https://ubunlog.com/pt/usb-habilitarlo-en-virtualbox/

Ultimate Plumber expressões regulares

Ultimate Plumber, uma ferramenta que permite escrever pipes de forma interativa em um terminal Unix.

# wget -qO /usr/local/bin/up https://github.com/akavel/up/releases/download/v0.4/up && \
  chmod +x /usr/local/bin/up
# dmesg |& up
| grep bash
| grep -P "bash"

APT repositórios

Pesquisar pela versão do pacote:

sudo apt install nome_do_pacote=versao_do_pacote

Como você sabe quais versões estão disponíveis para um determinado pacote? Use este comando:

apt list --all-versions package_name

Fonte:

pacman/pikaur

#consulta query
pacman -Q | grep pulseaudio

#mostrar info do pacote
pikaur -Si displaylink

#remover trava db.lck
rm /var/lib/pacman/db.lck

#Atualizar as chaves conhecidas, executando:
pacman-key --refresh-keys

#Atualizar manualmente o pacote archlinux-keyring primeiro, i.e. 
pacman -Sy archlinux-keyring && pacman -Su

#Limpando cache de pacotes com o pacman
paccache -r

#instalar a apartir do pacote local
pacman -U nomearquivo*.tar.gz

Fonte:

Java

pikaur -S jre11-openjdk

https://archlinux.org/packages/extra/x86_64/jre11-openjdk/

Pra baixar a última versão do OpenJDK utilizado nos programas da RFB como ITR e IRPF, faça:

pikaur -Sy jdk-openjdk

Após a instalação, é possível que várias versões do Java estejam instaladas no sistema. Para outra versão como padrão, você pode usar o seguinte comando:

archlinux-java status
sudo archlinux-java set java-XY-openjdk
java -version

Verificar se o Java está Configurado Corretamente

archlinux-java status

Isso deve mostrar algo como:

Available Java environments:
 java-8-openjdk
 java-11-openjdk
 java-17-openjdk (default)

Embora tenha colocado todas essas informações, o programa da RFB ITR2024 executou melhor a partir da instalação do ITR2024Linux-x86_64v1.0.sh.bin disponível no site da RFB (opção de download Linux). Após download executar o binário que faz a instalação do programa do ITR com uma versão do JRE embutida (Java: 11.0.15). Não é necessário a instalação do Java no sistema usando esta opção!

Montar CD/DVD ISO

$ sudo mount -o loop /path/to/disk1.iso /mnt/disk

Plugin Remote Desktop RDP Remmina

pikaur -Sy freerdp

Se houver erro de tls em conexão com wins, mude o nivel de segurança de default para “0-compatible win 7”.

Config NTP timedatectl

Usar referência: https://sistemas.petrolina.ifsertao-pe.edu.br/docs/doku.php/public:tutorials:ntp

Configurando timezone:

$ sudo dpkg-reconfigure tzdata
sudo timedatectl set-timezone America/Recife
sudo timedatectl set-ntp true
timedatectl status

System information - inxi

Informações do sistema.

pikaur -Sy inxi
inxi
#info detalhada
inxi -F

Fonte: https://itsfoss.com/inxi-system-info-linux/

HTTP Server Simples

python2.7 -m SimpleHTTPServer

ou

python3 -m http.server 8888

Headset Bluetooth Arch

$ pikaur -S pulseaudio-alsa pulseaudio-bluetooth bluez-utils
$ sudo systemctl status bluetooth.service
$ sudo systemctl enable bluetooth.service
$ sudo systemctl start bluetooth.service
$ sudo systemctl status bluetooth.service

#GUI para gerenciamento
$ pikaur -Sy blueman

Caso não reconheça, use a cli:

$ bluetoothctl
[bluetooth]# power on
[bluetooth]# agent on
[bluetooth]# default-agent
[bluetooth]# scan on
[NEW] Device 00:1D:43:6D:03:26 Lasmex LBT10
[bluetooth]# pair 00:1D:43:6D:03:26
[bluetooth]# connect 00:1D:43:6D:03:26
[bluetooth]# trust 00:1D:43:6D:03:26
[bluetooth]# scan off
[bluetooth]# exit

Para fazer com que seu fone de ouvido se conecte automaticamente, você precisa ativar o módulo switch-on-connect do PulseAudio. Faça isso adicionando as seguintes linhas ao /etc/pulse/default.pa:

$ sudo vim /etc/pulse/default.pa
---
### Automatically switch to newly-connected devices
load-module module-switch-on-connect

Se necessário, reinicie o computador.

Pacotes usados no Manjaro:

pikaur -Sy \
pulseaudio pulseaudio-alsa \
pulseaudio-bluetooth pulseaudio-ctl \
pulseaudio-equalizer pulseaudio-jack \
pulseaudio-lirc pulseaudio-rtp \
pulseaudio-zeroconf xfce4-pulseaudio-plugin

Fonte: https://wiki.archlinux.org/title/bluetooth_headset

Para um equalizador gráfico:

pikaur -Sy pulseaudio-equalizer-ladspa

Adicionando o Pulse Audio Equalizer ao startup do sistema

Edite o arquivo:

$ sudo vi /etc/pulse/system.pa
---
#add as linhas ao final
load-module module-equalizer-sink
load-module module-dbus-protocol
---

Repo: https://github.com/pulseaudio-equalizer-ladspa/equalizer

Em caso que o pulse não inicie e fique sem áudio com mensagem No PulseAudio daemon running, or not running as session daemon., testar os comandos:

systemctl --user start pulseaudio
systemctl --user status pulseaudio

Para o erro:

pulseaudio[1865]: module-rescue-stream is obsolete and should no longer be loaded. Please remove it from your configuration.

Desabilite o módulo editando o arquiv abaixo e comentando a linha:

/home/USER/.config/pulse/default.pa

Install pikaur by git

sudo pacman -Sy --needed base-devel git && \
cd /tmp/ && \
git clone https://aur.archlinux.org/pikaur.git && \
cd pikaur && \
makepkg -fsri && \
pikaur -Syu 

Criando SWAPFILE

First create and intialize the file to hold the swap. For example, to create a 4GB swapfile, you could use the command:

sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 status=progress

Set the appropriate permissions on the file. It should be readable and writable only by root. This can be done with the command:

 sudo chmod 600 /swapfile

Next we need to format and enable the swapfile:

sudo mkswap /swapfile
sudo swapon /swapfile

In order to ensure that the swap is enabled at boot we can add an entry to /etc/fstab. You can add the line to fstab manually or using the command:

sudo bash -c "echo /swapfile none swap defaults 0 0 >> /etc/fstab"

Fonte: https://wiki.manjaro.org/index.php/Swap#Using_a_Swapfile

msg via sessão

Enviar mensagem via sessão remota/tty

echo "my command" > /dev/tty1
echo "my command" > /dev/pts/0

Nmap

$ sudo nmap -sV --allports -T4 192.168.254.0/24

comando du - disk usage

sudo du -sh /home/cleiton | sort -h
sudo du -h /home/ | sort -h

https://diolinux.com.br/2019/01/comando-du-no-linux-espaco-disco.html

MySQL

$ mysql -u root -p -e "SHOW DATABASES;"

verificar dependências de programas:

ldd /path/to/binario


listar variaveis ambiente

printenv

printenv | grep HOME


localizar path de binário

whereis ping

serial

sudo minicom -s

Converter disco qcow2

Converter disco qcow2 para vmdk, necessário instalar o qemu

qemu-img convert -f qcow2 -O vmdk vdisk.qcow2 vdisk.vmdk

mysqdump

$ mysqldump -u root -p glpi > bkp-2019.07.17-glpi.sql

SELinux

selinux: verificando status e configurando O SELinux é hoje em dia um grande aliado na segurança do seu servidor. Com ele é possível criar políticas para administrar de forma detalhada o comportamento dos programas. Por exemplo, é possível limitar desde as ações de escrita/leitura/execução dos arquivos no disco, até a abertura de portas para escutar um determinado serviço. Muita gente normalmente desabilita o SELinux após a instalação do Redhat/Fedora/CentOS, porém eu não recomendo desabilitar em servidores. Quando algum programa falha, basta verificar onde o selinux travou o programa e criar a regra específica para aquele caso. Para determinar o modo de operação do seu selinux, basta digitar:

$ getenforce

E o resultado desse comando deve ser algo do tipo: Enforcing, Permissive e Disabled.

Para mudar o estado do selinux, digamos, de Enforcing para Permissive, basta utilizar o comando:

$ setenforce 0

Com esse comando, o selinux vai para o modo 'Permissive', onde ele vai permitir o que ele normalmente negaria. É um bom modo para estudo e aprendizado. Para voltar o SELinux ao modo de proteção:

$ setenforce 1

E ele vai para o modo 'Enforcing'.

Lembrando que o arquivo de configuração do selinux fica em:

/etc/selinux/config

Veja a variável SELINUX, que pode receber os valores descritos acima (Enforcing, Permissive, Disabled).

Localizar e substituir no vi

Substitui a palavra “Linux” por “GNU Linux” em todo o documento:

:%s/Linux/GNU Linux/g

usermod

Adicionar user ao grupo:
    $ sudo usermod -G www-data,users,ftp cleiton
Domain users:
    $ sudo usermod -G www-data,users,ftp userdomain
Bloquear usuário:
    $ usermod -L usuário
Desbloquear usuário:
    $ usermod -U usuário

passwd

Expirar senha e forçar troca no próximo logon
  $ sudo passwd -e username
Verificar senha expirada:
  $ sudo chage -l username
Outra forma de expirar a senha de um usuário
  $ sudo chage -d 0 username

criar diretorio recursivo

  $ sudo mkdir -p adm/public_html

Mostrar versão do Debian e kernel

  $ cat /etc/debian_version
  $ cat /etc/os-release
  $ cat /etc/*release
  $ uname -a
  $ neofetch

watch

Repetindo comandos a cada intervalo de tempo no Linux:

Sua sintaxe básica é:

watch -n

Ex.: comando df -h

watch -n 1 df -h

Um exemplo de como executar o comando ifconfig a cada segundo é:

watch -n 1 /sbin/ifconfig 

Limpar comentários

Limpar comentários em arquivo de configuração:

egrep -v “^ $|^ $” squid.conf.original > squid.conf


Force sort by size option

You need to pass the -S or –sort=size option as follows:

$ ls -S
$ ls -S -l
$ ls --sort=size -l
$ ls --sort=size *.avi
$ ls -S -l *.avi

Comando DD e PV

Criar arquivos grandes no file system com dd

dd if=/dev/zero of=/big-file-test.img bs=1G count=10

Copiar um CD/DVD para ISO:

dd if=/dev/sr0 of=./clonezilla.iso  

Pipe Viewer com dd: criando barra de progresso

A ferramenta pv (pipe viewer) é a mais interessante de todas as soluções. Simples e funcional, ela basicamente copia a sua entrada padrão (stdin) para a sua saída padrão (stdout), monitorando o progresso da cópia e exibindo estatísticas na saída padrão de erros (stderr).

No Ubuntu, você pode instalar a ferramenta pv com o comando abaixo:

$ sudo apt-get install pv

Sempre sentiu falta de informações de progresso no comando cp? Com o pv é possível copiar um arquivo e exibir o progresso da cópia! Exemplo:

$ pv /media/videos/movie.mkv > ~/Movies/movie.mkv
952MB 0:00:26 [33,9MB/s] [===> ] 8% ETA 0:04:39

O comando acima copia o arquivo /media/videos/movie.mkv para o destino ~/Movies/movie.mkv, exibindo o progresso da cópia durante a execução do comando.

A mesma técnica pode ser usada no comando dd, para copiar uma imagem para o cartão SD e monitorar o progresso:

$ pv linux.img | sudo dd of=/dev/sdd bs=1M
1,27GB 0:00:53 [24,3MB/s] [====================================>] 100%

Referências:


Comandos SCP

Copiando um arquivo remoto para máquina local:
  $ scp -P4140 user@domain:/pasta-remota/arquivo-remoto.txt /pasta-local/arquivo-local.txt
Enviando um arquivo local para um servidor remoto:
  $ scp /pasta-local/arquivo-local.txt user@domain:/pasta-remota/arquivo-remoto.txt
Copiando pastas e subpastas do servidor remoto para máquina local:
  $ scp -r user@domain:/pasta-remota/ /pasta-local/
Enviando pastas e subpastas da máquina local para o servidor remoto:
  $ scp -r /pasta-local/ user@domain:/pasta-remota/
É isso ae pessoal! Até a próxima com mais dicas de terminal.

Comandos SFTP

Abrindo sessão sftp:
  sftp user@your_server_ip_or_remote_hostname
Abrindo sessão sftp em outra porta:
  sftp -oPort=custom_port user@your_server_ip_or_remote_hostname
Visualizar localização atual remoto:
  sftp> pwd
Visualizar localização atual local:
  sftp> lpwd
Listar conteúdo remoto:
  sftp> ls
Listar conteúdo local:
  sftp> lls
Movimentar nos diretórios remoto:
  sftp> cd
Movimentar nos diretórios local:
  sftp> lcd

Transferindo arquivos remotos para o sistema local

Transferindo arquivo remoto para local:
  sftp> get remoteFile
Transferindo arquivo remoto para local renomeando:
  sftp> get remoteFile localFile
Transferindo diretório remoto para local recursivamente:
  sftp> get -r someDirectory
Transferindo diretório remoto para local recursivamente sem alterar permissões:
  sftp> get -Pr someDirectory

Transferindo arquivos locais para o sistema remoto

Transferindo arquivo local para remoto:
  sftp> put localFile
Transferindo diretório local para remoto recursivamente:
  sftp> put -r localDirectory

Mais comandos: https://www.digitalocean.com/community/tutorials/como-utilizar-o-sftp-para-transferir-arquivos-com-seguranca-com-um-servidor-remoto-pt

Configurando um interface de rede

1. Mostrar as interfaces de rede disponíveis no computador:
  $ ip link show
2. Ver os ips das interfaces de rede:
  $ ip addr show
Ou simplesmente:
  $ ip a
3. Ver somente informações sobre o protocolo IPv4 nas interfaces:
  $ ip -4 a
Para o protocolo IPv6:
  $ ip -6 a
4. Habilitar uma interface de rede, como a enp0s3:
  $ ip link set enp0s3 up
Reiniciar a máquina ou o serviço de rede após.
5. Desabilitar uma interface de rede, como a enp0s3:
ip link set enp0s3 down
6. Ver o ip de uma interface específica, como a enp0s3:
  $ ip addr ls enp0s3
ou
  $ ip addr show enp0s3
7. Ver estatísticas de comunicação (tx e rx) de uma interface específica (opção -s):
  $ ip -s link show enp0s3
8. Atribuir um endereço IP a uma interface específica:
  $ ip addr add 192.168.12.100/24 dev enp0s3

Obs. Esta configuração é perdida ao reiniciar o sistema. Para mantê-la,
editar o arquivo de  configuração /etc/network/interfaces 
(Debian e derivados) ou os arquivos em /etc/sysconfig/network-scripts/ (Red Hat e derivados)

9. Excluir um endereço IP de uma interface específica:
  $ ip addr del 192.168.12.100/24 dev enp0s3
10. Ajustar o nome da interface de rede enp0s3 para eth0:
  $ ip link set enp0s3 name eth0
11. Verificar as rotas de rede (tabela de roteamento):
  $ ip route show
12. Adicionar uma rota estática:
  $ ip route add 10.20.30.0/24 via 192.168.100.10 dev enp0s3

Obs. Esta configuração é perdida ao reiniciar o sistema. Para mantê-la,
editar o arquivo de configuração /etc/network/interfaces (Debian e derivados)
 ou os arquivos em /etc/sysconfig/network-scripts/ (Red Hat e derivados).

Por exemplo, no debian, adicionamos a linha:
  $ up ip route add 10.20.30.0/24 via 192.168.100.10 dev enp0s3
ao arquivo /etc/network/interfaces para adicionar a rota estática de forma permanente.
13. Remover uma rota estática:
  $ ip route del 10.20.30.0/24
14. Adicionar um endereço de gateway padrão geral
  $ ip route add default via 192.168.100.10
Se o gateway padrão para a rede já existir, será emitida uma mensagem de erro.
15. Configurar um endereço MAC em uma interface:
  $ ip link set dev enp0s3 address 00:0a:75:20:f5:bd
16. Alterar o MTU em uma interface. Por exemplo, aplicar um MTU de 9000 na interface enp0s3:
  $ ip link set mtu 9000 dev enp0s3

Geralmente alteramos o MTU em redes gigabit para permitir o tráfego 
de Jumbo Frames (quadros jumbo), de modo a aumentar a performance de transmissão da rede.

17. Consultar a tabela ARP:
  $ ip neigh
18. Consultar a tabela ARP de um interface específica:
  $ ip neigh show dev enp0s3
19. Visualizar a ajuda dos comandos ip:
  $ ip help

Ou ainda, visualizar a ajuda apenas dos comandos de endereçamento:
  $ ip addr help

20. Habilitar o modo promíscuo na interface enp0s3:
  $ ip link set enp0s3 promisc on

Configurando um interface de rede com nmcli e nmtui

nmcli
nmtui

Movendo janelas xdotool/wmctrl

xdotool search --sync --onlyvisible --class "Firefox" windowactivate key F11
xdotool getactivewindow
xdotool windowraise WID
wmctrl -ir WID -b add,maximized_vert,maximized_horz
wmctrl -ir WID -b remove,maximized_vert,maximized_horz
xdotool windowmove WID 800 600
xdotool windowstate WID --add MAXIMIZED_VERT

Fontes:

Neofetch

Verificar versão/info do sistema

[user@pc ~]$ neofetch 
██████████████████  ████████   user@pc 
██████████████████  ████████   ----------------- 
██████████████████  ████████   OS: Manjaro Linux x86_64 
██████████████████  ████████   Host: 20DS0090BR ThinkPad L450 
████████            ████████   Kernel: 5.10.36-2-MANJARO 
████████  ████████  ████████   Uptime: 4 hours, 52 mins 
████████  ████████  ████████   Packages: 1560 (pacman) 
████████  ████████  ████████   Shell: bash 5.1.8 
████████  ████████  ████████   Resolution: 1366x768, 1920x1080, 1920x1080 
████████  ████████  ████████   DE: Xfce 4.16 
████████  ████████  ████████   WM: Xfwm4 
████████  ████████  ████████   WM Theme: Matcha-sea 
████████  ████████  ████████   Theme: Matcha-dark-sea [GTK2], Adwaita [GTK3] 
████████  ████████  ████████   Icons: Papirus-Maia [GTK2], Adwaita [GTK3] 
                               Terminal: tilix 
                               CPU: Intel i7-5500U (4) @ 3.000GHz 
                               GPU: AMD ATI Radeon R5 M240 
                               GPU: Intel HD Graphics 5500 
                               Memory: 12766MiB / 15897MiB 

                                                       
                                                       


[user@pc ~]$