Files
linux/README.md
2024-03-24 01:35:27 +00:00

440 lines
8.4 KiB
Markdown

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/<DISK NAME>
#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=<PARTUUID GIVEN blksid> <FOLDER WHERE TO MOUNT> ext4 defaults,nofail 0 02
```
Mount fstab partions without reboot
```
mount -a
```
smb share
```
mount -t cifs //ip/share /mnt/backups -o credentials=/path/filename,uid=1000,gid=1000,dir_mode=0755,file_mode=0755
```
## 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
```