Webminator - Copertina - Indice |
Articoli
Ecco un semplice script che vi permetterà di creare un file .html contenente le informazioni dei file .rpm contenuti in una directory o magari in un CDROM
Per questioni di .html il sorgente è nel file
cont.sh.txt
.
Per chi ha problemi con la scheda di rete 3c5x9 ecco qui la soluzione:
http://cesdis.gsfc.nasa.gov/linux
In questa directory troverete il file 3c5x9setup.c che vi permetterà di cambiare il settaggio della vostra scheda di rete senza dover passare da WinX.
Ecco un piccolo script che potrete utilizzare per automatizzare lo scaricamentodi un file. Magari lo potete richiamare via cron.
#!/bin/sh LOG=/tmp/autoftp.log ftp -n -i ftp.somehost.com <<-@EOB &> $LOG user anonymous jose@haulpak.com bin cd /pub/scisy ls get gg.zip cd /incoming put somefile.txt bye @EOB exit 0
Ecco un semplice script per vedere se una macchina e raggiungibile, utilizzando il semplicissimo ping.
#!/bin/sh ping -c 2 localhost if [ $? != 0 ] ; then echo "Something is seriously wrong..... :-)" #This obviously should work fi ping -c 2 nowhereoutthere.com if [ $? != 0 ] ; then echo "Sorry, I couldn't ping that IP address..." #No such animal fi
Ecco un semplice shell-script che ritorna dei numeri pseudo-casuali.
########################################################################## # Shellscript: rand - return random number # Version : 0.2 (beta) # Author : Heiner Steven (heiner@darwin.noris.de) # Date : 09.02.95 # SCCS-Id. : %Z% %M% %I% %D% ########################################################################## # Description # Uses the date and the process id to calculate a random number # Changes # 28.09.95 stv Random numbers cannot be maxvalue+1 (0.2) ########################################################################## PN=`basename $0` # program name VER='0.2 (beta)' MaxRand=32766 Usage () { echo "$PN - return random number, $VER (stv '95) usage: $PN [maxvalue] Prints a random value (1 <= random <= maxvalue) to standard output. If no maximum value is specified, `expr $MaxRand + 1` is the default" >&2 exit 1 } Msg () { for i do echo "$PN: $i" >&2 done } Fatal () { Msg "$@"; exit 1; } while [ $# -gt 0 ] do case "$1" in # Your flags here --) shift; break;; -h) Usage;; -*) Usage;; *) break;; # First file name esac shift done if [ $# -gt 1 ] then Usage elif [ $# -eq 1 ] then if expr $1 + 0 > /dev/null 2>&1 then Max=$1 else Fatal "illegal number: $1" fi fi : ${Max:=$MaxRand} # Use default value set -- `date '+%H %M %S'` [ $# -ne 3 ] && Fatal "could not invoke program date" n=`expr $$ \* $1 \* $2 \+ $3` exec expr \( $n % $Max \) + 1
Visto che non si smette mai di imparare ecco un semplice modo per fare lo shutdown della macchina:
/sbin/init 0
Forse non tutti sanno che è possibile dire al Server X di partire con
una certa profondità di colore senza dover stravolgere il file XF86Config.
Basta aggingere
DefaultColorDepth profondità
alla sezione "Screen" della propria macchina.
Ecco un semplice schema per prevenire (nella programmazione) l'effetto zombie
if (pid=fork()) { waitpid(...); } else { if (fork()) { exit(0); } else { setsid(); ... child process code here ... } }
Ok, non è proprio un tips per tutti, ma per chi vuole capire come
colloquiare con una seriale (in questo caso il modem) ecco il modo giusto
nel file modem.c
. Peccato che non
l'abbia scritto io, mi sarebbe valso l'Oscar. :)
Molte volte è necessario cambiare il nome ad una serie di file equesto viene fatto con il comando mv. Ma quando il nomenuovo deve essere quello vecchio con l'agguinta di un numero? Be', ecco la soluzione in 2 versioni:
ls *.rgb | awk ' { filnam=$0 n1=split(filnam,tmp2,".") fnum=substr(tmp2[1],index(2[1],/[0-9][0-9]*/),length(tmp2[1])) fnam=substr(tmp2[1],1,index(2[1],/[0-9][0-9]*/)-1) fnum=sprintf("%i4",fnum) filnam_new=path "/" fnam fnum "." tmp2[2] print "mv "$0" "filnam_new }' > mv.sh
Questo semplice script crea il file mv.sh che prende in input l'estensione dei file che si vogliono rinominare (in questo casa .rgb) e in automatico seleziona i file e li rinomina. Vi è una unica pecca, non scorre le directory. Ecco un compito a casa... :) La seconda versione è:
ls -f | perl -lne ' \ $old = $_; \ s/^anka(\d+)\.rgb$/sprintf "anka%04d.rgb", $1/e; \ rename $old, $_ unless -e'
Anche in questo caso come vedete l'estensione di default è rgb. Ok è un po' lungo da ricordare, ma se qui vi è un perl hacker allora mi mandi una versione riveduta e corretta e sarò felice di metterla sul prossimo numero.
Ecco 2 alternative per mostrare le parole di un file e quante volte essi compaiono.
cat textfile | perl -pe 's/(^\s+|\s+$)//g;s/\s+/\n/g;' | sort | uniq -c cat textfile | awk '{ for (i=1;i<=NF; i++) ++W [$i] } END { for ( k in W ) print k, W [k] }' "$@"
Ecco un semplice script di shell che vi dice su 2 file a vostra scelta hanno la stessa data di creazione.
#!/bin/sh if [[ ! ($1 -nt $2 || $1 -ot $2) ]];then echo ok;else echo bad;fi
di ZioBudda
Webminator - Copertina - Indice |