diff --git a/README.md b/README.md index 2015ef0..4c42a4b 100644 --- a/README.md +++ b/README.md @@ -1,325 +1,346 @@ - Linux - -## comands - -```bash - -# OS information -hostnamectl - -#get hostname -hostname - -#system update - -sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y -``` - -## 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 -``` - -Gestão de Discos -Uso e Espaço disponível -``` -df -H -Listar discos e partições -lsblk -Gestão de partições -sudo fdisk /dev/NOMEDISCO(resultado do lsblk) - -Exemplo: - -sudo fdisk /dev/sdc -e seguir o wizard - -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 -Ext4 -mkfs.ext4 /dev/sdb1 -Ext3 -mkfs.ext3 /dev/sdb1 -exFat - sudo mkfs.exfat /dev/sdc1 -NTFS -sudo apt-get install ntfs-3g -sudo mkntfs --fast --label Backups /dev/sdc1 -Visualizar ids de partição - blkid /dev/sdc1 -Mount de discos no arranque -sudo nano /etc/fstab -#adicionar/editar linha como pretendido -PARTUUID=PARTUUIDQueBlkidDevolveu DirectorioOndeMontar ext4 defaults,nofail 0 02 -mount de tudo o que está no fstab mas não esteja ainda montado (util para testar o fstab sem reboot) - -mount -a -`````` -## 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. - -### Compressão -A utilização o comando tar é uma das formas de comprimir no linux - -sudo tar -cvf --exclude='.cache' --exclude='Cache' --exclude='.cache' --exclude='.tmp' --exclude='tmp' /tmp/nomedoficheiro.tar.gz /PATHPARAFICEHIROOUDIRECTORIO -Caso seja necessário paralelismo - - sudo tar -I pigz -cvf - /fileserver/media/music/* -Se for necessário limitar o tamanho do ficheiro compresso (dividindo em multiplos ficheiros) - - sudo 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 -sudo 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 -``` - -## 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 -``` + Linux + +## comands + +```bash + +# OS information +hostnamectl + +#get hostname +hostname + +#system update + +sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y +``` + +## 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 +``` + +``` + +#Listar discos e partições +lsblk +#Gestão de partições +sudo fdisk /dev/NOMEDISCO(resultado do lsblk) + +#Exemplo: + +sudo fdisk /dev/sdc +#e seguir o wizard + +#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 +#Ext4 +mkfs.ext4 /dev/sdb1 +#Ext3 +mkfs.ext3 /dev/sdb1 +#exFat + sudo mkfs.exfat /dev/sdc1 +#NTFS +sudo apt-get install ntfs-3g +sudo mkntfs --fast --label Backups /dev/sdc1 +#Visualizar ids de partição + blkid /dev/sdc1 +#Mount de discos no arranque +sudo nano /etc/fstab +#adicionar/editar linha como pretendido +PARTUUID=PARTUUIDQueBlkidDevolveu DirectorioOndeMontar ext4 defaults,nofail 0 02 +#mount de tudo o que está no fstab mas não esteja ainda montado (util para testar o fstab sem reboot) + +mount -a +``` + + +## 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 +``` + +## 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 +``` + +## btop + + +### Setup + +#### Debian & Ubuntu +```bash +apt update && apt install btop -y +```