Linux ## comands ```bash # OS information hostnamectl #get hostname hostname #system update sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y ``` ## ls List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort is specified. ```bash #order by date ls -t #order by date reverse ls -r ``` source: man ## Users ```bash #create useradd USERNAME #remove userdel USERNAME #useradd -r USERNAME passwd passwd USERNAME groups groupadd GROUPNAME groups USERNAME usermod -a -G GROUPNAME USERNAME chown [-c|--changes] [-v|--verbose] [-f|--silent|--quiet] [--dereference] [-h|--no-dereference] [--preserve-root] [--from=currentowner:currentgroup] [--no-preserve-root] [-R|--recursive] [--preserve-root] [-H] [-L] [-P] {new-owner|--reference=ref-file} file ... ``` ## hostame ``` sudo nano /etc/hostname #alterar o nome sudo nano /etc/hosts #alterar o nome Static IP A configuração para um ip estático poderá ser um pouco diferente de destribuição para distribuição mas a lógica é similar ``` ## static ip Debian sudo nano /etc/network/interfaces Exemplo de configuração ``` # neste exemplo de configuração a place de rede tem o nome enxd0374555c1f8 # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug enxd0374555c1f8 iface enxd0374555c1f8 inet static address 192.168.0.2 netmask 255.255.255.0 gateway 192.168.0.1 dns-nameservers 89.207.128.252 89.207.130.252 Reiniciar configuração sem reboot de computador ``` ``` Reiniciar configuração sem reboot de computador #sudo /etc/init.d/networking restart ``` ## Disks File System & Space Usage ``` df -h ``` List physical disks and partition size ``` lsblk ``` List partition ids ``` blkid /dev/sdc1 ``` Partition Manager ``` fdisk /dev/ #Example: fdisk /dev/sdc #Partições como mais de 2 TB sudo parted /dev/sdc #(parted) mklabel gpt #alterar para a unidade de medida que desejar #(parted) unit TB #ver espaço livre (parted) print free #criar partição com espaço livre (exemplo:4 Teras) mkpart primary ext4 0 4 #Formatar uma partição ``` ## mount Mount partion on boot fstab ``` nano /etc/fstab ``` ext4 example ``` #add line PARTUUID= ext4 defaults,nofail 0 02 ``` Mount fstab partions without reboot ``` mount -a ``` smb share Create credentials file ``` #/home/mf/.credentials/smb:mf@nas.lan username=shareuser password=sharepassword domain=domain_or_workgroupname ``` Secure credentials file permission ``` chmod 0600 /home/mf/.credentials/smb:mf@nas.lan ``` Add line ``` #/etc/fstab //nas.lan/homes /mnt/smb-share:mf@nas.lan,share=homes cifs credentials=/home/mf/.credentials/smb:mf@nas.lan,uid=1000,gid=1000,nofail 0 0 ``` ## gio ### mount samba share ```bash #/home/username/.credentials #username #SAMBA #password gio mount smb://server/share < /home/username/.credentials ``` ### unmount ```bash gio mount -u smb://server/share ``` ## File System ### ext4 mkfs.ext4 _filesys_ Example ``` mkfs.ext4 /dev/sdb1 ``` ### ext3 mkfs.ext3 _filesys_ Example ``` mkfs.ext3 /dev/sdb1 #exFat mkfs.exfat /dev/sdc1 ``` ### exFat mkfs.exfat _filesys_ ``` mkfs.exfat /dev/sdc1 ``` ### ntfs ``` apt-get install ntfs-3g mkntfs --fast --label Backups /dev/sdc1 ``` ## space usage df df -h du -h --max-depth=1 ## Manutenção de discos Bad Sectors sudo e2fsck -cfpv /dev/sda1 O Exemplo foi com o disco sda1 mas deverá ser subsituido pelo disco desejado Os parâmetros têm os seguintes significados: “c” procura por blocos defeituosos e os adiciona à lista “f” força uma verificação no sistema de arquivos “p” repara qualquer coisa que possa ser reparada com segurança “v” está no modo detalhado. você pode ver o progresso do comando Esse comando pode levar muito tempo para ser executado, até várias horas em uma unidade particularmente grande. ## tar A utilização o comando tar é uma das formas de comprimir no linux ``` tar -cvf --exclude='.cache' --exclude='Cache' --exclude='.cache' --exclude='.tmp' --exclude='tmp' /tmp/nomedoficheiro.tar.gz /PATHPARAFICEHIROOUDIRECTORIO #Caso seja necessário paralelismo tar -I pigz -cvf - /fileserver/media/music/* #Se for necessário limitar o tamanho do ficheiro compresso (dividindo em multiplos ficheiros) tar -I pigz -cvf - /sourcefolder/* | split --bytes=8GB - /tmp/file.tar.gz ``` ## SSH para executar comandos por ssh que usem o display do servidor, começar por executar: export DISPLAY=:0 screen Para mais informações como manter o comando a executar mesmo que termine a sessão de ssh consultar:Screen sem password criar chaves (publica e privada) no cliente ``` ssh-keygen -t ecdsa -b 521 Se for necessário controlar o nome do ficheiro #substituir ~/.ssh/id_ecdsa/mf-key-ecdsa com o path de destino e o nome pretendido # o directório tem que existir, por isso se não existir: # mkdir ~/ssh/id_ecdsa ssh-keygen -t ecdsa -b 521 -f ~/.ssh/mf-key-ecdsa copiar a chave para o servidor ssh-copy-id -i ~/.ssh//mf-key-ecdsa.pub example_user@192.0.2.4 testar o ssh para ver se funcionou (ou seja não pede a password) ssh example_user@192.0.2.4 se pedir a password e indicar algo semelhante a It is required that your private key files are NOT accessible by others. será necessario rever as permissões do ficheiro indicado na informação Exemplo: chmod g-rwx,o-rwx ~/.ssh/mf-key-ecdsa Para adicionar o chave existente no ssh-agent (só necessario se a chave privada for copiada de outro sitio) ``` eval `ssh-agent` ssh-add pathenomedoficheiro Caso o servidor de SSH seja em windows e necessario alterara segraunça do authorized_keys get-acl c:\ProgramData\ssh\ssh_host_dsa_key | set-acl C:\Users\[username]\.ssh\authorized_keys ## Benchmarking Discos sudo apt install hdparm sudo hdparm -Tt /dev/sdc ## themes - https://github.com/EliverLara/Nordic ### shell - zsh ``` bash sudo apt install zsh chsh -s /bin/zsh $whoami sudo apt-get install fonts-powerline #source https://ohmyz.sh/#install ssh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" #~/home/.zshrc #ZSH_THEME="agnoster" ``` ### terminal - guake ``` bash apt install guake ``` ``` bash # ~/.config/autostart/guake.desktop [Desktop Entry] Name=guake GenericName=guake auto start Comment= Exec=guake --hide Terminal=false Type=Application X-GNOME-Autostart-enabled=true ``` - terminator ``` bash apt install terminator ``` ## Backups ``` bash tar -cvpzf "/vault/.backups/devices/homeserver/tar/backup_$(date +"%Y%m%d%H%M%S").tar.gz \ --exclude=/proc \ --exclude=/tmp \ --exclude=/mnt \ --exclude=/dev \ --exclude=/sys \ --exclude=/run \ --exclude=/media \ --one-file-system \ / ``` ``` bash #!/bin/bash gio mount ftp://ftp.backups@backupsrv01.dev.lan < ~/.credentials/ftp.backups@backupsrv01.dev.lan DATE=$(date +%d-%m-%Y) BACKUP_DIR="/run/user/1000/gvfs/ftp:host=backupsrv01.dev.lan,user=ftp.backups/mf.brutus.dev.lan" #To backup 2daygeek's home directory tar -zcvpf $BACKUP_DIR/home-mf_$DATE.tar.gz --exclude="**/.tmp/*" --exclude="**/Downloads/*" --exclude="**/.cache/*" --exclude="**/Trash/*" --exclude="**/cache/*" /home/mf #To delete files older than 10 days find $BACKUP_DIR/* -mtime +10 -exec rm {} \; gio mount -u ftp://ftp.backups@backupsrv01.dev.lan ``` ## disable touh screen ``` sudo apt-get -y install xinput xinput ``` Run xinput to list out the input devices. Your touchscreen should show as one of the "pointers". xinput disable "NTRG0001:01 1B96:1B05" (your device ID may differ than mine) Add this to your ~/.profile or such to do automatically upon login xinput disable "NTRG0001:01 1B96:1B05" Source: https://askubuntu.com/questions/759335/how-to-disable-a-touchscreen-on-surface-pro-3 ## disable suspend blackscreen ```bash # /etc/lightdm/lightdm.conf [Seat:*] xserver-command=X -s 0 dpms ``` ## lightdm auto login ```bash # /etc/lightdm/lightdm.conf [SeatDefaults] autologin-user=public autologin-user-timeout=5 # Uncomment the following, if running Unity #greeter-session=unity-greeter ``` ## btop ### Setup #### Debian & Ubuntu ```bash apt update && apt install btop -y ``` ## lspci Displays information about each PCI bus on your system. This includes information about the devices connected to the PCI subsystem. lspci [options] | Option |Description | |--------|----------------------------------------------------| | -v | Verbose | ``` lspci -v ``` ## gnome files / nautilus https://www.maketecheasier.com/useful-nautlius-tweaks-linux/