Linux Commands#
Note
Remember Linux is Case Sensitive. myscript is different to MyScript.
Files and Directories#
Listing files in a directory:
ls
Provides compact list of files and directories.:
ls -l
Provides expanded list of file and directories including modify dates, file sizes, etc
Creating a new directory:
mkdir directoryname
Example:
mkdir mydir
mkdir mydir/newdir
Copy files:
cp from to
Examples:
cp * mywork/
Copies all files in current directory to a sub directory called mywork.:
cp myfile.txt myfile.txt.backup
Copies a file in the same directory and renames that file.
Copy directories:
cp -R directory destinantion
The -R switch means recursive, meaning it will copy the contents of subdirectories as well.
Examples:
cp -R dir1 dir2
This copy dir1 and it’s contents to dir2. The end result is dir2/dir1/files:
cp -R dir1/ dir2/
This copies the contents of dir1 (but not actually the direcory it’s self) to dir2. Note dir2 must already exist. The end result is dir2/files
Moving Files/Directories
Move file to a different directory:
mv myfile dir/to/move/to/
Move files using wild cards:
mv file* dir/ (would move any file starting "file" i.e. file1, file2, file-that-should-be-moved)
Move the contents of a directory (files + sub directories) to another directory.:
mv mydir/* mydir2/
As above but move to current directory:
mv mydir/* ./
Renaming Files/Directories
To rename a file or directory, use the mv (move) command:
mv myfile myfile-newname
mv dir dirnewname
Delete Files
To delete a file:
rm filename
rm myjob.log
To delete multiple files:
rm <partfilename>*
rm mywork* (delete all files starting with mywork)
rm *.log (delete all files ending with .log)
Delete Directories
To delete a directory (note the directory should be empty):
rmdir <directory>
rmdir myworkdir
Delete a directory and all subfolders:
rm -r <directory>
Getting help/documentation about a command#
Manual command
Most (if not all) commands will have an associated manual document:
man <command>
man ls (get manual page on ls command)
man qsub (get manual page on qsub command)
Quick help/showing command options
Most commands you can run will have a command option that will show you a list of available options and summary help. This is often the command switch –help:
<command> --help
ls --help
qsub --help
rm --help
File commands (viewing/editing/creating)#
These are tools that allow you to create/modify text files via the command line or in scripts.
dos2unix (convert text files created in MS Windows to unix/linux format):
dos2unix myfile.txt
Touch
Creates empty files ready for writing to:
touch myfile.txt
Cat
Reads files and dumps them to the console, you can redirect to a file via >
read single file:
cat myfile
read multiple files (myfiles1, myfiles2, myfiles3):
cat myfiles*
read multiple files and dump in a file:
cat myfiles* > combined.txt
append one file to another:
cat file1 >> file2
Grep
Provides serach/filter operations on input (case sensitive) use regular expression. See “man grep” for more details
read file, search for lines containing the word debug:
cat mylog | grep debug
read file, search for “results returned” and output to new file:
cat mywork.txt | grep results\ returned > myresults.txt
Tail
To view the tail/bottom of a file. Very usefull to see the end of a log file.
show the bottom lines of a file:
tail mywork.log
show the bottom 150 lines of a file:
tail -n 150 myfile
Show the bottom of a file and stays runing to show you new additional lines to the file. This will hold the terminal (i.e. it waits till you press crtl+C before you can run another command):
tail -f mywork.log
Pipe output of one program into another
Using a pipe character ( | ) you can redirect the console output of one file into another:
command1 | command2
Redirect output to a file (new/append) Using the characters > < >> << you can redirect console out put to files.
Redirect the output of the ls command to a new file (it will over write and exsiting file of the same name.:
ls > mydirectorylisting.txt
Redirect the output of a cat command and append it to an existing command:
cat file2 >> file1
Finding/locating Files and Applications#
Which
The which command will show the location in the filesystem of a command. This searches all paths listed in the $PATH enviroment variable. It will also show if the command is available in multiple locations.( If this is the case the top one is the one that would be run if you just typed and excuted that command with out the path):
which gcc
/usr/bin/gcc
which icc
/opt/intel/compiler101/x86_64/bin/icc
Find
The find command allows you to search for files and directories. This is a very powerful command. you can use you search results to execute command. For example deleting the files found, combining the files, etc
Find any file/directory whose name starts with mywork, searching from current directory:
find . -name 'mywork*'
find all files with the extension .log:
find . -name '*.log'
Clever Stuff
Delete files older than 7 days:
find /path/to/files* -mtime +7 -exec rm {} \;