per rendere eseguibile un file o script bash
da terminale
chmod +x nome file
Visit
24 July 2011
script per rinominare i file con spazi
script bash per rinominare i file con spazi
#! /bin/bash
# Rinomina
#
# Sostituisce gli spazi nei nomi dei file presenti nella directory
#+ con degli underscore.
UNO=1 # Per gestire correttamente il singolare/plurale
#+ (vedi oltre).
numero=0 # Per contare i file effettivamente rinominati.
TROVATO=0 # Valore di ritorno in caso di successo.
for nomefile in * # Scorre i file della directory.
do
echo "$nomefile" | grep -q " " # Controlla se il nome del file
if [ $? -eq $TROVATO ] #+ contiene uno/degli spazio(i).
then
fnome=$nomefile # Sì, nomefile
#+ ha bisogno di una sistemata.
n=`echo $fnome | sed -e "s/ /_/g"` # Sostituisce lo spazio
#+ con un underscore.
mv "$fnome" "$n" # Rinomina.
let "numero += 1"
fi
done
if [ "$numero" -eq "$UNO" ] # Per una corretta grammatica.
then
echo "$numero file rinominato."
else
echo "$numero file rinominati."
fi
exit 0
# Erika, GNU General Public License
# link alla GPL license http://www.gnu.org/licenses/gpl.html
#! /bin/bash
# Rinomina
#
# Sostituisce gli spazi nei nomi dei file presenti nella directory
#+ con degli underscore.
UNO=1 # Per gestire correttamente il singolare/plurale
#+ (vedi oltre).
numero=0 # Per contare i file effettivamente rinominati.
TROVATO=0 # Valore di ritorno in caso di successo.
for nomefile in * # Scorre i file della directory.
do
echo "$nomefile" | grep -q " " # Controlla se il nome del file
if [ $? -eq $TROVATO ] #+ contiene uno/degli spazio(i).
then
fnome=$nomefile # Sì, nomefile
#+ ha bisogno di una sistemata.
n=`echo $fnome | sed -e "s/ /_/g"` # Sostituisce lo spazio
#+ con un underscore.
mv "$fnome" "$n" # Rinomina.
let "numero += 1"
fi
done
if [ "$numero" -eq "$UNO" ] # Per una corretta grammatica.
then
echo "$numero file rinominato."
else
echo "$numero file rinominati."
fi
exit 0
# Erika, GNU General Public License
# link alla GPL license http://www.gnu.org/licenses/gpl.html
aggiungere un percorso al PATH in Linux, da terminale
[comandi in Terminale, CTRL ALT T e si apre il Terminale, io uso BASH]
Una delle cose che mi piacciono maggiormente di Linux è il modo in cui gestisce un file eseguibile.
Se si crea uno script e se si desidera che lo script sia eseguibile, è sufficiente impostare i permessi.
Poniamo di aver creato uno script chiamato "script.sh" (viva la fantasia) salvato nella home directory, per lanciare lo script, occorre eseguire il comando ./script.sh, questo è tutto, ma se si vuole che lo script sia accessibile globalmente? E diciamo che NON si desidera copiare il file, in /usr/bin o /usr/local/, che fare?
Questo è semplice, è possibile inserire tale file in una sottodirectory della home e aggiungere tale directory alla variabile PATH.
Se siete curiosi di sapere ciò che è già nel PATH, potete farlo con il comando:
echo $PATH
Si dovrebbe vedere qualcosa di simile:
/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Quanto sopra è abbastanza standard, qualsiasi file posto in:
/usr/bin
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/usr/games
sarà accessibile a livello globale.
Ci sono tre modi per aggiungere una nuova directory al percorso diamo uno sguardo individualmente a questi metodi.
Il primo metodo aggiunge la nuova directory al PATH temporaneamente, ciò è utile per dei test, diciamo di avere la directory ~/scripts che si desidera aggiungere temporaneamente, per fare questo aprire una finestra di terminale e lanciare il comando:
PATH=$PATH:/home/nomeutente/scripts
Dove nomeutente è il nome dell utente che state utilizzando, ora, se si esegue il comando “echo $PATH”, anche la nuova directory sarà elencata, ma fate un log out e tutto tornerà come prima.
Ora, diciamo che si desidera rendere il tutto permanente, in genere, si ottiene modificando il file “~/.bash_profile”, fate attenzione che nelle nuove versioni di Ubuntu tale file è stato sostituito da “~/.profile”, io però preferisco avere un file ~/.bash_profile per questi scopi, perciò, se non disponete di un tale file, potete crearlo, aprirlo e aggiungere una riga simile a:
PATH=”$HOME/bin:$PATH:/home/utente/script:”
Si potrebbe pensare che occorra disconnettersi e accedere di nuovo, no, basta eseguire il comando “source .bash_profile” perché le modifiche abbiano effetto.
Come ultima cosa, è possibile aggiungere il percorso in /etc/profile, questo per rendere accessibile il file ad ogni utente, probabilmente non troverete un riferimento alla vascaile PATH, quindi, ciò che dovete fare è aggiungere le seguenti righe alla fine di tale file:
PATH=$PATH:/home/utente/scripts
export PATH
Linux è flessibilità, come avete visto è possibile migliorare l usabilità del sistema con pochi e semplici passaggi.
Una delle cose che mi piacciono maggiormente di Linux è il modo in cui gestisce un file eseguibile.
Se si crea uno script e se si desidera che lo script sia eseguibile, è sufficiente impostare i permessi.
Poniamo di aver creato uno script chiamato "script.sh" (viva la fantasia) salvato nella home directory, per lanciare lo script, occorre eseguire il comando ./script.sh, questo è tutto, ma se si vuole che lo script sia accessibile globalmente? E diciamo che NON si desidera copiare il file, in /usr/bin o /usr/local/, che fare?
Questo è semplice, è possibile inserire tale file in una sottodirectory della home e aggiungere tale directory alla variabile PATH.
Se siete curiosi di sapere ciò che è già nel PATH, potete farlo con il comando:
echo $PATH
Si dovrebbe vedere qualcosa di simile:
/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Quanto sopra è abbastanza standard, qualsiasi file posto in:
/usr/bin
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/usr/games
sarà accessibile a livello globale.
Ci sono tre modi per aggiungere una nuova directory al percorso diamo uno sguardo individualmente a questi metodi.
Il primo metodo aggiunge la nuova directory al PATH temporaneamente, ciò è utile per dei test, diciamo di avere la directory ~/scripts che si desidera aggiungere temporaneamente, per fare questo aprire una finestra di terminale e lanciare il comando:
PATH=$PATH:/home/nomeutente/scripts
Dove nomeutente è il nome dell utente che state utilizzando, ora, se si esegue il comando “echo $PATH”, anche la nuova directory sarà elencata, ma fate un log out e tutto tornerà come prima.
Ora, diciamo che si desidera rendere il tutto permanente, in genere, si ottiene modificando il file “~/.bash_profile”, fate attenzione che nelle nuove versioni di Ubuntu tale file è stato sostituito da “~/.profile”, io però preferisco avere un file ~/.bash_profile per questi scopi, perciò, se non disponete di un tale file, potete crearlo, aprirlo e aggiungere una riga simile a:
PATH=”$HOME/bin:$PATH:/home/utente/script:”
Si potrebbe pensare che occorra disconnettersi e accedere di nuovo, no, basta eseguire il comando “source .bash_profile” perché le modifiche abbiano effetto.
Come ultima cosa, è possibile aggiungere il percorso in /etc/profile, questo per rendere accessibile il file ad ogni utente, probabilmente non troverete un riferimento alla vascaile PATH, quindi, ciò che dovete fare è aggiungere le seguenti righe alla fine di tale file:
PATH=$PATH:/home/utente/scripts
export PATH
Linux è flessibilità, come avete visto è possibile migliorare l usabilità del sistema con pochi e semplici passaggi.
19 July 2011
il grub2 che difficile
per ora ho imparato questo
Una volta capito quale è la periferica che ci interessa, dobbiamo capire un attimo come tradurla in «linguaggio GRUB 2».
ho preparato questa tabella:
Periferica => Grub 2
/dev/sda1 => hd0,1
/dev/sda2 => hd0,2
/dev/sda3 => hd0,3
… …
/dev/sdb1 => hd1,1
/dev/sdb2 => hd1,2
/dev/sdb3 => hd1,3
… …
/dev/sdc1 => hd2,1
/dev/sdc2 => hd2,2
/dev/sdc3 => hd2,3
… …
..E’ immediato capire con quale criterio GRUB 2 assegni i nomi alle periferiche.
Una volta capito quale è la periferica che ci interessa, dobbiamo capire un attimo come tradurla in «linguaggio GRUB 2».
ho preparato questa tabella:
Periferica => Grub 2
/dev/sda1 => hd0,1
/dev/sda2 => hd0,2
/dev/sda3 => hd0,3
… …
/dev/sdb1 => hd1,1
/dev/sdb2 => hd1,2
/dev/sdb3 => hd1,3
… …
/dev/sdc1 => hd2,1
/dev/sdc2 => hd2,2
/dev/sdc3 => hd2,3
… …
..E’ immediato capire con quale criterio GRUB 2 assegni i nomi alle periferiche.
Subscribe to:
Posts (Atom)