Using the command line (Terminal)
Useful commands
Command | Description |
---|---|
ls | List files in the current folder (directory) |
ls -l | List files, show file size and modification time etc. |
ls -a | List files, show also hidden files (filenames starting with a dot) |
ls -F | List files, display directories with a trailing slash |
pwd | Print current working directory Observe that / is used to separate the individual components (directory names) of the path |
cd DIRECTORY | Change working directory to DIRECTORY |
cd .. | Change working directory to parent directory |
mkdir DIRECTORY | Create new directory |
rmdir DIRECTORY | Remove (empty) directory |
rm FILENAME | Remove the file named FILENAME |
rm -rf DIRECTORY | Recursively remove the directory and all its contents. ![]() |
cp FILENAME DESTINATION | Copy the file named FILENAME file/directory to DESTINATION |
mv SOURCE DESTINATION | Move or rename the file or directory named SOURCE to DESTINATION . If DESTINATION is the name of an existing directory, the source file/directory will be moved to the new directory and keep its current name. If DESTINATION does not exist, the source file/directory will be renamed. |
less FILENAME | View the contents of the file. Press q to quit. See more shortcuts below. |
nano FILENAME | Edit the plaintext file (doesn't work for binary files). See more shortcuts below. |
man COMMAND | Show the help page for the given command. Same keyboard shortcuts as less . |
Keyboard shortcuts for the command line
Ctrl+a means: Press the Control key, press and release the a key, then release Control.
Escape, b means: Press and release the Escape key, then press and release the b key.
Keyboard shortcut | Function |
---|---|
Up/down arrows | Navigate your command history |
Left/right arrows | Move cursor |
TAB | Filename completion |
Ctrl+a | Move cursor to start of line |
Ctrl+e | Move cursor to end of line |
Escape, b | Move cursor one word to the left (backwards) |
Escape, f | Move cursor one word to the right (forwards) |
Escape, Backspace | Delete from cursor to start of word Delete previous word |
Escape, d | Delete from cursor to end of word Delete next word |
Ctrl+u | Delete from cursor to start of line |
Ctrl+k | Delete from cursor to end of line |
Ctrl+l | Clear screen |
Keyboard shortcuts for less
Keyboard shortcut | Function |
---|---|
Space | Jump one page forward |
b | Jump one page back |
g | Jump to beginning |
G | Jump to end |
q | Quit |
/ | Search forwards: Press / followed by your search term and press ENTER |
n | Jump to next occurrence of search string |
N | Jump to previous occurrence of search string |
The search string can be a regular expression.
Keyboard shortcuts for nano
See full list at nano-editor.org.
Ctrl+x means: Press the Control key, press and release the x key, then release Control.
Keyboard shortcut | Function |
---|---|
Ctrl+x | Exit. If you have made changes, it asks if you want to save first. |
Ctrl+s | Save |
Ctrl+o | Save as |
Ctrl+k | Cut current line into cutbuffer |
Ctrl+u | Paste contents of cutbuffer |
Ctrl+w | Search |
More on pathnames
The tilde (~
) is an alias for your home directory, that can simplify navigating to the right directory:
If your home directory is /Users/johndoe
, these are two equivalent ways of referring to your Documents
folder:
/Users/johndoe/Documents
~/Documents
To navigate back to your home directory, you can either run cd ~
, or just cd
without any parameters.
Also note the difference between absolute paths and relative paths:
- An absolute path always starts with a
/
or~
, and specifies the full location of a file/folder as observed from that computer. An absolute path is not constant across different computers. - All other paths are relative paths, which specify the location of a file/folder relative to your current working directory.
If you change your current working directory withcd SOMETHING
, a relative path will no longer refer to the same place, but given a specific directory these are still portable across different computers.
You should avoid using absolute paths in your code, this will make it difficult to run the code on a different computer:
- On your laptop, your home directory will typically be
/Users/<USERNAME>
(macOS) or/home/<USERNAME>
(Linux). - On our computing servers, your home directory will be somewhere else: Typically
/home/ahomeX/Y/<USERNAME>
or similar. - When connecting to your server home directory from your laptop, it will typically appear as
/Volumes/<USERNAME>
(macOS) or something completely different (Linux). - This means that if your program code is using absolute references when reading datasets or writing results, your computation will not run without modifications after being transferred from your laptop to our servers. Using relative references instead eliminates this problem.
Some examples:
- If your code lives in
/Users/johndoe/Documents/project3/
and wants to save output to a file in aresults
folder, for example/Users/johndoe/Documents/project3/results/output.csv
, - Then you should refer to the output file as
results/output.csv
instead. (Or./results/output.csv
, which has the same meaning.) - Similarly: From the
[…]/project3/src/
folder, you can refer to the[…]/project3/results/
folder as../results
(one level up fromsrc/
, then one level down again intoresults/
). - These paths can be nested: From the
/Users/johndoe/Documents/project/src/version2/
folder, the expression../../output/sim2/
will refer to/Users/johndoe/Documents/project/output/sim2/
(the../../output/sim2/
expression can be read as "first two levels up, then back into theoutput/
directory, and further in to thesim2/
subdirectory inside theoutput/
directory).
Recommended settings for macOS
If you are using macOS, we recommend changing these settings:
- Finder → Preferences:
- General → Show these items on the desktop: Tick the box Show Connected servers on the desktop.
- This will make network drives appear as an icon on your desktop, similar to an external disk.
- Sidebar → Show these items in the sidebar: Tick the box which contains your username and a picture of a house.
- This will make your home directory appear among the bookmarks in the left column in Finder.
- Finder → View:
- Enable Show Path Bar.
- This will add a line to the bottom of each finder Window, showing the path of the current folder.
- To copy the folder location as text, right-click on the folder in the Path Bar, then select Copy "…" as Pathname. This text can be pasted into Terminal or into your code editor.
- To open a new Terminal window in a given folder, right-click the folder and select Services → New Terminal at Folder.
- System Preferences → Security & Privacy → Privacy
- Add Terminal to the list of apps in the Full Disk Access section.
- This will make all the contents of your home directory available to the Terminal window.
- Without full disk access, you'll get a pop-up window the first time you navigate to your Documents folder, to a network folder, to your Downloads folder, etc., asking you to confirm that you want to allow Terminal to access these files.
Changing the look of the command prompt (macOS and Linux)
Especially on macOS, the default command prompt isn't very useful – it only shows the last path component of your current working directory.
To change the appearance of the command prompt so that it shows the current working directory, first check which shell you are using.
This will print out a single line, usually saying /bin/bash
or /bin/zsh
.
echo $SHELL
Changing the bash prompt
Edit your .bashrc
file in your home directory, for example by using nano
:
nano ~/.bashrc
Add this line at the end:
PS1="\w \$ "
See the bash
man page for other options (run man bash
and search for ^PROMPTING
).
Changing the zsh prompt
Edit your .zshrc
file in your home directory, for example by using nano
:
nano ~/.zshrc
Add this line at the end:
PROMPT="%~ %# "
See the zshall
man page for other options (run man zshall
and search for SIMPLE PROMPT ESCAPES
).
Other useful stuff
- Avoid special characters in filenames: Don't use /, \, $, {[<()>]}, space, ", ', :, …
- Letters, digits, underscore, minus, and extra dots are OK.
- In macOS, you can open files in graphical program from the command line with:
open FILENAME
Open the file in its default graphical program.open -a RStudio FILENAME
Open the file in the RStudio program (regardless of which is the default program).open .
Open ".", the current folder, in Finder.