KDE - Copertina - Indice |
Articoli
Ecco i tips di questo mese.
In molte situazione è conveniente avere a disposizione copia del Master Boot Record (ad esempio per cancellare il LILO dal MBR stesso). Esistono vari modi per copiare avere una copia del MBR, ma il modo più semplice è sicuramente:
dd if=/dev/hda of=MBRbackup bs=512 count=1
E per rimetterlo al suo posto:
dd if=MBRbackup of=/dev/hda bs=512 count=1
Questi tips (che fanno la stessa cosa) si rendono molto utili quando si cerca una certa parola in una serie di file via comando GREP, ma quest'ultimo risponde con "argument list is too long":
ls -f|grep "\.c$"|xargs -n 1000 grep var_name
ls | xargs -i -t grep var_name {}
Il primo si basa sul file system /proc/ che, come molti sanno, una pseudo
copia del kernel e di quello che la macchina sta eseguendo.
In questo caso basta solamente controllare se nella directory /proc/
esiste una directory chiamata con il numero del PID di cui stiamo
controllando l'esistenza.
Il secondo è molto più semplice e veloce: basta tentare di uccidere il processo tramite la funzione kill (man 2 kill) passandogli come numero di segnale lo 0, che non viene riportato nel file /usr/include/asm/signal.h. Come si può vedere dalla pagina di manule della funzione kill, questa ritorna un intero, che sarà il nostro modo per controllare se il PID esiste ancora. Infatti se il valore ritornato è uguale a 0 allora il PID è ancora in esecuzione, mentre un altro valore vorrà dire che il PID non esiste più.
#!/bin/sh URL="$1" if [ -z "$URL" ]; then echo "USAGE: $0 <url>" exit 1 fi FILE=`echo $URL | sed 's/^.*\///'` if [ -z "$FILE" ]; then echo "L'URL deve finire con il nome di un file.\n I file di default non sono permessi." exit 1 fi lynx -dump -source "$URL" > $FILE # Lo script finisce qui.
telnet www.somesite.com 80 << EOF > $1 GET http://${1} HTTP/1.0\n\n EOF
# echo "scale=2\n $foo / $bar" | bc
dove $foo e $bar contengono i numeri della divisione e "scale" rappresenta il numero di decimali della divisione. Ancora meglio se si crea uno script come questo:
#/bin/sh echo "scale=2\n $1 / $2" | bc
printf("/033[2J");
From registry@clear.net.nz Mon Apr 20 21:16:36 1998 Date: Thu, 12 Feb 1998 21:50:52 GMT From: RegistryNewsgroups: alt.os.linux, comp.os.linux.setup, linux.redhat.list, linux.redhat.misc Subject: Se avete problemi con la RedHat 5.0 e aha152x ecco una soluzione Da James H.G. Redekop Grazie James =-=-=-=-== Ho avuto una risposta dalla RedHAt sulla questione di aha152x con RH5.0. Ecco cosa ho ricevuto, con alcune correzioni: Fatemi sapere se ci sono problemi. Inserire il floppy di installazione e digitare al prompt di boot: linux rescue Dopo un paio di schermate che chiedono informazioni sull'hardware vedrete il prompt di root (#). Dovrete montare la partizione di Linux come in questo esempio (cambiate le partizioni a seconda di come sono impostate sulla vostra macchina). mkdir /mnt mkdir /fix Ora monteremo la partizione di root del vostro hard disk, quella che normalmente è /. Nel nostro esempio è /dev/sda2, ma per il vostro sistema sarà diversa. mount /dev/sda2 /mnt gunzip < /mnt/boot/initrd-2.0.31.img > /mnt/tmp/image gunzip /modules/loop.o insmod loop.o * * Dovrebbe essere insmod /modules/loop.o * * Fate * * ln -s /mnt/dev/loop0 /dev/loop0 /mnt/bin/mount -o loop /mnt/tmp/image /fix vi /fix/linuxrc correggete le linee di insmod in modo da avere gli argomenti corretti in corrispondenza di quelli corrotti e salvate le modifiche. sync umount /fix gzip < /mnt/tmp/image > /mnt/initrd-2.0.31.img * * Dovrebbe essere * * gzip < /mnt/tmp/image > /mnt/boot/initrd-2.0.31.img * lilo -v -r /mnt umount /mnt reboot
From froess@nregh0.nospam Mon Apr 20 21:24:42 1998 Date: Wed, 11 Feb 1998 12:39:09 -0600 From: Travis FroessNewsgroups: comp.unix.admin Subject: Re: Logout Inactive Users Ecco lo script che usiamo sui nostri server HP # # idle time user kick out # #set -x limit=`echo $1 | tr -d` who -u | while read user port month day time idle pid therest do idle=`echo $idle | tr -d ":"` if [ "$idle" = "old" ] then idle="1000000" fi if [ $idle -gt $limit ] then date >> /tmp/iklog echo "user $user idle $idle > limit of $limit">>/tmp/iklog echo " killing pid = $pid" >> /tmp/iklog kill -1 $pid 2>/dev/null fi done Va messo in cron perché sia eseguito ogni tanto. Ecco la voce di cron: 0 7,15,23 * * * /utils/bin/idleko 8:00 -- ================================================================== | Travis (I am not giving my email address any more) Froess | ==================================================================
Direttamente dalla rete.
Installazione di StarOffice
Per iniziare avete bisogno di correggere il problema della libc. La prima cosa a cui fare attenzione qui è:
NON INSTALLARE LA "LIBRERIA LIBC AGGIORNATA"!! PUÒ INCASTRARE IL SISTEMA! Se già lo avete fatto, beh, potete pensare di reinstallare il sistema per correggere l'errore. Anche se installando l'rpm StarOffice funzionerà ho sentito diverse storie horror sul fatto che distrugge altre applicazioni. Quindi, NON LO FATE!
Procuratevi l'ultima libc5 (i file tar, non l'rpm!). Io ho usato la libc5.4.44 (la 5.4.38 è la minima versione richiesta per StarOffice). Estraete il file tar in una directory temporanea, e copiate "solo" libc e libm nella directory definitiva (io ho usato /usr/local/StarOffice/lib... non li mettete nelle normali directory delle librerie), ed impostate i link appropriati:
ln -s libc.so.5.4.44 libc.so.5 ln -s libm.so.5.0.9 libm.so.5
per produrre i seguenti link:
libc.so.5 -> libc.so.5.4.44 libm.so.5 -> libm.so.5.0.9
Questi sono gli unici due file della distribuzione libc di cui avete bisogno. Il resto può anche essere cancellato. Notate che i numeri della versione possono essere diversi.
Ora modificate /etc/ld.so.conf ed aggiungeteci come ultima linea:
/usr/local/StarOffice/lib (o dove le avete messe)
Trovo che così sia più affidabile, e che causi meno problemi che usare LD_LIBRARY_PATH...
Poi usate ldconfig per impostare le modifiche.
A questo punto lo script di setup di StarOffice dovrebbe funzionare. Notate che dovete usare lo script di setup, e non il programma (ho visto gente provarci). Quindi digitate:
Se setup non funziona ancora (non so immaginare perché, ma...:
modificate
################################ #!/bin/sh # # StarOffice setup script # (c) 1997, Star Division GmbH cd `dirname $0` sd_archive_path=`pwd` sd_setup_binary=setup.bin sd_platform=`uname -s` # alcune piattaforme hanno bisogno di un path addizionale per le librerie # condivise di X11 case $sd_platform in SunOS) LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/openwin/lib export LD_LIBRARY_PATH ;; Linux) LD_LIBRARY_PATH=/usr/local/StarOffice/lib export LD_LIBRARY_PATH ;; *) ;; esac export SAL_FONTPATH XPPATH # esegue il binario di setup exec $sd_archive_path/$sd_setup_binary $* ###########################
I cambiamenti rilevanti sono nella LD_LIBRARY_PATH per l'installazione di Linux. Ciò viene gestito da ld nel precedente passo, quindi non dovrebbe essere necessario, ma l'ho incluso per sicurezza... Dopo aver finito il setup, dovrete fare alcuni cambiamenti per farlo funzionare bene.
Finito il setup, copiate la seguente lista di directory da Ricordatevi di copiare le sottodirectory completamente usando cp -r <dir> in modo da copiare tutti i file in esse contenuti.
A questo punto la mia directory di lavoro è di questo tipo:
POI... (siete già stanchi?)
Copiate il file <inst dir>/StarOffice/.sofficerc nella vostra home directory.
Bisogna modificare il file .sofficerc che sta nella vostra home directory. In particolare bisogna cambiare la sezione [Directories-Unix] im modo che diventi così (potete copiarlo ed incollarlo, e poi eliminare le voci originali):
Ora dobbiamo creare un nuovo <install dir>/StarOffice/.sofficerc
fatto così (tenete l'originale come template per gli utenti):
Queste due modifiche ai file .sofficerc permettono all'applicazione di
girare come applicazione multiutente. Per default è a utente singolo,
cosa che ritengo inaccettabile per un sistema operativo multiutente!
La modifica finale consiste nel modificare il vostro file .profile ed aggiungere <install dir>/StarOffice/bin al path.
Ecco fatto! Uno dei primi test per controllare il funzionamento della cosa è, all'avvio, di scegliere "File+New". Dovrebbe venire fuori un menù molto carino che contenga una selezione ragionevole dei tipi di documento. Se vi esce qualcos'altro, o se crasha, c'è qualcosa che non va. Tornate indietro e controllate se avete copiato tutte le directory, ed avete reimpostato correttamente i permessi.
L'altra cosa che può accadere è che dobbiate modificare la variabile $(inst) nella sezione [Dir...] qui sopra e sostituirla con $(sb_inst). Sembra che sia leggermente diversa. Saprete se state facendo la cosa giusta se non vi vengono le selezioni giuste nei menù.
In bocca al lupo! Anche se non è un'installazione automatica di 10 minuti, come la vorremmo, non è poi così brutta come sembra. Se siete nei guai, mandatemi una mail a:
e vedrò se vi posso aiutare!
DISCLAIMER: La procedura qui sopra descritta non è approvata dalla StarDivision, e l'utente fa le modifiche suggerite a proprio rischio. Non sarò in alcun modo responsabile per qualsiasi danno che ne possa risultare.
di Richard Tibbetts
grep -e parola1 -e parola2 nome_file
find / -user 5000 -exec chown xxxx {} \;
In questo caso si fa semplicemente un chown, ma si può anche
cancellare il file (rm) o spostarlo in una certa directory, e al posto di
usare il UID dell'utente si può usare la login stessa.
$HOME/StarOffice/agent
.../backup
.../cache
.../database
.../explorer
.../autotext
.../basic
.../config
.../desktop
.../wordbook
[Directories-UNIX]
Agent-Dir=$(user)/StarOffice/agent
Autopilot-Dir=$(user)/StarOffice/config/wizard
Backup-Path=$(user)/StarOffice/backup
Basic-Path=$(user)/StarOffice/basic
Bitmap-Path=$(user)/StarOffice/config/symbol
Bookmark-Dir=$(user)/StarOffice/explorer/bookmarks
Cache-Dir=$(user)/StarOffice/cache
Config-Dir=$(user)/StarOffice/config
Database-Path=$(user)/StarOffice/database
Desktop-Dir=$(user)/StarOffice/desktop
Dictionary-Path=$(user)/StarOffice/wordbook
Explorer=$(user)/StarOffice/explorer
Gallery-Dir=$(inst)/gallery
Glossary-Path=$(user)/StarOffice/autotext
Graphics-Path=$(inst)/gallery
Help-Dir=$(inst)/help
Modules-Path=$(inst)
New-Dir=$(user)/StarOffice/config/new
Palette-Path=$(inst)/config
Template-Path=$(inst)/template
Trash-Dir=$(user)/StarOffice/explorer/trash
Work-Path=$(user)/StarOffice/explorer/Work folder
[Directories-UNIX]
Sub-Ini=$(user)/.sofficerc
Modules-Path=$(inst)/bin
Basic-Path=$(inst)/bin
Template-Path=$(inst)/bin/Vorlagen
[soffice-View-UNIX]
5931Window=V1,0/694/1015/25,V,0,0
6308Window=V1,156/93/187/195,V,0,AL:(4,16,0/0/187/195)
0ExplDocView=,0,50,0,60,40
1ExplDocView=,0,50,0,60,40
0Browser-Sets=EXPFLD;1,0,A,4,290,85,115,115
0SplitWindow=V1,0,1,0,6308
2SplitWindow=V1,0,0
1SplitWindow=V1,0,0
3SplitWindow=V1,0,0
App-Window=4,25,1014,737;0
6318Window=V1,105/269/394/130,H,0,AL:(8,16,0/0/394/130)
/usr/local/StarOffice-ExpViewSet=1,0,A,4,290,85,115,115
2331Dialog=204/158/0/0,2340
3095Dialog=226/215/0/0,3096
10000Dialog=339/262/0/0
[soffice-PickList-UNIX]
0Hist=file://$(inst)/;;file:///usr/local/StarOffice/;
1Hist=file://$(inst)/README;swriter4:
Text;file:///usr/local/StarOffice/README;
2Hist=file://$(inst)/document/;Explorer:
dummy;file:///usr/local/StarOffice/document/;
[soffice-WorkingSet-UNIX]
ExplorerRoot=file://$(inst)/
RH5.0 e Staroffice 4.0. Parte 2
E se non dovesse funzionare ecco un'altra versione:
Date: 12 Mar 1998 12:54:02 +0100
Newsgroups: it.comp.linux
Subject: Re: Star Office
--> "P" == Pierpaolo writes:
P> Dopo aver scompattato il file tgz si ottiene una directory con
P> all'interno, fra l'altro, uno script di setup. Come da istruzioni
P> sull'installazione, eseguo lo script. Si apre una finestra di
P> installazione in puro stile Windows, ma appare subito una finestrella
P> che segnala un errore alla linea 1 dello script:
P> "line1: syntax error at
P> token 'l' expected declarator; i.e. File..."
Ormai e` una FAQ, visto che tutti ci sbattono contro... :-)
NOTA: quello che segue e` di fatto una traduzione di
http://www.waldherr.org/soffice4.shtml.
1. Scompattare SO 4.0 in una directory e decidere dove installarlo
(ad es. /usr/local/Office40);
2. procurarsi le libc e libm aggiornate (ad es. dal mio sito FTP, se non
le trovate altrove: ftp://ftp.gest.unipd.it/pub/linux/new-libc.tar.gz);
gia` che ci siamo, nella stessa directory c'e` anche soffice-setup.sh,
shell script da sostituire al "setup" nella directory di installazione
(di fatto questo si limita ad aggiungere una definizione per la
variabile LD_LIBRARY_PATH che punta a /usr/local/Office40/lib);
3. copiare libc.so.5.4.38 e libm.so.5.0.9 in /usr/local/Office40/lib,
entrare in detta directory dare i comandi
ln -s libc.so.5.4.38 libc.so
ln -s libc.so.5.4.38 libc.so.5
ln -s libm.so.5.0.9 libm.so
ln -s libm.so.5.0.9 libm.so.5
4. come *root*, lanciare X11, aprire un xterm, andare nella directory di
installazione e dare "./setup /net" (*occhio* al parametro!), e usare
come directory di destinazione "/usr/local/Office40";
5. finita l'installazione, un bel "chmod -R go+r /usr/local/Office40" non
guasta, per esser sicuri di avere i permessi giusti;
6. infine, per *ogni* utente che vuole usare SO 4.0, entrare come tale,
lanciare X11, ecc., e eseguire "/usr/local/Office40/bin/setup" (NON
quello della directory di installazione, che si puo` eliminare in toto,
e SENZA "/net"); scegliere "Installation from Net or CD" e proseguire;
al termine, e` opportuno aggiungere "/usr/local/Office40/bin" al PATH.
NOTA: se sono solo una o due persone ad usare SO 4.0, i circa 10 MB
pro ca-pite copiati in ~/Office40 non hanno molta importanza; se gli
utenti sono parecchi, pero`, potrebbe essere opportuno usare lo script
di Michael Hoennig (della stessa StarDivision) di cui parla nella FAQ
per SO 4.0
(http://www.on-line.de/~michael.hoennig/soffice4-linux-faq-01.html),
che consente di occupare solo circa 650 KB a testa.
Saluti,
Luca Polo.
GETCH SENZA CURSES
Ecco una semplice funzione in C per ottenere che la frase
"Premere un tasto per continuare" funzioni anche
senza utilizzare librerie aggiuntive, come ad esempio la ncurses.
: qualcuno mi potrebbe mandare del codice C per la 'versione unix' di
: getch() SENZA usare la libreria curses?? (sono poco pratico sulle cose
: grafiche di unix)
Chiama la seguente funzione... funziona correttamente sotto sunos4, sunos5, HPUX. Per ciascuna versione di UNIX dovresti modificare i file #include.
#include
GREP E PIÙ ARGOMENTI
Molte volte è necessario cercare una parola all'interno del file, e
si usa il tanto eclatato grep. Ma se le parole da cercare sono più
di una? Beh, si usa ancora grep con l'opzione -e (leggere le man
pages serve sempre!!!). Quindi:UTENTI CANCELLATI E FILE ANCORA ESISTENTI
Quando si cancella un utente è quasi sempre necessario controllare
anche se esistono file che sono ancora di proprietà dell'utente
stesso. Per fare questo basta utilizzare il comando find con la seguente
sintassi:SOSTITUIRE UNA PAROLA IN UN FILE
Ecco un semplice script che sostituisce una certa parola con un'altra.
#!/bin/ksh
#
# Sostituisce una stringa in uno o più file.
# I. Cnudde
#
echo
if [[ $1 = '-help' ]]; then
echo "Uso: sr
I Trucchi/Consigli presentati sono stati creati in parte da me
(ziobudda@chiara.dei.unipd.it) e in parte presi direttamente dai vari
newsgroups su linux e su unix, un vero mare di consigli.
Per ogni informazione su questi tips contattare help@pluto.linux.it
KDE
- Copertina -
Indice