===== Linux/Unix ===== Basic Linux/Unix skills are needed to use a cluster, emphasizing use of an editor and the command-line interface. ==== Basics ==== The [[http://swcarpentry.github.io/shell-novice/|Software Carpentry: The Unix shell]] workshop will get you started with using Linux/Unix. It will help you combine existing programs in new ways and automate repetitive tasks so you aren’t typing the same things over and over again. Use of the shell is fundamental to using a wide range of other powerful tools and computing resources, including high performance computing (HPC). These lessons will start you on a path towards using these resources effectively. * **Linux Basics I** provides a basic introduction of Linux using a command-shell window and command line, not a GUI (mouse) interface. This session explores the details of the command-shell window, command line input and output, and overall command syntax including wildcards and redirection for STDIN and STDOUT. You will also learn how to get help, the basics of files, directories and permissions, and what editors are available to create and edit files.([[http://www.udel.edu/it/research/files/cluster/workshop/Mills-Linux-Basics-I.pdf|slides]]) ([[https://capture.udel.edu/media/1Mills+Linux+Basics+I.mp4/1_11r1ektj|video]]) * **Linux Basics II** provides a basic introduction to the bash shell and scripting with bash and Python. ([[https://capture.udel.edu/media/2Mills+Linux+Basics+II.mp4/1_wj23ptfe|video]]) * An example script project is used to explain the basic bash scripting concepts. It is based on using the Gnuplot program which reads a command file to create a data file and write an image file as an x-y plot. Firefox is used to view the image. ([[http://www.udel.edu/it/research/files/cluster/workshop/Mills-Linux-Basics-II.pdf|slides]]) * A basic Python script is used to demonstrate Python scripting and how to call it from a bash script. ([[http://www.udel.edu/it/research/files/cluster/workshop/Mills-Linux-Basics-II-python.pdf|slides]]) ==== Recommended tutorials for Linux/Unix Basics ==== * [[http://swcarpentry.github.io/shell-novice/|The Unix Shell]] (Software Carpentry) * [[ http://explainshell.com/|Tool to dissect any shell command you type in and display help text for each piece]] (explainshell.com) * [[http://linuxcommand.org/lc3_learning_the_shell.php|Leaning the Shell]] (LinuxCommand.org) * [[http://linuxcommand.org/lc3_writing_shell_scripts.php|Writing Shell Scripts]] (LinuxCommand.org) * [[http://www.computerhope.com/unix.htm#04|Index of Linux and Unix Commands]] (Computer Hope) * [[http://people.ischool.berkeley.edu/~kevin/unix-tutorial/toc.html|UNIX Tutorial]] (UC Berkeley School of Information) * [[http://www.ee.surrey.ac.uk/Teaching/Unix/|Unix Tutorial for Beginners]] (U. Surrey, UK) * [[https://www.nics.tennessee.edu/files/pdf/hpcss14_15/11_13_IntroToLinux.pdf|Linux (for HPC) Basics]] (ORNL National Lab) * [[http://tldp.org/LDP/abs/html/|Advanced Bash-Scripting Guide]] (The Linux Documentation Project) * [[http://www.vtc.com/products/Unix-Shell-Fundamentals-tutorials.htm|Unix Shell Fundamentals]] ([[http://www.it.udel.edu/learnit/online-training-resources| request vtc.com account]]) * [[http://www.vtc.com/products/Unix-Shell-Scripting-Advanced-tutorials.htm|Unix Shell Scripting Advanced]] ([[http://www.it.udel.edu/learnit/online-training-resources|request vtc.com account]]) * [[http://regexone.com|Regular Expressions Tutorial]] (RegexOne.com) ==== Recommended tutorials for Linux/Unix Editors ==== * [[https://www.howtogeek.com/42980/the-beginners-guide-to-nano-the-linux-command-line-text-editor/|The Beginner’s Guide to Nano, the Linux Command-Line Text Editor]] (How-to Geek) * [[http://www.openvim.com/tutorial.html|Interactive Vim tutorial]] (henrik.huttunen@gmail.com) * [[http://jerrywang.net/vi/|Vi For Smarties]] (jerry_y_wang@yahoo.com) * [[http://www.gnu.org/software/emacs/tour/|A Guided Tour of Emacs]] (GNU Operating System)