Tips & Tricks
- dino
- Messaggi: 16580
- Iscritto il: mercoledì 30 novembre 2011, 18:21
Re: Tips & Tricks
Working harder: http://www.dinofratelli.it
Listen House Music: https://www.dinobrosdj.it
Safety online https://omniadpi.it/
- conoscenza
- Messaggi: 3821
- Iscritto il: venerdì 2 dicembre 2011, 23:27
- Località: Parma
Re: Tips & Tricks
mi fa piacere che abbia un riscontro positivo!dino ha scritto:Questa cosa mi sarà moltoooooo utile! Spesso accade che si hanno problemi con la rilevazione della corretta risoluzione dei monitor con Linux
Segnalate qui le vostre offerte di smartphone e tablet!!!
- conoscenza
- Messaggi: 3821
- Iscritto il: venerdì 2 dicembre 2011, 23:27
- Località: Parma
Re: Tips & Tricks
Spesso capita che, per un motivo o per un altro, alcuni siti web siano offline. Immaginate che questo stesso sito contenga informazioni a noi molto preziose, e che quindi quando tentiamo di accedervi, ed è offline, ci causa non pochi problemi.
A me capita spesso con siti web un po' datati, cioè che oramai hanno perso un amministratore e che quindi sono destinati alla scomparsa, anche se sono siti web che contengono molto informazioni, per me importanti, anche se datate!
Ecco che allora mi viene incontro il comando wget!
Infatti basta dare:
Codice: Seleziona tutto
wget --mirror indirizzo_sito_web
Quindi spostatevi con "cd" dove volete creare il vostro sito offline, e magari controllate con:
Codice: Seleziona tutto
pwd
Ovviamente il sito web potrebbe anche richiedere dati di autenticazione che noi passeremo a wget stesso!
Come sempre consiglio di vedere:
Codice: Seleziona tutto
man wget
Segnalate qui le vostre offerte di smartphone e tablet!!!
- Lynnfield
- Messaggi: 303
- Iscritto il: martedì 31 gennaio 2012, 19:30
Re: Tips & Tricks
Aggiungo un trucchetto che usavo quando avevo l'appartamento all'università:
spesso capitava che con il mio coinquilino guardavamo le ultime puntate dei Simpson piuttosto che di Big Bang Theory, ecc. prima di metterci a dormire, il problema sorgeva quando dovevamo spegnere il computer che era sprovvisto di telecomando.
Ebbene, si puàò utilizzare il comando shutdownd. Va lanciato da root.
Esempio:
Codice: Seleziona tutto
shutdown -h hh:mm
Codice: Seleziona tutto
shutdown -h -t tempo
Ricordo che l'opzione -h serve per "non fare nulla" dopo aver spento la macchina. Mentre se si utilizzasse l'opzione -r si ha il reboot, dopo aver spenta all'ora o dopo un tot di secondi/minuti prestabiliti.
Se avete sbagliato o volete semplicemente annullare lo spegnimento automatico bastare preme CTRL+C, se avete ancora quel terminale aperto (magari l'avete disancorato con "disown") e quindi il comando da dare, sempre da root, è:
Codice: Seleziona tutto
shutdown -c
Grazie a Lynnfield
edit by conoscenza
- conoscenza
- Messaggi: 3821
- Iscritto il: venerdì 2 dicembre 2011, 23:27
- Località: Parma
Re: Tips & Tricks
Segnalate qui le vostre offerte di smartphone e tablet!!!
- conoscenza
- Messaggi: 3821
- Iscritto il: venerdì 2 dicembre 2011, 23:27
- Località: Parma
Re: Tips & Tricks
Una delle cose più "geniali" dei sistemi Linux è il comando "chroot": spesso non conosciuto o mal usato!
Questo, per me, meraviglioso comando permette di "costruirsi" un ambiente, diverso da quello che si sta utilizzando. Mi spiego: questo comando permette di crearsi un ambiente dentro l'altro, senza l'uso di macchine virtuali! Quindi è come avviare due (se si è masochisti anche più di due) sistemi su un unico hardware. Io lo trovo geniale! Voi no?
Vi dico che tramite l'uso corretto di "chroot" voi potete risolvere qualsiasi problema da una live, o da un'installazione in dual-boot, di un sistema in panne! Lo riparate come se foste dentro al sistema!
Molti utenti linux ignorano questo comando, altri lo usano male perchè si limitano a dare la sintassi di chroot tipo:
Codice: Seleziona tutto
chroot /mnt/SO_in_panne
Veniamo al dunque. Per poter utilizzare in maniera corretta il comando chroot si deve.
Loggatevi come root:
Codice: Seleziona tutto
su -
Creiamo una cartella in /mnt/ :
Codice: Seleziona tutto
mkdir /mnt/SO_in_panne
Codice: Seleziona tutto
mount /dev/sdaX /mnt/SO_in_panne/
...e ora arriva il bello!Molti si fermano qui con l'operazione "mount" invece bisogna dare anche:
Codice: Seleziona tutto
mount -t proc none /mnt/SO_in_panne/proc
in modo tale che vengano passati all'ambiente del sistema in panne le informazioni fornite dal kernel, e:
Codice: Seleziona tutto
mount -o bind /dev/ /mnt/SO_in_panne/dev
Ora siamo pronti per accedere, badate bene, come utente root, nel nostro ambiente "in panne" dando:
Codice: Seleziona tutto
chroot /mnt/SO_in_panne
Ovviamente potete usarlo anche su sistemi non in panne!!!
(solitamente lo uso quando devo per forza di cose usare Fedora e da li, "costruendomi" l'ambiente Gentoo installato in dual-boot sul PC, emergo gli aggiornamenti!)
Ndr: una volta creata la cartella si può lanciare il comando per intero che sarebbe cosi formattato:
Codice: Seleziona tutto
mount /dev/sdaX /mnt/SO_in_panne/ && mount -t proc none /mnt/SO_in_panne/proc && mount -o bind /dev/ /mnt/SO_in_panne/dev && chroot /mnt/SO_in_panne
Per uscire dall'ambiente chrootato basta dare "exit" e torna all'ambiente originario.
Segnalate qui le vostre offerte di smartphone e tablet!!!
- conoscenza
- Messaggi: 3821
- Iscritto il: venerdì 2 dicembre 2011, 23:27
- Località: Parma
Re: Tips & Tricks
Questo che vi sto per presentare è l'albero delle directory di un sistema Linux. In linea di massima ogni sistema Linux è cosi strutturato, ma ci sono alcune distro che si potrebbero differenziare.
Solitametne chi arriva da un sistema Windows è solito avere directory come "Documents and Settings", "Programmi" e cosi via.
Cercherò di riassumerle un po' tutte, cosi da poterle trovare qui ogni volta che vi chiederete "a cosa serve" e/o "cosa c'è qui dentro"?
Ovviamente la radice è: /, ma se state leggendo qui credo che questo vi sia chiaro!
/bin: contiene i comandi durante l'avvio del sistema e i comandi usati dagli utenti normali dopo l'avvio.
/sbin: contiene comandi per gli utenti root. È però possibile far funzionare alcuni di questi comandi anche ad utenti normale se questi ne hanno il permesso.
/etc: file di configurazione specifici per la macchina in cui si trova la sotto-directory.
Vediamo alcune sue sotto-directory.
/etc/rc: è il file script responsabile per l'avvio o fermare i servizi ai vari runlevel, o quando è lo stesso runlevel a cambiare.
/etc/rc.d/ e /etc/rcX.d/: contengono script da eseguire all'avvio o quando si cambia runlevel.
NB: la X indica il numero del runlevel avviato.
/etc/passwd: è il database degli utenti, con vari campi tra quali il vero nome dell'utente, la home directory, la password criptata ed altre informazioni su ciascun utente. (vedere
Codice: Seleziona tutto
man passwd
/etc/shadow: contiene le password criptate, che vengono spostate da /etc/passwd a /etc/shadow. Questo file è accessibile solamente all'utente root.
/etc/fstab: è il file che elenca i filesystem montanti automaticamente all'avvio.
/etc/group: simile a /etc/passwd, ma descrive i gruppi invece degli utenti. (vedere
Codice: Seleziona tutto
man group
/etc/inittab: è il file script che gestisce l'avvio per l'avvio del runlevel di default. È il file di configurazione di init.
/etc/issue e /etc/issue.net: contiene una breve descrizione del sistema o un messaggio di benvenuto, la scelta è lasciata all'amministratore del sistema. Questo viene visualizzata prima del prompt di login.
/etc/motd: contiene il messaggio del giorno! Viene visualizzato subito dopo ogni login riuscito e serve per dare avvisi o altre informazioni utili all'utente da parte dell'amministratore del sistema.
/etc/mtab: contiene l'elenco dei filesystem montati al momento....
/etc/printcap: contiene le stampanti installate sul sistema, viene generato automaticamente da cups.
/etc/profile: è uno script lanciato al login o all'avvio dalle shell. NON è buona norma modificarlo.
/etc/securety: contiene l'elenco dei terminali sicuri, da cui l'utente root può accedere al sistema.
/root: è la home directory dell'utente root. Infatti il carattere ~, se loggati come root nel terminale, restituirà /root e non più /home/nomeutente.
/lib: contiene le librerie condivise necessarie ai programmi sul filesystem radice.
/lib/modules: contiene, nelle sotto-directory dei vari kernel, i moduli caricabili dal kernel stesso.
/dev: sono contenuti tutti i dispositivi (device) collegati al sistema.
/tmp: contiene i file temporanei. Ricordo però che durante l'utilizzo i file temporanei dovrebbero essere posti in /var/tmp e non in /tmp.
/boot: contiene i file usati dal bootstrap loader, che sia LILO o GRUB. Qui vi sono anche le immagini del kernel. È consigliato avere una partizione separata per questa directory.
/mnt: è il punto di mount, dove è possibile montare temporaneamente altri dischi, immagini di dischi e quel che si vuole. Solitamente si usa montare qui altre partizioni dati di altri SO e non automaticamente modificando il file /etc/fstab.
/media: è il punto di mount automatico del sistema, o almeno dovrebbe essere cosi, quando colleghiamo al sistema, già avviato, dischi esterni, penne usb o altri dispositivi di archiviazione, compresi CD-ROM, etc...
/proc: contiene filesystem virtuali. All'interno sono contenuti file, non presenti sul disco, ma vengono creati nella memoria dal kernel.
NB: i file contenuti qui dentro sono file che non occupano spazio -non esistono sul disco- fino a quando non vengono copiati da qualche parte.
/proc/<numero>: "numero" indica il PID di un processo. Ogni processo ha sotto /proc una directory con le proprie informazioni.
/proc/cpuinfo: contiene le informazioni sul processore (tipo, marca, modello, performance, set di istruzioni...)
/proc/devices: contiene l'elenco dei device driver configurati nel kernel in uso.
/proc/dma: contiene l'elenco dei canali DMA usati al momento.
/proc/filesystems: contiene l'elenco dei filesystem configurati nel kernel
/proc/interrupts: contiene l'elenco degli interrupt in uso e quanti ne sono stati chiamati di ciascuno, specificato per i vari cores.
/proc/ioports: contiene l'elenco delle porte di I/O in uso al momento.
/proc/kcore: contiene l'immagine della memoria fisica del sistema. Viene generato in tempo reale quando i programmi vi accedono!
/proc/kmsg: contiene i messaggi di output del kernel, mostrati in tempo reale. (NdR: con "dmesg" per notare differenze bisogna ridare il comando pù volte, qui vengono visualizzate invece immediatamente con il comando "cat").
/proc/meminfo: contiene informazioni sull'uso della memoria, sia fisica che di swap.
/proc/modules: contiene l'elenco di quali moduli kernel sono caricati al momento.
/proc/net: contiene delle sottodirectory che danno informazioni sullo stato dei protocolli di rete.
AD esempio il comando:
Codice: Seleziona tutto
cat /proc/net/wireless[/quote]
mostra lo stato della nostra connessione wireless
[b]/proc/uptime[/b]: contiene il tempo per il quale il sistema è nello stato "attivo".
[b]/proc/version[/b]: contiene informazioni sulla versione di kernel, GCC, release, ...
[b]/usr[/b]: contiene comandi, librerie, pagine man e altri file che non vengono modificato durante le normali operazioni. Questa cartella tende a diventare molto grande, quindi sfruttando il fatto che contiene file che non si modificano durante l'utilizzo, ne rende facile la condivisione in rete.
[b]/usr/bin[/b]: contiene i comandi utenti. Alcuni sono in /bin o in /usr/local/bin.
[b]/usr/sbin[/b]: contiene i comandi di amministrazione del sistema.
[b]/usr/include[/b]: contiene i file di header per il linguaggio di programmazione C.
[b]/usr/lib[/b]: contiene i file di dati che non vengono modificati per i programmi ed i sottosistemi, tra cui anche alcuni file di configurazione validi per tutto il sistema. In passato erano qui memorizzate le librerie delle subrountine di programmazione.
[b]/usr/local[/b]: contiene software installato in locale e per gli altri file.
[b]/var[/b]: contiene, al contrario di /usr, file che vengono modificato in runtime. Qui dentro troviamo lo spool di stampa, di posta, di news, i file di log e i file temporanei. Questa directory non viene condivisa con altri computer della rete.
[b]/var/lib[/b]: contiene i file che vengono modificati mentre il sistema viene normalmente usato.
[b]/var/local[/b]: contiene i dati variabili per i programmi che vengono installati in /usr/local.
[b]/var/lock[/b]: contiene i file di lock. I programmi creano file di lock in /var/lock per indicare che stanno usando un particolare dispositivo o file; altri programmi noteranno il file di lock e non accetteranno di usare il dispositivo o il file in questione. (Come quando si apre un file da una chiavetta usb rimovibile e poi si tenta la "rimozione" e questa viene impedita)
[b]/var/log[/b]: contiene i file di log di vari programmi, ad esempio di:
1)login: in [b]/var/log/wtmp[/b] vengono qui memorizzati i login e logout del sistema;
2)syslog: in [b]/var/log/messages[/b] vengono immagazzinati tutti i messaggi del kernel e dei programmi di sistema
NB: i file in /var/log possono crescere indefinitamente.
[b]/var/run[/b]: contiene i file che contengono informazioni sul sistema valide fino al successivo reboot. Ad esempio:
1)[b]/var/run/utmp[/b] contiene informazioni sugli utenti collegati in quel momento.
[b]/var/spool[/b]: contiene directory per mail, news, code di stampa e altre code. Ciascun spool ha la sua sottodirectory.
[b]/var/tmp[/b]: contiene i file temporanei che devono esistere per tempi più lunghi rispetto a quelli che in /tmp sono consentiti.
[b]/home[/b]: contiene la home directory degli utenti (raggiungibile con il comando ~). Separare questa directory dal resto del filesystem, non solo rende i backup più semplici, ma consente di avere una /home grande senza che questa vada a rendere succube l'intero filesystem da essa. (La /home racchiude tutti i nostri dati, questa si modifica spesso nel tempo, un' eccessiva dimensione della stessa può compromettere tutto il sistema per insufficienza di spazio sul disco)
Segnalate qui le vostre offerte di smartphone e tablet!!!
- dino
- Messaggi: 16580
- Iscritto il: mercoledì 30 novembre 2011, 18:21
Come controllare l'occupazione di spazio su disco di file e
Con il comando df è possibile controllare l'occupazione dello spazio disco dei singoli filesystem montati. Utilizzate lo switch -h per ottenere una indicazione facilmente leggibile in GB o MB.
Se invece volete sapere qual'è lo spazio occupato da una singola directory o da un singolo file dovete usare il comando du. Ad esempio (lo switch -a visualizza anche i file):
du -h /home/Documenti
Questo comando vi mostra l'elenco di tutti i file e le sotto-directory con la relativa occupazione di spazio. Se volete conoscere l'occupazione complessiva della directory principale aggiungete lo switch -c, oppure -s se volete visualizzare solo quest'ultima senza il dettaglio:
du -hc /home/Documenti
du -hs /home/Documenti
E' altresì possibile ottenere un elenco ordinato per dimensione aggiungendo il comando sort:
du -h | sort -n
du -ah | sort -n
Working harder: http://www.dinofratelli.it
Listen House Music: https://www.dinobrosdj.it
Safety online https://omniadpi.it/
- conoscenza
- Messaggi: 3821
- Iscritto il: venerdì 2 dicembre 2011, 23:27
- Località: Parma
Re: Tips & Tricks
Molto utile negli script, ma anche da dare in pasto direttamente al terminale, è la sostituzione di comando.
Ne ho parlato nell'argomento "Script bash", ma mi sembra giusto linkarlo anche qui perchè è un buon metodo di utilizzare la shell.
Faccio un esempio di utilizzo.
Vogliamo entrare nella sotto-directory del kernel attualmente in uso: che facciamo?
Pimo metodo (lungo):
Conosciamo il kernel che stiamo utilizzando mediante: "uname -r"
Poi usiamo il comando "cd /usr/src/<kernel_attuale>".
Secondo metodo (corto):
Ci basta dare il comando:
Codice: Seleziona tutto
cd /usr/src/$(uname -r)
L' esempio è "stupido" però serve a farvi capire l'utilizzo...
Più interessante sarebbe stato vedere:
Codice: Seleziona tutto
rm $(cat lista_di_file_da_cancellare)
Codice: Seleziona tutto
elenco_file_di_testo=$(ls *.txt)
Segnalate qui le vostre offerte di smartphone e tablet!!!
- conoscenza
- Messaggi: 3821
- Iscritto il: venerdì 2 dicembre 2011, 23:27
- Località: Parma
Re: Tips & Tricks
Quando il sistema diventa lento, dovuto ad un crash di un determinato programma/processo, o perchè un programma/comando sta impiegando troppo e per troppo tempo la nostra CPU, per non perdere altro lavoro in esecuzione in quel momento sulla nostra macchina non ci resta che ucciderlo, o come si dice in termini UNIX "killarlo"!
Ma come facciamo ad individurare il processo che occupa troppa % di CPU?
Diamo, da root, il comando:
Codice: Seleziona tutto
ps aux --sort=-pcpu
Talvolta i processi sono troppi e quindi ordinandoli in questo modo non ci consente di visualizzare qual è il processo che occupa più & di CPU, per questo allora preferiremo un ordinamento di tipo crescente.
Diamo, sempre da root, il comando:
Codice: Seleziona tutto
ps aux --sort=+pcpu
Codice: Seleziona tutto
ps aux --sort=pcpu
e l'ultimo processo postato sarà quello che impiega più CPU.
notiamo l'output del comando "ps" che, nelle prime 4 colonne avrà:
USER: utente proprietario del processo
PID: numero PID (identifica il processo)
%CPU: percentuale di uso della CPU
%MEM: percentuale di uso della RAM
Quindi per "uccidere" il processo diamo il comando:
Codice: Seleziona tutto
kill -9 PID_del_processo_interessato
Ricordo di visualizzare:
Codice: Seleziona tutto
man ps
Codice: Seleziona tutto
man kill
Codice: Seleziona tutto
kill -l
Segnalate qui le vostre offerte di smartphone e tablet!!!