01: Basic Terminal Skills
- Be able to find / open the terminal
- Be able to navigate filesystem within the Terminal
- Basic usage of linux commands
- This will become a table of contents (this text will be scraped).
Why do I care? Basically because all the self help on the internet will rely on you being able to reproduce what you messed up in a minimal example. A lot of errors at the early stages are often to do with set up and nothing to do with
python. Being able to run code in a minimal way in the terminal will give you confidence in programming in
python and be able to isolate
python issues from mor generic setup or configuration issues which can be very difficult to otherwise debug.
Opening a console on Mac OS X
OS X’s standard console is a program called
Terminal by navigating to Applications, then Utilities, then double-click the
Terminal program. You can also easily search for it in the system search tool in the top right.
The command line
Terminal is a tool for interacting with your computer. A window will open with a command line prompt message, something like this:
1 mycomputer:~ myusername$
Opening a console on Windows
Window’s console is called the Command Prompt, named
cmd. However it sucks. I would always recommend using
powershell. An easy way to
powershell to it is by using the key combination
Windows+R (Windows meaning the windows logo button), which should open a Run dialog. Then type
powershell and hit
Enter or click Ok. You can also search for it from the start menu. It should look like:
1 C: \ Users \ myusername>
powershell is not quite as powerful as its counterparts on Linux and OS X but they’ve copied all the relevant parts that we will want to use
Navigating around the
From this point onwards anything denoted like
will represent a
Terminal interface (this is not python!). The above represents running a command named
program in the
$ sign will just signify that we are in a terminal.
Moving around directories
These commands will soon become second nature & after some practice they are quite a lot faster than navigating the user interface file explorer!
Check what directory you are in (remember the command is just
$ pwd because the
$ just means you are in the terminal)
show what’s in the current directory
make a new directory (Check that this is there in the file explorer. This is a real folder that you created!)
1 mkdir newdirectory
enter this directory
1 cd directory
go up one directory
1 cd ..
show whats inside the directory (This is l for Llama and not the number 1!)
1 ls directory/
remove a file
1 rm file.ext
Change the path (rename) a file (and / or extension)
1 mv directory/file.dat anotherdirectory/file2.csv
remove a directory (I probabaly wouldn’t do this hastily!)
1 rm -r directory
-r is a known as a flag. This modifies the behaviour of the program
rm. IN this instance it allows
to delete directories which is otherwise a risky default ability.
These are pretty much all the commands you need. Try to familiarise yourself with them.
All of these commands e.g.
mkdir are all programs themselves that take in arguments from the command line depending on their operation.
Your local machine home directory is always denoted by
~/ (note the slashes are backwards in Windows so this is
~\for Windows machines)
These exercises aim to get you more comfortable with using the command line rather than being an actual problem solving task
Exercise 1.1: Creating directories
cdinto the directory
~. This symbol will default to the user’s home directory.
- Create a new directory named
tempin this directory
Exercise 1.2: Renaming directories
Change the name of this directory to
You can test this worked by doing
1 ls ~/pyl*
* will wildcard all text following it
Exercise 1.3: Create a file with contents
Run the following command to create a new file
Max OS X users do this
1 2 touch ~/pylrn/test.py echo print('Hello World') >> ~/pylrn/test.py
Windows users do this
Don’t worry about what this means - accept it just creates a file with
print('Hello World') inside. This had to be changed from a previous neater command as Windows keeps changing the powershell syntax and this was the only command I could gurantee worked on everyone’s machines!
1 "print('Hello World')" | Out-File ~/pylrn/test.py -encoding ascii
verify it is there with
1 ls ~/pylrn/*.py