awk 'NR % 10 ==0 || $1 50' out_18e28_1MeV.dat > out_18e28_1MeV_red.dat
awk '$2==6.0' list_results_nodm > list_results_nodm_mfix6
awk '{print $1, $2, $3/2.e+33}' list_results_LDM10mev_ann_zfix10 > list_results_LDM10mev_ann_zfix10b
awk '$1==20.0 {print $1, $2, $3/2.e+33}' list_results_nodm > list_results_nodm_zfix20
-------------------------------------------------------------------------------

#chmod
cambia i permessi
#chmod u(goa)+r(wx) nomefile(nomedirectory)
da' il permesso all'utente (gruppo, others oppure all) di leggere (scrivere o eseguire) il file nomefile(o la directory nomedirectory)

#chmod u(goa)-r(wx) nomefile(nomedirectory)
toglie il permesso all'utente (gruppo, others oppure all) di leggere (scrivere o eseguire) il file nomefile(o la directory nomedirectory)

#chmod -R +w nomedir
-R=recursive. Cambia il permesso non solo nella directory ma in tutti i files al suo interno
-------------------------------------------------------------------------------

#chown username(:groupname) filename
cambia il proprietario del file
Il gruppo si vede con 'ls -lrt' (quarta colonna, la successiva alll'user)
-------------------------------------------------------------------------------

#chsh
cambia la shell
-------------------------------------------------------------------------------

#diff nomefile1 nomefile2 (> fileincuiscrivo)
cerca le differenze tra un file e l'altro
-------------------------------------------------------------------------------

#du -s nomedirectory(oppure .)
fa un riassunto di quello che si trova in quella directory

#du -h nomedirectory(oppure .)
dice quanto occupano le cose che stanno in quella directory in modo human readable (cioe' in k,M o G a seconda della grandezza del file)

#du -m nomedirectory(oppure .)
dice quanto occupano le cose che stanno in quella directory in M

#du -sm * | sort -n
calcola le dimensioni dei files in Mb e ordina in dimensione crescente
------------------------------------------------------------------------------

emacs
ALT% con emacs permette di cambiare qualcosa con qualcos'altro
per cambiare un 'a capo' con niente, usare
ALT% CTRL-Q CTRL-J
------------------------------------------------------------------------------

#fdisk path del disco da formattare (es. /dev/sda)
deleta le vecchie partizioni/ne forma di nuove.
Il path del disco da formattare si vede in /etc/mtab
NOTARE che in /etc/mtab si trova l'indirizzo della prima partizione (es. /dev/sda1), mentre fdisk vuole tutte le partizioni (quindi /dev/sda)
m per l'help
p per vedere le attuali partizioni
d per deletarle
v per verificare gli errori
n per creare nuove partizioni
w per salvare i cambiamenti e uscire
q per uscire senza salvare le nuove partizioni
t per cambiare l'id della partizione (83 indica Linux)

prima d per deletare, poi n per creare le nuove partizioni
primary position=p
position number=1
first cylinder=1
last cylinder=36482

Per formattare il disco con un certo filesystem (ext2 di default):
mkfs -t ext3 -v -c path della partizione del disco (es. /dev/sda1)
NOTARE che mkfs formatta 1 partizione per volta (quindi bisogna lanciare mkfs una volta per /dev/sda1 e una volta per /dev/sda2, se il disco /dev/sda ha 2 partizioni)
-v=verbose mode
-c=check for bad blocks
-t filesystemname= per un filesystem diverso da ext2. NOTARE CHE -t VA MESSO PER PRIMO DOPO mkfs!
------------------------------------------------------------------------------

#find -name 'nomefile' (oppure 'nomef*')
cerca i files che si chiamano nomefile in tutte le directories inferiori)
-------------------------------------------------------------------------------

#foreach nomevariabile(`ls nomifile`)
esegue dei comandi sul gruppo di file indicato

Ad es.:

foreach t(`ls *`)
tail -n 1 $t >> last
end

prende l'ultima riga (tail -n 1) di tutti i file nella directory (*) e le
manda tutte nel file last.

Oppure:

foreach t(`ls *`)
tail -n 1 $t > last$t
end

prende l'ultima riga (tail -n 1) di tutti i file nella directory (*) e le
manda ciascuna nel file last-nome-file-di-partenza.
-------------------------------------------------------------------------------

#gcc -v
dice che compilatore gcc e' installato
-------------------------------------------------------------------------------

#gdb nome_eseguibile
e' il debugger linux (dbx, l'analogo per gli alpha, funziona con gli stessi
comandi, ma e' piu' smart)

-si compila e linka con il flag -g

-r fa runnare il processo

-b dice dove si e' arrestato il processo per core dumped. Se invece usato come:
b numerolinea
fa arrestare il processo alla linea indicata

-q esce da gdb
-------------------------------------------------------------------------------

#gimp
image-->scale image-->1400x1050
cambia le dimensioni di un'immagine (es. per adattarla al monitor come background)
image-->mode-->grayscale
-------------------------------------------------------------------------------

#gprof
-si compila e linka con il flag -pg

-si fa runnare un po' il codice (il tempo ottimale e' 1-2 minuti. se runna di piu' ci puo' essere overflow dei contatori; ma amen. L'importante e' che non runni meno di 30 sec). Quando il codice finisce di runnare oltre agli output normali trovi anche un file gmon.out (creatosi per il fatto di aver compilato e linkato con -pg)

-si lancia il comando:

gprof nome_eseguibile gmon.out

(eventualmente
gprof nome_eseguibile gmon.out > nome_file
se vuoi scrivere l'output su file)

-su terminale o nel file che ti sei creato leggi il tempo trascorso nelle varie subroutines in percentuale e in assuluto, il numero di chiamate etcetc
-------------------------------------------------------------------------------

#grep parola nomefile (oppure * oppure *f, etcetc)
cerca quella parola in tutti i file che si chiamano nomefile

comando | grep parola
cerca la parola nell'output del comando
(es. ps aux | grep bev cerca bev nell output di ps aux)

comando | grep -v parola
seleziona tutto salvo quello che contiene la parola parola
-------------------------------------------------------------------------------

#gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=Merged.pdf -dBATCH 1.pdf 2.pdf 3.pdf
merge 2 pdf
-------------------------------------------------------------------------------

#head -n numerodirighe filedacuileggo (>fileincuiscrivo)
printa le prime numerodirighe righe del file filedacuileggo
-------------------------------------------------------------------------------

#hostname -i
dice l'IP address del computer
-------------------------------------------------------------------------------

#idl
/Software/users/rsi/idl/bin/lmstat -a
comando per vedere le licenze idl in uso
-------------------------------------------------------------------------------

#ifconfig -a
(fatto come root) dice il mac address. Per il mio bimbo 00:0D:56:19:8B:BA
se ifconfig non funziona, potrebbe non essere nel path. Allora provare
/sbin/ifconfig -a
Altrimenti andare su
/etc/sysconfig/network-scripts/
l'hardware address e' in un file del tipo
ifcfg-eth0
-------------------------------------------------------------------------------

#include < fenv.h>

void feclearexcept(int excepts);
funzione che cancella tutti i NaN di tipo specificato da excepts. Se excepts=FE_ALL_EXCEPT, cancella tutti i tipi di floating point exception
-------------------------------------------------------------------------------

int isnan(float)
funzione del c che ritorna un numero diverso da zero se il parametro e' un NaN
-------------------------------------------------------------------------------

#jobs
[1] + Running
mostra quali sono i job attivi. per ucciderli: kill % numerotraparentesiquadra
-------------------------------------------------------------------------------

#kill % numero
killa il processo corrispondente al numero tra parentesi quadra che compare facendo jobs. E' piu' soft di

#kill -9 numerodiidentificazione
il numero di identificazione del processo si vede con ps aux
-------------------------------------------------------------------------------

#last | grep colpi | head
ultime 10 connessioni dell'utente colpi
-------------------------------------------------------------------------------

#ln -s /home/usr usr
crea un link logico della directory /home/usr nel posto in cui mi trovo.

#ls -l usr
mi fa vedere le caratteristiche del link logico usr

#rm usr
rimuove il link logico usr (la directory a cui punta, /home/usr, non viene cancellata)

un link logico e' utile per:
-mettere delle directory in un posto dove ho spazio e richiamarle con il link logico dove non ho spazio (es. la directory /usr dove metto i conmandi installati)
-se ho 2 versioni diverse dello stesso programma, per linkarne ora una ora l'altra al comando principale, es. mozilla.1 e mozilla.2
ln -s /.../mozilla.1 mozilla
se voglio che mozilla si apra con la versione mozilla.1
-se ho un file che viene generato spesso (es .smhist) per evitare che diventi troppo ingombrante e per condividerlo.
-------------------------------------------------------------------------------

#ls nomefile
mostra tutti i file che si chiamano nomefile

#ls snapshot_1*
mostra tutti i file che cominciano per snapshot_1

#ls -lh snapshot_1*
mostra tutti i file che cominciano per snapshot_1 e dice quanto sono grossi (in human readable format)

#ls -lrt snapshot_1*
mostra tutti i file che cominciano per snapshot_1 ordinandoli per eta'

#ls snapshot_1??
somiglia a ls snapshot_1*; ma, contrariamente a quest'ultimo, mostra
solo quei files che hanno 2 cifre dopo snapshot_1??.

#ls snapshot_[12]??
e' come il precedente; ma mostra tutti i files che sono del tipo snapshot_1??
oppure del tipo snapshot_2??

#ls nomefiles | nl
conta il numero di righe del comando ls
-------------------------------------------------------------------------------

#mkfs path
formatta e costruisce un filesystem nel path indicato

mkfs -t filesystemname -v -c path della partizione del disco (es. /dev/sda1)
NOTARE che mkfs formatta 1 partizione per volta (quindi bisogna lanciare mkfs una volta per /dev/sda1 e una volta per /dev/sda2, se il disco /dev/sda ha 2 partizioni)
-v=verbose mode
-c=check for bad blocks
-t filesystemname= per un filesystem diverso da ext2 (es. -t ext3). NOTARE CHE -t VA MESSO PER PRIMO DOPO mkfs!
-------------------------------------------------------------------------------

#mplayer movie.mpg -speed 0.5 -vo x11
-vo x11 solves all problems if mplayer can't find the output device.
-------------------------------------------------------------------------------

a href="image/0605/Vela_50mm_HaRGB_1000.jpg"
onMouseOver="if (document.images)
document.imagename1.src='image/0605/Vela_50mm_HaRGB_f88l.jpg';"

onMouseOut="if (document.images)
document.imagename1.src='image/0605/Vela_50mm_HaRGB_f88.jpg';"

img SRC="image/0605/Vela_50mm_HaRGB_f88.jpg" name=imagename1
alt="See Explanation.
Moving the cursor over the image will bring up an annotated version.
Clicking on the image will bring up the highest resolution version available."/a
-------------------------------------------------------------------------------

password on HTML
do a file .htaccess like:

AuthUserFile /z/ric/secret/.htpasswd
AuthGroupFile /dev/null
AuthName "Ric's protected files"
AuthType Basic

minor Limit GET major
require valid-user
minor /Limit major

Then type:
htpasswd2 -c .htpasswd username
and choose the password
-------------------------------------------------------------------------------

#psnup -2 -pa4 filein fileout
scrive su 1 pagina di fileout 2 pagine di filein
-------------------------------------------------------------------------------

#rm nomefile
rimuove un file

#rm -i nomefile
rimuove un file dopo aver chiesto conferma

#rm -f nomefile
rimuove un file senza scampo

#rm -r nomedirectory
rimuove una directory

#rm -rf nomedirectory
rimuove una directory senza scampo

#rm -- nomefilestrano
-- dice a rm che tutto quello che c'e' scritto dopo non e' un argomento di rm, ma un file (es. rm -- -o, rimuove il file -o)
-------------------------------------------------------------------------------

#rsync -a /scr/2/mapelli/run2bis/ /smaug/theorie/home/mapelli/run2bis/
The '-a' option tells rsync to make an exact (archive) copy. Then if something fails you can repeat the command to copy the remaining files, or do a detailed comparisons of both versions, like this:
rsync -c -n -a /scr/2/mapelli/run2bis/ /smaug/theorie/home/ mapelli/run2bis/
If there is an error like the one you have seen with 'mv', this rsync would tell you which file has different attributes and then you could check what is different (owner / group / etc). Rsync also would find errors which mv wouldn't complain about (like the underlying filesystem needs checking). So in general rsync seems to be better.
-------------------------------------------------------------------------------

#source file.sh
dove il contenuto del file.sh e' rappresentato da comandi che posso dare al
terminale (es. cambiamento di variabilil d'ambiente)
source prende il contenuto del file.sh e lo interpreta in base ai comandi
della shell che stai usando in questo momento
-------------------------------------------------------------------------------

#sh file.sh
dove il contenuto del file.sh e' rappresentato da comandi che posso dare al
terminale (es. cambiamento di variabilil d'ambiente)
sh apre una nuova shell e gli da' i comandi che sono nel file. Alla fine del
file chiude la nuova shell, torna alla vecchia e dimentica tutto
-------------------------------------------------------------------------------

#split -d --suffix-length=3 --lines=501 starlab.out snapshot
splitta il file starlab.out in tanti files di 501 righe ciascuno,
con i nomi snapsnot_i.
-------------------------------------------------------------------------------

#tail -n numerodirighe filedacuileggo (>fileincuiscrivo)
printa le ultime numerodirighe righe del file filedacuileggo
-------------------------------------------------------------------------------

#tar cvf nomefile.tar pippo pluto paperino
archivia in nomefile.tar i files pippo pluto e paperino. Vale anche con le
directories, ovvero:

#tar cvf nomefile.tar pippo/
archivia in nomefile.tar la directory pippo.

Per scompattare(=estrarre i file e/o directories contenuti nel tar):
#tar xvf nomefile.tar

Se si vuole scompattare solo un file/directory contenuto nel tar:
#tar xvf nomefile.tar pippo

Per vedere cosa c'e' in un tar senza aprirlo:
#tar tvf nomefile.tar

Per vedere se c'e' il file pippo in un tar senza aprirlo:
#tar tvf nomefile.tar pippo

Per fare un tar e contemporaneamente zipparlo:
#tar cvfz nomefile.tar.gz pippo pluto paperino
oppure
#tar cvfz nomefile.tgz pippo pluto paperino

Per aprire un tar zippato:
#tar xvfz nomefile.tar.gz
#tar xvfz nomefile.tgz

Per vedere cosa c'e' in un tar zippato:
#tar tvfz nomefile.tar.gz
#tar tvfz nomefile.tgz

Per fare un tar che comprenda tutti i file/sottodirectories che stanno
in una directory ESCLUSO UNO (file o directory che sia):
#tar cvf nomefile.tar * --exclude pippo
-------------------------------------------------------------------------------

#time nomeeseguibile
lancia l'eseguibile e stampa il tempo impiegato dal processo
-------------------------------------------------------------------------------

#touch nomefile
cambia la data del file
-------------------------------------------------------------------------------

#Variabili d'ambiente:

-cambiare una variabile d'ambiente in una shell bash (es. PATH):

echo $PATH

/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/games:/usr/X11R6/bin (echo mostra cosa contiene l'attuale path. path e' la variabile che dice dove possono stare i comandi)

PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/games:/usr/X11R6/bin:/opt/intel_cc_80/bin (aggiungo /opt/intel_cc_80/bin ai path contenuti nella variabile d'ambiente)

export PATH

-cambiare una variabile d'ambiente in una shell tcsh (es. PATH):

echo $PATH

/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/games:/usr/X11R6/bin

setenv PATH /usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/games:/usr/X11R6/bin:/opt/intel_cc_80/bin

rehash

Nota: export serve per passare all'esterno il nuovo comando (in questo caso il contenuto della variabile)
NB: la variabile d'ambiente viene cambiata solo in quella sessione X. Per rendere il cambiamento definitivo devo riportare la variabile negli alias.
-------------------------------------------------------------------------------

#vi
per scrivere:
insert
scrivo quello che voglio

per uscire dalla scrittura:
esc

per salvare
:w
:w! (non chiede mai conferma)

per uscire da vi
:q
:q! (non chiede mai conferma)

per salvare e uscire
:wq
:wq! (non chiede mai conferma)

per trovare una parola
\parola (senza aver digitato insert)
-------------------------------------------------------------------------------

#w | grep colpi
vedere se l'utente colpi e' connesso
-------------------------------------------------------------------------------

#wc -l nomefile
dice quante sono le righe del file
-------------------------------------------------------------------------------

#which nomecomando
fa vedere dove si trova quel comando
-------------------------------------------------------------------------------

#xcdroast
programma per scrivere su cd.
Per scrivere da un cd all'altro:
duplicate cd, read cd, verify cd, write cd
-------------------------------------------------------------------------------