Tips

Bash merging

In ~/.bashrc aggiungere:

shopt -s histappend
PROMPT_COMMAND="$PROMPT_COMMAND;history -a"


La prima istruzione appende i comandi al file di history, invece di sovrascriverli; la seconda, invece, salva ogni comando subito dopo essere stato impartito e non alla fine della sessione.


Shell shortcuts

  • CTRL-r ricerca incrementale sulla history;
  • CTRL-w cancella parola;


Autocompletamento in VIM

Se nel file che stiamo editando con vim esiste già una parola che vogliamo ripetere basterà scrivere le prime lettere (anche una sola) e usare la combinazione di tasti ctrl-p più volte fin quando la parola desiderata non viene evidenziata. A quel punto: invio ed il gioco è fatto!


Comando SED

Per trasformare, all'interno del file prova.html, tutti i tag <table xyzk> in tag <table>:

$ sed 's/<table[^<]*>/<table>/g' prova.html > prova2.html


Comando NETSTAT

Per monitorare le connessioni di rete:

$ netstat -tpe


dove:

  • t: mostra solo le connessioni tcp;
  • p: mostra il PID ed il nome del programma che effettua la connessione;
  • e: informazioni extra (ad esempio l'user name)


Comando NMAP

Per vedere quali hosts sono attivi nella lan:

$ nmap -v -sP 192.168.1.0/24 | grep -E 'to be up\.$|^MAC'


dove:

  • v: verbose;
  • sP: ping scan, verifica solamente se l'host è attivo;


Lo stesso comando impartito da root, mostra anche i MAC address.

Salvare una sessione di shell

$ script
Script started, file is typescript
$ ........
$ ........
CTRL-D
$ exit
Script done, file is typescript
$ col -bx <typescript >savefile

Il contenuto della nostra sessione sarà “pulito” dai caratteri di escape e salvato nel file “savefile”. Il file originario “typescript” potrà essere tranquillamente rimosso.

Altro comando per ripulire il file dai caratteri di escape:

$ cat typescript | perl -pe 's/\e([^\[\]]|\[.*?[a-zA-Z]|\].*?\a)//g' | col -b > typescript-processed


Comando BASENAME + READLINK

per sapere (ad esempio) quale modulo il sistema carica per gestire la scheda di rete:

$ ls /sys/class/net/
eth0 eth1 lo wlan0
$ basename `readlink /sys/class/net/eth1/device/driver/module`
via_rhine

n.b.: occhio agli apici…


Mostrare i logs in una virtual console

per poter vedere i logs di sistema in una console inutilizzata, modificare il file /etc/syslog.conf decommentando le righe:

daemon,mail.*;\
  news.=crit;news.=err;\
  *.=debug;*.=info;\
  *.=notice;*.=warn /dev/tty8

/dev/tty8 sarà la console che mostrerà i logs (CTRL+ALT+F8).

Per applicare le modifiche:

# /etc/init.d/syslogd restart


Quando l'audio sparisce

Per default Alsa dà ad ogni periferica inserita un indice diverso, ogni volta che viene collegata (ad esempio webcam con microfono). Può capitare quindi che le applicazioni che ne fanno uso si “confondano” e che non venga emesso alcun suono.
Per ovviare a questo inconveniente basterà editare il file /etc/modprobe.d/alsa-base:

# Prevent abnormal drivers from grabbing index 0
options bt87x index=-2
options cx88_alsa index=-2
options snd-atiixp-modem index=-2
options snd-intel8x0m index=-2
options snd-via82xx-modem index=-2
# Keep snd-pcsp from beeing loaded as first soundcard
options snd-pcsp index=-2
options snd_usb_audio index=-2


il valore -2 serve ad impedire che la periferica si appropri del primo device Alsa.
In alternativa è possibile agire in questo modo:

options snd-pcsp index=0
options snd_usb_audio index=1


assegnando quindi un indice progressivo.
Riavviando il server audio le modifiche saranno effettive.


Sospensione & Ibernazione

  • s2ram: sospensione in ram
  • s2disk: ibernazione
  • s2both: prima sospensione in ram, ad esaurimento batteria effettua l'ibernazione


Disabilitare il touchpad

Chi utilizza regolarmente un notebook sa perfettamente quanto scocciante può essere, magari mentre si scrive un documento con Abiword o con Openoffice, sfiorare il touchpad senza accorgersene e sballare il lavoro che si sta facendo.
Per fortuna esistono due utili strumenti che possono venirci incontro disabilitando il touchpad mentre digitiamo sulla tastiera: synclient e syndaemon.
Accertiamoci che siano installati, se non lo sono:

# apt-get install synclient syndaemon


Accertiamoci che sia presente la riga

Option "SHMConfig" "on"

in /etc/X11/xorg.conf, all'interno della sezione nella quale il touchpad è configurato. Se non è presente la aggiungiamo.

Per disabilitare il touchpad diamo il comando:

$ synclient TouchpadOff=1

che disabiliterà il touchpad fino a che non daremo il comando:

$ synclient TouchpadOff=0

Ovviamente diventa noioso dover ripetere sempre questi comandi. Ecco che ci viene in aiuto, passandogli alcuni parametri ad hoc, il comando syndaemon il quale “spegne” il touchpad in automatico quando si digita e lo riattiva dopo un periodo di inattività di 2 secondi.
Usando il parametro -i si può regolare l'intervallo di tempo:

$ syndaemon -i 3.0

riattiverà il touchpad dopo tre secondi.

$ syndaemon -i 3.0 -t

semplicemente disattiva le funzionalità di scrolling e di tapping ma lascerà “libera” la freccetta del mouse-touchpad anche mentre digitiamo.
Per far sì che syndaemon si attivi ad ogni login basterà aggiungere a ~/.xinitrc la riga:

syndaemon -i 3.0 -d

Il parametro -d farà in modo che syndaemon si avii in background.

Replicare il software

I sistemi Debian Linux e derivate (Ubuntu, LinuxMint, etc.) offrono un'eccellente sistema di gestione dei pacchetti software: APT.
Tramite i comandi di apt, infatti, è possibile installare, aggiornare, rimuovere e compilare i pacchetti con estrema facilità.
Se si cerca un modo veloce e pratico per installare su un altro computer tutto il software presente su un sistema Debian Linux, apt, insieme al comando dpkg, viene al caso nostro.

Supponiamo che il pc del quale si debba copiare la configurazione software si chiami pc_A e quello sul quale tale configurazione debba essere copiata si chiami pc_B.

Sul pc_A, in un terminale, digitiamo (come root):

# dpkg --get-selections "*" > elenco_software
# debconf-get-selections > config_elenco_software


questo comando copierà all'interno del file elenco_software l'elenco di tutto il software installato sul sistema e all'interno del file config_elenco_software le relative informazioni relative alle configurazioni.
Copiamo i files sul pc_B e da questo, sempre in un terminale e con i privilegi di root, ci spostiamo nella directory dove abbiamo salvato i files elenco_software.txt:

# dselect update
# debconf-set-selections < config_elenco_software
# dpkg --set-selections < elenco_software
# apt-get -u dselect-upgrade


e sul pc_B verranno installati tutti i pacchetti presenti sul pc_A!

Questa procedura può essere utile, ad esempio, quando si vuole tenere da parte una copia di backup del proprio sistema: in caso di problemi, dopo aver ripristinato i nostri dati personali, sarà facilissimo rimettere tutto il software usualmente utilizzato con pochissima fatica e senza sforzi di memoria. Se poi si è avuta l'accortezza di aver salvato, insieme ai nostri documenti, anche la nostra home (inclusi files e directory nascoste!) e magari la directory /etc, beh… il recupero sarà proprio completo. Nel caso invece di installazioni multiple, basterà preparare un computer con tutto il software necessario e poi replicare l'installazione del software magari via rete per mezzo di uno script apposito.

La directory nel server

$ python -m SimpleHTTPServer


e la directory corrente sarà raggiungibile all'indirizzo http://$HOSTNAME:8000/.

Se si vuole utilizzare una porta differente:

$ python -m SimpleHTTPServer 8080


Conoscere le releases dei pacchetti

Spesso capita di chiedersi che versione di un determinato pacchetto è presente nei repository di un ramo di GNU/Linux Debian diverso da quello che utilizziamo quotidianamente. Ecco un metodo veloce:

$ rmadison linux-image-2.6-amd64
linux-image-2.6-amd64 | 2.6.18+6etch3  | stable     | amd64, i386
linux-image-2.6-amd64 | 2.6.26+15      | testing    | amd64, i386
linux-image-2.6-amd64 | 2.6.26+15      | unstable   | amd64, i386


rmadison è un tool presente all'interno del pacchetto devscripts. Per maggiori informazioni:

$ man 1 rmadison



p.s. la stessa operazione è possibile compierla collegandosi da web-browser alla pagina: http://qa.debian.org/madison.php

Contro lo spam

# apt-get install imagemagick ttf-sjfonts
# exit
...
$ convert -size 800x100  xc:#ffffff -font /usr/share/fonts/truetype/sjfonts/Delphine.ttf -pointsize 55 -gravity center -draw text 0,10 email@address.some email_address.png
$ convert -size 800x100  xc:#ffffff -font /usr/share/fonts/truetype/sjfonts/SteveHand.ttf  -pointsize 55 -gravity center -draw text 0,10 email@address.some email_address.png



 
tips.txt · Ultima modifica: 14/08/200911:08 da pmate
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki