Update README.md

This commit is contained in:
2024-03-03 13:52:53 +00:00
parent c0010c746f
commit f88170c031

671
README.md
View File

@@ -1,325 +1,346 @@
Linux Linux
## comands ## comands
```bash ```bash
# OS information # OS information
hostnamectl hostnamectl
#get hostname #get hostname
hostname hostname
#system update #system update
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y
``` ```
## Users ## Users
```bash ```bash
#create #create
useradd USERNAME useradd USERNAME
#remove #remove
userdel USERNAME userdel USERNAME
#useradd -r USERNAME #useradd -r USERNAME
passwd passwd
passwd USERNAME passwd USERNAME
groups groups
groupadd GROUPNAME groupadd GROUPNAME
groups USERNAME groups USERNAME
usermod -a -G GROUPNAME USERNAME usermod -a -G GROUPNAME USERNAME
chown [-c|--changes] [-v|--verbose] [-f|--silent|--quiet] [--dereference] chown [-c|--changes] [-v|--verbose] [-f|--silent|--quiet] [--dereference]
[-h|--no-dereference] [--preserve-root] [-h|--no-dereference] [--preserve-root]
[--from=currentowner:currentgroup] [--no-preserve-root] [--from=currentowner:currentgroup] [--no-preserve-root]
[-R|--recursive] [--preserve-root] [-H] [-L] [-P] [-R|--recursive] [--preserve-root] [-H] [-L] [-P]
{new-owner|--reference=ref-file} file ... {new-owner|--reference=ref-file} file ...
``` ```
## hostame ## hostame
``` ```
sudo nano /etc/hostname sudo nano /etc/hostname
#alterar o nome #alterar o nome
sudo nano /etc/hosts sudo nano /etc/hosts
#alterar o nome #alterar o nome
Static IP 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 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 ## static ip
Debian Debian
sudo nano /etc/network/interfaces sudo nano /etc/network/interfaces
Exemplo de configuração Exemplo de configuração
``` ```
# neste exemplo de configuração a place de rede tem o nome enxd0374555c1f8 # neste exemplo de configuração a place de rede tem o nome enxd0374555c1f8
# This file describes the network interfaces available on your system # This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5). # and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/* source /etc/network/interfaces.d/*
# The loopback network interface # The loopback network interface
auto lo auto lo
iface lo inet loopback iface lo inet loopback
# The primary network interface # The primary network interface
allow-hotplug enxd0374555c1f8 allow-hotplug enxd0374555c1f8
iface enxd0374555c1f8 inet static iface enxd0374555c1f8 inet static
address 192.168.0.2 address 192.168.0.2
netmask 255.255.255.0 netmask 255.255.255.0
gateway 192.168.0.1 gateway 192.168.0.1
dns-nameservers 89.207.128.252 89.207.130.252 dns-nameservers 89.207.128.252 89.207.130.252
Reiniciar configuração sem reboot de computador Reiniciar configuração sem reboot de computador
``` ```
``` ```
Reiniciar configuração sem reboot de computador Reiniciar configuração sem reboot de computador
#sudo /etc/init.d/networking restart #sudo /etc/init.d/networking restart
``` ```
Gestão de Discos ## Disks
Uso e Espaço disponível
``` File System & Space Usage
df -H
Listar discos e partições ```
lsblk df -h
Gestão de partições ```
sudo fdisk /dev/NOMEDISCO(resultado do lsblk)
```
Exemplo:
#Listar discos e partições
sudo fdisk /dev/sdc lsblk
e seguir o wizard #Gestão de partições
sudo fdisk /dev/NOMEDISCO(resultado do lsblk)
Partições como mais de 2 TB
sudo parted /dev/sdc #Exemplo:
(parted) mklabel gpt
#alterar para a unidade de medida que desejar sudo fdisk /dev/sdc
(parted) unit TB #e seguir o wizard
#ver espaço livre
(parted) print free #Partições como mais de 2 TB
#criar partição com espaço livre (exemplo:4 Teras) sudo parted /dev/sdc
mkpart primary ext4 0 4 #(parted) mklabel gpt
Formatar uma partição #alterar para a unidade de medida que desejar
Ext4 #(parted) unit TB
mkfs.ext4 /dev/sdb1 #ver espaço livre
Ext3 (parted) print free
mkfs.ext3 /dev/sdb1 #criar partição com espaço livre (exemplo:4 Teras)
exFat mkpart primary ext4 0 4
sudo mkfs.exfat /dev/sdc1 #Formatar uma partição
NTFS #Ext4
sudo apt-get install ntfs-3g mkfs.ext4 /dev/sdb1
sudo mkntfs --fast --label Backups /dev/sdc1 #Ext3
Visualizar ids de partição mkfs.ext3 /dev/sdb1
blkid /dev/sdc1 #exFat
Mount de discos no arranque sudo mkfs.exfat /dev/sdc1
sudo nano /etc/fstab #NTFS
#adicionar/editar linha como pretendido sudo apt-get install ntfs-3g
PARTUUID=PARTUUIDQueBlkidDevolveu DirectorioOndeMontar ext4 defaults,nofail 0 02 sudo mkntfs --fast --label Backups /dev/sdc1
mount de tudo o que está no fstab mas não esteja ainda montado (util para testar o fstab sem reboot) #Visualizar ids de partição
blkid /dev/sdc1
mount -a #Mount de discos no arranque
`````` sudo nano /etc/fstab
## Manutenção de discos #adicionar/editar linha como pretendido
Bad Sectors PARTUUID=PARTUUIDQueBlkidDevolveu DirectorioOndeMontar ext4 defaults,nofail 0 02
sudo e2fsck -cfpv /dev/sda1 #mount de tudo o que está no fstab mas não esteja ainda montado (util para testar o fstab sem reboot)
O Exemplo foi com o disco sda1 mas deverá ser subsituido pelo disco desejado
mount -a
Os parâmetros têm os seguintes significados: ```
“c” procura por blocos defeituosos e os adiciona à lista
## Manutenção de discos
“f” força uma verificação no sistema de arquivos
Bad Sectors
“p” repara qualquer coisa que possa ser reparada com segurança sudo e2fsck -cfpv /dev/sda1
O Exemplo foi com o disco sda1 mas deverá ser subsituido pelo disco desejado
“v” está no modo detalhado. você pode ver o progresso do comando
Os parâmetros têm os seguintes significados:
Esse comando pode levar muito tempo para ser executado, até várias horas em uma unidade particularmente grande.
“c” procura por blocos defeituosos e os adiciona à lista
### Compressão
A utilização o comando tar é uma das formas de comprimir no linux “f” força uma verificação no sistema de arquivos
sudo tar -cvf --exclude='.cache' --exclude='Cache' --exclude='.cache' --exclude='.tmp' --exclude='tmp' /tmp/nomedoficheiro.tar.gz /PATHPARAFICEHIROOUDIRECTORIO “p” repara qualquer coisa que possa ser reparada com segurança
Caso seja necessário paralelismo
“v” está no modo detalhado. você pode ver o progresso do comando
sudo tar -I pigz -cvf - /fileserver/media/music/*
Se for necessário limitar o tamanho do ficheiro compresso (dividindo em multiplos ficheiros) Esse comando pode levar muito tempo para ser executado, até várias horas em uma unidade particularmente grande.
sudo tar -I pigz -cvf - /sourcefolder/* | split --bytes=8GB - /tmp/file.tar.gz ## tar
A utilização o comando tar é uma das formas de comprimir no linux
## SSH ```
para executar comandos por ssh que usem o display do servidor, começar por executar: tar -cvf --exclude='.cache' --exclude='Cache' --exclude='.cache' --exclude='.tmp' --exclude='tmp' /tmp/nomedoficheiro.tar.gz /PATHPARAFICEHIROOUDIRECTORIO
export DISPLAY=:0 #Caso seja necessário paralelismo
screen tar -I pigz -cvf - /fileserver/media/music/*
Para mais informações como manter o comando a executar mesmo que termine a sessão de ssh consultar:Screen
#Se for necessário limitar o tamanho do ficheiro compresso (dividindo em multiplos ficheiros)
sem password tar -I pigz -cvf - /sourcefolder/* | split --bytes=8GB - /tmp/file.tar.gz
criar chaves (publica e privada) no cliente ```
```
ssh-keygen -t ecdsa -b 521 ## SSH
Se for necessário controlar o nome do ficheiro para executar comandos por ssh que usem o display do servidor, começar por executar:
#substituir ~/.ssh/id_ecdsa/mf-key-ecdsa com o path de destino e o nome pretendido export DISPLAY=:0
# o directório tem que existir, por isso se não existir: screen
# mkdir ~/ssh/id_ecdsa Para mais informações como manter o comando a executar mesmo que termine a sessão de ssh consultar:Screen
ssh-keygen -t ecdsa -b 521 -f ~/.ssh/mf-key-ecdsa
copiar a chave para o servidor sem password
criar chaves (publica e privada) no cliente
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-keygen -t ecdsa -b 521
Se for necessário controlar o nome do ficheiro
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: #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:
chmod g-rwx,o-rwx ~/.ssh/mf-key-ecdsa # mkdir ~/ssh/id_ecdsa
Para adicionar o chave existente no ssh-agent (só necessario se a chave privada for copiada de outro sitio) ssh-keygen -t ecdsa -b 521 -f ~/.ssh/mf-key-ecdsa
``` copiar a chave para o servidor
eval `ssh-agent` ssh-copy-id -i ~/.ssh//mf-key-ecdsa.pub example_user@192.0.2.4
ssh-add pathenomedoficheiro testar o ssh para ver se funcionou (ou seja não pede a password)
Caso o servidor de SSH seja em windows e necessario alterara segraunça do authorized_keys 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:
get-acl c:\ProgramData\ssh\ssh_host_dsa_key | set-acl C:\Users\[username]\.ssh\authorized_keys
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)
```
## Benchmarking eval `ssh-agent`
Discos ssh-add pathenomedoficheiro
sudo apt install hdparm
sudo hdparm -Tt /dev/sdc 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
## themes
- https://github.com/EliverLara/Nordic
### shell
## Benchmarking
- zsh Discos
sudo apt install hdparm
``` bash sudo hdparm -Tt /dev/sdc
sudo apt install zsh
chsh -s /bin/zsh $whoami
sudo apt-get install fonts-powerline ## themes
- https://github.com/EliverLara/Nordic
#source https://ohmyz.sh/#install
ssh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" ### shell
#~/home/.zshrc - zsh
#ZSH_THEME="agnoster"
``` bash
``` sudo apt install zsh
### terminal chsh -s /bin/zsh $whoami
sudo apt-get install fonts-powerline
- guake #source https://ohmyz.sh/#install
ssh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
``` bash
apt install guake #~/home/.zshrc
``` #ZSH_THEME="agnoster"
``` bash ```
# ~/.config/autostart/guake.desktop ### terminal
[Desktop Entry]
Name=guake
GenericName=guake auto start - guake
Comment=
Exec=guake --hide ``` bash
Terminal=false apt install guake
Type=Application ```
X-GNOME-Autostart-enabled=true
``` ``` bash
# ~/.config/autostart/guake.desktop
- terminator [Desktop Entry]
Name=guake
``` bash GenericName=guake auto start
apt install terminator Comment=
``` Exec=guake --hide
Terminal=false
Type=Application
## Backups X-GNOME-Autostart-enabled=true
``` bash ```
sudo tar -cvpzf "/vault/.backups/devices/homeserver/tar/backup_$(date +"%Y%m%d%H%M%S").tar.gz \
--exclude=/proc \ - terminator
--exclude=/tmp \
--exclude=/mnt \ ``` bash
--exclude=/dev \ apt install terminator
--exclude=/sys \ ```
--exclude=/run \
--exclude=/media \
--one-file-system \ ## Backups
/
``` ``` bash
tar -cvpzf "/vault/.backups/devices/homeserver/tar/backup_$(date +"%Y%m%d%H%M%S").tar.gz \
``` bash --exclude=/proc \
--exclude=/tmp \
#!/bin/bash --exclude=/mnt \
gio mount ftp://ftp.backups@backupsrv01.dev.lan < ~/.credentials/ftp.backups@backupsrv01.dev.lan --exclude=/dev \
--exclude=/sys \
DATE=$(date +%d-%m-%Y) --exclude=/run \
BACKUP_DIR="/run/user/1000/gvfs/ftp:host=backupsrv01.dev.lan,user=ftp.backups/mf.brutus.dev.lan" --exclude=/media \
--one-file-system \
#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 ``` bash
find $BACKUP_DIR/* -mtime +10 -exec rm {} \;
#!/bin/bash
gio mount -u ftp://ftp.backups@backupsrv01.dev.lan gio mount ftp://ftp.backups@backupsrv01.dev.lan < ~/.credentials/ftp.backups@backupsrv01.dev.lan
```
DATE=$(date +%d-%m-%Y)
## disable touh screen BACKUP_DIR="/run/user/1000/gvfs/ftp:host=backupsrv01.dev.lan,user=ftp.backups/mf.brutus.dev.lan"
```
sudo apt-get -y install xinput #To backup 2daygeek's home directory
xinput 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
Run xinput to list out the input devices. Your touchscreen should show as one of the "pointers". find $BACKUP_DIR/* -mtime +10 -exec rm {} \;
xinput disable "NTRG0001:01 1B96:1B05" (your device ID may differ than mine) gio mount -u ftp://ftp.backups@backupsrv01.dev.lan
```
Add this to your ~/.profile or such to do automatically upon login
xinput disable "NTRG0001:01 1B96:1B05" ## disable touh screen
```
Source: https://askubuntu.com/questions/759335/how-to-disable-a-touchscreen-on-surface-pro-3 sudo apt-get -y install xinput
xinput
## disable suspend blackscreen ```
```bash Run xinput to list out the input devices. Your touchscreen should show as one of the "pointers".
# /etc/lightdm/lightdm.conf
[Seat:*] xinput disable "NTRG0001:01 1B96:1B05" (your device ID may differ than mine)
xserver-command=X -s 0 dpms
``` Add this to your ~/.profile or such to do automatically upon login
xinput disable "NTRG0001:01 1B96:1B05"
## lightdm auto login
Source: https://askubuntu.com/questions/759335/how-to-disable-a-touchscreen-on-surface-pro-3
```bash
# /etc/lightdm/lightdm.conf ## disable suspend blackscreen
[SeatDefaults]
autologin-user=public ```bash
autologin-user-timeout=5 # /etc/lightdm/lightdm.conf
# Uncomment the following, if running Unity [Seat:*]
#greeter-session=unity-greeter xserver-command=X -s 0 dpms
``` ```
## gio ## lightdm auto login
### mount samba share ```bash
```bash # /etc/lightdm/lightdm.conf
#/home/username/.credentials [SeatDefaults]
#username autologin-user=public
#SAMBA autologin-user-timeout=5
#password # Uncomment the following, if running Unity
gio mount smb://server/share < /home/username/.credentials #greeter-session=unity-greeter
``` ```
### unmount ## gio
```bash ### mount samba share
gio mount -u smb://server/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
```