[precedente] Editoriale - Copertina - La Scoperta... [successivo]

Rubrica


Tips News & Tricks Aprile 1999

Benvenuti al secondo appuntamento con i Tips News & Tricks. Gira voce qui al Pluto che lo ZioBudda non riesca più a stare dietro ai suoi impegni (sempre TROPPI); sicchè dovrete sopportare le mie "BOIATE" ancora per un'altra volta. :)

In questo numero si parlerà di:


Indice generale

  • Shell-scripting
  • Bash dotfiles
  • Red Hat Next Level
  • Come rimuovere LILO
  • Linux 2.2.5 è arrivato!
  • Errata Corrige

  • Qualche accorgimento

  • Shell-scripting

    Vi ricordate il Module Switcher della volta scorsa ?
    Ebbene può essere migliorato ! Che ne dite se ad essere attivato/disattivato non sia più un modulo; ma, bensi, una lista di moduli ???

    La riga di comando prenderà una forma simile a questa:

    swmod <mod1> [<mod2> ... <modN>]

    Come ottenere la lista dei parametri passati ad uno script ?
    E come è possibile sapere quanti argomenti ho passato allo script ?

    Fortunatamente esistono due variabili interne alla shell che rispondono a queste domande: $# (per ottenere il numero di argomenti) e $@ (per ottenere la lista degli argomenti). Attenzione, fate riferimento a queste variabili solo all'interno di uno script di shell; altrimenti esse perderanno di significato se utilizzate in un altro contesto.

    Eccovi lo script:

    #!/bin/sh
    
    # Title:.... Modules Switcher
    # Author:... Paolo FARINELLI
    # Date:..... 07/04/1999
    #-----------------------------
    # Feel free to use this script
    # under the terms of the GPL.
    #-----------------------------
    # Pluto-Journal (-- Linux --)
    
    # Ottiene la lista dei moduli attualmente in uso.
    MODULES=`lsmod | awk '{print $1}'`
    
    if [ $# -eq 0 ]; then
      echo "Usage: $0 <mod1> [<mod2> ... <modN>]"
                     else
      while [ "x$1" != "x" ]; do
    
        # Attivo se il modulo \150 caricato in memoria.
        ACTIVE="No"
    
        for i in $MODULES; do
          if [ $1 = $i ]; then
             ACTIVE="Yes"
          fi
        done
        if [ $ACTIVE = "Yes" ]; then
           rmmod $1
           echo "Modulo $1 rimosso..."
                           else
           insmod $1
           echo "Modulo $1 caricato..."
        fi
        done
        shift
      done
    fi
    

    Ecco qui! :)
    Esaminatelo per bene, perchè da questo script se ne possono derivare altri. Provate per esempio a crearne uno che accetti opzioni, anziche azioni.

    P.S. Ricordatevi di effettuare un chmod 755 <nome script> per rendere il tutto eseguibile.

    Torna all'indice generale


    Bash dotfiles

    Una domanda che mi viene posta di frequente riguarda l'ordine di caricamento dei file di inizializzazione (chiamati dotfiles) della bash shell. Prima di rispondere a questa domanda bisognerebbe fare una distinzione fra istanze di shell e come differiscono fra loro.

    bash usata per il login legge le informazioni, prima da /etc/profile, poi da ~/.bash_profile, poi da ~/.bash_login ed infine da ~/.profile;
    bash usata normalmente legge le informazioni da .bashrc dipendentemente dall'opzione -option assegnatale;
    bash in chiusura legge le informazioni da ~/.bash_loguot.

    Quindi dipendentemente dal contesto in cui vi trovate, una di queste situazioni farà sicuramente al caso vostro. Il concetto sopra esposto vale anche per le shells diverse da bash (csh, sh, tcsh, zsh...).

    Torna all'indice generale


    Red Hat Next Level

    Un nostro lettore (Francesco R.) mi scrisse una e-mail chiedendo aiuto per il settaggio automatico dello sfondo sotto X. Usa la Red Hat e voleva utilizzare xsetroot per far visualizzare un'immagine di background allo start-up di Xfree86. Niente di più facile. Si, ma dove si trova il file di inizializzazione del window-manager (fvwm2) da lui utilizzato ???

    Dopo aver letto le man pages relative all'argomento xsetroot e fvwm2, non era ancora riuscito ad arrivare ad una soluzione. Premetto che io non ero la persona adatta a rispondere alla sua domanda dato che utilizzo come distribuzione la Slackware. Che ha una organizzazione diversa dei file di inizializzazione rispetto alla Red Hat.

    L'unico indizio che gli detti (sbagliato) era quello di cercare il file partendo da /var/X11/lib.

    Guardate direttamente da lui cosa è successo dopo.

    > Salve!Ho finalmente risolto la cosa e pensavo che le
    > interessasse sapere come. Il fatto è che (almeno
    > per la Rad Hat) la definizione del desktop non è
    > affidata al fvwm diretamente, ma passa attraverso uno
    > strato software detto Next Level, a sua volta mediato
    > da Another Level, un prodotto derivato da Next Level
    > e sviluppato dalla Red Hat. Incasinato,  vero? Comunque
    > sia, i file di inizializzazione che interessano tra le
    > altre cose la definizione del desktop sono presenti in:
    >     /etc/X11/AnotherLevel
    > e nello specifico bisogna editare:
    >     fvwm2rc.init
    > che ha una chiamata di exec ad xsetroot.
    > A quel punto, modificando i parametri passati alla chiamata
    > il gioco è fatto.
    

    Complimenti ancora Francesco R. per essere arrivato a risolvere il tuo problema da solo. E grazie ancora per avermi permesso di pubblicare quanto da te scoperto, su Pluto-Journal. Ora chi avrà il tuo stesso problema saprà come risolverlo.

    P.S. è fondamentale, prima di inoltrare una domanda a qualcuno, leggere le man-pages a documentazione del programma che si sta cercando di configurare. L'approccio utilizzato da Francesco è degno di essere citato e deve essere d'esempio a tutti voi.

    Torna all'indice generale


    Come rimuovere LILO

    Chi di voi si è mai chiesto come rimuovere il Linux Loader (LILO) una volta averlo istallato. A parte che prima di fare una domanda del genere si dovrebbe sempre consultare le pagine di manuale del comando; tuttavia esiste la possibilità che la prima istallazione di LILO non vada a guisto termine. Quindi risulterebbe comodo il poterlo togliere anche stando fuori da un contesto Linux.

    Presto detto, il comando è il seguente:

       FDISK /MBR
    

    Chiaramente il tutto dovrà essere effettuato da un dishetto BOOT-tabile DOS (meglio se freeDOS). Per una questione di completezza dell'informazione, eccovi il comando da eseguire al prompt di Linux per togliere LILO dal Master Boot Record (MBR appunto):

       lilo -u
    

    Buona fortuna. ;-)

    Torna all'indice generale


    Linux 2.2.5 è arrivato!

    Vi siete mai chiesti che versione di che programma serve per compilare il nuovo Kernel ???
    La risposta a questa domanda giace all'interno di un file presente in tutti i tar files del Nuovo Kernel. Il suo nome è: linux/Documentation/Changes.

    Effettuate un up-grade *almeno* a questo software prima di pensare di avere qualcosa che non va! Se non siete sicuri delle versioni del software che state utilizzando correntemente, i comandi sotto riportati ve lo diranno:

    - Kernel modutils        2.1.121                 ; insmod -V
    - Gnu C                  2.7.2.3                 ; gcc --version
    - Binutils               2.8.1.0.23              ; ld -v
    - Linux libc5 C Library  5.4.46                  ; ls -l /lib/libc*
    - Linux libc6 C Library  2.0.7pre6               ; ls -l /lib/libc*
    - Dynamic Linker (ld.so) 1.9.9                   ; ldd --version or ldd -v
    - Linux C++ Library      2.7.2.8                 ; ls -l /usr/lib/libg++.so.*
    - Procps                 1.2.9                   ; ps --version
    - Procinfo               16                      ; procinfo -v
    - Psmisc                 17                      ; pstree -V
    - Net-tools              1.50                    ; hostname -V
    - Loadlin                1.6a
    - Sh-utils               1.16                    ; basename --v
    - Autofs                 3.1.1                   ; automount --version
    - NFS                    2.2beta40               ; showmount --version
    - Bash                   1.14.7                  ; bash -version
    - Ncpfs                  2.2.0                   ; ncpmount -v
    - Pcmcia-cs              3.0.7                   ; cardmgr -V
    - PPP                    2.3.5                   ; pppd --version
    - Util-linux             2.9i                    ; chsh -v
    

    Un'altra risorsa utile è di Alan Cox: Clue-point-two. Inoltre, la versione HTML-lizzata di Changes potrebbe esservi d'aiuto. Ha al suo interno Trucchi e Links ed altro. E per gli insaziabili di informazioni, guardatevi e leggetevi "the Wonderful World of 2.2".

    Torna all'indice generale


    Qualche accorgimento

    La procedura proposta nell'articolo "Come sposto Linux ???" del numero di Febbraio 1999 deve essere intesa come soluzione ad un problema di sostituzione di un H.D. con un altro, e non come poter fare il BOOT da /dev/hdb1. Riconosco che la frase "Infine mettete mano al file /etc/lilo.conf in modo tale da permettere il boot da /dev/hdb1" vi possa trarre in inganno, ma era da intendere come prova del nove per verificarne l'esatta copiatura: scusate!

    Ma ora vediamo insieme cosa bisogna fare per poter effettuare un BOOT da /dev/hdb1 anzichè /dev/hda1:

    Dovrebbe bastare. :?)

    Torna all'indice generale


    Con ciò è tutto per questo numero di Pluto Journal; se avete suggerimenti, commenti e proposte che credete possano essere inseriti in questa rubrica, non esitate a spedirmele: le terrò in considerazione per un prossimo articolo.

                                                         .Salutoni.
    

    A cura di Paolo FARINELLI


    [precedente] Editoriale - Copertina - La Scoperta... [successivo]