Difference between revisions of "Introduction to Linux in HPC/Shell scripting"
Introduction to Linux in HPC/Shell scripting
Jump to navigation
Jump to search
m (Re-structure Ex.1 a bit; Capital C in Ex.6) |
(Add question about starting a shell script) |
||
Line 12: | Line 12: | ||
([[Media:HPC.NRW_Introduction_to_Linux_in_HPC_09_Shell_scripts.pdf | Slides as pdf]]) | ([[Media:HPC.NRW_Introduction_to_Linux_in_HPC_09_Shell_scripts.pdf | Slides as pdf]]) | ||
− | === Quiz === | + | === Quiz === |
+ | {{hidden begin | ||
+ | |title = Questions | ||
+ | }} | ||
− | |||
− | |||
− | |||
<quiz display=simple> | <quiz display=simple> | ||
− | { | + | {Which command rund the executable script "test.sh" located in your home folder? |
+ | |type="[]"} | ||
+ | - <code>~$ test.sh</code> | ||
+ | || | ||
+ | + <code>~$ ./test.sh</code> | ||
+ | || Explanation: The <code>./</code> refers to the current directory. | ||
+ | + <code>~$ ~/test.sh</code> | ||
+ | || Explanation: The <code>~/</code> refers to the path of your home directory. This is equivalent to the full path of <code>/home/<USERNAME>/</code>. | ||
+ | |||
+ | {Which bash command below assigns "value" to variable var? | ||
|type="()"} | |type="()"} | ||
+ <code>var="value"</code> | + <code>var="value"</code> |
Revision as of 13:47, 1 December 2020
Tutorial | |
---|---|
Title: | Introduction to Linux in HPC |
Provider: | HPC.NRW
|
Contact: | tutorials@hpc.nrw |
Type: | Multi-part video |
Topic Area: | HPC Platforms |
License: | CC-BY-SA |
Syllabus
| |
1. Background and History | |
2. The Command Line | |
3. Linux Directory Structure | |
4. Files | |
5. Text display and search | |
6. Users and permissions | |
7. Processes | |
8. The vim text editor | |
9. Shell scripting | |
10. Environment variables | |
11. System configuration | |
12. SSH Connections | |
13. SSH: Graphics and File Transfer | |
14. Various tips |
In this video the concept of shell scripting is introduced. Commands entered into the console can also be written into a text file to create an executable script. The tutorial will describe how to create such a script, explain its basic structure and how to execute it in the console.
Video
Quiz
Questions
Exercises in Terminal
1. Write a script that: a. Prints an environment variable b. Saves the output of the date command to a variable c. Sleeps for 2 seconds d. Prints the new and old date and time
Answer: |
One possible way to write the script is #!/bin/bash
echo "I am $USER, my home directory is $HOME"
olddate=$(date)
sleep 10s
echo "old date: ${olddate}"
echo "new date: $(date)"
Explanation: |
2. Find a way to execute a script without setting execute permissions.
Answer: | |
bash script.sh
|
Explanation: bash will be used as an interpreter to execute script.sh and the commands contained in script.sh will be executed sequentially.
|
3. Find out how to do other programming things in bash
(e.g. functions, classes). How convenient do they look?
Answer: |
To define a function function hello {
echo "hello, world"
}
To use this function in
hello
|
4. Look at different ways you can define if
conditions.
Answer: |
Both single square brackets str="a b"
The
if [[ $str = "a b" ]]; then
echo "it works"
fi
However, the
if [ $str = "a b" ]; then
echo "it works"
fi
To have the correct syntax for if [ "$str" = "a b" ]; then
echo "it works"
fi
|
5. Find out what different types of quotes (single'
vs. double"
) do?
Answer: |
single quote
var=abc
echo '$var'
This script prints the literal string var=abc
echo "$var"
This script prints the value of |
6. Create an shell variable MYIDENTITY and export it as below:
$ export MYIDENTITY=whoami
How will you list the shell variable MYIDENTITY?
Execute the shell variable MYIDENTITY, what is the output?
Answer: |
you can list the variable by using the echo command as follows $ echo $MYIDENTITY
whoami
The arguments passed to echo are printed to the standard output. $ $MYIDENTITY
username
The shell variable upon execution runs the command |