COMMAND LINE, GENERAL



  • List only the last "n" files in your directory
ll -rt | tail --lines=20
--lines=20 means that only the last 20 lines will be printed on the screen. Change 20 to any number.



  • Change file name of a list of files with common part in the name, to a new name:
ex. if I had the list of file: a_1.txt, a_2.txt, a_3.txt ... a_2000.txt and want to change them into b_1.txt, b_2.txt, b_3.txt ... b_2000.txt

you can use:

for f in old*; do mv "$f" "${f/old/new}";done
where "old" here would be "a_" and "new" would be "b_" (a_ and b_ without " ")



properties of the folder: space occupied
du -h
du -lh

tar:
tar -zcvf name.tar.gz name (tar)
tar -zxvf name (untar)

emacs
emacs -nw namefile
ctrl-X-C quit
ctrl-X.S save
ctrl-S search

shell:
nella shell ce' il path, i colori e gli alias. quando cambi qualcosa a volte poi la esegui cosi:
source.bashrc

SCP
scp filename user@address:path

If I am transferring from remote server to remote server (or large files remote to local) I use scp. The commands are simple.
scp command example for transferring a file from some other server to the server you are logged into (INBOUND):
1
scp username@some-other-server.com:/path/to/remote/file.txt /path/to/put/file/on/local
scp command example for transferring a file from the server you are logged into over to some other server (OUTBOUND):
1
scp /path/to/local/file.txt username@some-other-server.com:/path/to/output/remote/file

LINUX INFO ON HARDWARE /( DEVICES
sudo dmidecode
lspci -v | less

permessi:
chown = change owner
chmod 775 cambi i permessi
se fai un tar di qualcosa, quando fai untar sei tu il proprietario

list files: usa ls or print.
ls -alR
ls -d -1 $PWD/ for dir
ls -d -1 $PWD/*.* for files
ls -d -1 $PWD// for everything
find . -type f -print
find /mnt/hda1/music -true
(from: http://stackoverflow.com/questions/246215/how-can-i-list-files-with-their-absolute-path-in-linux)
oppure:
ls -ltR|grep 'res.nc' > prova.txt
find `pwd` -print | grep .res.nc > prova.txt
e poi:
wc -l filename per vedere numero di linee

create table (es per hazardmaps)
grep something file.txt | awk '{ print $2}' > fileout
paste tot tot2 > tot3 o paste -d " " filea fileb > filec

procesos activos por ej in MN
ps -axfu | grep username

per vedere tutti i processi:
ps -axfu * e poi puoi fare grep qualcosa
kill -9 process_id * para matar el proceso

copia da e per mn
scp nomefile username@address:/PATH/nomefile
e ti chiede la password

SOURCES LINUX
/etc/apt/
sudo
edit file sources.list

COMPILE *

compilare con ifort: ifort nome.f90 -o nome.exe
e poi ./nome.exe per eseguirlo

FORTRAN: format edit descriptions
  • w: the number of positions to be used
  • m: the minimum number of positions to be used
  • d: the number of digits to the right of the decimal point
  • e: the number of digits in the exponent part

Purpose
Edit Descriptors
Reading/writing INTEGERs
Iw
Iw.m
Reading/writing REALs
Decimal form
Fw.d
Exponential form
Ew.d
Ew.dEe
Scientific form
ESw.d
ESw.dEe
Engineering form
ENw.d
ENw.dEe
Reading/writing LOGICALs
Lw
Reading/writing CHARACTERs
A
Aw

PDF UNION CON PDFTK
pdftk [lista file da unire] cat output [file destinazione]


IMMAGINI E FORMATI *

http://imgtops.sourceforge.net/bakeoff/
convert images from eps to jpg, png, etc

imagemagick, function "convert"
ex: convert -quality 80 fig.png fig.jpg
convert file.eps file.jpg

convert -resize 20% filein fileout

convert -gravity center +append ....
to allign all figures in the axis (hor or vertical, if +- append)

ps2pdf file file.pdf

files grib: uso wgrib
cat a b > c
wgrib -s file | grep "..." etc

ghostscript, is a pdf-ps interpreter

programs susbstitutive of corel draw, for vectorial image editing
inkscape
sK1

make a figure with two or more jpeg
  1. #If you want to append images horizontally, use this command
  2. convert image1.jpg image2.jpg image3.jpg +append result.jpg

  3. #If you want to append them vertically, change the + to a -
  4. convert image1.jpg image2.jpg image3.jpg -append result.jpg

resize:
convert population_development_municip_2001-10.jpg -resize 250% population_bigger.jpeg

We can do this with a 10-pixel red gap: convert g.png b.png +append -background red -splice 10x0+100+0 gb.png

VIDEO:

download from youtube (in flv)
youtube-dl linktovideo

convert to mpeg
ffmpeg -i file.flv file.mpeg

PATH *

per cambiare cose nel path
non da root se no non lo vede
editare .bashrc in home
export PATH=$PATH:/usr/local/etc
poi fare source .bashrc

METEO

data per NCEP/NCAR
http://www.esrl.noaa.gov/psd/data/gridded/data.ncep.reanalysis.html

boundary conditions per runs wrf: flx and pgb
http://www.esrl.noaa.gov/psd/cgi-bin/DataAccess.pl?DB_dataset=NCEP+Reanalysis+Pressure+Level&DB_variable=Omega+%28dp/dt%29&DB_statistic=Individual+Obs&DB_tid=31815&DB_did=2&DB_vid=15
http://nomad1.ncep.noaa.gov/pub/reanalysis-2/6hr/pgb/
http://nomad1.ncep.noaa.gov/pub/reanalysis-2/6hr/flx/

faq per i netcdf
http://www.esrl.noaa.gov/psd/data/gridded/faq.html#12

NCO
ncrename -a missing_value,_Fillvalue in.nc out.nc
ncrcat 1.nc 2.nc .... tot.nc

GRADS
grads -bpc filename.gs

GRADS puo confrontare valori nei punti (sole)
http://www.atmos.umd.edu/~bguan/grads/GrADS_Scripts.html
SI PUO creare shapefile direttamente e anche con piu opzioni e aggiungere campi
http://www.iges.org/grads/gadoc/shapefiles.html

FORTRAN *
ifort nome.f90 -o nome.exe

write(1 , '(a,1x,a,i2,1x,i4,1x,i2,1x,i2)') instruction, problemname, j, year(j), mon(j), t1(j)
per stampare stringa "a"! attenzione perche poi va a capo, con il TRIM si risolve
write(1 , '(a,1x,a,i2,1x,i4,1x,i2,1x,i2)') TRIM(instruction), TRIM(problemname), j, year(j), mon(j), t1(j)

quando hai un codice fatto con makefile e con tante funzioni .f90,
se ne modifichi una poi fai "make" e ti crea il .exe!

http://orion.math.iastate.edu/burkardt/f_src/calpak/calpak.html
per calendar calculation

quando da' I/O error controllare il tipo di var che legge, il path del file, etc

normalizzazione in un intervallo
formula per normalizzare in un intervallo (generale, di solito a 0-1)
N_normalizzato = N_vecchio - N_min / N_max - N_min
dove N_max e N_min sono gli estremi del nuovo intervallo su cui voglio normalizzare
in realta poi ho usato la proporzione classica, es per passare da 0-1 a 0-3:
N(0-1) : x = 1 : 3

COMPILARE IN C CON GCC
gcc file.c -o file -lm per linkare per es. math.h

DBDESIGNER
lo lancio con ./DBDesigner4

attenzione perche ho architettura 64bit quindi spesso quando ci sono errori con le librerie .so
soprattutto nelle gui (dove scarichi un .exe statically)
devi ovviare al problema con un ln -sf pero' dipende dove!!!!
nel mio caso facendolo in usr/lib32 funziona :-)

http://yacoding.blogspot.com/2006/07/howto-install-dbdesigner-4-on-ubuntu.html

download package at:
http://www.fabforce.net/dbdesigner4/docs.php

http://pgadmin.org/visualtour.php
questo usava oscar per postgre

vedere come fare un DUMP, farne uno ogni giorno, magari dumpshp (e' come fare una foto della situazione, o un backup)
e poi ogni ora scrivere la variabile nelle tabelle con un diverso t cosi hai tutta la serie temporale delle variabili che ti interessano

GIT HUB *

https://github.com/
http://stackoverflow.com/questions/1516720/git-gui-client-for-linux

GIT TO STORE DUMP SQL CODE FROM MY SQLITE/SPATIALITE DB
http://www.viget.com/extend/backup-your-database-in-git/

grass: import netcdf:**
external image cleardot.gif
gdalinfo file.res.nc per vedere i nomi delle bande
r.in.gdal -o input=NETCDF:"HazardMaps.res.nc":PFL050_1 output=pfl050_1
Warning 1: No UNIDATA NC_GLOBAL:Conventions attribute
WARNING: Over-riding projection check
100%
r.in.gdal complete. Raster map <pfl050_1> created.
...poi lo puoi importare a qgis come raster

r.in.gdal -o input=NETCDF:"HazardMaps.res.nc":PFL050_2 output=PFL050_2_plin
per fare contours (vector) open grass modules: raster - surface management - generate vector contour lines - scegli i livelli
poi lo salvi come vector di qgis!

puoi anche creare shp con grads!

TILDE = ALTGR - 4

PYTHON: READ CONTEMPORARY TWO FILES!
from itertools import izip
for line1, line2 in zip(routes,airports) se vuoi leggere due tabelle assieme