Visualizzazione post con etichetta shell. Mostra tutti i post
Visualizzazione post con etichetta shell. Mostra tutti i post

12 dicembre, 2007

Bash: Come richiedere una password senza mostrarla sul terminale

In bash per richiedere l'input dell'utente si usa la funzione read. Ad esempio:

read -p "Inserisci il nome utente:" username

L'utente batte sulla tastiera il suo nome utente che verrà visualizzato a video e quando premerà il tasto invio la stringa verrà assegnata alla variabile shell $username. Cosa succede se vogliamo però richiedere una password? Di certo non vogliamo che questa venga visualizzata sul terminale. In questo caso è possibile usare il comando stty in questo modo

stty -echo #disabilitiamo l'output sul terminale
read -p "Inserisci la password:" password
stty echo #riabilitiamo l'output sul terminale

21 giugno, 2007

Tip: Bash, no alla history!

La shell bash mantiene nella nostra home un file chiamato .bash_history nel quale memorizza gli ultimi comandi digitati. La history può risultare molto comoda in alcuni casi ma può essere sconveniente e mantenere informazioni sulla nostra privacy in altre.

Esempio: l'utente tizio ha un account shell su un sistema remoto e non vuole che nessuno (neppure l'amministratore) venga a conoscenza dei comandi che ha eseguito su quel sistema (consideriamo l'utente in buona fede :) ). Ma i comandi sono memorizzati tutti nel file dalla history!

Per fortuna bash permette di impostare il numero dei comandi mantenuti nella history. Per farlo basta impostare la varibile d'ambiente HISTSIZE. Nel nostro caso (per eliminare proprio la history) basta impostare la HISTSIZE a zero.

13 dicembre, 2006

Tip: bash e la storia dei comandi

Una funzione della shell bash che può risultare molto comoda è la ricerca nella storia dei comandi. Io l'ho scoperta da poco. In pratica basta premere Ctrl-R durante una sessione bash e vi apparirà questa riga:

(reverse-i-search)`':

Digitando qualche lettera bash inizia ad effettuare la ricerca stampandovi a video il comando che ha trovato. Premendo invio il comando viene eseguito. Premendo Ctrl-C la ricerca viene interrotta senza eseguire alcun comando.
Questa funzione è comodissima se avete digitato lunghi comandi tediosi da riscrivere e ricordare.

15 novembre, 2006

Parametri script shell

Come si gestiscono le opzioni passate ad uno script shell?
Be prima di tutto distinguiamo tra opzioni senza parametro
e opzioni con parametro.
Esempio:

opzioni senza parametro

./script -a -b

opzioni con parametro

./script -c ciao -d ok

Un metodo per processare queste opzioni è il seguente:

#! /bin/sh

A=false
B=false
C=""
D=""
while true; do
case "$1" in
-a)
A=true
shift
;;
-b)
B=true
shift
;;
-c)
C=$2
shift 2
;;
-d)
D=$2
shift 2
;;

*)
break
;;
esac
done


In questo caso se richiamiamo ad esempio lo script in
questo modo:

./script -a -c prova


avremo che la variabile A sarà true B sarà false C prova e D la stringa
vuota.

08 novembre, 2006

Il comando watch

Ho scoperto un comando che potrebbe tornare utile. Ogni tanto
capita che girando tra i forum o semplicemente dando un'occhiata
alle directory bin ci si accorge di un comando a noi sconosciuto.
watch non fa altro che eseguire il comando passatogli come
parametro periodicamente, con un periodo impostabile.

Può essere utile ad esempio per i programmi che fanno lo scan
di qualcosa. Ad esempio il comando

iwlist eth1 scan


che da come risultato le reti wireless a disposizione con relativa
potenza del segnale. eth1 naturalmente è una scheda wireless.


E' molto comodo usare watch con questo comando:

watch iwlist eth1 scan

il quale fa lo scanning periodicamente ogni 2 secondi di default.
Volendo cambiare il periodo basta aggiungere il parametro -n.
Ad esempio:

watch -n 1 iwlist eth1 scan

fa lo scanning ogni secondo.