User Tools

Site Tools


mkatari-bioinformatics-august-2013-introlinuxnotes

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
mkatari-bioinformatics-august-2013-introlinuxnotes [2015/06/03 17:49] – [Command Line Editing] mkatarimkatari-bioinformatics-august-2013-introlinuxnotes [2015/06/11 09:19] – [File manipulation] mkatari
Line 32: Line 32:
 {{:servercomputerrelation.png?600|}} {{:servercomputerrelation.png?600|}}
  
-====== The Linux Shell ======+====== Logging in with X Windows ======
  
 The standard user interface for personal computers is a GUI (Graphical User Interface). However for linux it is a command-line interpreter called shell. The standard user interface for personal computers is a GUI (Graphical User Interface). However for linux it is a command-line interpreter called shell.
 It is simply a prompt the awaits your command. There are several different shells, but the one used often is called “bash”, which is a mixture of a bunch of other shells. It is simply a prompt the awaits your command. There are several different shells, but the one used often is called “bash”, which is a mixture of a bunch of other shells.
  
-===== Command Line Editing ===== +In cases where a program requires a GUI, you should log in using the ''–X'' option.
- +
-The command is only executed once you press enter. Till then you can edit the line by using the following key strokes: +
- +
-|Backspace (delete on MACs) |delete previous character| +
-|Left Arrow, Right Arrow| move left and right on lines | +
-|Ctrl-A| go to front of line| +
- +
-====== Logging in with X Windows ====== +
- +
-In cases where a program requires a GUI, you should log in using the –X option.+
 This opens a tunnel to your computer allowing all windows to open in your computer. This opens a tunnel to your computer allowing all windows to open in your computer.
 For this to work you need X11 installed on your computer (MobaXterm already has one) For this to work you need X11 installed on your computer (MobaXterm already has one)
Line 55: Line 45:
 <code> <code>
 Last login: Wed Jun  3 15:49:01 on ttys000 Last login: Wed Jun  3 15:49:01 on ttys000
-Manpreets-MacBook-Pro:~ manpreetkatari$ ssh mkatari@hpc.ilri.cgiar.org+Manpreets-MacBook-Pro:~ manpreetkatari$ ssh -X mkatari@hpc.ilri.cgiar.org
 Unauthorized access is prohibited. Unauthorized access is prohibited.
 mkatari@hpc.ilri.cgiar.org's password: mkatari@hpc.ilri.cgiar.org's password:
 Last login: Wed Jun  3 16:33:26 2015 from 197.136.62.11 Last login: Wed Jun  3 16:33:26 2015 from 197.136.62.11
-[mkatari@hpc ~]$+[mkatari@hpc ~]$ emacs 
 </code> </code>
  
Line 66: Line 57:
 {{:emacswindow.png?300|}} {{:emacswindow.png?300|}}
  
 +Simply close the window to exit.
  
 +====== Home Sweet Home ======
 +
 +When you first log in, you will be in a directory called “''home directory''
 +<code>
 +/home/<your username>
 +</code>
 +Generally in this directory you have complete control over creating, modifying, and executing files in this or any sub directory you create. In order to return to your home directory simply type the command: ''cd ~'' at the prompt. Unless appropriate changes have been made you can can not enter anyone’s directory or even see what is in it.
 +
 +
 +===== Command Line Editing =====
 +
 +The command is only executed once you press enter. Till then you can edit the line by using the following key strokes:
 +
 +^Action ^Result ^
 +|Backspace (delete on MACs) |delete previous character|
 +|Left Arrow, Right Arrow| move left and right on lines |
 +|Up Arrow, down Arrow| previous and following command|
 +|Ctrl-A| go to front of line|
 +|Ctrl-E| go to end of line|
 +|Ctrl-D| delete next character|
 +|Ctrl-K| delete everything to the right of the character|
 +|Ctrl-Y| paste|
 +|Ctrl-C| stop a running job|
 +
 +Once you press enter the program will be executed. When your prompt returns, you know that the program has finished. If there is an output to the program it usually prints it on the screen (often referred to as the standard output)
 +
 +In the example below, ''date'' is a command that is being executed with no arguments. Many commands/programs have options that are provided immediately following the command. In the ''ls -l'' example, ls is the command and everything else are options that are provided.
 +
 +<code>
 +[mkatari@hpc ~]$ date
 +Wed Jun  3 21:10:57 EAT 2015
 +[mkatari@hpc ~]$ ls -l
 +total 19443152
 +-rw-rw-r--. 1 mkatari mkatari      16263 Jun  3 16:29 03-06-2015.pdf
 +-rw-rw-r--. 1 mkatari mkatari     990646 Jun 12  2014 _1.fastq
 +-rw-rw-r--. 1 mkatari mkatari     381856 Jun 12  2014 _2.fastq
 +</code>
 +
 +
 +===== Directing standard output =====
 +
 +Instead letting the output print to the screen we can save it to a file by using the ''>'' sign and then giving the file name.  This will replace a file if it already exists without a warning. To append use an existing file use ''>>''. It is important to mention here that once you overwrite a file, it is deleted. It is gone. There is no recycling bin to restore from trash.
 +
 +The following command gets details about all users' home directories and saves them into a file called ''allusers.txt''
 +
 +<code>
 +
 +[mkatari@hpc ~]$ ls -l /home/ > allusers.txt
 +[mkatari@hpc ~]$ ls -l allusers.txt
 +-rw-rw-r--. 1 mkatari mkatari 18897 Jun  3 21:26 allusers.txt
 +
 +</code>
 +
 +
 +===== Command-line completion =====
 +
 +In some cases the commands or the file names that you need as arguments can be very long which increases the chance of spelling mistakes.
 +
 +To prevent such mistakes simply type the enough letters to unambiguously identify the command or file and then pressing tab will complete it for you.
 +
 +In the case you don’t know how many letters you need, simply press tab twice to see all your options.
 +
 +In the example below, after typing the command and its options, the tab key was pressed twice to get this. The command will not be executed until the ''enter'' key is pressed.
 +
 +<code>
 +[mkatari@hpc ~]$ ls /usr/bin/bz
 +bzcat         bzdiff        bzip2         bzless
 +bzcmp         bzgrep        bzip2recover  bzmore
 +</code>
 +
 +===== Wildcards =====
 +
 +In cases where you want to refer to multiple files you can use ''*'' to represent any characters of any length. You can also use ''?'' To represent any character of one length.
 +
 +In the example below, the first line gives all files/programs that start with bz. The second only gives which begin with bz and three letters afterwards, represented by ?
 +
 +<code>
 +[mkatari@hpc ~]$ ls /usr/bin/bz*
 +/usr/bin/bzcat  /usr/bin/bzdiff  /usr/bin/bzip2         /usr/bin/bzless
 +/usr/bin/bzcmp  /usr/bin/bzgrep  /usr/bin/bzip2recover  /usr/bin/bzmore
 +[mkatari@hpc ~]$ ls /usr/bin/bz???
 +/usr/bin/bzcat  /usr/bin/bzcmp  /usr/bin/bzip2
 +</code>
 +
 +===== Finding Your Way =====
 +
 +Often you will get lost on the hpc and you will need to know where you are, which computer did you log into, or even which account have you logged into. Below are some simple commands that help you find your way.
 +
 +<code>
 +[mkatari@hpc ~]$ whoami
 +mkatari
 +
 +[mkatari@hpc ~]$ pwd
 +/home/mkatari
 +
 +[mkatari@hpc ~]$ hostname
 +hpc.ilri.cgiar.org
 +
 +</code>
 +
 +===== File manipulation =====
 +
 +Useful commands for manipulating files and directories. To get details about how to use the commands type man <command>.
 +
 +^Command ^Action ^
 +|mkdir | make a directory |
 +|rmdir | remove a directory (only works if the directory is empty ) |
 +|cd    | change directory |
 +|pwd   | present working directory |
 +|ls    | list of files and directories in the directory. You can use wild card to look for specific files. You can also use -l to see details such as permission for files and directories |
 +|cp    | copy a file and/or directories. Use -r to recursively copy.  |
 +|mv    | move a file. It will copy and then delete the source. This can be used to rename files as well. |
 +|rm    | remove a file |
 +
 +<code>
 +[mkatari@hpc ~]$ mkdir temp
 +[mkatari@hpc ~]$ cd temp/
 +[mkatari@hpc temp]$ ls
 +[mkatari@hpc temp]$ cp ../allusers.txt ./
 +[mkatari@hpc temp]$ ls
 +allusers.txt
 +[mkatari@hpc temp]$ mv allusers.txt allusers.backup
 +[mkatari@hpc temp]$ ls
 +allusers.backup
 +[mkatari@hpc temp]$ rm allusers.backup
 +[mkatari@hpc temp]$ ls
 +[mkatari@hpc temp]$ cd ../
 +[mkatari@hpc ~]$ rmdir temp/
 +
 +</code>
 +
 +====== Permissions ======
 +
 +There are three levels of permissions that can be assigned to all files, programs, and directories
 +  * Read: open the file and copy it
 +  * Write: edit the file and delete it
 +  * Execute: Run the commands in the file or change into the directory if it is a directory
 +
 +There are also three different levels of users:
 +  * User – you
 +  * Group – A collection of users that are in a group
 +  * Everyone - Not just the people who have accounts on the machine but if the directory is open to the public and any one.
 +
 +The commands used to change owner, group, and specific permissions are:
 +  * chown – changes the owner
 +  * chgrp – changes the group
 +  * chmod – change read, write, and execute permissions
 +    * +/- r = read
 +    * +/- w = write
 +    * +/- x = execute
 +    * u = user level
 +    * g = group level
 +    * o = others
 +    * a = all
 +  * chmod can also use three numbers to set permissions where the value of the number represents a specific combination of rwx and their order assigns it to the different levels (u,g,o)
 +
 +
 +
 +        wget ftp://ftp.jgi-psf.org/pub/compgen/phytozome/v9.0/Mesculenta/v5.0assembly/cassavaV5_0.chromsomesRomanNumerals.fa.gz
 +
 +[[ftp://ftp.jgi-psf.org/pub/compgen/phytozome/v9.0/Mesculenta/annotation/Mesculenta_147_gene.gff3.gz
 +]]
  
  
 ====== Some useful information about linux ====== ====== Some useful information about linux ======
 +
 +
  
 === Environment variables and PATH === === Environment variables and PATH ===
mkatari-bioinformatics-august-2013-introlinuxnotes.txt · Last modified: 2015/06/11 11:50 by mkatari