PDA

Visualizza la versione completa : Bash linux spiegazioni


simoneudine
12-01-2005, 12:06
chi mi aiuta a capire come fare degli esercizi usando la bash?

mi serve creare dei programmini che mi facciano delle cosette semplici semplici (è una cosa di scuola) ma sinceramente non ne capisco molto, dove posso imparare? oppure c'è nessuno che mi spiega o mi fa gli esercizi?? :stordita:

ciao scusate...

Ikitt
12-01-2005, 12:13
Originariamente inviato da simoneudine
chi mi aiuta a capire come fare degli esercizi usando la bash?
Domanda che piu` vaga non si puo`... Ci sono stati thread recenti di richiesta di documentazione, oppure se vai sui soliti siti tipo ILDP trovi roba tipo "bash-prog-intro-HOWTO" per dare le basi...


mi serve creare dei programmini che mi facciano delle cosette semplici semplici (è una cosa di scuola) ma sinceramente non ne capisco molto, dove posso imparare? oppure c'è nessuno che mi spiega o mi fa gli esercizi?? :stordita:

Risolvere gli esercizi in vece tua ne dubito, nulla vieta pero` che tu invii il testo di quello che non ti riesce assieme a quello che hai fatto tu, e che tu dica cosa tu non capisci. Se ne parla e si prova a risolverlo.

simoneudine
12-01-2005, 14:00
il problema è che della bash e dei suoi comandi non ne capisco una sega... :bhò:

per esempio


for ITEM in $*
do
if [ `echo $ITEM | egrep -e "-"` ] > /dev/null;
then OPTIONS="$OPTIONS `echo $ITEM | sed s/-//`"
else
K=`expr $K + 1`
NAMES="$ITEM $NAMES"

non capisco neanche una riga...(a parte if else echo) e mi sono gia letto un po del manulale...

gianiaz
12-01-2005, 14:18
e allora leggiti le guide che ti ha consigliato Ikitt

Ikitt
12-01-2005, 14:38
Originariamente inviato da simoneudine
il problema è che della bash e dei suoi comandi non ne capisco una sega... :bhò:

per esempio


for ITEM in $*
do
if [ `echo $ITEM | egrep -e "-"` ] > /dev/null;
then OPTIONS="$OPTIONS `echo $ITEM | sed s/-//`"
else
K=`expr $K + 1`
NAMES="$ITEM $NAMES"

non capisco neanche una riga...(a parte if else echo) e mi sono gia letto un po del manulale...

Se non capisci una sega (sic) purtroppo non ti si puo` spiegar tutto via forum: ci si metterebbe una vita e il risultato sarebbe molto inferiore rispetto alla documentazione preesistente.

Non posso che ribadire il consiglio di leggere della doc e di ripartire passo per passo:
- variabili e sostituzione di variabili
- pipe e redirezione
- sostituzione di comando e valori di ritorno
- costrutti della shell (if case for while)
- programmi piu` comuni (test expr sed cut cat...)

Per domande specifiche non c'e` problema

Sergio Pedone
12-01-2005, 14:44
oltre a tutto quanto ti è stato consigliato, non partire da script complessi, ma da qualcosa di semplice ed 'isolato'.

esempio:
Il comando "echo"
Utilizzo: "echo "Ciao Mondo" ti stampera' a video "Ciao Mondo"
Riferimenti: pagine di manuale -> "man 1 echo" e "man 1 bash"

ciao e buono studio.

pigna
12-01-2005, 14:50
A me e' piaciuta molto questa guida:

http://www.pluto.linux.it/ildp/guide/abs/index.html

Kandalf
12-01-2005, 15:42
Originariamente inviato da pigna
A me e' piaciuta molto questa guida:

http://www.pluto.linux.it/ildp/guide/abs/index.html

grazie pigna...ma nn c'è il pdf scaricabile in italiano di questa?

gianiaz
12-01-2005, 16:07
.

simoneudine
12-01-2005, 16:51
la guida l'ho saricata anche io, niente di piu veloce? non ho molto tempo a disposizione, devo consegnare tre esercizi in meno di un mese...

sono questi, ditemi se posso farcela...



Svecchiamento del contenuto di un direttorio
Utilizzando come base dell'implementazione il comando di shell mv, per spostare file e direttori da un direttorio all'altro, si realizzi un comando di ripulitura purge del contenuto del direttorio (passato come secondo parametro) nel cestino .wastebasket, posizionato nella home directory in base alla data dell'ultima modifica così come apppare dall'esecuzione del comando ls -l di long listing.

La sintassi generale del comndo da implementare deve seguire lo schema riportato di seguito purge [-opt1 [-opt2 ...]] date dir




dove le opzioni opt1, opt2, ... sono le stesse del comando mv, mentre date rappresenta la data in base alla quale tutti i file e directory la cui data di ultima modifica è inferiore ad essa, devono essere spostati nel cestino.

Si impieghi il parametro $* per rappresentare la lista dei parametri passati al comando in questione. Inoltre, se lo si ritiene opportuno, si utilizzi ls -l --time-style=+'FORMAT' come comando di listing, dove FORMAT è lo stesso di quello specificato dal comando date.



Archiviazione e Compressione
Utilizzando come base dell'implementazione il comando di shell tar, per archiviare file e direttori, si realizzi il comando di compressione pkz dei file e directory passati come parametri rimanenti.

La sintassi generale del comando da implementare deve seguire lo schema riportato di seguito pkz c|l|x|i [-opt ...] pkzfile file ... dir ...




dove il primo parametro, indicato con una delle 4 lettere c, l, x o i, rappresenta una delle azioni create , list, extract oppure insert, i successivi opt, ... le opzioni (le stesse del comando tar). Il parametro successivo pkzfile definisce l'archivio compresso nel quale sono inseriti i rimanenti parametri file ... dir ... .

Si ricordi che la compressione dell'archivio tar si ottiene passando il flag z al comando tar. Si consulti, inoltre, il manuale in linea del comando per i dettagli del suo utilizzo.



Autorizzazione d'Accesso
Si consideri il problema di gestire l'accesso controllato ad un server remoto per mezzo di un meccanismo di autenticazione che richieda una username e una password, specifici per ciascuno degli utenti autorizzati. La richiesta di accesso avviene mediante la pagina HTML login.html che deve contenere obbligatoriamente i campi uname e passwd.

Si realizzi lo script CGI bash login.cgi in modo da poter verificare l'identità dell'utente ed, eventualmente, consentirne l'accesso. Si preveda, inoltre, la possibilità per gli utenti non registrati di poterlo fare, utilizzando lo stesso schema di "form" con ulteriori campi da compilare per generare un nuovo utente da autorizzare.

Si ternga presente che è necessario mantenere il database passwd.db contenente le informazioni rilevanti per ciascun utente autorizzato. Lo si implementi come un file di testo, una riga per utente, così strutturato

uname:passwd: name:surname: info

ed, inoltre, in caso di successo al login o in fase di registrazione si produca un'adeguata pagina di risposta. Si utilizzi il campo info a piacimento.


che ne dite? sono nella me...?

ciao grazie a tutti!

Loading