[>a2385.html>] [<a2383.html<] [^a2.html^]


Capitolo 299.   Configurazione della console

299.1   Le variabili nella shell bash

Come si utilizzano le variabili nella shell bash?

---------

In genere si utilizzano nomi di variabili con caratteri maiuscoli e si dichiarano da riga di comando nel seguente modo:

NOMEVARIABILE=valore

e l'utilizzo della variabile si effettua con il simbolo $ davanti il nome della variabile:

RICOMP_KERNEL=/usr/src/linux
cd $RICOMP_KERNEL

Come si visualizzano tutte le variabili d'ambiente del sistema?

il comando è:

# set[Invio]

Per vedere il contenuto di una variabile si utilizza il comando:

# echo $NOME_VARIABILE[Invio]

e per svuotarne il contenuto si usa:

# unset NOME_VARIABILE[Invio]

Ad ogni riavvio della shell o ad ogni cambio shell, le variabili si riazzerano. Per rendere disponibile una variabile anche all'esterno, si usa il comando:

# export NOME_VARIABILE[Invio]

299.2   Personalizzare il prompt

Come si personalizza l'aspetto del prompt con la shell bash?

---------

Il prompt si personalizza assegnando formattatori particolari alla variabile PS1:

# PS1="\w\$>"[Invio]

Ecco i formattatori:

\d data;
\h nome macchina;
\n a capo;
\s nome della shell;
\t ora;
\u nome utente;
\w directory corrente;
\W il nome di base della directory corrente;
\# il numero del comando corrente;
\$ emette # se l'utente è root altrimenti $;
\! il numero nello storico del comando corrente;
\\ backslash;
\[ inizia una sequenza di caratteri non stampabili;
\] chiude la sequenza.

Quali sono le variabili di sistema più comuni?

HOME directory home;
HOSTTYPE tipo di macchina;
PS1 prompt primario;
PWD directory corrente;
UID numero identificativo utente;
$ PID della shell;
! PID dell'ultimo processo in background.

299.3   Esempi di prompt

Che prompt mi consigliate di usare? Ne avete uno utile e pratico?

---------

Metti nel tuo file /home/.profile (o /home/.bash_profile) la seguente riga: (a scopo pratico la riga degli esempi di prompt, sono state suddivise in 3; ricordate di ricomporle su una stessa riga una di seguito l'altra)

299.4   Disabilitare una console virtuale

Come posso disabilitare una console virtuale?

---------

Apri il file /etc/inittab, ci sono delle righe come queste:

1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6

corrispondenti alle sei console virtuali. Commenta (apponendo # all'inizio della riga) quelle che non ti interessano.

299.5   Apici inversi nella shell

Gli apici retroversi (`), a cosa servono esattamente?

---------

Esattamente la shell effettua un'espansione, eseguendo il comando all'interno degli apici inversi e catturandone lo standard output. Quest'ultimo verrà poi opportunamente sostituito.

Lo stesso risultato si può ottenere utilizzando le due forme:

`nome_comando` e $(nome_comando)

Alcuni esempi:

# ls -l `which man`[Invio]

espansione: il comando which man ha come standard output /usr/bin/man, la shell eseguirà quindi ls -l /usr/bin/man

# BLA= `cat /etc/inetd.conf`[Invio]

# echo $BLA[Invio]

nella variabile BLA viene registrato tutto l'output del comando cat /etc/inetd.conf, infatti con echo $BLA possiamo rivedere tutto il contenuto del file.

# kill -1 `pidof inetd`[Invio]

il comando pidof inetd restituisce in standard output l'attuale pid di inetd, quindi la shell eseguirà kill -1 63, per esempio.

299.6   History, lo storico dei comandi

Come si utilizza lo storico dei comandi?

---------

si da il comando:

# history[Invio]

e viene visualizzata una lista di comandi eseguiti con il numero corrispondente. Per eseguire uno di questi comandi si utilizza il punto esclamativo (!)davanti al numero del comando da rieseguire:

# !267[Invio]

Per richiamare dallo storico tutti i comandi che iniziano con una stringa si utilizza:

# !stringa[Invio]

299.7   Reindirizzare i messaggi di /dev/console su un'altra console

Da quando ho installato Linux la prima console virtuale (quella che si attiva premendo Alt+F1) si riempie di messaggi che finiscono su /dev/console, lasciando comunque la possibilità di fare login.

Come posso mandare questi messaggi su un'altra console virtuale?

---------

Basta aggiungere nel file /etc/lilo.conf la riga:

append="console=tty6"

nella sezione image.

Esempio:

           image=/boot/vmlinuz-2.0.36-1
           label=linux
           root=/dev/hda2
           append="console=tty6"
           read-only

Poi devi dare il comando:

# /sbin/lilo[Invio]

per rendere effettive le modifiche.

299.8   Modalità grafica della console

Come si fa a cambiare la modalità grafica della console? (adesso ho 80x25 ma vorrei aumentare il numero delle righe)

---------

se usi LILO come gestore degli avvii, puoi usare la direttiva 'vga' con vga=extended e avrai 80x50

(altri valori sono 'normal','ask','number')

Altrimenti puoi usare vidmode (rdev) per impostare la modalità video.

Quella predefinita è impostata attraverso la variabile SVGA_MODE nel Makefile del kernel.

299.9   Messaggio di errore: shell-init: could not get current directory: getcwd: cannot access parent directories

Quando da utente root provo a passare ad un utente con il comando 'su utente', mi viene restituito il seguente messaggio:

# su pinco[Invio]

shell-init: could not get current directory: getcwd: cannot access parent directories

---------

Se esegui:

$ su - nome_utente[Invio]

carichi anche l'ambiente dell'utente.

299.10   Tabella caratteri inesatta (bordi dei riquadri con caratteri strani)

Dalla console, se lancio l'utilità setup i riquadri di contorno delle finestre appaiono con a accentate e altri caratteri non congrui.

---------

Prova a scrivere, sempre da console:

# export TERM=vt100[Invio]

LDR --- Copyright © 1999-2000 Gaetano Paolone --  bigpaul @ pluto.linux.it

[>a2385.html>] [<a2383.html<] [^a2.html^]