Skip to main content

Linux Basiscs


ls Shows the home directory.

ls -al Lists all the files in the directory inclusive of hidden files.

ls ~/directoryname Lists the contents of directoryname regardless of the current working directory position

mkdir directoryname Makes a new directory having name directoryname

mkdir ~/directoryname Make a directory in home directory having name directoryname

mkdir ../directoryname Make a directory in the parent directory having name directoryname

cd ~/directoryname Change the current working directory to the directory directoryname present in home directory

cp file1 file2   Make a copy of file1 in the current working directory and give it a name of file2

cp -r dir1 dir2 Make a copy of directory1 and give it a name directory2.

mv file1 file2 Move file1 and give it name file2, used for renaming file

rm file1 Delete file1 from current directory

rmdir directoryname Remove directory having name directoryname from current directory

grep Searches files for specific words or sentences

top | grep user1 Show the functions and command only given by user1 

cat file1 Show the contents of file1

cat > fil1 Redirect the standard output to file1

cat >> file1 Append standard output to a file1

less file1 Show the contents of file1 page by page

head file1 Show the first few lines of file1

tail file1 Show the last few lines of file1

kill -9 process number Kill the process indicated by process number

cp *.f directoryname Copy files of format .f in the directory directoryname

run convert Convert all initial data to new one and used for compilation of convert.f in Solar

convert.e Executes the commands in convert.f in Solar

run ch It compiles the main program ch.f

nohup ch.e > result & It executes the program and redirect the output to file "result" and executes program in background

scp . Copying file input_May05 to the local machine with the same name

scp input_May05 Copying file input_May05 to the remote machine with the same name

/usr/bin/time -v valgrind --tool=callgrind ./a.out Profiling to optimise the code

kcachegrind Using visual software kcachegrind

valgrind --tool=memcheck ./a.out Checking for any memory allocation problem through compilation of code in gfortran with -g option for debugging

rsync -avd --include='*/' --include='tautotal1.dat' --exclude='*' . /media/My\ Passport/SIMULATION-DATA-Backup/ This commands copy the tautotal1 file from all the sub-directories from the current directory to /media/My\ Passport/SIMULATION-DATA-Backup/ with the same subdirectory structure.

rsync -anvd --include='*/' --include='tautotal1.dat' --exclude='*' . /media/My\ Passport/SIMULATION-DATA-Backup/ The -n addition in -avd will show you the file which it will transfer but it does not transfer in actual so that you can see that which files can be transferred.

meld tautotal1.dat tautotal-old.dat & Graphic version of the diff command. It is a KDE command.

for x in *.eps; do convert $x `basename $x eps`pdf; done This command converts all the *.eps files in the working directory to *.pdf with the same filename .

for i in *; do mv "$i" 3nm_"${i##*_}"; done

find . -name "*.dat" -exec rename .dat .plt {} \; This command changes theextension of multiple files with *.dat extension to *.plt

for i in `find . -name "restrt-64_129_64-248-3.dat"` ; do echo $i ; done This for loop goes through each sub directory from the current directory and finds for name of file restrt-64_129_64-248-3.dat in each subdirectory and then list thembyusing echo command.

for i in `find . -name "restrt-64_129_64-248-4.dat"` ; do mv $i `dirname $i`/../run1/restrt-64_129_64-248-3.dat ; done This command will find all the files in every of the sub directory of the current directory and then it will go one level back from that directory, in which restrt-64_129_64-248-4.dat file is found and then go into run1 directory at that level and move the restrt-64_129_64-248-4.dat from its previous location to the present directory i.e run1, with the new name restrt-64_129_64-248-3.dat.

gdb GNU debugger, used for backtracking

 /usr/bin/time -v valgrind --tool=memcheck ./a.out &> errors.dat The ampersand "&" before the output means that standard error will be written to erros .dat and without & means that standard output will be written to to the errors.dat and /usr/bin/time -v command tells the time of execution at the end of program.

 tail -f errors.dat The last few lines of errors.dat file is shown and -f means that output is appended dynamically as the file grows

 ~/usr/local/bin/valgrind --tool=memcheck --track-origins=yes ./a.out &> errors.dat To use the new version of valgrind which backtraces the origins of the un intilaised values


du -h V1.01.584 Gives the total size of directoryV1.01.584

du * -h . This command will list the size of each sub directories in human readable format .

gfortran SHARED_DATA.f90 MASS_CALC.f90 PROFILES.f90 FLOW_FIELD.f90 COFF_CALC.f90 BOUNDARY_CONDITIONS.f90 SOLVERS.f90 SETUP.f90 COMPUTE_RIGHT.f90 COMPUTE_LEFT.f90 FFT.f90 MULTIGRID.f90 POISSON_SOLVER.f90 POISSON_SOLVER_BLOCK.f90 LES_CALC.f90 UPDATE_FIELD.f90 ran1.f90 fourier.f JET_FLOW.f90 MAIN.f90 -lfftw3 -g && ~/usr/local/bin/valgrind --tool=memcheck --track-origins=yes ./a.out &> errors.dat

This command will compile the V1.01.584 with gfortan in debugging mode and then run the executable file with new version of valgrind with backtrace of uninitialized values (if any) in the same go by using && and then re-direction the standard output as well as standard error file to errors.dat.

wget This command will download valgrind-3.4.0.tar.bz2 from the link

tar -xjvf valgrind-3.4.0.tar.bz2 This command will unzip this zipped packege by using flags -xjvf.See man tar for more details

set terminal postscript enhanced This command is used to plot graphs by using gnuplot in ps format.

set output "" This command must immmediately follow the upper one and the post script file name will be

plot '../transition/tautotal1-xza.dat' w l, 'tautotal1-xza.dat' w l The command will send the data in these files in ps format to instead of outputting it to main screen.

cat /proc/cpuinfo To see the information about the computer hard disk, memory,RAM,processor speed.

Procedure to see the memory map of a program using valgrind for a given number of grid points

  1.  valgrind --tool=massif ./a.out
  2. ms_print massif.out .<pid> | less

Where pid is a number which will be created i.e. massif.out.2000 at the end of first step.


valgrind --tool=callgrind ./a.out && kcachegrind The command is to check the run time consumed in each subroutine of the code.


set multiplot layout 2,2 It is a command in GNUPLOT which draws 4 figures (2 rows and 2 columns) on the output screen.


Imagemagick is the software in linux which can place more figures sides by sides by using montage and then it can be named with any extension for later use in Latec. For more details do man imagemagick.

When we write something in Latec then we can compile either by using LATEC or PDF LATEC.LATEC only takes EPS or ps images while PDF LATEC usese all other files extensions except EPS but one can use EPS in PDFLATEC by converting them to pdf by using pstopdf convertor .Beamer uses PDFLATEC.


CTRL+D is the command to comment out the select lines in Kile and CTRL+SHIF+D is the command to uncomment. We can have quick preview of the individual frame in Kile by selecting (highlighting) the individual frame and then right click mouse button and then selecting quick preview option instead of compiling whole code again in Beamer.


convert is the best option to convert one type of image into other.Try man convert for more details. For example convert test.jpg converts test.jpg to file (using ghostscrript)


 uname -a Tells the description of computer.


cd - Goes to the last directory.


xrandr -o 1 Rotates the screen by 90 degree clockwise

xrandr -o 0 Rotates back the screen to original positon


find . -type d -maxdepth 1 -mindepth 1 List ONLY subdirectories in the existing directory


nm a.out Tells about the symbols of each libraries and the executable.


nm a.out | grep fft Greps the symbol containing name fft


./configure --prefix=/home/esrgai/usr/local CC=icc F77=ifort Makes the make files in folder home/esrgai/usr/local.


make -j 3 Compiles all the Makefile in directory /home/esrgai/usr/local.


make install Installs the software and it will generate lib and include (bin and shared optional) in the directory /home/esrgai/usr/local.


fftw = -L/home/esrgai/usr/local/lib -lfftw3 Puts this into your makefile to tell the compiler from where to get lfftw3.


montage k-2-fine-residual.png k-3-fine-residual.png -geometry 1167x525+10+10 -tile 1x2 finegrid-residual.png This command pastes two figures into one figure with one above other with pixel 1167x525with 10 pixle border.


montage fine-P-k1-restr.png fine-P-k2-restr.png -geometry 1167x525+10+10 -tile 1x2 -title Fin-grid-Residual -font Times-New-Roman-Regular -pointsize 20 fine-P-residual.png This command produces two figures one above other with a title in new roman font with font size 20 in pixels.


java -jar JabRef-2.4.2.jar This command in directory /hom/esrgai/jab-ref opens a jab-ref for creating *.bib files.


Pre-processing compiling and linking PETSc

Modules to be loaded

1) intel-fc-9.1.040-x86_64

2) mpich2-1.0.3-intel-9.1-x86_64

3) intel-cc-9.1.045-x86_64

4) intel-mkl-

du -sh * ./ This command will show the human readable size of all sub directories and files in the current directory

du -sh */ This command will show the human readablesize of all sub directories ONLY in the current working directory.

mpi compilers on Godzilla

 a) mpich2-1.0.7-intel-10.1-x86_64

 b) intel-mkl-


when we put -lfftw3 in compiler option then compiler looks for first (in case of shared library) or fftw3.a (in case of static archive library) which can be located by writing locate libfftw3 and when we want to give the path to the compiler that where to look the file during the compilation that is by -L/directory name -lfftw3 which, in the case of locating fftw on SKUA, is -L/home/esrgai/usr/local/lib -lfftw3 because the is in directory /home/esrgai/usr/local/lib


callgrind_control -b

 valgrind ./a.out &> result Sends the standard output as well as error to result file.

 ./a.out -mat_view >result Shows the matrix entries which are put by user in PETSC in the result file.

meld penta-output.dat petsc-output.dat & This command shows two files side by side with highlighting the differences between files by different colours

 ./a.out -h This command shows different option for PETSC in standard output

-mat_view_draw -draw_pause -1 To physically see the picture of matrix

mat_view_info Gives the info of the matrix

 ./a.out -ksp_view To view solution convergence

 source ~/.bashr c To execute/run bashrc files if any changes are made.

which mpirun Tells the full path of the command mpirun which is standared mpi command which is replaced by mpiexec in newer mpi versions

 -traceback -CB To trace back error on any intel compiler

modules on SKUA

 a) module load intel-fc-9/9.1.040

 b) module load intel-cc-9/9.1.045

 valgrind --tool=callgrind ./a.out

 callgrind_control -b To backtrace dynamically

module on franceca

 module load intel/ompi-1.3-64


/usr/bin/time -v mpiexec -np 2 ./a.out

/usr/bin/time -v ./a.out -pc_type asm -ksp_gmres_restart 200 > result

usr/bin/time -v valgrind --tool=callgrind ./a.out -ksp_view -info -pc_type asm > result

 /usr/bin/time -v valgrind --tool=callgrind ./a.out -ksp_view > result

mpiexec -np 2 xterm -e gdb ./a.out


./configure CC=gcc FC=gfortran --prefix=/gpfs/esrgai/usr/local To compile the fftw3 on francesca.

ldd ./a. out Print shared libraries dependency.

/usr/bin/time -v mpiexec -np 4 valgrind --tool=callgrind ./a.out To profile multiprocessor job



rsync -ruav --timeout=30 /media/FREECOM\ HDD/2d_filtering-Data/NEW_UNSTEADY/NEW_UNSTEADY/RAMP-UP/tp-5/sim8 :


This command updates all the files in directory /media/FREECOM\ HDD/2d_filtering-Data/NEW_UNSTEADY/NEW_UNSTEADY/RAMP-UP/tp-5/sim8 and the files are updated from remote server from


makeindex nomenclature.nlo -s -o nomenclature.nls

%s/home\/esrgai/home\/eng\/esrgai/g : Replaces the root directory path names

qsub -I -q fat -l nodes=1:ppn=1,pvmem=10gb,walltime=00:30:00 -X: for interactively accessing GUI on Minerva.



svnadmin create ./repos This command creates a new repository names as repos in the current directory

svn import ./temp file:///home/esrgai/svn-test/repos/ This command imports the contents of "./temp"directory to the "repos" repository which can include files and sub directories.

svn import ~/CHAN_CODE/V1.01.598 file:///home/esrgai/SVN-VERSIONS/IBM/V2.01.001 -m "initial import" This command imports all the files/sub directories in the ~/CHAN_CODE/V1.01.598 diretory to the repositrt directory V2.01.001.

Now if we want to checkout the directory V2.01.001 for editing than we should move to the directory /location where we want to have the working copy ofV2.01.001 and then type

svn checkout file:///home/esrgai/SVN-VERSIONS/IBM/V2.01.001

svn status -u -v Gives the detail of all changes made after the last commit.

svn diff > patchfile The differences in all files made after the last commit are moved to patchfile.

svn log Gives the one line overview of the changes made at every revision.

svn log -r 27 SOLVERS.f90 Gives the log of 27th revision of SOLVERS.f90.

svn diff -r 26 SOLVERS.f90 The present working copy of SOLVERS.f90 is compared with the revision 26 of SOLVERS.f90 in repository.

svn diff -r 26 27 SOLVERS.f90 The revision 26 of SOlvers.f90 is compared with revision 27 of SOLVERS.f90 in the repository.

svn checkout -r 1729 # Checks out a new working copy at r1729

svn update -r 1729 # Updates an existing working copy to r1729

svn delete file:////home/esrgai/svn-test/repos/ This will delete all the files and sub direcotries in th repos repository

svn list file:////home/esrgai/svn-test/repos This command will list all the files and sub directories in the repos repository.


Matlab curvefitting


Import data :








mencoder -oac copy -ovc copy -o output.avi input1.avi input2.avi


split -l 50000 -a 3 pdf-2d-yp-1.dat yp1



Correct embedding of avi files

First set bitrate of all files:

mencoder file.avi -ovc lavc -lavcopts vcodec=mjpeg:vbitrate=1257 -o out1.avi

Then to combine files:

mencoder -oac copy -ovc copy out1.avi out2.avi -o final.avi

Running Macros through starccm


Load module : module load starccm

starccm+ -rsh ssh

starccm+ -rsh ssh -np 2 -batch


Using Hector

Login :

Unload cray compiler : module unload PrgEnv-cray/4.0.30

Load pgi compiler : module load PrgEnv-pgi

Load fftw compiler : module load fftw/


budgets : show you the AUs left for the project

checkScript que.pbs : it tells you that how much AUs will be cost