Comandi shell utili poco conosciuti
Con questo breve articolo voglio creare un elenco di comandi shell. Spesso capita che alcuni comandi shell vengono dimenticati o perchè sono poco conosciuti o perchè non sono di uso frequente. Con questa guida vorrei creare un riferimento per tutti, me compreso, per ogni qual volta non ci si ricorda di un comando o si cerca di fare qualcosa in modo più semplice del solito. Cercherò di aggiornare il più possibile l’elenco dei comandi e sono ben accette proposte di integrazione di comandi non inseriti.
Molti dei comandi sono utilizzabili non solo su ubuntu (nel mio caso Ubuntu Server 14.12) o ambianti debian ma anche su Mac OS. Ogni comando in elenco potrà essere preceduto da sudo nel caso in cui l’utente connesso non ha i permessi per poterlo eseguire.
Comandi Shell
Scaricare in modo facile file da un server/pc ubuntu o anche Mac mettendo temporaneamente i file presenti in una specifica directory online. Il comando è spesso utile quando due pc si trovano sulla stessa rete ma non hanno directory condivise tra loro oppure hanno sistemi operativi differenti. Posizionarsi sulla cartella che contiene i file da condividere e digitare il comando:
python -m SimpleHTTPServer 8000
I file saranno disponibili per tutta la rete all’indirizzo http://IPpcCondiviso:8000
E’ scontato che sulla macchina deve esserci installato Python (apt-get install python)
Connessione ssh
ssh nomeutente@IPpcServer
esempio ssh ubuntu@192.168.2.22
Connessione ssh con chiave privata
ssh -i pathdirectory/file.pem nomeutente@IPpcServer
esempio ssh -i /home/daniele/permessi.pem ubuntu@192.168.2.22
Eseguire uno o più comandi subito dopo la login
(esempio avviare un server http dentro una data directory)
ssh nomeutente@IPpcServer -t 'cd /home/daniele; python -m SimpleHTTPServer 8000'
Copiare un file da un pc all’altro tramite ssh
scp <source> <destination>
Copia un file dal tuo pc al server:
scp /TuaDirectory/file username@IpServer:/directory/NomeFiledestinazione
Copia un file dal server al tuo pc
scp username@IpServer:/directory/file /TuaDirectory/NomeFiledestinazione
Nel caso di connessione tramite file .pem bisogna integrare le option con i permessi di connessione
sudo scp -i filepemlocale.pem username@ipserver:filedacopiare directorylocale
Ascoltare le richieste tcp che arrivano al pc. Utile per capire se la rete è stata configurata correttamente.
tcpdump
Cambio permessi file o Directory
chmod -777 filename
chmod -R -777 directory
Verifica spazio disponibile
df -H
Molto utilizzato è sicuramente il comando ls che non è altro che l’equivalente di dir in ambiente dos e serve a visualizzare l’elenco dei file all’interno di una directory.
Le sue opzioni spesso sono poco conosciute e utilizzate. Vediamo quelle secondo me più utili.
Permessi applicati alla directory
ls -ld
Permessi, dimensione, data creazione sui singoli file presenti dentro la directory corrente
ls -ltrh
Verificare in tempo reale l’aggiornamento di un file in fase di analisi di errori o in debug è molto utile. Farlo su un server remoto può sembrare anche difficile. Invece no basta semplicemente aprire il file sulla shell con il seguente comando.
tail -f access_log
Di seguito riporto anche i comandi per spegnere il pc. Sembrerà strano ma anche questi comandi sono poco conosciuti e poco utilizzati. La strada più facile è sempre quella di procedere di tasto di spegnimento sul server. Potrebbe risultare dannoso per i vostri server. Consiglio vivamente di utilizzare sempre i comandi shell sia per spegnere che per riavviare i server Ubuntu.
Spegnere il PC subito (h vuol dire spegni e now ora)
shutdown -h now
Riavviare il PC subito (la r vuol dire riavvia)
shutdown -r now
Spegnere il PC alle ore 23:35 (per riavviare basta mettere -r al posto di -h)
shutdown -h 23:35
Spegnere il PC dopo 3600 secondi (1 ora)
shutdown -h -t 3600
Riavviare subito il pc ,saltando fsck (cioè il test del sistema)
shutdown -f now
Se vi “pentite” dello shutdown potete arrestarlo digitando nel terminale:
shutdown -c
Comandi shell Gestione File Con questo comando è facile eliminare tutti i file di estensione *.xxx che sono contenuti in tutte sottodirectory a partire dalla directory da cui viene lanciato. find . -type f -name '*.xxx' -print -delete
Configura Tastiera in italiano spesso dopo l'installazione di ubuntu la tastiera è settata in inglese. Per riconfigurarla in modo semplice basta eseguire il seguente comando sudo dpkg-reconfigure keyboard-configuration