Editoriale - Copertina - La Scoperta... |
Rubrica
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:
Vi ricordate il Module Switcher della volta scorsa ?
La riga di comando prenderà una forma simile a questa:
Come ottenere la lista dei parametri passati ad uno 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:
Ecco qui! :)
P.S. Ricordatevi di effettuare un chmod 755 <nome
script> per rendere il tutto eseguibile.
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.
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...).
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.
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.
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:
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):
Buona fortuna. ;-)
Vi siete mai chiesti che versione di che programma serve per
compilare il nuovo Kernel ???
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:
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".
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. :?)
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.
A cura di
Paolo FARINELLIShell-scripting
Ebbene può essere migliorato ! Che ne dite se ad essere attivato/disattivato
non sia più un modulo; ma, bensi, una lista di moduli ???
E come è possibile sapere quanti argomenti ho passato allo 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
Esaminatelo per bene, perchè da questo script se ne possono derivare
altri. Provate per esempio a crearne uno che accetti opzioni, anziche azioni.
Bash dotfiles
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.
Red Hat Next Level
> 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.
Come rimuovere LILO
FDISK /MBR
lilo -u
Linux 2.2.5 è arrivato!
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.
- 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
Qualche accorgimento
/dev/hdb1 / ext2 defaults 1 1
boot = /dev/hdb
prompt
image = /vmlinuz
label = linux
root = /dev/hdb1
vga = normal
.Salutoni.
Editoriale - Copertina - La Scoperta... |