====== 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 =====
- install ''pacman -S linux-lts''
- (optional) check if kernel, ramdisk and fallback are available in ''ls -lsha /boot''
- (optional) remove the standard kernel ''pacman -R linux'' (se nao remover, use a lista do grub durante o boot)
- update the grub config ''grub-mkconfig -o /boot/grub/grub. cfg''
- ''reboot''
===== xfce4-popup-whiskermenu e apps no menu=====
**Configurar tecla iniciar/super com atalho para whisker menu:**
* Acessar: settings->keyboard->applications shortcuts
* adicionar novo atalho como comando: ''xfce4-popup-whiskermenu''
**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 =====
* https://github.com/yt-dlp/
* https://github.com/ytdl-org/youtube-dl
===== 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
* https://www.virtualbox.org/wiki/Downloads
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:
* https://livreeaberto.com/como-instalar-uma-versao-especifica-de-pacote-com-apt-install
* https://smartworldclub.net/11699961-install-particular-version-of-package-on-ubuntu-debian-and-centos
===== 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:
* [[https://wiki.archlinux.org/title/Pacman_(Portugu%C3%AAs)]]
* [[https://wiki.archlinux.org/title/Pacman_(Portugu%C3%AAs)/Package_signing_(Portugu%C3%AAs)#Redefinindo_todas_as_chaves]]
===== Java =====
pikaur -S jre11-openjdk
https://archlinux.org/packages/extra/x86_64/jre11-openjdk/
Pra baixar a última versão do [[https://openjdk.org/|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:
* https://elias.praciano.com/2017/12/como-monitorar-a-transferencia-de-dados-durante-a-copia-ou-backup/
* https://www.tecmint.com/monitor-copy-backup-tar-progress-in-linux-using-pv-command/
* https://qastack.com.br/ubuntu/17275/how-to-show-the-transfer-progress-and-speed-when-copying-files-with-cp
----
===== 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:
* https://icyrock.com/blog/2012/05/xubuntu-moving-windows-between-monitors/
* https://support.mozilla.org/en-US/questions/953351
* https://askubuntu.com/questions/634575/bash-program-to-open-files-on-a-second-monitor
===== 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 ~]$