# Linux 101

## Structure

- Introduction - why and where
- Installation of Ubuntu
- Writing and compiling a simple C♯ program

## Why?

- 74.44% Windows
- 12.22% macOS
- 9.51% Other
- 1.58% Linux

According to statcounter GlobalStats

## Why?

- 69.4% of webservers use a Unix-based OS
- 30.6% of webservers use Windows

According to W3Techs

## Where?

- US Department of Defence
- French Parliament
- Amazon
- Android

Sources: 1

# Installing Ubuntu

## What's Ubuntu?

- A distribution of Linux
- Others are available, but Ubuntu is great for beginners
- Lots of help available online if you get stuck

## Let's Get Started!

- Visit here to access the VMs:
- http://www2.dcs.hull.ac.uk/people/cssaph/FreesideLinux101/ (short link: https://tinyurl.com/freesidelinux101)

## Choosing the language

## Boot menu

## Welcome

## Keyboard Layout

## Initial Software and Updates

## Partitioning

## Dual Booting

## I'm sure it's fine.....

## Location

## Credentials

## Now we wait!

## and wait

## Complete!

## Logging in

## Type your password

## The amazing `apt`

##

## Doing it manually

## Done!

- Installation complete!
- What next?
- Let's write some C♯

# Let's Compile some C♯!

## Package Management

- Most Linux distributions use a package manager
- Everything is a package - from your kernel to the software that you use
- Debian-based distributions use `apt`

## Mono

- Mono is the .NET runtime on Linux
- Mono isn't available in the default `apt` repositories on Ubuntu
- ...so we need to add a new apt repository!
- https://www.mono-project.com/download/stable/

## Installation

- We have the `apt` repository
- Now we can install `Mono`
- `sudo apt install mono-devel`

## Usage

- The Linux terminal is similar to the Windows command prompt
- Download a Visual Studio solution now if possible
- Use a text editor to write a quick program otherwise

## Usage (cont.)

- We can use `csc` and `msbuild` to compile just like we do on Windows
- `csc MyFile.cs`
- `msbuild`

# Monodevelop

## What's Monodevelop?

- Writing C♯ code in a text editor is old-school
- Like Visual Studio, but on Linux
- Actually the base of Visual Studio for Mac

## Installing

- Same prodecure as with Mono
- Challenge: Can you install Monodevelop using what you've learnt?
- https://www.monodevelop.com/download/

# Summary

- We've installed Ubuntu
- We've installed Mono
- We've compiled some C♯
- We've looked at Monodevelop

## Where next?

- Web server setup
- Application server setup
- Git hosting
- Email hosting
- Decentralised Instant Messaging

## Thanks for coming!

- Bought to you by Freeside
- Feedback: https://forms.gle/CN2Pkm4fnHjGzs889
- Join us: https://freeside.co.uk/
- Discord | Forums | PC Access
- Questions?