Version 9 (modified by 9 years ago) ( diff ) | ,
---|
Linux Commands
Basic Linux Commands
Here are a few of the most common Linux commands you will use. These commands will allow you to navigate the clusters as well as create, destroy, and manipulate files and directories.
man
Display online manual pages. Most Linux commands have a manual page with detailed instructions on use. Replace <command name> below with command you would like information on.
[tulaneID@cypress1 ~]$ man <command name>
pwd
On a *nix system, directories are containers for files and objects. The pwd command lists the present working directory. This is the "where am I?" command.
[tulaneID@cypress1 ~]$ pwd /home/tulaneID
cd
The cd command changes directory.
[tulaneID@cypress1 ~]$ cd NextDirectoryDown [tulaneID@cypress1 ~]$ pwd /home/tulaneID/NextDirectoryDown
As you can see, NextDirectoryDown is a subdirectory of tulaneID. And tulaneID is itself a subdirectory of home, which is a subdirectory of the root directory (/). Thus, the directories form a downward facing tree with all directories stemming from the root directory. You can move on level up in the try by typing cd ..
[tulaneID@cypress1 ~]$ pwd /home/tulaneID/NextDirectoryDown [tulaneID@cypress1 ~]$ cd .. [tulaneID@cypress1 ~]$ pwd /home/tulaneID
And you can navigate using either relative or absolute paths. That is, you can enter directory paths relative to your current location, or you can entire the entire path starting with the root directory.
[tulaneID@cypress1 ~]$ pwd /home [tulaneID@cypress1 ~]$ cd tulaneID/NextDirectoryDown [tulaneID@cypress1 ~]$ pwd /home/tulaneID/NextDirectoryDown [tulaneID@cypress1 ~]$ cd /home [tulaneID@cypress1 ~]$ pwd /home
Lastly, if you ever get lost you can use the tilde (~) to return to your HOME directory.
[tulaneID@cypress1 ~]$ cd ~ [tulaneID@cypress1 ~]$ pwd /home/tulaneID
ls
The ls command will list files in the current directory.
[tulaneID@cypress1 ~]$ ls a.out code.c Makefile
Setting the -l flag will display files along with their permissions and ownership.
[tulaneID@cypress1 ~]$ ls -l total 0 -rw-r--r-- 1 tulaneID MyGroup 0 Aug 14 10:57 a.out -rw-r--r-- 1 tulaneID MyGroup 0 Aug 14 10:57 code.c -rw-r--r-- 1 tulaneID MyGroup 0 Aug 14 10:57 Makefile
mkdir
Create new directory.
[tulaneID@cypress1 ~]$ cd testdir -bash: cd: testdir: No such file or directory [tulaneID@cypress1 ~]$ mkdir testdir [tulaneID@cypress1 ~]$ cd testdir [tulaneID@cypress1 ~]$ pwd /home/tulaneID/testdir
rm
Remove files and directories. CAUTION: THERE IS NO UNDOING THIS COMMAND.
[tulaneID@cypress1 ~]$ rm testfile
If you would like to remove a directory and all of its contents use the following command:
[tulaneID@cypress1 ~]$ rm -ri testdir rm: descend into directory `testdir'? y rm: remove regular empty file `testdir/Makefile'? y rm: remove regular empty file `testdir/code.c'? y rm: remove regular empty file `testdir/a.out'? y rm: remove directory `testdir'? y [tulaneID@cypress1 ~]$
The r flag specifies to remove files/directories recursively. i specifies to prompt before deleting each file.
If you are confident with the command line and your understanding of file locations you can use the f flag instead of i to force deletion of all files without prompting:
[tulaneID@cypress1 ~]$ rm -rf testdir [tulaneID@cypress1 ~]$ ls testdir ls: cannot access testdir: No such file or directory
cp
Copy file to new location.
In the example below file1 already exists, and file2 will become the copy.
[tulaneID@cypress1 ~]$ cp file1 file2
To copy a directory and all of its contents:
[tulaneID@cypress1 ~]$ cp -r dir1 dir2
mv
Move a file to a new location.
[tulaneID@cypress1 ~]$ mv file1 file2 [tulaneID@cypress1 ~]$ ls file1 ls: cannot access file1: No such file or directory [tulaneID@cypress1 ~]$ ls file2 file2
Unlike cp, the mv command does not create a second instance of the file or directory.
cat
Print the entire contents of a file (short for conCATenate).
[tulaneID@cypress1 ~]$ cat daysofweek.txt monday tuesday wednesday thursday friday saturday sunday
tail
Displays lines from the end of a file. Useful for viewing recent results in an output file.
[tulaneID@cypress1 ~]$ cat animals dog Dog cat Racoon DOG bullfrog Little Doggie [tulaneID@cypress1 ~]$ tail -3 animals DOG bullfrog Little Doggie
The -f flag can be used to tail a file interactively. New additions to the end of the file will be printed to your screen.
head
head is much like tail, except it prints from the top of a file.
[tulaneID@cypress1 ~]$ head -2 animals dog Dog
more
more is like cat, except it prints the file one page at a time. The spacebar is used to continue on to the next page.
Basic Linux Commands Exercise
Lets take a break from lecture to practice some of the commands we've just learned
Intermediate Linux Commands
Star Wildcard
Shell commands can often make use of the wildcard characters. The most universal of these is the asterisk or star wildcard, *. This acts as a stand-in for any and all strings.
ls again
Suppose we have a directory containing many files, but we only want to list files ending with the .txt extension. We can use the * wildcard to request a list of any file ending in .txt
[tulaneID@cypress1 ~]$ ls a.out NextDirectoryDown helloworld.c textfile01.txt textfile02.txt [tulaneID@cypress1 ~]$ ls *.txt textfile01.txt textfile02.txt [tulaneID@cypress1 ~]$
Additionally, the behavior of the ls command can be modified by the addition of option flags. By default ls does not list any "hidden" files and subdirectories. To display all files and subdirectories one must add the -a flag.
[tulaneID@cypress1 ~]$ ls -l total 4 -rw-r--r-- 1 tulaneID workshop 0 Aug 18 21:50 a.out drwxr-xr-x 2 tulaneID workshop 4096 Aug 18 21:37 NextDirectoryDown -rw-r--r-- 1 tulaneID workshop 0 Aug 18 21:50 helloworld.c -rw-r--r-- 1 tulaneID workshop 0 Aug 18 21:50 textfile01.txt -rw-r--r-- 1 tulaneID workshop 0 Aug 18 21:50 textfile02.txt [tulaneID@cypress1 ~]$ ls -al total 56 drwx------ 6 tulaneID workshop 4096 Aug 18 20:03 . drwxr-xr-x 5 root root 4096 Aug 12 13:00 .. -rw------- 1 tulaneID workshop 107 Aug 18 16:59 .bash_history -rw-r--r-- 1 tulaneID workshop 18 Jul 18 2013 .bash_logout -rw-r--r-- 1 tulaneID workshop 176 Jul 18 2013 .bash_profile -rw-r--r-- 1 tulaneID workshop 124 Sep 30 2014 .bashrc -rw-r--r-- 1 tulaneID workshop 500 May 7 2013 .emacs drwxr-xr-x 2 tulaneID workshop 4096 Nov 11 2010 .gnome2 -rw-r--r-- 1 tulaneID workshop 171 Aug 6 2014 .kshrc drwxr-xr-x 4 tulaneID workshop 4096 Aug 6 2014 .mozilla drwxr-xr-x 2 tulaneID workshop 4096 Aug 18 16:17 NextDirectoryDown drwx------ 2 tulaneID workshop 4096 Aug 13 16:18 .ssh -rw------- 1 tulaneID workshop 1786 Aug 18 20:03 .viminfo -rw------- 1 tulaneID workshop 54 Aug 13 16:18 .Xauthority [tulaneID@cypress1 ~]$
quota
Display disk quotas.
The '-s' flag translates the output into a readable format. If your blocks column is equal to or greater than the quota column, you have exceeded your available disk space.
[tulaneID@cypress1 ~]$quota -s Disk quotas for user tulaneID (uid 12345): Filesystem blocks quota limit grace files quota limit grace master.10ge.cluster:/home 6459M 10000M 10000M 23260 250k 250k master.10ge.cluster:/share/apps 6459M 10000M 10000M 23260 250k 250k
grep
Find text in a file. grep will return every line in the file that matches your search term.
[tulaneID@cypress1 ~]$ cat animals dog Dog cat Racoon DOG bullfrog Little Doggie [tulaneID@cypress1 ~]$ grep dog animals dog
Use the -v flag to print out every line excluding those containing the search term. Notice that "dog" (lowercase) is missing from the results.
[tulaneID@cypress1 ~]$ grep -v dog animals Dog cat Racoon DOG bullfrog Little Doggie
The -i flag will search without case-sensitivity.
[tulaneID@cypress1 ~]$ grep -i dog animals dog Dog DOG Little Doggie
The -i and -v flag can be combined to exclude all lines containing the search term regardless of capitalization.
[tulaneID@cypress1 ~]$ grep -iv dog animals cat Racoon bullfrog
Advanced Linux Commands
sed
sed is a powerful text stream editor. There are many uses of this program, but the most common is its search and replace function. Combined with regular expressions, this command can be used to seek out complex strings in your code and replace them with modifications. Please visit Sed - An Introduction and Tutorial for more information.
[tulaneID@cypress1 ~]$ cat animals dog Dog cat Racoon DOG bullfrog Little Doggie [tulaneID@cypress1 ~]$ sed 's/dog/bird/g' animals bird Dog cat Racoon DOG bullfrog Little Doggie
awk
awk is a programming language used to modify files. One common use of awk is printing specific columns of a text stream or file.
[tulaneID@cypress1 ~]$ cat sample.data 0.3 0.22 1.8 3.1 2.34 3.0 0.2 1.0 3.2 [tulaneID@cypress1 ~]$ awk '{print $1 " " $3}' 0.3 1.8 3.1 3.0 0.2 3.2
The above command printed out the 1st and 3rd columns of the sample.data file. For more information on awk please visit Awk - A Tutorial and Introduction.