Linux commands - andretti1977/linux-commands GitHub Wiki
Linux commands
- Empty files: sudo truncate -s0 /var/log/btmp
- Total disk space: df -h
- Space recursively (one level, more readable): sudo du -h --max-depth=1
- Space recursively, more readable, excluding subfolders' sizes: sudo du -sh
- List files ordered by size desc: ls -al -S -1
- Compression: tar -czvf name-of-archive.tar.gz /path/to/directory-or-file
- Expansion: tar -xzvf archive.tar.gz
- **ONLY .GZ files expansion: gunzip file.gz
- scp recursively: $ scp -r foo [email protected]:/some/remote/directory/bar (sorg -> dest)
- add user: sudo adduser username
- add username to sudo group: sudo usermod -aG sudo username
- login as username: su username
- sudo come root: sudo -i
- whoami: whoami
- swap files: in generale fare riferimento a questa guida
SSH
Per mantenere un keep alive, in ~/.ssh/config aggiungerele righe
ServerAliveInterval 20
ServerAliveCountMax 900
Per autenticazione senza password:
pbcopy < ~/.ssh/id_rsa.pub
sulla macchina locale- aggiungere a ~/.ssh/authorized_keys la chiave appena copiata. Se il file non esiste, creare la directory .ssh e il file authorized_keys
OSX find process using port
lsof -n -i4TCP:8100 | grep LISTEN
TimeMachine logs
log show --predicate 'subsystem == "com.apple.TimeMachine"' --info --last 10m
GREP su listing di file
vedi https://stackoverflow.com/a/5914676/1723445
show files whose names contain LMN2011
find /somedir -type f -print | grep 'nomefileLMN2011'
Then you can search their content (case insensitive):
find /somedir -type f -print | grep -i 'nomefileLMN2011' | xargs grep -i 'contenutoLMN20113456'
If the paths can contain spaces, you should use the "zero end" feature:
find /somedir -type f -print0 | grep -iz 'nomefileLMN2011' | xargs -0 grep -i 'contenutoLMN20113456'
Per MotorK:
cd /home/drivek/logs/motork-reporting/
find . -type f -print | grep -i 'motork-reporting.log.2022-' | xargs grep -i 'cosacercare'
GREP su multipli filename Se ad esempio devo vedere se un contenuto era presente sia sui file di novembre che di dicembre, posso fare una cosa del genere (uso | nel grep col backslash):
find . -type f -print | grep -i 'motork-reporting.log.2023-11-\|motork-reporting.log.2023-12-' | xargs grep -i '00k7S00000gBgFwQAK'
HTOP
- Shift-F per pinnare processo
- vedi https://www.deonsworld.co.za/2012/12/20/understanding-and-using-htop-monitor-system-resources/ per eccellente spiegazione
- RES è la memoria fisica consumata dal processo
Less cheatsheet
- G: va alla fine del file
- g: va all'inizio del file
- /qualcosa: ricerca qualcosa
- n: fatta una ricerca, va alla successiva occorrenza
- N: fatta una ricerca, va alla precedente occorrenza
- F: si mette in tail
- d: scorre verso il basso il log di un tot di righe
- u: scorre verso l'alto di un tot di righe
wget di sito completo
wget --mirror --convert-links --page-requisites --no-parent --adjust-extension http://www.museosini.org
Vedi qui per la spiegazione
Permessi e varie
sudo -s
diventi root- edita il file
/etc/passwd
per assegnare una shell agli utenti (/bin/bash) o rimuoverla (/bin/false che non permette di loggarsi con quell'utente) - per loggarsi con un utente che non ha password prima gli assegni una bash e poi ci entri da root
su - username
permette di loggarsi con quell'utente/etc/group
per vedere i gruppi vedi qui per spiegazione
Tunnel ssh
ssh -L 3307:whatismyipaddress.com:443 utente@ipmacchinaponte
Redirige il traffico della porta locale 3307 verso la 443 del server whatsmyipaddress.com passando dalla macchinaponte.
ATTENZIONE: la macchina di destinazione è l'indirizzo della macchina di destinazione, visto dalla macchina ponte. Ad esempio se ho mysql sulla macchina 172.1.2.3 alla porta 3306 e voglio accedere da locale a quel db simulando la porta 3310, posso scrivere ssh -L 3310:localhost:3306 [email protected]
perchè localhost in questo caso è l'host locale, visto dalla macchina ponte e quindi è proprio la macchina ponte.
Per invocarlo andare di curl -k https://127.0.0.1 -H 'Host:whatsmyipaddress.com"
In pratica si passa lo header di Host per far capire che indirizzo cerchiamo. Attenzione non serve aprire la porta 3307 della macchina ponte perchè la 3307 è quella locale della macchina dove si lancia il comando ssh. Sulla macchina ponte ci si passa tramite ssh
Diff osx
diff -rq folderpath1 folderpath2
diff su cartelle, ricorsivo, ma senza la differenza (riassunto)diff -rqb folderpath1 folderpath2
diff su cartelle, ricorsivo, senza tenere conto degli spazi, ma senza la differenza (riassunto)diff -b filepath1 filepath2
diff su file, senza tenere conto degli spazi
Switch versione java
- installata da IntelliJ
/usr/libexec/java_home -V
per vedere le versioni disponibiliexport JAVA_HOME=`/usr/libexec/java_home -v 1.8.0_172`
per settare una versione (metti versione completa)java -version
per check versione attiva- rif 1
- rif 2
- file di fattura sotto lavoro/fatture/prova
java -jar fatture.jar port=9000
Analisi del traffico su un'interfaccia udp
- recupero dell'interfaccia di rete:
ifconfig
sudo tcpdump -i en0 udp