File: tips9804.html

package info (click to toggle)
pj-9805 1.0-1
  • links: PTS
  • area: main
  • in suites: potato
  • size: 396 kB
  • ctags: 24
  • sloc: makefile: 39; sh: 18
file content (711 lines) | stat: -rw-r--r-- 22,590 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>Trucchi per svolgere meglio alcune operazioni</TITLE>
</HEAD>

<BODY LINK="#0000ff" VLINK="#0000ff" ALINK="#0000ff" BGCOLOR="#ffffff">

<TABLE BORDER=0 CELLPADDING=0 WIDTH=100%>
<TR>

<TD ALIGN=left BGCOLOR="#ffffff">
<A HREF="kde.html">
<IMG ALT="[precedente]" SRC="pj_images/a_left.gif" BORDER=0></A>
</TD>

<TD ALIGN=center BGCOLOR="#cccccc">
<FONT COLOR="#00ff00">
<A HREF="kde.html">KDE</A>
- <A HREF="index.html">Copertina</A> -
<A HREF="index.html#pj97n17">Indice</A>
</FONT>
</TD>

<TD ALIGN=right BGCOLOR="#ffffff">
<A HREF="index.html#pj97n17">
<IMG ALT="[successivo]" SRC="pj_images/a_right.gif" BORDER=0></A>
</TD>

</TR>
</TABLE>


<P ALIGN=right>
<FONT SIZE=+3 COLOR="#ff0000">
<EM>Articoli</EM>
</FONT>
<HR>

<P>Ecco i tips di questo mese.

<H2>MBR</H2>

<P>In molte situazione &egrave; 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&ugrave; semplice &egrave; sicuramente:
<P><tt>dd if=/dev/hda of=MBRbackup bs=512 count=1</tt>

<P>E per rimetterlo al suo posto:
<P><tt>dd if=MBRbackup of=/dev/hda bs=512 count=1</tt>


<H2>GREP</H2>

<P>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":
<p>
<tt>
ls -f|grep "\.c$"|xargs -n 1000 grep var_name<BR>
ls | xargs -i -t grep var_name {}
</tt>

<P>
<H2>PROGRAMMAZIONE - PID</H2>
Specialmente quando si programma con le socket si rende molto spesso
necessario sapere se un certo PID &egrave; ancora attivo. I metodi per
scoprire se il pid &egrave; ancora presente nel sistema sono molti, ma 2
su tutti fanno al caso dei programmatori.
<p>
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.<br>
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.
<p>
Il secondo &egrave; molto pi&ugrave; 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&ograve; vedere dalla pagina di
manule della
funzione kill, questa ritorna un intero, che sar&agrave; il nostro modo
per controllare se il PID esiste ancora. Infatti se il valore ritornato
&egrave; uguale a 0 allora il PID &egrave; ancora in esecuzione, mentre un
altro valore vorr&agrave; dire che il PID non esiste pi&ugrave;.

<H2>SCARICARE UNA PAGINA HTML</H2>
Molte volte &egrave; utile scaricare dalla rete una certa pagina web.
Questo si pu&ograve; fare in molti modi, tra cui eseguire un Browser
grafico come Netscape, caricare la pagina e salvarla. Ma esistono anche
modi molto pi&ugrave; semplici e sbrigativi:
<ul>
<li>usare programmi free come wget o wwwget o ancora fetch.
<li>utilizzare il seguente script che si appoggia al comando lynx:<BR>

<pre>
#!/bin/sh

URL="$1"
if [ -z "$URL" ]; then
        echo "USAGE: $0 &lt;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.
</pre>

<li>utilizzare il comando telnet nel seguente modo:<BR>

<pre>
telnet www.somesite.com 80 << EOF > $1
GET http://${1} HTTP/1.0\n\n
EOF
</pre>

</ul>

<H2>DIVISIONE VELOCE</h2>
Quando &egrave; necessario calcolare la divisione di 2 numeri si fa
sempre affidamento sulla vecchia e cara calcolatrice manuale, anche se la
stessa esiste anche per linux e si chiama "bc". Con questo semplice pipe
si pu&ograve; facilmente calcolare il risultato della divesione di due
numeri:<p>
<tt>
# echo "scale=2\n $foo / $bar" | bc
</tt>
<p>
dove <tt>$foo</tt> e <tt>$bar</tt> contengono i numeri della divisione e "scale"
rappresenta il numero di decimali della divisione. Ancora meglio se si
crea uno script come questo:
<p>
<pre>
#/bin/sh
echo "scale=2\n $1 / $2" | bc
</pre>

<p>
<H2>PROGRAMMAZIONE - SEQUENZE DI ESCAPE</H2>
&Egrave; spesso necessario, quando si creano programmi non grafici, disporre di
alcune funzioni che puliscano lo schermo o che posizionino il cursore in
un certo posto. 
Per ovviare a questo problema si pu&ograve; usare la
libreria ncurses con tutti i pro e i contro del caso, ma si possono anche
usare le sequenze di escape, che sono sempre di pi&ugrave; messe nel
dimenticatoio, anche perch&egrave; cambiano da TERM a TERM. Ad esempio, 
per pulire lo schermo (o un xterm) si
pu&ograve; usare:<p>
<tt>printf("/033[2J");</tt><p>

<H2>PATCH RH5.0 e aha152x</H2>
Ecco la traduzione di un messaggio trovato in rete:
<p>
<pre>
From registry@clear.net.nz Mon Apr 20 21:16:36 1998
Date: Thu, 12 Feb 1998 21:50:52 GMT
From: Registry <registry@clear.net.nz>
Newsgroups: 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 &egrave; /. Nel nostro esempio &egrave; /dev/sda2, ma per il vostro 
 sistema sar&agrave; 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

</pre>
<p>
<H2>LOGOUT SE INATTIVO</H2>
&Egrave; spesso necessario che dopo un certo tempo di inattivit&agrave; si possa
scollegare un utente per liberare una possibile shell. Per fare questo ci
sono 2 metodi: settare la variabile AUTOLOGOUT con il numero di minuti
prima che l'utente venga scollegato automaticamente (vale per la tcsh) 
o creare uno script come questo:
<p>
<pre>
From froess@nregh0.nospam Mon Apr 20 21:24:42 1998
Date: Wed, 11 Feb 1998 12:39:09 -0600
From: Travis Froess <froess@nregh0.nospam>
Newsgroups: 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&eacute; 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      |
==================================================================
</pre>

<H2>RH5.0 e Staroffice 4.0. Parte 1</H2>

<p>Direttamente dalla rete.

<p align=center>Installazione di StarOffice

<p>Per iniziare avete bisogno di correggere il problema della libc. La prima cosa 
a cui fare attenzione qui &egrave;:

<p>
NON INSTALLARE LA "LIBRERIA LIBC AGGIORNATA"!! PU&Ograve; INCASTRARE IL SISTEMA!

Se gi&agrave; lo avete fatto, beh, potete pensare di reinstallare il sistema 
per correggere l'errore. Anche se installando l'rpm StarOffice funzioner&agrave; ho sentito diverse storie horror sul fatto che distrugge altre applicazioni. Quindi, NON LO FATE!
  
<p> Procuratevi l'ultima libc5 (i file tar, non l'rpm!). Io ho usato la 
libc5.4.44 (la 5.4.38 &egrave; 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:

<pre> 
        ln -s libc.so.5.4.44 libc.so.5
        ln -s libm.so.5.0.9 libm.so.5
</pre>

<p>per produrre i seguenti link:

<pre>
       libc.so.5 -> libc.so.5.4.44
       libm.so.5 -> libm.so.5.0.9
</pre>

<p>Questi sono gli unici due file della distribuzione libc di cui avete bisogno. Il resto pu&ograve; anche essere cancellato. Notate che i numeri della versione possono essere diversi.

<p>Ora modificate /etc/ld.so.conf ed aggiungeteci come ultima linea:  


<p><tt>/usr/local/StarOffice/lib</tt>  (o dove le avete messe)

<p>Trovo che cos&igrave; sia pi&ugrave; affidabile, e che causi meno problemi 
che usare LD_LIBRARY_PATH...

<p>Poi usate ldconfig per impostare le modifiche. 

<p>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:
<p><tt> <inst dir>/StarOffice/bin/setup</tt>

<p>Se setup non funziona ancora (non so immaginare perch&eacute;, ma...:
modificate <tt><install dir>/StarOffice/bin/setup</tt> in modo che 
risulti cos&igrave; (non dovreste farlo con gli altri cambiamenti fatti a ld, ma non si sa mai :))

<p>
<pre>
################################
#!/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 $*
###########################
</pre>

<p>I cambiamenti rilevanti sono nella LD_LIBRARY_PATH per l'installazione di Linux. 
Ci&ograve; 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. 

<p>Finito il setup, copiate la seguente lista di directory da <install-dir>/StarOffice/.sofficerc nella vostra home directory (per precisione, ho creato una directory StarOffice nella mia home, ed ho messo la roba di StarOffice l&igrave;: evita conflitti e mantiene le cose pulite):

<pre>
       <install-dir>/StarOffice/agent
                       .../backup
                       .../cache
                       .../database
                       .../explorer
                       .../autotext
                       .../basic
                       .../config
                       .../desktop
                       .../wordbook
</pre>

<p>Ricordatevi di copiare le sottodirectory completamente usando <tt>cp -r &lt;dir&gt;</tt> in modo da copiare tutti i file in esse contenuti.

<p>A questo punto la mia directory di lavoro &egrave; di questo tipo:

<pre>
       $HOME/StarOffice/agent
                       .../backup
                       .../cache
                       .../database
                       .../explorer
                       .../autotext
                       .../basic
                       .../config
                       .../desktop
                       .../wordbook

</pre>

<p>POI... (siete gi&agrave; stanchi?)
<p>Copiate il file &lt;inst dir&gt;/StarOffice/.sofficerc nella vostra home directory. 

<p>Bisogna modificare il file .sofficerc che sta nella vostra home directory. In particolare bisogna cambiare la sezione  [Directories-Unix] im modo che diventi cos&igrave; (potete copiarlo ed incollarlo, e poi eliminare le voci originali):

<pre>
[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
</pre>

<p>Ora dobbiamo creare un nuovo &lt;install dir&gt;/StarOffice/.sofficerc 
fatto cos&igrave; (tenete l'originale come template per gli utenti):

<pre>
[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)/
</pre>

<p>Queste due modifiche ai file .sofficerc permettono all'applicazione di
girare come applicazione multiutente. Per default &egrave; a utente singolo,
cosa che ritengo inaccettabile per un sistema operativo multiutente!

<p>La modifica finale consiste nel modificare il vostro file .profile ed aggiungere &lt;install dir&gt;/StarOffice/bin al path.
<p>
<p align=center>Ecco fatto!</p>

<p>Uno dei primi test per controllare il funzionamento della cosa &egrave;, all'avvio, di scegliere "File+New". Dovrebbe venire fuori un men&ugrave; molto carino che contenga una selezione ragionevole dei tipi di documento. Se vi esce qualcos'altro, o se crasha, c'&egrave; qualcosa che non va. Tornate indietro e controllate se avete copiato tutte le directory, ed avete reimpostato correttamente i permessi.

<p>L'altra cosa che pu&ograve; accadere &egrave; 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&ugrave;.

<p>In bocca al lupo! Anche se non &egrave; un'installazione automatica di 10 minuti, come la vorremmo, non &egrave; poi cos&igrave; brutta come sembra. Se siete nei guai, mandatemi una mail a:

<p align=center><a href=mailto:tibbets@oz.net>tibbetts@oz.net</a></p>

<p>e vedr&ograve; se vi posso aiutare!


<p>DISCLAIMER: La procedura qui sopra descritta non &egrave; approvata dalla StarDivision, e l'utente fa le modifiche suggerite a proprio rischio. Non sar&ograve; in alcun modo responsabile per qualsiasi danno che ne possa risultare.

<p>di Richard Tibbetts


<P>
<H2>RH5.0 e Staroffice 4.0. Parte 2</H2>
E se non dovesse funzionare ecco un'altra versione:

<pre>
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.
</pre>

<p>
<H2>GETCH SENZA CURSES</H2>
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.

<pre>
: 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 <sys/termios.h>
#include <termio.h>
#include <fcntl.h>

no_wait()
{
    int fd , i;
    struct termio test;

/* sostituisce ttyname(0) con il nome del terminale se necessario*/

    fd=open(ttyname(0),O_WRONLY);

    ioctl(fd, TCGETA, &test);
    test.c_cc[VMIN]=1;
    test.c_lflag = ISIG;
    ioctl(fd, TCSETA, &test);

    close(fd);
}
</pre>

<p>
<H2>GREP E PI&Ugrave; ARGOMENTI</H2>
Molte volte &egrave; necessario cercare una parola all'interno del file, e
si usa il tanto eclatato grep. Ma se le parole da cercare sono pi&ugrave;
di una? Beh, si usa ancora grep con l'opzione -e (leggere le man
pages serve sempre!!!). Quindi:<p>

<tt>grep -e parola1 -e parola2 nome_file</tt>

<p>
<H2>UTENTI CANCELLATI E FILE ANCORA ESISTENTI</H2>
Quando si cancella un utente &egrave; quasi sempre necessario controllare
anche se esistono file che sono ancora di propriet&agrave; dell'utente
stesso. Per fare questo basta utilizzare il comando find con la seguente
sintassi:<p>

<tt>find / -user 5000 -exec chown xxxx {} \;</tt>

<p>
In questo caso si fa semplicemente un chown, ma si pu&ograve; anche
cancellare il file (rm) o spostarlo in una certa directory, e al posto di
usare il UID dell'utente si pu&ograve; usare la login stessa.

<p>
<H2>SOSTITUIRE UNA PAROLA IN UN FILE</H2>
Ecco un semplice script che sostituisce una certa parola con un'altra.<p>


<pre>
#!/bin/ksh
#
# Sostituisce una stringa in uno o pi&ugrave; file.
# I. Cnudde
#

echo

if [[ $1 = '-help' ]]; then

  echo "Uso: sr <old string> <new string> <file1> [<file2> ...]"
	
else
  
  echo "Sto sostituendo tutte le istanze di '$1' con '$2' nei file indicati."
  echo "..."
  
  OLD_STRING=$1
  NEW_STRING=$2
  #
  # per tutti i file ($3, $4...), sostituisce OLD_STRING con NEW_STRING
  # 'i' &egrave; usato per sapere quali parametri sto processando
  #

  i=1
  for FILE in "$@"; do
	
  	if [[ `expr $i` > 2 ]]; then
	  
	  echo "Processing $FILE..."
	  sed s/"$OLD_STRING"/"$NEW_STRING"/g $FILE > $FILE.tmp
	  mv $FILE.tmp $FILE

	fi
	
	i=`expr $i + 1`
	
  done
  
  echo "Fatto!"
fi

echo
</pre>


<HR>
 I Trucchi/Consigli presentati sono stati creati in parte da me
(<A HREF=mailto:ziobudda@chiara.dei.unipd.it>ziobudda@chiara.dei.unipd.it</A>) e in parte presi direttamente dai vari
newsgroups su linux e su unix, un vero mare di consigli.
<br>
Per ogni informazione su questi tips contattare help@pluto.linux.it
<br>


<HR>
<TABLE BORDER=0 CELLPADDING=0 WIDTH=100%>
<TR>

<TD ALIGN=left BGCOLOR="#ffffff">
<A HREF="kde.html">
<IMG ALT="[precedente]" SRC="pj_images/a_left.gif" BORDER=0></A>
</TD>

<TD ALIGN=center BGCOLOR="#cccccc">
<FONT COLOR="#00ff00">
<A HREF="kde.html">KDE</A>
- <A HREF="index.html">Copertina</A> -
<A HREF="index.html#pj97n17">Indice</A>
</FONT>
</TD>

<TD ALIGN=right BGCOLOR="#ffffff">
<A HREF="index.html#pj97n17">
<IMG ALT="[successivo]" SRC="pj_images/a_right.gif" BORDER=0></A>
</TD>

</TR>
</TABLE>

</BODY>
</HTML>