Welcome to The Carpentries Etherpad!

This pad is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents.

Users are expected to follow our code of conduct: https://docs.carpentries.org/topic_folders/policies/code-of-conduct.html

All content is publicly available under the Creative Commons Attribution License: https://creativecommons.org/licenses/by/4.0/

 ----------------------------------------------------------------------------

0. Etherpad Setup, Welcome, and Setup



Sign in


Name (Pronouns), Department, Association, Email & Twitter (optional)
Please sign in so we can record your attendance.


Schedule is here: https://jyalim.github.io/2020-12-07--agave-shell-intro/ 
Workshop lesson is here: https://jyalim.github.io/agave-shell-novice/ 

Code of Conduct


https://docs.carpentries.org/topic_folders/policies/code-of-conduct.html

Introductions



Information for Today's Learners


  1. Add your name to the Sign in portion of the Etherpad above (Starts on line 12)
  2. Introduce yourselves! 
  3. Workshop setup (https://jyalim.github.io/agave-shell-novice/setup.html)
    1. Ensure you are connected to the cisco VPN
    2. Ensure you can connect to the supercomputer Agave by signing in through: https://login.rc.asu.edu
    3. Open a shell on the cluster through the web app (select Agave from Clusters menu in top navigation bar)
    4. With the shell, make a temporary workspace directory, called Desktop, and make it the active working directory
      1. mkdir Desktop
      2. cd Desktop
    5. With the shell, download the workshop materials with:
      1. wget 'https://jyalim.github.io/agave-shell-novice/data/data-shell.zip'
    6. With the shell, unpack the downloaded zip with:
      1. unzip data-shell.zip

LESSON 1: Introducing the Shell


Protip: The control key + C will break the execution of a shell command!

LESSON 2: Navigating the Filesystem 


https://jyalim.github.io/agave-shell-novice/02-filedir/index.html

Exercise 2.1:


What does the "-h" option do for "ls"?


SOLUTION: The "-l" option makes "ls" use a long listing format, showing not only the file/directory names but also additional information such as the file size and the time of its last modification. If you use both the "-h" option and the "-l" option, this makes the file size ‘human readable’, i.e. displaying something like 5.3K instead of 5369.

Exercise 2.2:


By default ls lists the contents of a directory in alphabetical order by name. The command "ls -t" lists items by time of last change instead of alphabetically. The command "ls -r" lists the contents of a directory in reverse order. Which file is displayed last when you combine the "-t" and "-r" flags? Hint: You may need to use the "-l" flag to see the last changed dates.


SOLUTION: The most recently changed file is listed last when using "-rt". This can be very useful for finding your most recent edits or checking to see if a new output file was written.

Exercise 2.3:


Using the filesystem diagram in the lesson (https://jyalim.github.io/agave-shell-novice/fig/filesystem-challenge.svg ), if "pwd" displays "/Users/thing", what will "ls -F ../backup" display? (Select 1, 2, 3, or 4 from the options below by annotating an x to the right of the list item.)

  1. ../backup: No such file or directory
  2. 2012-12-01 2013-01-08 2013-01-27
  3. 2012-12-01/ 2013-01-08/ 2013-01-27/
  4. original/ pnas_final/ pnas_sub/

Morning Break (10:30 -- 11:00)



LESSON 3: Working with Files and Directories


https://jyalim.github.io/agave-shell-novice/03-create/index.html 

Protip: `tree -d` to list filesystem as a tree! (Careful using this on directories with a lot of subdirectories or files)

Exercise 3.1: Moving Files to a new Folder



Conversation: git is distributed version control software (VCS) that may be used in streamlining source code development with Agave.

Exercise 3.2: List filenames matching a pattern



LESSON 4: Pipes and Filters 


https://jyalim.github.io/agave-shell-novice/04-pipefilter/index.html 

Lunch Break (12:30 -- 13:20)



LESSON 5: Loops 


https://jyalim.github.io/agave-shell-novice/05-loop/index.html 

Exercise 5.1:


Output of loop 1:
cubane.pdb  ethane.pdb  methane.pdb  octane.pdb  pentane.pdb  propane.pdb
cubane.pdb  ethane.pdb  methane.pdb  octane.pdb  pentane.pdb  propane.pdb
cubane.pdb  ethane.pdb  methane.pdb  octane.pdb  pentane.pdb  propane.pdb
cubane.pdb  ethane.pdb  methane.pdb  octane.pdb  pentane.pdb  propane.pdb
cubane.pdb  ethane.pdb  methane.pdb  octane.pdb  pentane.pdb  propane.pdb
cubane.pdb  ethane.pdb  methane.pdb  octane.pdb  pentane.pdb  propane.pdb

Output of loop 2:
cubane.pdb
ethane.pdb
methane.pdb
octane.pdb
pentane.pdb
propane.pdb


LESSON 6: Shell Scripts 


https://jyalim.github.io/agave-shell-novice/06-script/index.html 

LESSON 7: Finding Things 


https://jyalim.github.io/agave-shell-novice/07-find/index.html 

LESSON 8: Using the Scheduler 


https://jyalim.github.io/agave-shell-novice/08-slurm/index.html