Logging in

Open a terminal window and login to the lonestar compute cluster at TACC like this:

ssh <username>@lonestar.tacc.utexas.edu

TACC has an 8-character limitation on user names, so you may have used a shorter user ID when you registered in the TACC User Portal.

Settup up a profile

There are many flavors of Linux/Unix shells. The default for TACC's Linux (and most other Linuxes) is bash (bourne again shell), which we will use throughout.

Whenever you login via an interactive shell as you did above, a well-known script is executed by the shell to establish your favorite environment settings. We've set up a common profile for you to start with that will help you know where you are in the file system and make it easier to access some of our shared resources. To set up this profile, do the following steps after logging in:

cdh
cp /corral-repl/utexas/BioITeam/scripts/ngsc_profile_user .profile
chmod 600 .profile

The chmod 600 .profile command marks the file as readable/writable only by you. The .profile script file will not be executed unless it has these permissions settings. Note that the well-known filename is .profile (or .profile_user on some systems), which is specific to the bash shell.

Notice that when you do a normal ls to list the contents of your home directory, this file doesn't appear. That's because it's a hidden "dot file" – a file that has no filename, only an extension. To see these hidden files use the -a (all) switch for ls:

ls -a

To see even more detail, including file permissions, add the -l (long listing) switch:

ls -la

Since .profile is executed when you login, to ensure it is set up properly you should first logout:

exit

then log back in:

ssh <username>@lonestar.tacc.utexas.edu

If everything is working correctly you should now see a prompt like this:

tacc:~$

What your .profile does

Let's look at what your .profile profile actually does:

lstar:~$ cat .profile

#!/bin/bash

# include common settings for the NGS course
. /corral-repl/utexas/BioITeam/bin/profile_ngs_course.bash

All this does is "import" some settings in the common /corral-repl/utexas/BioITeam/bin/profile_ngs_course.bash file into your environment, and all its descendents. The "import" operator is the period ( . ). This is also known as "sourcing a script".

So what does the common profile file do? For one thing, it sets an environment variable BI to point to the /corral-repl/utexas/BioITeam directory. So you can look at the file as shown below. Notice that if you hit TAB after typing cat $BI/ the shell expands the BI environment variable.

lstar:~$ cat $BI/bin/profile_ngs_course.bash

#!/bin/bash

PS1='tacc:\w$ '
umask 002

export BI=/corral-repl/utexas/BioITeam
export PATH=$BI/bin:$HOME/local/bin:$PATH

module load launcher
module load python
module load samtools
module load R

The first line – the "she-bang" – tells the shell what program should execute this file – in this case, bash itself.

The PS1='tacc:\w$ ' line is a special setting that tells the shell to display the current directory as part of its prompt. It saves you typing pwd all the time to see where you are in the directory hierarchy. Try this:

lstar:~$ mkdir tmp
lstar:~$ cd tmp
lstar:~/tmp$

Your prompt now tells you you are in the tmp subdirectory of your home directory (~). To return to top-level of your home directory, just type

cd

The export profile lines define the two shell variables BI and PATH. You've already seen how using $BI can come in handy accessing our shared course directory. As for PATH, that is a well-known environment variable that defines a set of directories where the shell will look when you type in a program's name. Our shared profile adds the common course /corral-repl/utexas/BioITeam/bin directory and your local ~/local/bin directory (which does not exist yet) to the location list. You can see the entire list of locations by doing this:

echo $PATH

As you can see, there are a lot of locations on the path. That's because when you load modules at TACC (such as the module load lines in the common profile), that mechanism makes the programs available to you by putting their installation directories on your $PATH. We'll learn more about modules shortly.

Now let's go on to editing files on Lonestar.