[201] Write getting-started section
All checks were successful
continuous-integration/laminar-elessar Build 63 succeeded in 56 seconds .

This commit is contained in:
Starbeamrainbowlabs 2019-10-21 12:43:34 +01:00
parent 8b0cd5d82b
commit 704e7286aa
Signed by: sbrl
GPG key ID: 1BE5172E637709C2

View file

@ -20,6 +20,69 @@ Despite this, links to some useful tutorials showing you how to do these things
- [Discord](http://discord.freeside.co.uk/)
- [Forums](https://forums.freeside.co.uk) - Login with your Freeside account (or get one [here](https://profiles.freeside.co.uk/login)!)
## Getting Started
This workshop will make use of a virtual machine running on the Department on Computer Science's cluster. 1 virtual machine has been allocated per student attending the workshop. To access it, click on the following link:
<http://www2.dcs.hull.ac.uk/people/cssaph/FreesideLinux201/>
Note that if you have turned up to the lab without having first filled out the registration form, you won't have access to a virtual machine. This is easily fixed however - simply talk to a Freeside Admin and they will get one allocated for you.
Once you've got access to your virtual machine, you can begin setting it up by following the instructions below. As it's a server, it won't have a graphical user interface. Instead, you'll be configuring it through the command line, or _terminal_ as it's known in the Linux world.
The Linux terminal (in this case) is _Bash_, and is very similar to the Windows command prompt, if you have any experience with that. There are a few command differences, but if you have experience with 1 then the other should feel at least somewhat familiar.
If you don't have command-line experience yet, don't worry! It's all part of the learning process. In short, on a command-line (or terminal), you enter text-based commands to tell the computer what you want it to do. Much like any other programming language, there are patterns and syntax rules - so try to look out for those. For example, things are always space-separated, and the first word is always the name of the command to execute:
```bash
nano myfile.txt
```
The above command launches the _nano_ text editor and tells it to open `myfile.txt`. If you forget the space, like this:
```bash
nanomyfile.txt
```
...then the server is probably going to get rather upset and throw an error:
```
nanomyfile.txt: command not found
```
Thankfully, the error message in this instance is fairly straight-forward and tells us what went wrong. In other cases the problem might not be so obvious, so don't forget that you can ask any of the Freeside Admins for assistance.
A good reference for Linux commands can be found here: <https://files.fosswire.com/2007/08/fwunixref.pdf>.
## Setting the hostname
The first thing we should do to our server is to give it a unique hostname. On _Ubuntu Server 18.04_, this is fairly easy to do:
```bash
sudo hostnamectl set-hostname INSERT_HOSTNAME_HERE
```
For this workshop, we'll use a standard naming convention. Please set your hostname to be the following:
```
linux201-server-XX
```
....where XX is the number of your server from the list linked to above. Notice the `sudo` in the command above. It's short for _super-user do_, and tells Linux that you want to run a command as an administrator. You'll have to type your password for this, which is a key security mechanism that's built-in to Linux. If you've been to _Linux 101_, it was explained in more detail there. For the curious, the Linux 101 slide deck can be found here:
<https://starbeamrainbowlabs.com/labs/Linux101/>
You might need to quickly restart your shell for this to take effect:
```bash
exec bash
```
You should now see that the prompt has changed to reflect the new hostname. If not, try rebooting:
```bash
sudo reboot
```
## Things to mention in the slide deck
-
@ -493,6 +556,8 @@ Be sure to join the [Freeside Discord](http://discord.freeside.co.uk/), where yo
## References and Further Reading
- [Linux command reference](https://files.fosswire.com/2007/08/fwunixref.pdf)
- [Learn your terminal (or command line)](https://starbeamrainbowlabs.com/blog/article.php?article=posts/242-Learn-Your-Terminal.html)
- [Nginx](https://www.nginx.com/)
- [How to Secure a Linux Server](https://github.com/imthenachoman/How-To-Secure-A-Linux-Server/)
- [SSL Certificates](https://letsencrypt.org)