Table of Contents
Abstract
Questo capitolo contiene delle indicazioni sui singoli pacchetti software nonché sulle console virtuali e mappatura della tastiera. Il capitolo si chiude con una sezione dedicata alle impostazioni della lingua (I18N/L10N).
Quando invocate una shell di login, la bash processa i file di inizializzazione in questa sequenza:
/etc/profile
~/.profile
/etc/bash.bashrc
~/.bashrc
Gli utenti possono eseguire registrazioni proprie in ~/.profile o ~/.bashrc. Per garantire un'elaborazione corretta dei file è necessario che si assumono le impostazioni basilari di /etc/skel/.profile o /etc/skel/.bashrc nella directory dell'utente. Dopo un update si consiglia di orientarsi alle impostazioni di /etc/skel; per non perdere propri adattamenti eseguite questo comando:
mv ~/.bashrc ~/.bashrc.old cp /etc/skel/.bashrc ~/.bashrc mv ~/.profile ~/.profile.old cp /etc/skel/.profile ~/.profile
In seguito dovete riscrivere i vostri adattamenti dal file *.old.
Le tabelle cron si trovano sotto /var/cron/tabs. Come tabella valida per tutto il sistema, viene creato il file /etc/crontab. Nel file /etc/crontab, dopo l'inserimento dell'ora, indicate anche sotto quale utente debba venire eseguito il relativo incarico (cfr. file Example 9.1, “Esempio di una registrazione in /etc/crontab”, che indica root); i dati dei pacchetti in /etc/cron.d hanno lo stesso formato – cfr. la pagina di manuale man cron.
Example 9.1. Esempio di una registrazione in /etc/crontab
1-59/5 * * * * root test -x /usr/sbin/atrun && /usr/sbin/atrun
/etc/crontab non può essere modificato con crontab -e, ma deve venire direttamente caricato in un editor, modificato, e infine salvato.
Alcuni pacchetti installano, nelle directory /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly e /etc/cron.monthly degli script di shell, la cui elaborazione viene diretta da /usr/lib/cron/run-crons che viene invocato ogni 15 minuti dalla tabella principale (/etc/contrab); in questo modo, si assicura che vengano recuperate per tempo esecuzioni mancate.
Per motivi di chiarezza sono diversi script che svolgono il compito della manutenzione quotidiana (il pacchetto aaa_base). In /etc/cron.daily oltre a aaa_base vi è p.es. backup-rpmdb, clean-tmp o clean-vi.
Molti servizi di sistema (ingl. daemon) ed il kernel stesso protocollano regolarmente lo stato del sistema od eventi particolari nei cosiddetti file protocollo (ingl. log files) che l'amministratore può consultare in qualsiasi momento per determinare lo stato del sistema in un momento particolare, nonché ricercare ed ovviare ad errori o malfunzionamenti. Come previsto dall'FHS, questi log file vengono normalmente memorizzati nella directory /var/log, il cui contenuto cresce di giorno in giorno. Con l'aiuto di logrotate, potete tenere sotto controllo il volume dei file di protocollo.
Nel file di configurazione /etc/logrotate.conf, viene determinato il comportamento generale. Con include, in particolare, si imposta quali altri file debbano essere analizzati; su è previsto che i singoli pacchetti di /etc/logrotate.d installino dei file (ad esempio, syslog o yast).
Example 9.2. Esempio di /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly weekly
# keep 4 weeks worth of backlogs rotate 4
# create new (empty) log files after rotating old ones create
# uncomment this if you want your log files compressed
#compress
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own lastlog or wtmp - we'll rotate them here
#/var/log/wtmp {
# monthly
# create 0664 root utmp
# rotate 1
#}
# system-specific logs may be also be configured here.
logrotate, invece, viene controllato tramite cron ed avviato da /etc/cron.daily/logrotate una volta al giorno.
Per alcuni programmi GNU (per esempio tar), le pagine di manuale non vengono più aggiornate. Al loro posto, troverete un sommario nell'output di --help e un manuale dettagliato nei file Info. Info (info) è il sistema ipertestuale di GNU. Con info info otterrete delle prime istruzioni per l'uso. info è accessibile con Emacs emacs -f info o semplicemente con il comando info. Comodi da utilizzare sono tkinfo, xinfo; anche l'accesso tramite il sistema di aiuto risulta essere comodo.
locate per trovare velocemente dei file non fa parte del software standard installato di default. Potete installarlo successivamente (find-locate) — una volta installato ogni note o ca. 15 minuti dopo l'accensione viene avviato automaticamente il processo updatedb.
Con il comando ulimit (ingl. user limits), potrete limitare l'accesso all'uso delle risorse del sistema o visualizzare le risorse. ulimit è particolarmente adatto a limitare la memoria disponibile alle applicazioni. In questo modo, si può impedire che un'applicazione occupi troppo (o tutto lo) spazio di memoria, causando così il blocco del sistema.
Potrete lanciare di ulimit con opzioni diverse. Per limitare l'uso di memoria, usate le opzioni riportate nella tabella Table 9.1, “ulimit: impostare le risorse dell'utente”.
Table 9.1. ulimit: impostare le risorse dell'utente
-m | grandezza massima della memoria fisica |
-v | grandezza massima della memoria virtuale |
-s | grandezza massima dello stack |
-c | grandezza massima dei core file |
-a | visualizzazione dei limiti impostati. |
Le impostazioni valide per l'intero sistema possono venire effettuate in /etc/profile. Una delle impostazioni consiste, ad esempio, nell'autorizzare la creazione di quei core file necessari ai programmatori per il “debug”. L'utente non è in grado di aumentare i valori impostati dall'amministratore del sistema in /etc/profile; è però possibile inserire determinate impostazioni nel proprio ~/.bashrc.
Example 9.3. Impostazioni ulimit in /.bashrc
# Limite della memoria reale: ulimit -m 98304 # Limite della memoria virtuale: ulimit -v 98304
La memoria viene espressa in KB. Per informazioni più dettagliate, consultate la pagina di manuale con man bash.
![]() | Important |
|---|---|
Non tutte le shell supportano le indicazioni ulimit. Se non potete fare a meno di questo tipo di restrizioni, PAM (p.es. pam_limits) offre ampie possibilità di impostazione. | |
Il nome del comando free è un pò fuorviante, dal momento che questo comando serve a verificare quanta memoria venga attualmente utilizzata … . Troverete le informazioni essenziali in /proc/meminfo. Al giorno d'oggi, l'utente di un sistema moderno come Linux non dovrebbe preoccuparsene più di tanto. Il concetto di “RAM disponibile” risale ai tempi quando non vi erano ancora sistema di gestione unitaria della memoria unified memory management. Il motto di Linux è: la memoria libera è cattiva memoria (ingl. free memory is bad memory), il che vuol dire che Linux cerca sempre di bilanciare le varie cache, ma di non lasciare mai della memoria del tutto inutilizzata.
Di per sé, il kernel non sa nulla di programmi o dati dell'utente, perché lui li amministra in cosiddette “Page Cache”. Quando la memoria non basta più, parte di questi dati vengono spostati nella partizione swap o nei file dai quali sono stati originariamente estratti con la chiamata di sistema mmap (cfr. la pagina di manuale man mmap).
Inoltre, il kernel dispone anche di altre cache, come la cosiddetta “slab cache”, che contiene anche un buffer usato per l'accesso alla rete. Così si spiegano tutte le differenze tra i contatori di /proc/meminfo. La maggior parte delle cache (ma non tutte) possono essere consultate attraverso /proc/slabinfo.
La risoluzione del nome viene gestita tramite il file /etc/resolv.conf; cfr. la sezione Section 22.7, “DNS: Domain Name System”. Questo file viene attualizzato solo dallo script /sbin/modify_resolvconf. A nessun altro programma è consentito farlo. Solo così si può assicurare che la configurazione della rete ed i relativi dati rimangono consistenti.
GNU Emacs è un ambiente di lavoro complesso; ulteriori informazioni sono reperibili sotto: http://www.gnu.org/software/emacs/.
Nei seguenti paragrafi indicheremo quali file di configurazione vengono processati da GNU Emacs al suo avvio. Al suo avvio Emacs legge diversi file per poter essere preconfigurato o adattato alle relative richieste in base a quanto stabilito dall'utente, amministratore di sistema e/o distribuzione.
Nella directory home viene installato per ogni utente il file di inizializzazione ~/.emacs di /etc/skel; .emacs a sua volta legge il file /etc/skel/.gnu-emacs. Se un utente vorrebbe effettuare degli adattamenti propri, si consiglia di copiare questo file .gnu-emacs nella propria directory home e di editarlo lì:
cp /etc/skel/.gnu-emacs ~/.gnu-emacs
In .gnu-emacs il file ~/.gnu-emacs-custom viene impostato come custom-file; se l'utente vuole effettuare delle impostazioni proprie ricorrendo alle possibilità offerta da customize, esse saranno memorizzate sotto ~/.gnu-emacs-custom.
Con il pacchetto emacs nel caso di il file site-start.el viene installato nella directory /usr/share/emacs/site-lisp. Il file site-start.el viene caricato prima del file di inizializzazione ~/.emacs. site-start.el garantendo che vengano caricati automaticamente dei file di configurazione speciali, che vengono installati con i pacchetti aggiuntivi di Emacs della distribuzione (p. es. il pacchetto psgml); questo tipo di file di configurazione si trova anche sotto /usr/share/emacs/site-lisp ed iniziano sempre con suse-start-.
L'amministratore di sistema locale può effettuare nel file default.el delle impostazioni che avranno validità per tutto il sistema. Ulteriori informazioni su questi file solo reperibili nel file info su Emacs, nell' Init File: info:/emacs/InitFile dove inoltre viene descritto come evitare all'occorrenza che questo file venga caricato.
Le componenti di Emacs sono distribuiti su diversi pacchetti:
Il pacchetto base emacs.
In più di solito si deve installare il pacchetto emacs-x11 che contiene il programma con supporto per l'X11.
Nel pacchetto emacs-nox trovate il programma senza supporto per X11.
Il pacchetto emacs-info contiene la documentazione in linea nel formato Info.
Il pacchetto emacs-el contiene i file di libreria non compilati in Emacs Lisp – non sono necessari in fase di esecuzione!
Numerosi pacchetti aggiuntivi che possono essere installati all'occorrenza: il pacchetto emacs-auctex (per LaTeX); psgml (per SGML/XML); gnuserv (per uso client/server) etc.
Ancor oggi si ricorre a degli editor di testo per lavori di ritocco al sistema ma soprattutto per lavori di programmazione. Nel corso degli anni in ambito Unix si è affermato il vi quale editor che si distingue per funzionalità e che da un punto di vista ergonomico eclissa anche degli editor basati su mouse.
Fondamentalmente in vi si distinguono tre modi operativi; il modo insert, il modo command ed il modo extended.
Nella fase di rodaggio il fatto che i tasti hanno funzioni diverse a secondo del modo abilitato può dare adito a confusione. Illustreremo quindi di seguito metodi comuni per passare da un modo operativo all'altro. Dopo il suo avvio il vi normalmente si trova nel modo command.
Esistono numerose via per realizzare questo passaggio, le più comuni sono: a per append, i per insert oppure o per avere un nuovo rigo al di sotto del rigo attuale.
Per uscire dal modo insert premete il tasto ESC.
Nel modo insert non è possibile terminare il vi. Quindi a tal fine, tenete sempre bene in mente il tasto ESC.
Il modo extended di vi può essere attivato tramite i due punti. Il modo extended, chiamato anche modo ex rappresenta in fondo un editor testuale con il quale espletare una serie di operazioni anche di una certa complessità.
Dopo l'esecuzione di un comando nel modo extended ci si ritrova fondamentalmente nel modo command. Se vi trovate nel modo extended e non desiderate eseguire alcun comando, potete cancellare i due punti servendovi del tasto backspace e ritornerete nel modo command.
Tenete presente che per passare dal modo insert al modo extended è richiesto sempre un passaggio intermedio per il modo Command. Non è quindi possibile eseguire un passaggio diretto.
Agli inizi può causare delle difficoltà uscire da un nuovo editor, il vi qui non rappresenta affatto una eccezione. Cosa da tenere sempre bene in mente è che non potete uscire dal vi se vi trovate nel modo insert. Dovete prima uscire dal modo insert tramite il tasto ESC, ed in seguito si hanno due casi:
Uscire senza salvare: se intendete terminare l'editor senza salvare le modifiche, va immesso nel modo command la combinazione dei tasti : q !. Il ! fa sì che il vi ignora le modifiche apportate.
Uscire e salvare: per salvare le modifiche apportate e terminare in seguito l'editor potete scegliere tra possibilità diverse. Nel modo Command vi è il comando Shift Z Z. Considerate che nella maggior parte degli elenchi dei comandi non viene menzionato Shift visto che la Z maiuscola implica già Shift.
Nel modo Extended vi è inoltre la combinazione dei tasti:: W Q.
Come avrete già intuito nel modo extended la W sta per “write” (scrivi) e la Q per “quit” (esci).
Il vi può essere utilizzato alla stregua di un editor comune. Non appena entrate nel modo insert potete immettere del testo e cancellarlo ricorrendo ai tasti di backspace o CANC. Per muovere il cursore potete utilizzare i tasti freccia.
Spesso però vi sono delle difficoltà dovute al fatto che esistono numerosi tipi di terminale con ognuno particolari keycode. A questo punto entra in gioco il modo command.
Passate dal modo insert a quello command premendo il tasto ESC. Nel modo command potete muovere il cursore tramite i tasti H, J, K e L. Leggenda:
spostarsi di un carattere verso sinistra
spostarsi di un rigo verso il basso
spostarsi di un rigo verso l'alto
spostarsi di un carattere verso destra
I comandi nel modo command di vi possono essere eseguiti in maniera diversa. Di sicuro interesse è la possibilità di ripetere un comando varie volte, basta indicare il numero delle volte il comando debba essere ripetuto e fare seguire il comando vero e proprio. Immettendo quindi 5L il cursore si sposterà verso destra per cinque volte.
Il vi offre un vasto numero di comandi. Potete scrivere delle macro, ricorrere a delle abbreviazioni, a buffer denominati e tante altre cose di sicura utilità. Descrivere tutte queste funzionalità in modo dettagliato ci porterebbe troppo lontano. A questo punto bisogna tuttavia ricordare che include una versione ottimizzata del vi ovvero vim (che sta per vi improved). Per chi vuole cimentarsi non mancano le fonti di informazione:
vimtutor un programma didattico interattivo per vim.
Se vi serve aiuto, in vim il comando del caso è :help
Su Internet trovate un manuale (in inglese) che tratta vim; l'indirizzo è http://www.truth.sk/vim/vimbook-OPL.pdf.
Per le novità, mailing list e documentazione visitate il sito web del progetto vim che trovate sotto: http://www.vim.org.
Tra i tutorial per vim reperibili su Internet vi sono: http://www.selflinux.org/selflinux/html/vim.html, http://www.linuxgazette.com/node/view/9039 e http://www.apmaths.uwo.ca/~xli/vim/vim_tutorial.html. Per ulteriori link riferiti ai tutorial, visitate http://linux-universe.com/HOWTO/Vim-HOWTO/vim-tutorial.html.
![]() | La licenza VIM |
|---|---|
vim è un cosiddetto “charityware”, il che vuol dire che gli autori non vi chiedono dei soldi per il software ma di devolvere una somma a sostegno di un progetto di beneficenza. Si tratta del progetto a sostegno dei bambini in Uganda. Per ulteriori dettagli consultate i siti: http://iccf-holland.org/index.html, http://www.vim.org/iccf/ e http://www.iccf.nl/. | |