====== 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 ~]$