PERLE dalle GWN e non
1.Usare il comando file
Il trucco di questa settimana vi mostra l'uso del comando file. Questo comando è presente in UNIX almeno dal 1973 ma è spesso overlooked. Comunque, è un comando estremamente utile per classificare i file.
Il comando file incluso nel pacchetto sys-apps/file, così se non lo avete ancora installato, dovete digitare emerge file. Probabilmente lo avrete già nel vostro sistema. Per usare file digitate semplicemente file nomefile e vedrete le informazioni sul file che gli avete passato. Facile no?
Esempio 1: Usare file |
% file css current.xml tips-20031117.xml tips-20031117.html screenlog.0
css: directory
current.xml: symbolic link to `tips-20031117.xml'
tips-20031117.xml: ASCII English text
tips-20031117.html: UTF-8 Unicode HTML document text, con very long lines
screenlog.0: ASCII English text, con CRLF, CR line terminators, con escape sequences, con overstriking
% file bin/fix bin/update_dat.sh
bin/fix: a /usr/bin/perl -w script text executable
bin/update_dat.sh: a /bin/sh script text executable
% file /bin/cp
/bin/cp: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.4.1, dynamically linked (uses shared libs), stripped
% file core
core: ELF 32-bit LSB core file Intel 80386, version 1 (SYSV), SVR4-style,
SVR4-style, from 'a.out'
|
Questo dovrebbe aiutarvi ad iniziare ma ci sono molti altri usi di file, guardate la pagina man (man 1 file) per maggiori informazioni.
2.Uccidere una console virtuale sospesa
Il trucco di questa settimana vi mostra come ripristinare una console virtuale sospesa (senza riavviare). Per far questo, avete bisogno di sys-apps/lsof dal portage.
Usare lsof, trovare il processo di login della console sospesa.
Esempio 2: Esempio: (la console sospesa è /dev/vc/3) |
# lsof /dev/vc/3
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
login 7114 root 0u CHR 4,3 17 /dev/vc/3
login 7114 root 1u CHR 4,3 17 /dev/vc/3
login 7114 root 2u CHR 4,3 17 /dev/vc/3
zsh 30630 david 0u CHR 4,3 17 /dev/vc/3
zsh 30630 david 1u CHR 4,3 17 /dev/vc/3
zsh 30630 david 2u CHR 4,3 17 /dev/vc/3
zsh 30630 david 10u CHR 4,3 17 /dev/vc/3
|
Uccidete il processo associato con questo login e la console dovrebbe rigenerarsi.
Esempio 3: Uccidere il processo della console virtuale |
# kill -9 7114 30630
|
3.Sequenze di escape ANSI: Colori
Il trucco di questa settimana vi mostra i colori del terminale come sequenze di escape ANSI. Queste possono essere usati per abbellire il prompt del terminale, testi, qualunque altra cosa che comprende le sequenze di escape ANSI.
Le sequenze di escape ANSI sono dei testi non stampabili che vengono interpretati per cambiare il formato di alcuni testi. In questo esempio, daremo un'occhiata specificamente all'uso di sequenze escape per specifici colori. Nel file /etc/profile standard di gentoo, ci sono alcuni esempi di questi colori che vengono usati per cambiare il colore di alcune parti del prompt del terminale . Per esempio, il pathname appare in blu e parti del prompt di bash vengono mostrate in rosso o verde a seconda se siete root o un normale utente.
Le sequenze di escape non stampabili sono sempre racchiuse \[\033[ e \]. i colori devono essere seguiti da m. Usando gli esempi da /etc/profile, possiamo vedere che il codice dei colori per il verde è 32, il codice per il blu è is 34, e il codice per il rosso è 31.
Esempio 4: PS1 da /etc/profile |
export PS1='\[\033[01;31m\]\h \[\033[01;34m\]\W \$ \[\033[00m\]'
red blue
export PS1='\[\033[01;32m\]\u@\h \[\033[01;34m\]\W \$ \[\033[00m\]'
green blue
|
La prossima parte è l'1 che precede il codice del colore attuale. Questo indica se il colore deve essere in grassetto o meno (0 per normale, 1 per grassetto). Così se volete un normale verde invece di un verde in grassetto, dovete usare 00;32m invece di 01;32m
.
Nota: Questo non funziona con tutti i colori. Guardate la lista in fondo per una lista di quali sono disponibili in grassetto. |
Per i colori di sfondo potreste voler usare 4x invece di 3x. Così per avere lo sfondo blu invece del testo, potete usare 00;44m invece di 01;34m.
Qui c'è una lista di colori e delle loro sequenze di escape.
Esempio 5: Codice colore |
Black 0;30 Dark Gray 1;30
Red 0;31 Bold Red 1;31
Green 0;32 Bold Green 1;32
Yellow 0;33 Bold Yellow 1;33
Blue 0;34 Bold Blue 1;34
Purple 0;35 Bold Purple 1;35
Cyan 0;36 Bold Cyan 1;36
Light Gray 0;37 White 1;37
|
Nota: La sequenza ANSI 0;33 è messa come marrone nel BASH-Prompt HOWTO, ma sembra più giallo mostarda. Praticamente, la versione in grassetto di questo è in realtà giallo - così l'ho messo come giallo. |
4.Backup aggiornato dei file con tar
Il trucco di questa setimana vi mostra un modo veloce per il backup dei file con tar.
Una delle opzioni per tar è -T che vi permette di specificare quali file devono andare nell'archivio tar. Così, ceate un file chiamato backup.conf e metteteci la lista di tutti i file o le directory di cui volete fare il backup (uno per linea). Poi eseguite tar e specificate -T backup.conf.
Esempio 6: Backup.conf |
# touch /etc/backup.conf
# ls /etc/passwd >> /etc/backup.conf
# ls /etc/shadow >> /etc/backup.conf
# ls /etc/group >> /etc/backup.conf
# ls /etc/make.conf >> /etc/backup.conf
# ls /etc/postfix >> /etc/backup.conf
|
Ora usate tar per creare l'archivio dei vostri file.
Esempio 7: tar -T |
# tar -cjf backup-`date +%Y-%m-%d`.tar.bz2` -T /etc/backup.conf
|
Questo archivia i vostri file in un file chiamato backup-YYYY-MM-DD.tar.bz2 (dove YYYY è l'anno, MM è il mese, e DD è il giorno).
Nota: Potete anche specificare un path assoluto come /backups/backup-`date +%Y-%m-%d.tar.bz` ed eseguire il comando come script da cron su una base ricorrente. |
5.Trucchi per 'ls'
Il trucco di questa settimana vi mostra alcune utili varianti di uno dei più comuni comandi in un sistema linux: ls.
Usate '-s' per stampare la dimensione dei file e '-S' per ordinare i file per dimensione.
Esempio 8: Lista di file per dimensione |
# ls -sSh
|
Usate '-t' e '--time-style=long-iso' per stampare i file ordinati per data di modifica in output standard.
Esempio 9: Lista di file per data |
# ls -lgot --time-style=long-iso
|
Usate '--sort=extension' per ordinare i file secondo la loro estensione (per vedere perl scripts, shell scripts, etc. ordinati in gruppo).
Esempio 10: Ordinare i file per etensione/versione |
# ls -lgo --sort=extension
# ls -lgo --sort=version
|
Nota: Le opzioni '-g' e '-o' rimuovono la colonna del gruppo e del proprietario dall'output. |
Ci sono molte altre opzioni, ma queste sono solo alcune che potrebbero essere utili.
6.Usare /etc/skel
Il trucco di questa settimana vi mostra come usare /etc/skel per essere sicuri che tutti i nuovi utenti sul vostro sistema abbiano la stessa configurazione iniziale.
La directory /etc/skel è la directory usata da useradd per creare la configurazione di default nella home directory dei nuovi utenti.
Per cambiare la posizione di /etc/skel, modificate /etc/default/useradd.
Esempio 11 |
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
|
I file tipicamente inclusi in /etc/skel sono file .rc file per l'inizializzazione della shell, ma potreste anche inserire una directory public_html, un file dircolors personalizzato, o qualunque altra cosa.
Esempio 12 |
% ls -A /etc/skel
.bash_profile .bashrc .maildir .screenrc .tcsh.config
|
per maggiori informazioni su come configurare /etc/skel guardate man useradd.
7.Linux Magic System Request Key Hacks
Il trucco di questa settimana vi mostra come la chiave 'magica' SysRq può essere usata per inviare eventi al kernel Linux.
Per abilitare la chiave SysRq, compilate CONFIG_MAGIC_SYSRQ nel kernel. Per disabilitarlo a runtime, usate echo "0" > /proc/sys/kernel/sysrq.
Per usare la chiave SysRq, usate ALT-SysRq-<commmand key>. Questo vi permette di inviare comandi direttamente al kernel che saranno eseguiti immediatamente a meno che la macchina non sia completamente bloccata.
Alcuni usi di SysRq sono:
-
Uccidere tutti i processi sulla console virtuale corrente
-
Riavviare il sistema immediatamente
-
Sincronizzare tutti i filesystem
-
Eseguire il dump della memoria sulla console
-
Uccidere tutti i processi eccetto init
-
Configurare il livello di log della console
Per informazioni più dettagliate sull'uso di SysRq guardate la documentazione del kernel in /usr/src/linux/Documentation/sysrq.txt
8.Shell Auto-logout
Il trucco di questa settimana vi mostra come eseguire il logout automatico dalla vostra shell dopo un dato periodo di tempo.
Usate la variabile TMOUT nella vostra shell per controllare per quanto tempo la vostra shell rimarrà loggata senza attività. Per esempio, per far eseguire il logout alla shell dopo 1 ora di inattività , aggiungete TMOUT=3600 al file di inizializzazione della vostra shell (e.g. .bashrc o .zshrc). Può anche essere aggiunto per tutto il sistema in /etc/profile come configurazione di default per tutti gli utenti.
|