Aptitude: differenze tra le versioni

m
Riga 1: Riga 1:
Questo Wiki vuole essere prima di tutto un punto di raccolta ideale per le conoscenze acquisite dai singoli durante l' uso di Debian GNU/Linux in ambito casalingo e/o lavorativo, in modo che il sapere di uno diventi quello di tutti.
==Intro==
'''GNU Bash''' � la shell *nix probabilmente pi� ricca di funzionalit� sia per l'uso interattivo che per lo scripting. Spesso per� molte funzioni sono poco note.


Le guide ritenute meglio scritte e pi� approfondite, dopo un processo di controllo e revisione a cui tutti siete liberi di partecipare, vengono classificate [[:Categoria:Debianized|Debianized]] e contrassegnate dalla [[Debian Swirl]] http://guide.debianizzati.org/images/swirl.png.
Questa pagina ha lo scopo di raccogliere il pi� ampio numero di "trucchi" pi� o meno noti riguardanti Bash, senza avere peraltro la pretesa di coprire tutte le funzionalit�.


Potete trovare un elenco completo delle guide Debianized [http://guide.debianizzati.org/index.php/Categoria:Debianized qui]
==Per iniziare==
Prima di iniziare non posso non segnalare altre due guide presente sul wiki che danno dei tip molto utili su Bash:
Questa � la lista delle guide attualmente presenti:


== Mondo Debian ==
* [[Come abilitare il completamento automatico 'avanzato']]
=== Introduzione a Debian ===
* [[Colorare bash]]
* [[L' Universo Debian]]
 
* [[La struttura della Distribuzione]]
==Shell Interattiva==
In questa sezione verranno elencate funzionalit� riguardanti l'uso interattivo di Bash.


=== Installazione ===
===Navigare velocemente tra le directory===
* http://guide.debianizzati.org/images/swirl.png [[Guida a Grub]]
* Per andare sulla propria '''home''' basta digitare il comando '''cd''' senza nessun paramentro.
* [[Jigdo | Jigdo: Scaricare e Aggiornare le iso di Debian]]
* Per tornare indietro alla precedente directory visitata � sufficiente il comando '''cd -'''
* [[Note sull'installazione di Debian]]
* E possibile salvare un percorso con '''pushd''' e richiamarlo con '''popd'''. In realt� questi comandi (come il nome pu� fare intuire) implementano una coda FIFO (First In First Out) nella quale � possibile memorizzare un numero illimitato di percorsi per poi richiamarli dall'ultimo inserito in poi. Usare questi comadi � semplicissimo: basta usare '''pushd''' al posto di '''cd''' (in tal modo si memorizzano i percorsi via via visitati) e poi digitare '''popd''' una o pi� volte per tornare indietro.


=== Gestione dei Pacchetti ===
===Riutilizzo degli argomenti===
* [[Introduzione all' Apt System]]
Bash memorizza l'ultimo argomento del comando precedente in una speciale variabile chiamata $_. E' possibile fare riferimento all'ultimo argomento dell'ultimo comando usando direttamente $_ ma la via di gran lunga pi� veloce � comoda � usare 'ESC .'.  
* [[I repository ed il loro utilizzo]]
* http://guide.debianizzati.org/images/swirl.png [[Pulire Debian]]
* [[Apt-cdrom | '''Apt-cdrom''': aggiunta di cd/dvd nella lista dei repository]]
* [[Apt-file: ricerca all'interno dei pacchetti | '''Apt-file''': ricerca all'interno dei pacchetti]]
* [[Apt-listbugs: come monitorare i bug | '''Apt-listbugs''': come monitorare i bug]]
* [[Apt-zip: aggiornamenti senza una connessione veloce | '''Apt-zip''': aggiornamenti senza una connessione veloce]]
* [[Apt-spy: trovare i mirror pi� veloci | '''Apt-spy''': trovare i mirror pi� veloci]]
* [[APT uso avanzato: mixare releases diverse]]
* http://guide.debianizzati.org/images/swirl.png [[Impedire l' aggiornamento di un pacchetto]]
* [[Aptitude | '''Aptitude''': come amministrare i pacchetti]] ''(stub)''


=== Creazione e modifica dei pacchetti ===
Ecco un esempio stupido, creare un directory ed entrarvi:
* http://guide.debianizzati.org/images/swirl.png [[Make-jpkg: Pacchettiziamo Java Sun| '''Make-jpkg''': Pacchettiziamo Java Sun]]
<pre>
* [[Pacchetti binari e sorgenti]]
$ mkdir /usr/local/nuovo-programma
* [[Applicare una patch ad un pacchetto Debian]]
$ cd ESC.
* [[Apt-build: ottimizzazione dei pacchetti | '''Apt-build''': ottimizzazione dei pacchetti]]
</pre>
* [[Dpkg-sig: Firma dei packages .deb |  '''Dpkg-sig''': Firma dei packages .deb]]
* [[Pacchetizzare un tema per Bootsplash]]


=== Gestione dei pacchetti Lato Server ===
Altro esempio forse un p� pi� utile, creare velocemente uno script:
* [[Apt-Proxy: un proxy per i pacchetti Debian| '''Apt-Proxy''': un proxy per i pacchetti Debian]]
<pre>
* [[Debmirror: creiamo un mirror Debian |'''Debmirror''': creiamo un mirror Debian]]
$ :> /usr/local/bin/nomescript
* [[Creare un Repository Debian]]
$ chmod +x ESC.
* [[Gestione di un repository con debarchiver]]
$ gvim ESC.
* [[Usare apt-cacher per creare una cache dei pacchetti usabile in una LAN]]
</pre>
* [[Dupload per l'upload dei pacchetti Debian]]


==Configurazione Sistema==
===Editing della linea di comando===
===Kernel===
Alcuni tasti di scelta rapida per l'editing da linea di comando:
* http://guide.debianizzati.org/images/swirl.png [[Debian Kernel Howto]]
: '''<tt>CTRL+a</tt>''': Vai all'inizio delle linea
* [[Esempio configurazione kernel]]
: '''<tt>CTRL+e</tt>''': Vai alla fine della linea
* [[Kernel2.6.10 - Framebuffer - Gensplash Patch]]
: '''<tt>CTRL+k</tt>''': Cancella fino dalla posizione corrente alla fine della linea
* [[Kernel 2.6 su Debian Woody]]
: '''<tt>CTRL+u</tt>''': Cancella fino dalla posizione corrente all'inizio della linea
* [[Compilazione Kernel 2.6.11 con Bootsplash]]
: '''<tt>CTRL+l</tt>''': Pulisce lo schermo
* [[Pagina di manuale di module-assistant|Pagina di manuale di '''<tt>module-assistant</tt>''']]
: '''<tt>META+f</tt>''': Vai una parola avanti
* [[Low-latency 2.6 kernel per applicazioni audio realtime]]
: '''<tt>META+b</tt>''': Vai una parola indietro
* [[Script: Confronto Configurazioni Kernel]]
: '''<tt>META+d</tt>''': Cancella la parola successiva
: '''<tt>META+backspace</tt>''': Cancella la parola precedente


===Sistema===
{{Box|Nota sul tasto META|Il tasto Meta pu� essere usato premendo ALT e ''contemporaneamente'' il carattere del comando che interessa, oppure premendo ESC e ''successivamente'' il tasto del comando che interessa. In quest'ultimo modo non � necessario permere due tasti conemporaneamente. Questa � una regola generica per gli shortcut di bash che usano il tasto Meta.}}
* [[SysV | Il sistema SysV per la gestione dei Runlevel]]
* [[Udev e Debian]]
* [[Configurare il server X in Debian GNU/Linux]]
* [[Linux Admin Quick Reference]]
* [[Debian: accelerare GTK con Cairo e Glitz]]


===Applicazioni Esterne===
===Uso avanzato dello storico===
* [[Pacchettizzare ed installare Xorg su Debian Sid]]
Come noto Bash memorizza gli ultimi (solitamente 500 ma il numero � impostabile in $HISTSIZE) comandi digitati ai quali � possibile accedere semplicemente con le freccette SU e GIU. Tuttavia � possibile effettuare molte altre operazioni per ricercare nello storico dei comandi.
* [[Installazione Qemu con supporto accelerazione Kqemu]]
* [[ePSXe Emulatore Playstation]]
* [[Installare OpenOffice2 su Debian Etch]]
* [[DVD Backup: xDVDShrink per Debian]]


===Altro===
====Ricerca incrementale inversa====
* [[Dual Boot Debian-Altra distribuzione Linux]]
Sotto questo astruso nome si cela la possibilit� di ricercare nello storico dei comandi semplicemente premendo CRTL+r e digitando qualche carattere del comando cercato. Verr� immendiatamente mostrato l'ultimo comando che soddisfa i criteri di ricerca. Se pi� comandi soddisfano la ricerca � possibile scorrerli (dall'ultimo al primo) premendo nuovamente CTRL+r.
* [[Dual Boot Linux-Windows|Dual Boot Linux-Windows: usare il bootloader di windows]]
* [[Logging su MySQL]]
* [[Password sicure: la base della sicurezza informatica]]
* [[Script Bash per Avvio e Visualizzazione dati Seti@home]]


===Tips and Tricks===
Una volta trovato il comando lo si pu� eseguire con INVIO oppure editare con CTRL+j.
====Bash====
 
* [[Bash tips]]: un elenco di trucchetti sull'uso interattivo e sullo scripting Bash
====Ricerca nella cronologia====
* [[Colorare bash]]
Altra possibilit� � cercare tra tutti i comandi precedenti che cominciano con un certo gruppo di lettere.
* [[Come abilitare il completamento automatico 'avanzato']]
 
* [[Un logout con schermo pulito]]
Questa funzionalit� non � abilitata di default; bisogna modificare il file /etc/inputrc (o creare un analogo file .inputrc nella propria home), aggiungendo le righe:
* [[Bash Script: Cambiare i permessi ricorsivamente]]
 
<pre>
# PgUp/Down searches history in bash
"\e[5~":        history-search-backward
"\e[6~":        history-search-forward
</pre>
 
In questo esempio si � scelto di usare i tasti PGUP e PGDOWN.
Da notare che il file inputrc contiene altre comodit� pronte all'uso: basta decommentarle!
 
====Accesso diretto====
Il carattere ! permette di richiamare un preciso comando dello storico:
 
<pre>
$ !-3
</pre>
 
richiama ed esegue il terzultimo comando, mentre:
 
<pre>
$ !ta
</pre>
 
richiama ed esgue l'ultimo comando che comincia con '''ta''' (potrebbe essere: tail -f /var/log/messages). Il '''!!''' richiama invece l'ultimo comando.
 
Se si vuole richiamare il comando ma non eseguirlo si pu� usare il modificatore :p (''print''), ad esempio
 
<pre>
$ !ta:p
</pre>
 
stampa l'ultimo comando che inizia con ''ta''.
 
Per richiamare l'ultimo comando che contiene una certa parola (non all'inizio):
 
<pre>
$ !?parola?
</pre>
 
E' possibile anche richiamare un parametro di un comando usando ''':''' seguito dal numero del parametro (0 indica il comando stesso). Ad esempio:
 
<pre>
$ man !-1:0
</pre>
 
visualizza la pagina di manuale dell'ultimo comando.
 
Per eseguire un comando con gli stessi argomenti del comando precedente:
 
<pre>
$ nuovocomando !!:1*
</pre>
 
==Bash Scripting==
In questa sezione verranno elencati alcuni brevi tip per lo scripting Bash. Questa non vuole essere assolutamente una guida completa, ma pi�ttosto un elenco di costrutti per lo scripting bash particolarmente eleganti, curiosi e/o poco noti.


====Firefox====
===Variabili speciali===
* [[Velocizzare Firefox per la banda larga]]
* [[Il vostro motore di ricerca da Firefox]]
* [[Aggiungere un motore di ricerca al quicksearch di Firefox]]


====Altro====
; $? : Contiene il valore di uscita dell'ultimo comando o funzione. Il comando ha successo se ritorna zero, qualsiasi altro valore indica invece un codice di errore.
* [[Convertire immagini .nrg in immagini .iso]]
* [[Nautilus: navigare con una sola finestra]]
* [[Associare a thunderbird il browser preferito]]
* [[Antispam in Evolution con Bogofilter]]
* [[Impostare la lingua italiana per Gnome]]
* [[Impostare  e modificare data e ora]]
* [[Impostare e modificare il layout della tastiera]]
* [[Abilitare_Xinerama | Multi monitor con Xinerama]]
* [[Abilitare ESound con ALSA in Gnome]]
* [[Cambiare il Tema dei Cursori per il Mouse]]
* [[XFCE e shutdown da utente]]


==Networking==
; $@ : Contiene la lista dei paramentri passati allo script corrente. Ogni parametro viene opportunamente quotato e questo permette l'utilizzo di questa variabile nei '''cicli for''' per processare (ad esempio) una lista di nomi di file che possono contenere anche spazi. L'uso di questa variabile � quindi in genere consigliato rispetto a '''$*''' che ha la stessa funzione ma non quota i vari parametri.
===Debian Server===
====Condivisione risorse====
* [[Directory shared tra macchine linux (nfs)]]
* [[Condivisione risorse con Samba]]


====Mailing====
''Esempio:''
* [[Mail Server Sicuro con Postfix]]
<pre>
FILES=$@


====Http====
for file in $FILES; do
* [[Server Web Casalingo]]
    # Fare quello che si vuole con $file
* [[LAMP: Linux, Apache, MySQL e PHP]]
    echo $file 
* [[XAMPP: Linux, Apache, MySQL e PHP facili]]
    # ...
* [[Debian MapServer/MapScript]]
done
</pre>


===Amministrazione===
; $$ : PID del processo corrente.
====Gestione Remota/Locale====
* [[Wake On Lan | '''Wake On Lan''' per accendere i propri PC a distanza tramite la LAN]]
* [[Debian e il controllo di servizi e demoni]]
* [[Gestione della banda in Apache]]
* [[Ssh e autenticazione tramite chiavi]]


====Connettivita'====
; $! : PID dell'ultimo job in background
* [[Condividere la connessione a internet]]


===Sicurezza===
=== Manipolazione delle stringhe ===
====Firewalling====
Nelle shell *nix, storicamente, la manipolazione delle stringhe viene fatto attraverso programmi esterni alla shell come seq, awk e perl. Questi programmi vengono ancora usati quando si vuole mantenere la compatibilit� con la shell <tt>'''sh'''</tt>, tuttavia imparare anche il solo sed (il pi� semplice dei tre) non � cosa immediata.
* [[Debian e iptables]]
* [[Firewall Builder]]
* [[Parametri a run-time per Netfilter]]


====Monitoraggio & Scanning====
Se si usa Bash, non � necessario usare nessun programma esterno, ma basta imparare i tre operatori fondamentali ed alcuni concetti di base, per poter fare tutte le manipolazioni pi� comuni.
* [[Monitoriamo il Sistema]]
* [[Mrtg: monitoriamo la banda]]
* [[Cacti | Cacti: monitor di rete, per pi� computer]]
* [[Munin]]


====Proxy====
In Bash una stringa non � altro che una variabile, si indica dunque con <tt>${nome}</tt> oppure con la forma abbreviata <tt>$nome</tt>. Il nome dentro le graffe pu� essere seguito da un modificatore che manipola la variabile, ad esempio:
* [[Privoxy: navigazione sicura a prova di spam]]


====Tunneling====
  VAR="stringa-di-esempio"
* [[Openvpn]]
  echo ${VAR#stringa-}


== Hardware ==
elimina "stringa-" dall'inizio della variabile.
=== Fotocamere digitali e dispositivi di memorizzazione di massa removibili ===
* [[Usare Fotocamere Digitali|Usare Fotocamere Digitali (libgphoto2)]]
* [[Usare Fotocamere Digitali (usb-storage)]]
* [[UsbMount: Gestione automatizzata delle periferiche usb di memorizzazione]]
* [[Debian e iPod]]


=== Modem e periferiche di rete ===
I modificatori sono molti, ma possono essere facilmente ricordati se si imparano i tre fondamentali:


* [[Debian e i Modem ADSL]]
; <tt>#</tt> : sottrae dall'inizio della stringa ''(minimale)''
; <tt>%</tt> : sottrae dalla fine della stringa ''(minimale)''
; <tt>/</tt> : sostituisce una sottostringa con un altra ''(solo la prima volta che viene incontrata)''


==== Modem USB ADSL ====
Questi operatori sono minimali, questo vuol dire che se si usano le espressioni regolari per indicare la sottostringa (da eliminare o sostituire) verr� individuata in caso di ambiguit� la sottostringa pi� piccola (o solo la prima nel caso della sostituzione).
* [[Installare i driver conexant accessrunner]]
* [[Installare i driver eagle-adsl]]
* [[Installare i driver eci-adsl]] ''(stub)''
* [[Installare i driver unicorn (BeWAN)]] ''(stub)''
* [[Modem adsl Telindus ND220]]
* [[Modem adsl Aethra Starmodem]]
* [[Modem adsl Fastrate 100 USB]]


==== Modem Ethernet ====
Per ottenere gli operatori massimali basta raddoppiare il simbolo:
* ''Inserire qui eventuali guide su modem ethernet''


==== Modem dial-up 56K ====
; <tt>##</tt> : sottrae dall'inizio della stringa ''(massimale)''
* ''Inserire qui eventuali guide su modem a 56K''
; <tt>%%</tt> : sottrae dalla fine della stringa ''(massimale)''
; <tt>//</tt> : sostituisce una sottostringa con un altra ''(tutte le volte che viene incontrata)''


==== Schede di rete Wireless ====
Gli operatori massimali cercano di individuare la sottostringa pi� grande che corrisponde all'espressione regolare (nel caso del modificatore '''//''' tutte le sottostringhe vengono sostituite). Gli operatori di questo tipo vengono comunemente chiamati anche ''greedy (ingordi)''.
* [[Wireless Support | Informazioni sul supporto alle periferiche Wireless]]
* [[Script Bash abilitazione scheda wireless]]
* [[Intel PRO/Wireless 2200BG]]
* [[NdisWrapper | NdisWrapper: Usiamo i driver di Windows per il WLan con GNU/Linux]]


=== Schede Video ===
Per una spiegazione dettagliata di tutti i modificatori e anche di altri modi di manipolare le stringhe in Bash (ad esempio <tt>expr</tt>) vedere:
* [[Installazione Driver ATI per schede ATI RADEON MOBILITY 9700 SE]]


=== Stampanti ===
* [http://www.tldp.org/LDP/abs/html/string-manipulation.html Advanced Bash-Scripting Guide: Manipulating Strings]
==== Stampanti USB ====
* ''Inserire eventuali guide su come far funzionare stampanti con porta USB''


==== Stampanti con porta parallela ====
==== Esempi: manipolazione delle stringhe ====
* [[Introduzione all'installazione di stampanti con porta parallela]]


==== Stampanti bluetooth ====
  VAR="questa.sarebbe.una.stringa.di.esempio"
* [[Introduzione all'installazione di stampanti bluetooth]]
 
                      # Risultato:
 
  echo ${VAR#*.}      # --> sarebbe.una.stringa.di.esempio
  echo ${VAR##*.}    # --> esempio
 
  echo ${VAR%.*}      # --> questa.sarebbe.una.stringa.di
  echo ${VAR%%.*}    # --> questa
 
  echo ${VAR/st/ST}  # --> queSTa.sarebbe.una.stringa.di.esempio
  echo ${VAR//st/ST}  # --> queSTa.sarebbe.una.STringa.di.esempio


=== Scanner ===
===Alternativa a basename===
* [[Epson Perfection 2480 photo - usb scanner]]
Quando in uno script ci si deve riferire al nome dello script stesso � usuale utilizzare il comando (esterno a bash) '''basename'''. Tuttavia, tramite i modificatori del paragrafo precedente, Bash stessa � in grado di fornire questa funzionalit�. Basta usare l'espressione ${0##*/}.
* ''Inserire qui eventuali altre guide su come far funzionare scanner con Debian''


===Palmari e cellulari===
Esempio:
* [[Debian e Nokia 7210: uso di gnokii e gestione degli sms]]
<pre>
usage () {
        echo "usage: ${0##*/} "
        exit 1
}
</pre>


==Portatili==
=== Cambiare l'estensione ai file ===
===Laptop Debianizzati===
Rinomina tutti i file <tt>*.txt</tt> della directory corrente in <tt>*.log</tt>:
Troverete di seguito i resoconti d'installazione di Debian su dei portatili:


* [[Debian on an HP nx8220 | Debian on an HP nx8220]]
for f in *.txt; do mv "$f" "${f/%txt/log}"; done
* [[Debian on a presario 2141EU | Compaq Presario 2100 (2141EU)]]
* [[Debian on a compaq Presario 2154EA | Compaq Presario 2100 (2154EA)]]
* [[Debian on a Toshiba Satellite M30X-113| Toshiba M30x-113]] ''(stub)''
* [[Debian on a HP Compaq NX6110| HP Compaq NX6110]]
* [[Debian on an HP pavilion zv5422EA| HP pavilion zv5000 (zv5422EA)]]


===Altro===
==Link==
* [[Powernowd: CpuScaling per AMD]]
Link ad altre risorse su '''GNU Bash''':
* [[Cpufreqd: Cpuscaling per Intel Pentium M]]
* Inserire qui anche link a risorse in italiano sui portatili


==Knoppix==
* [http://www.gnu.org/software/bash/manual/bash.html Bash Referece Manual]: manuale ufficiale
* [[Rimasterizzare una knoppix]]
* [http://www.tldp.org/LDP/abs/html/ Advanced Bash-Scripting Guide]: la '''Bibbia''' dello bash scripting.


==Crittografia==
----
* [[Crittografia e Steganografia - L'Arte di nascondere le informazioni]]
* [[Chiavi simmetriche e chiavi pubbliche]]


==Varie==
Autore iniziale: [[Utente:TheNoise|~ The_Noise]]
* [[Debian Fun]]
223

contributi