From 589a56655485a150aaf2812837b17da2a4131dbe Mon Sep 17 00:00:00 2001 From: David Cash Date: Fri, 7 Jun 2024 11:10:05 +0100 Subject: [PATCH] First edition of command line optional episode. --- config.yaml | 1 + episodes/command-line.Rmd | 415 +++++++++++++++++++++++++++++++++++ episodes/fig/CommandLine.png | Bin 0 -> 24660 bytes episodes/fig/spm_gui.jpg | Bin 0 -> 43991 bytes 4 files changed, 416 insertions(+) create mode 100644 episodes/command-line.Rmd create mode 100644 episodes/fig/CommandLine.png create mode 100644 episodes/fig/spm_gui.jpg diff --git a/config.yaml b/config.yaml index 366fb88..a62fcf5 100644 --- a/config.yaml +++ b/config.yaml @@ -64,6 +64,7 @@ episodes: - pet-imaging.Rmd - diffusion-weighted-imaging.Rmd - functional-mri.Rmd +- command-line.Rmd # Information for Learners learners: diff --git a/episodes/command-line.Rmd b/episodes/command-line.Rmd new file mode 100644 index 0000000..4df9200 --- /dev/null +++ b/episodes/command-line.Rmd @@ -0,0 +1,415 @@ +--- +title: 'Extra: Using the Command Line' +teaching: 10 +exercises: 2 +--- + +:::::::::::::::::::::::::::::::::::::: questions + +- What is the command line interface? +- Why is it helpful in neuroimaging analysis? +- What are some common commands that I need to know? + +:::::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::: objectives + +- Discover how to interact with files and directories on the command line +- Identify benefits that the command line can provide in processing image data. + +:::::::::::::::::::::::::::::::::::::::::::::::: + +## Introduction: Why use the command line? +In order to get started with neuroimaging analysis, it is really helpful to +first understand how to interact with a computer on the command line called +the shell. At first look, it's pretty bare bones and minimalist. How can this +simple way of interacting with a computer be so useful? + +![](fig/CommandLine.png){alt="Picture of the command line"} + +Nowadays, we usually interact with a computer using a *Graphical User Interface* +or a GUI. These include programs like Word, Chrome, iTunes which allow you to +interact using your mouse to press buttons, select options, move sliders, +change values, etc. It provides a simple, intuitive way for us to access the +essential functionality that we need from these programs. Some neuroimaging +analysis software does comes with a GUI, like this one from the [Statistical +Parametric Mapping (SPM)](https://www.fil.ion.ucl.ac.uk/spm/) toolbox, +a popular MATLAB based package. + +![](fig/spm_gui.jpg){alt="Example of the SPM GUI"} + +### Benefits of the command line +While GUIs are often the best way to interact with your computer, using the +command line for neuroimaging analysis is tremendously powerful for many reasons: + +1. **Automation** GUIs typically will wait until you tell them what to do. +When you go home at night, it won't do anything because it has no instructions! +You can setup the command line to automate some tasks so that it works late in +the night while you are sleeping. +1. **Scalability** Working with a GUI often means a lot of mouse moves and +clicks. For a small handful of imaging sessions, this is a fine way to work, +but what if your research project has *hundreds* of datasets to process. It's +far more likely that an error could occur or a dataset is missed. While you go +through this lesson, count the number of mouse clicks it takes you to do a task +and think about how that would scale to your project. When you run on the +command line it has all of the information it needs, so no interaction is +needed, saving a lot of your time. +1. **Control** With GUIs, you often only have access to the options that are +presented...but that might not be all of them, and they might restrict you +from what you want to do. With the command line, you may need to do some +investigation, but you have far more control over how the task is run. +1. **Interoperability** You may find that you want to take results from one +program and feed them into another and then another. With GUI's this often +means saving or exporting the results, then opening up the other program and +importing them. The command line often allows you to pieces these steps together +in one set of instructions. + +## Getting started +In this section, we are going to go through some basic steps of working with the +command line. Make sure you are able to connect to your working environment by +following the directions in the [Setup](../learners/setup.md) section of this +website. As a reminder, you should have a desktop on your virtual machine that +looks something like this: +![](fig/aic_smri_desktop.png){alt="Screenshot of the VM desktop"} +At the bottom of the the screen, you will see a taskbar. One of the icons is a +black box with a white dollar sign in it. That will launch the shell +(Terminal Emulator) to give you access to the command line. Click on this button +to launch the terminal. +![](fig/aic_smri_launch_terminal.png){alt="Launching a terminal"} + +## Navigating the file structure +The desktop of your virtual machine will have a black window with green text +in it. This is the shell. We will enter some commands and see what responses +that the computer provdes. +![](fig/aic_smri_terminal_window.png){alt="Picture of an open terminal"} + +1. The first thing we are going to do is figure out our present location in the +file system of the computer. We do that +using the command `pwd` which stands for *present working directory*. Type it +in the command line and see what the response is: + + ```bash + pwd + ``` + + ```output + TODO: add home output + ``` + This directory is also your *home directory* +1. Next we are going to see what items are contained in this directory. To do +that, simply type `ls` and it should show you all the files. + + ```bash + ls + ``` + ```output + TODO: add output + ``` + + You will notice that some of the entries are different colors. The colors + indicate whether the entries are files or directories. They also can + indicate if these files or directories have special properties. +1. If we want more information about these files and directories, then we can +use the same command with a *command line option* `-l` to tell the computer +to list the files in a long format + + ```bash + ls -l + ``` + ```output + ``` + This now gives a lot more information, with the letters before the file + telling us about who owns the file (3rd and 4th column), what permissions + they have to read, write or run (execute) the file (first column), + and when it was modified (6th column). + + If you want to list the contents of a different directory, just put it + after the `ls -l` + + ```bash + ls -l data + ``` + ```output + ``` + +1. The `data` directory in your home directory is where you will be storing +your work. So let us move into that directory using the `cd` or +*change directory* command: + + ``` + cd data + ``` + Now type the command `pwd` again. Has the result changed? + + What happens when we list the contents of this directory? + ```bash + ls -l + ``` + You don't get anything back, as this directory currently is empty! +1. Inside the data directory, let's create a new directory that we will call +`mywork`. We do that using a command called `mkdir`, + + ```bash + mkdir mywork + ``` +:::::::::::::::::::: challenge +Run the `ls` command again to see how the contents have now changed +to show your new directory. +:::::::::::::::::::::::::::::: + +### Helpful hints +* **Feeling lost?** You can always get back to your home directory simply by +typing `cd` without any arguments or by using the tilde symbol, which is the +shortcut for home. + + ```bash + cd + cd ~ + ``` + +* **Help me!** If you want to know more about a command, just type +`man` in front of it to get the *manual entry*. + + ```bash + man ls + man find + man more + man less + ``` + +* **Previous commands** If you want to see a list of commands that you have +run, you can type in the `history` command. You can also scroll through previous +commands by tapping the up and down arrow keys and then hit Return when you +found the command you want to run again. +* **Paths** Locations in the file system, whether they are files or directories, +are known as paths. Paths can be referred to in *absolute* terms +(like a postcode or latitude and longitude) or *relative* terms (like +directions to your work from home). In some cases it is more convenient to +use absolute paths, and in others, relative paths are nicer. Absolute paths +always begin with a `/` character. From your home directory, the following two +commands do the exact same thing. + +```bash +ls data +ls /home/as2-streaming-user/data +``` +```output +``` + +## Processing files +In this section, we will go over how to copy and view the contents of the files. +There is some helpful information about one of the images in our Structural MRI +lesson that we want to look at in more detail. + +1. Let's copy it over from the directory it is currently located into our new +`mywork` directory. We do this using the `cp` or *copy* command. We first +specify the *source*, or the file/directory that we want to copy +(`data/StructuralMRI/sub-OAS_30003_T1w.json`), and then we specify the +destination path where we want to make the copy (`data/mywork`). **Before we +do this command, let's make sure we are back in the home directory first** + + ```bash + # Go back to the home directory + cd + # Copy the file. + cp data/StructuralMRI/sub-OAS_30003_T1w.json data/mywork + ``` +1. Now let us confirm that the copy of the file is where we expect it to be: + + ```bash + ls data/mywork/ + ``` + ```output + ``` +1. Finally, let's look at the contents of the file. We can do that with the +command `cat` which concatenates and prints files. + + ```bash + cat data/mywork/sub-OAS_30003_T1w.json + ``` + +:::::::::::::::::::: spoiler +### That just flew off the screen1! + +```output +TODO: add output +``` +If we want to have a bit more control over how we view larger files, then we +can use the `more` command. Press the return key to scroll one line at a time +or the space bar to scroll a whole screen page at a time. + +```bash +more data/mywork/sub-OAS_30003_T1w.json +``` + +::::::::::::::::::::::::::::::: + +1. We no longer need that file anymore (remember it is just a copy), so we can +remove files by using the `rm` command, but **BE CAREFUL** and check the command +twice before executing the command, as this cannot be undone! Watch out for any +spaces or any special characters like the `*` and `?` as they mean something +special in the shell. + + ```bash + rm data/mywork/sub-OAS_30003_T1w.json + ``` + +## Further reading +If you want to find out more how to use the command line, please check out the +following helpful resources: + +* ["The Unix Shell" Software Carpentry lesson](https://swcarpentry.github.io/shell-novice/) +* [Bash guide for beginners](https://tldp.org/LDP/Bash-Beginners-Guide/html) + +::::::::::::::::::::::challenge +## Stretch your knowledge +As you get more comfortable, you can start to do powerful things with the command line. + +### Variables +Sometimes we want to store some information for future use. We can do that +with a variable. A variable has a name and a value. A variable in the shell can +hold a number, a single character, a word, sentence or a list of things. You +*assign* a value to a variable with a simple statement `var=value` where you +replace var with the name that you want to call the variable and replace value +with the value you want to store. Once the variable has been assigned, you can +access the value within the variable by putting a `$` in front of the variable name + +```bash +image="T1" +echo "My favorite images are $image scans." +``` +```output +My favorite images are T1 scans. +``` +See how it replaces `$image` with T1. Let's do it again and assign a new value to `image`. +```bash +image="DTI" +echo "My favorite images are $image scans." +``` +```output +My favorite images are DTI scans. +``` + +### Looping +Variables are really helpful when we want to set up a loop. Let's say we have +images from 100 different subjects who are in our study, and we want to make +sure that we process each of the images in the exact same way. You could type +the commands out 100 times, where in each set of commands, you change the name +of the image files. As you could imagine, that would be really boring, and +there is definitely more risk of an error being introduced. A loop is a +solution to this and makes your command writing much simpler. It is simply an +instruction to the shell that says run the same command a bunch of times. +```bash +for name in David Ludovica Tobey Alexa Luigi +do + echo "Hey ${name}, I need help!" +done +``` +```output +Hey David, I need help! +Hey Ludovica, I need help! +Hey Tobey, I need help! +Hey Alexa, I need help! +Hey Luigi, I need help! +``` +Here, the loop is setup with a `for` command, with the format +`for (var) in (list)` where (var) is the *variable name*, and its value will +change with each iteration of the loop and (list) holds the list of entries +that you want to loop over. The for loop will determine how many entries are in +the list. At each iteration, it will place the next value of the +list in to the variable (in our example `name`) and execute the commands that +are inside the keywords `do` (start the loop) and `done` (end the loop). + +### Redirection +Quite often, when you execute a command on the shell, it prints out information +on the screen that is useful to store for later. You can store them in the +file using *redirection*. The `>` says redirects the output from the screen to +another location, such as a file, overwriting the current contents. The `>>` +does the same thing but it just appends the contents at the end. This loop just +prints the number and its square on the screen. +```bash +for i in 1 2 3 4 5 6 7 8 9 10 +do + let j=i*i + echo $i $j +done +``` +```output +1 1 +2 4 +3 9 +4 16 +5 25 +6 36 +7 49 +8 64 +9 81 +10 100 +``` +This loop does the same thing but saves it to a text file called `squares.txt` +```bash +for i in 1 2 3 4 5 6 7 8 9 10 +do + let j=i*i + echo $i $j >> squares.txt +done +``` +Now if we show the contents of `squares.txt`, we see it has the same information. +```bash +cat squares.txt +``` +```output +1 1 +2 4 +3 9 +4 16 +5 25 +6 36 +7 49 +8 64 +9 81 +10 100 +``` +Redirection can also be used for getting input using the `<` character. This finds the line where 64 is the answer. +```bash +grep 64 < squares.txt +``` +```output +8 64 +``` +Finally you can redirect output from one command into input of another command using the `|` character. In this case we are directing the output from the `echo` command from the screen to the input of the calculator command `bc`. +```bash +echo "242*242" | bc +``` +```output +58564 +``` +:::::::::::::::::::::::::::::: + +## Command line cheatsheet + +| Command | Name | Function | Example Usage | +| --- | --- | --- | --- | +| man | Manual | HELP! | `man cd` | +| pwd | Print working directory | Where am I? | `pwd` | +| mkdir | Make directory | Create a new directory | `mkdir dir1` | +| cd | Change directory | Go to the following location | `cd dir1` | +| ls | List | Shows what is inside a directory | `ls dir1` | +| cp | Copy | Copies a source file to a new destination | `cp src dest` | +| mv | Move | Moves a source file to a new destination | `mv source destination` | +| rm | Remove | Deletes a file or a directory | `rm dir1/bad_file` | +| cat | Concatenate | Prints out the contents of a file | `cat results.txt` | +| more | more | Prints out the contents of a file. Better for large files to scroll | `more results.txt` | +| nano, emacs, gedit | Text editor | Programs that edit plain text files (no formatting) | `emacs dir1/inputs.txt` `nano dir1/inputs.txt` | + +::::::::::::::::::::::::::::::::::::: keypoints + +- The command line interface is a low-level way of interacting with your computer +- It provides more control, more reliability, and more scalability than +manually interacting with a graphical user interface. +- Paths can be specified in two ways: an *absolute* path and a *relative* path. +The absolute path remains the same regardless of the current location, where +the relative path will change. +- Help can be found by typing the man command +:::::::::::::::::::::::::::::::::::::::::::::::: + diff --git a/episodes/fig/CommandLine.png b/episodes/fig/CommandLine.png new file mode 100644 index 0000000000000000000000000000000000000000..d5a479212a07aba91124fbb30a17c107723e3fa1 GIT binary patch literal 24660 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 N!9Cr(C3mdf{~!L4tFHh6 literal 0 HcmV?d00001 diff --git a/episodes/fig/spm_gui.jpg b/episodes/fig/spm_gui.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ebdc9ae63afec8bf616a5f91ad2600058d929f93 GIT binary patch literal 43991 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%0AK>*f>0t^N6pPd{%Fm84};y_{do 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