Basic linux commands everyone should know!
Here are a few simple linux commands that should make life a bit easier for you. Please everyone, add anything you think would be useful!
You may want to read the computer office's introduction to Unix booklet .
Also, here is a really useful guide to bash scripting.
NOTE: You can always look up a command using man
man ls
This will display info on the options associated with the ls command. To exit the info page, press q.
ls
ls
This lists the contents of the current directory
ls -lrth
This will list the contents of the current directory showing more information and sorting them so the most recently modified file will be displayed last. The h flag makes the file sizes more human friendly!
ls -a
This will list all files i.e. the normal ls command will not display files beginning with a . i.e. .bashrc
cd
The 'change directory' command
cd cd ~ cd /home/username
These all take you to your home directory
cd ../..
This takes you up two levels of the directory tree
cd newdir
This takes you into the directory called newdir
cd ~/Documents
This takes you into you Documents folder (actually located at /home/username/Documents)
cd ~csw34
This takes you into the home directory of user csw34
cd /sharedscratch/username
This takes you to your sharedscratch directory (only on clusters)
cp
cp file1 file2 newdir/
Copies file1 and file2 to the directory newdir
cp -r newdir /home/csw34
Recursively copies the directory newdir and all its subdirectories to csw34's home directory.
WARNING: you can overwrite files using cp i.e. if in the first example file2 already exists, you will replace its contents with those of file1!
For information on copying files between machines see the guide for scp linked from the Wales Group page.
mv
mv oldfilename newfilename
This effectively renames the file oldfilename to newfilename
mv test ../
This moves the file test one level up the directory tree.
WARNING: you can overwrite files using mv just like when you use cp so be careful!
mkdir
mkdir newdir newdir2
This will create two new directories, newdir and newdir2
mkdir -p newdir/newdir2
This will create newdir and newdir/newdir2, even if the former doesn't exist.
grep
grep 'pattern' filename
This will search the file filename for the pattern pattern and displays the line on which it occurs
grep 'pattern' *
This searched for pattern in all files in the current directory. Very useful for looking through lots of code!
xxdiff
xxdiff file1 file2
Much clearer than regular diff (graphical output).
svn
The subversion version control program. Detailed info is available on the SVN Page
find
Can do so much, in a somewhat idiosyncratic manner! See this guide.
rename
Renames multiple files according to the patterns provided. A little care must be taken as there are two commonly used versions that have wildly different syntax. The sector machines all use the C version, some others (including arwen) use the Perl version. To check, run man rename. If the first line contains LINUX PROGRAMMER'S MANUAL, then use the C syntax, otherwise use the Perl syntax.
To rename all files foo1.txt foo2.txt ... foon.txt to bar1.txt bar2.txt ... barn.txt:
rename foo bar foo* (C) rename 's/foo/bar/' foo* (Perl)
The Perl version uses a Perl expression: typically search and replace. For more details see the excellent guide in man perlrequick and the references therein.