|
|
Riga 1: |
Riga 1: |
| == Presentazione ==
| | Siete amanti della shell pura? Amate far partire il sistema senza avvio grafico? Forse potrebbero piacervi '''welcome2l''' o '''linuxlogo''' . |
|
| |
|
| Questo script bash confronta due file di configurazione del kernel e stampa
| | Welcome2l è un semplice pacchetto che crea un logo grafico alle vostre consoles in caratteri ANSI. Basta installarlo: |
| le voci che contengono una determinata stringa che siano settate (o non settate) nel primo e settate (o non settate) nel secondo.
| |
|
| |
|
| Pu� essere utile per individuare quali voci mancano in un kernel ricompilato ripetto ad un kernel binario debian, in una particolare sezione del kernel.
| | <pre> |
| | # apt-get install welcome2l |
| | </pre> |
| | |
| | modificare il vostro '''/etc/inittab''' aggiungendo ''-f /etc/issue.welcome2l'' per ogni riga che richiama il comando getty in questa sezione: |
| | |
| | <pre>1:2345:respawn:/sbin/getty -f /etc/issue.welcome2l 38400 tty1 |
| | 2:23:respawn:/sbin/getty -f /etc/issue.welcome2l 38400 tty2 |
| | 3:23:respawn:/sbin/getty -f /etc/issue.welcome2l 38400 tty3 |
| | 4:23:respawn:/sbin/getty -f /etc/issue.welcome2l 38400 tty4 |
| | 5:23:respawn:/sbin/getty -f /etc/issue.welcome2l 38400 tty5 |
| | 6:23:respawn:/sbin/getty -f /etc/issue.welcome2l 38400 tty6</pre> |
|
| |
|
| == Sintassi ==
| | Vi sono anche altre configurazioni possibili per welcome2l che potete trovare nel file della documentazione: |
| Lo script va lanciato nel seguente modo (supponendo di averlo chiamato <tt>ker-conf</tt>):
| |
|
| |
|
| ker-conf config-1 config-2 stringa [s|n] [s|n]
| | '''/usr/share/doc/welcome2l/INSTALL''' |
|
| |
|
| I primi due parametri sono i due file di configurazione del kernel da confrontare. Il terzo parametro � la stringa che deve essere contenuta nelle voci di configurazione di entrambi i kernel (solo questo sotto-insieme viene confrontato). La stringa di ricerca � ''case-insensitive'', valori di esempio sono: scsi, usb,
| | Che dire di '''linuxlogo'''? |
| acpi, '*', ecc...
| |
|
| |
|
| Gli ultimi due parametri (opzionali) possono essere solo 's' o 'n' (settato o non
| | Anche qui si tratta di un semplice pacchetto che crea un logo grafico in caratteri ANSI. |
| settato) e si riferiscono rispettivamente allo stato di config-1 e config-2.
| | Beh! Eì la stessa operazione. Naturalmente non usateli contemporaneamente nel vostro '''/etc/inittab''' per cui se avete già modificato il file per welcome2l, sostituite '''-f /etc/issue.welcome2l''' come suggerito più avanti. In realtà linuxlogo di default verrà richiamato al vostro boot nella sequenza finale del vostro runlevel. Ma potrebbe piacervi di più come sostituto di welcome2l sebbene anche questo pacchetto ha diverse configurazioni che potete scoprire nella sua documentazione. Qui prendiamo come esempio, il caso precedente considerato per welcome2l: |
| Se gli ultimi due parametri vengono omessi viene usato il default: n s.
| |
|
| |
|
| Quando l'ultimo parametro � s (e' il default se non specificato) le voci
| | <pre> |
| sono stampate con lo stato (<tt>=y</tt> oppure <tt>=m</tt>) del secondo config.
| | # apt-get install linuxlogo |
| | </pre> |
|
| |
|
| Per una breve decrizione del funzionamento dello script, basta lanciarlo senza alcun parametro.
| | E semplicemente modificate ancora '''/etc/inittab''' aggiungendo '''-f /etc/issue.linuxlogo''' al posto di -f /etc/issue.welcome2l. Potete anche scegliere tra quattro diversi loghi ed eventualmente scegliere di avviarli in modalita monocromatica al posto dei banner. Scegliere è alla vostra portata. Provate subito un bel: |
|
| |
|
| == Script ==
| | <pre>$linuxlogo -h</pre> |
|
| |
|
| <pre>
| | Scoprite le vostre opzioni preferite ed inseritele in '''/etc/linux_logo.conf''' nella prima riga. |
| #!/bin/bash
| |
| #
| |
| # ckc - Confronta Kernel Config
| |
| # Versione: 0.0.3
| |
| #
| |
| # Copyright (C) 2005 - Davide Natalini <tindal@katamail.com>
| |
| # Antonio Ingargiola <debian@fastwebnet.it>
| |
| #
| |
| # Released under the GNU GENERAL PUBLIC LICENSE.
| |
| #
| |
|
| |
|
| usage() {
| | Per vedere subito quali loghi sono disponibili lanciate: |
| echo -e "\n *** Errore: Parametri non corretti.\n"
| |
| echo -e " USO: \n"
| |
| echo -e " ${0##*/} config-1 config-2 stringa [s|n] [s|n]\n"
| |
| echo -e " Lo script ${0##*/} confronta due file di configurazione del kernel e stampa"
| |
| echo -e " le voci che contengono 'stringa' che siano settate (o non settate) nel primo"
| |
| echo -e " e settate (o non settate) nel secondo.\n"
| |
| echo -e " Gli ultimi due parametri possono essere solo 's' o 'n' (settato o non"
| |
| echo -e " settato) e si riferiscono rispettivamente allo stato di config-1 e config-2."
| |
| echo -e " Se gli ultimi due parametri vengono omessi viene usato il default: n s. \n"
| |
| echo -e " Quando l'ultimo parametro e' s (e' il default se non specificato) le voci"
| |
| echo -e " sono stampate con lo stato (built-in o modulo) del secondo config.\n"
| |
| exit 1
| |
| }
| |
|
| |
|
| filter () {
| | <pre>$linuxlogo -L list</pre> |
| FILE=$1; STATUS=$2
| |
| BOOL=''; EXP='^ *$'; [ "$STATUS" = "s" ] && BOOL="-v" || EXP='=|is not set'
| |
| SED_EXP='s/\(# \)\?\([0-9a-zA-Z_]\+\)\(=.\)\?.*/\2\3/'
| |
| egrep $BOOL '^#' "$FILE" | egrep $BOOL "$EXP" | egrep -i "$PAR" | sed "$SED_EXP"
| |
| }
| |
|
| |
| [ $# -lt 3 ] || [ $# -gt 5 ] && usage
| |
|
| |
|
| NEW_CONFIG=$1; REF_CONFIG=$2; PAR=$3
| | Se accedete alla vostra debian box remotamente e volete visualizzare il logo al login di ssh, dovete fare una semplicissima modifica. |
|
| |
|
| STATUS_NEW=${4-n}; STATUS_REF=${5-s}
| | Aprite col vostro editor preferito il file .bash_profile, scorrete fino all'ultima riga e aggiungete il seguente comando: |
| for S in $STATUS_NEW $STATUS_REF; do [ "$S" = "s" ] || [ "$S" = "n" ] || usage; done
| |
|
| |
|
| TMP_FILE_NEW="/tmp/${0##*/}-new.tmp"
| | <pre>linuxlogo -L # (dove # è il numero del logo)</pre> |
| TMP_FILE_REF="/tmp/${0##*/}-ref.tmp"
| |
| ON_EXIT="rm -f $TMP_FILE_NEW $TMP_FILE_REF"
| |
|
| |
|
| trap "$ON_EXIT" 0 15
| | Salvate e il gioco è fatto. |
|
| |
|
| filter $REF_CONFIG $STATUS_REF > $TMP_FILE_REF
| | Se una volta loggatovi compare il messaggio '''linuxlogo: command not found''', sostituite linuxlogo con linux_logo. |
| filter $NEW_CONFIG $STATUS_NEW > $TMP_FILE_NEW
| |
|
| |
|
| for LINE_NEW in $( cat $TMP_FILE_NEW )
| | Buon divertimento!!! |
| do
| |
| egrep "${LINE_NEW/%=[ymn]/}(=[ymn])?$" $TMP_FILE_REF
| |
| done
| |
|
| |
|
| exit 0
| |
| </pre>
| |
|
| |
|
| [[Categoria:Kernel]] | | Autore: AltroMondo |
| [[Categoria:Script]] | | [[Categoria:Shell]] |
| | [[Categoria:Tips&Tricks]] |