Linux-101/index.html

375 lines
11 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8' />
<title>Linux 101 • Freeside</title>
</head>
<body>
<main class="js-deck3000">
<section>
<article class="title">
<h1>Linux 101</h1>
</article>
<article>
<h2>Structure</h2>
<ul>
<li>Introduction - why and where</li>
<li>Installation of Ubuntu</li>
<li>Writing and compiling a simple C&sharp; program</li>
</ul>
</article>
<article>
<h2>Why?</h2>
<div class="flex horizontal">
<div><img alt="A simple pie chart. Explained below." src="./images/linux-vs-windows-desktop-os.svg" aria-hidden="true" /></div>
<ul>
<li>74.44% Windows</li>
<li>12.22% macOS</li>
<li>9.51% Other</li>
<li>1.58% Linux</li>
</ul>
</div>
<p><small>According to <a href="http://gs.statcounter.com/os-market-share/desktop/worldwide">statcounter GlobalStats</a></small></p>
</article>
<article>
<h2>Why?</h2>
<div class="flex horizontal">
<div><img alt="A simple pie chart. Explained below." src="./images/linux-vs-windows-server-os.svg" aria-hidden="true" /></div>
<ul>
<li>69.4% of webservers use a Unix-based OS</li>
<li>30.6% of webservers use Windows</li>
</ul>
</div>
<p><small>
According to
<a href="https://w3techs.com/technologies/overview/operating_system/all">W<sup>3</sup>Techs</a>
</small></p>
</article>
<article>
<h2>Where?</h2>
<ul>
<li>US Department of Defence</li>
<!-- Largest Single Red Hat user in the world -->
<li>French Parliament</li>
<li>Amazon</li>
<li>Android</li>
</ul>
<p><small>Sources: <a href="https://www.comparebusinessproducts.com/fyi/50-places-linux-running-you-might-not-expect">1</a></small></p>
</article>
</section>
<section>
<article class="title">
<h1>Installing Ubuntu</h1>
</article>
<article>
<h2>What's Ubuntu?</h2>
<ul>
<li>A distribution of Linux</li>
<li>Others are available, but Ubuntu is great for beginners</li>
<li>Lots of help available online if you get stuck</li>
</ul>
</article>
<article>
<img src="./images/linux-logos.png" alt="The logos of a number of different linux distributions.">
</article>
<article>
<img src="./images/linux-timeline-17.10.svg" alt="A timeline of different linux distributions.">
</article>
<article>
<h2>Let's Get Started!</h2>
<ul>
<li>Open Hyper-V to access the VM</li>
</ul>
<!-- <ul>
<li>Visit here to access the VMs:</li>
<li><a href="http://www2.dcs.hull.ac.uk/people/cssaph/FreesideLinux101/">http://www2.dcs.hull.ac.uk/people/cssaph/FreesideLinux101/</a> (short link: <a href="https://tinyurl.com/freesidelinux101">https://tinyurl.com/freesidelinux101</a>)</li>
</ul> -->
</article>
<article>
<h2>Choosing the language</h2>
<img alt="Install step 0: Choosing the language" src="./images/VM-Install/0.png" />
</article>
<article>
<h2>Boot menu</h2>
<img alt="Install step 1: Boot menu" src="./images/VM-Install/1.png" />
</article>
<article>
<h2>Welcome</h2>
<img alt="Install step 2" src="./images/VM-Install/2.png" />
</article>
<article>
<h2>Keyboard Layout</h2>
<img alt="Install step 3: keyboard layout" src="./images/VM-Install/3.png" />
</article>
<article>
<h2>Initial Software and Updates</h2>
<img alt="Install step 4" src="./images/VM-Install/4.png" />
</article>
<article>
<h2>Partitioning</h2>
<img alt="Install step 5" src="./images/VM-Install/5.png" />
</article>
<article>
<h2>Dual Booting</h2>
<img alt="Install step 6" src="./images/VM-Install/6.png" />
</article>
<article>
<h2>I'm sure it's fine.....</h2>
<img alt="Install step 7" src="./images/VM-Install/7.png" />
</article>
<article>
<h2>Location</h2>
<img alt="Install step 8" src="./images/VM-Install/8.png" />
</article>
<article>
<h2>Credentials</h2>
<img alt="Install step 9" src="./images/VM-Install/9.png" />
</article>
<article>
<h2>Now we wait!</h2>
<img alt="Install step 10" src="./images/VM-Install/10.png" />
</article>
<article>
<h2>and wait</h2>
<img alt="Install step 12" src="./images/VM-Install/12.png" />
</article>
<article>
<h2>Complete!</h2>
<img alt="Install step 13" src="./images/VM-Install/13.png" />
</article>
<article>
<h2>Logging in</h2>
<img alt="Install step 14" src="./images/VM-Install/14.png" />
</article>
<article>
<h2>Type your password</h2>
<img alt="Install step 15" src="./images/VM-Install/15.png" />
</article>
<article>
<img alt="Install step 16" src="./images/VM-Install/16.png" />
</article>
<article>
<img alt="Install step 17" src="./images/VM-Install/17.png" />
</article>
<article>
<img alt="Install step 18" src="./images/VM-Install/18.png" />
</article>
<article>
<h2>The amazing <code>apt</code></h2>
<img alt="Install step 20" src="./images/VM-Install/20.png" />
</article>
<article>
<h2>Doing it manually</h2>
<img alt="Install step 21" src="./images/VM-Install/21.png" />
</article>
<article>
<h2>Done!</h2>
<ul>
<li>Installation complete!</li>
<li>What next?</li>
<li>Linux basics</li>
<li>Let's write some C&sharp;</li>
</ul>
</article>
</section>
<section>
<article class="title">
<h1>Linux Basics</h1>
</article>
<article>
<h2>Things to talk about</h2>
<ul>
<li>Similarities and differences to Windows</li>
<li>Filesystem structure</li>
<li>Typing your password with <code>sudo</code></li>
</ul>
</article>
<article>
<h2>Similarities and Differences</h2>
<ul>
<li>Command line → Terminal</li>
<li>Package management - more on this later</li>
<li>File system: ext4, not NTFS</li>
</ul>
</article>
<article>
<h2>Filesystem Structure</h2>
<ul>
<li>Everything starts with <code>/</code></li>
<li>...and everything is a file</li>
</ul>
</article>
<article>
<h2>Places to remember</h2>
<table>
<tr>
<td><code>/etc</code></td>
<td>Configuration files</td>
</tr>
<tr>
<td><code>/home</code></td>
<td>User home folders</td>
</tr>
<tr>
<td><code>/usr/bin</code></td>
<td>Program binaries (also other places; some are symlinks)</td>
</tr>
<tr>
<td><code>/var/log</code></td>
<td>Log files</td>
</tr>
<tr>
<td><code>/dev</code></td>
<td>Hardware devices</td>
</tr>
</table>
</article>
<article class="">
<h2>Typing your password</h2>
<ul>
<li>On Linux, typing your password is a key security mechanism</li>
<li>
Ask yourself:
<ul>
<li>"Why am I typing my password?"</li>
<li>"Do I understand what it's going to do?"</li>
<li>"Do I trust the program?"</li>
</ul>
</li>
<li>Ask for help / an explanation if unsure</li>
</ul>
</article>
</section>
<section>
<article class="title">
<h1>Let's Compile some C&sharp;!</h1>
</article>
<article>
<h2>Package Management</h2>
<ul>
<li>Most Linux distributions use a <em>package manager</em></li>
<li><em>Everything</em> is a package - from your kernel to the software that you use</li>
<li>Debian-based distributions use <code>apt</code></li>
<li>GUIs do exist - Synaptic</li>
</ul>
</article>
<article>
<h2>Mono</h2>
<ul>
<li><em>Mono</em> is the .NET runtime on Linux</li>
<li>Mono isn't available in the default <code>apt</code> repositories on Ubuntu</li>
<li>...so we need to add a new apt repository!</li>
<li><a href="https://www.mono-project.com/download/stable/">https://www.mono-project.com/download/stable/</a></li>
</ul>
</article>
<article>
<h2>Installation</h2>
<ul>
<li>We have the <code>apt</code> repository</li>
<li>Now we can install <code>Mono</code></li>
<li><code>sudo apt install mono-devel</code></li>
</ul>
</article>
<article>
<h2>Usage</h2>
<ul>
<li>The Linux terminal is similar to the Windows command prompt</li>
<li>Download a <em>Visual Studio</em> solution now if possible</li>
<li>Use a text editor to write a quick program otherwise</li>
</ul>
</article>
<article>
<h2>Usage (cont.)</h2>
<ul>
<li>We can use <code>csc</code> and <code>msbuild</code> to compile just like we do on Windows</li>
<li><code>csc MyFile.cs</code></li>
<li><code>msbuild</code></li>
</ul>
</article>
</section>
<section>
<article class="title">
<h1>Monodevelop</h1>
</article>
<article>
<h2>What's Monodevelop?</h2>
<ul>
<li>Writing C&sharp; code in a text editor is old-school</li>
<li>Like <em>Visual Studio</em>, but on Linux</li>
<li>Actually the base of <em>Visual Studio for Mac</em></li>
</ul>
</article>
<article>
<h2>Installing</h2>
<ul>
<li>Same prodecure as with Mono</li>
<li>Challenge: Can you install Monodevelop using what you've learnt?</li>
<li><a href="https://www.monodevelop.com/download/">https://www.monodevelop.com/download/</a></li>
</ul>
</article>
</section>
<section>
<article class="title">
<h1>Summary</h1>
</article>
<article>
<h2>Summary</h2>
<ul>
<li>We've installed Ubuntu</li>
<li>We've installed Mono</li>
<li>We've compiled some C&sharp;</li>
<li>We've looked at Monodevelop</li>
</ul>
</article>
<article>
<h2>Where next?</h2>
<ul>
<li>Web server setup</li>
<li>Application server setup</li>
<li>Git hosting</li>
<li><s>Email hosting</s></li>
<li>Decentralised Instant Messaging</li>
</ul>
</article>
<article>
<h2>Future Workshops</h2>
<ul>
<li>201: Securing a Linux server & hosting a static website</li>
<li>301: Deploying your application to a Linux server</li>
<li>Talks</li>
</ul>
</article>
<article>
<h2>Thanks for coming!</h2>
<ul>
<li>Bought to you by Freeside</li>
<li><div class="flex flex-align-centre">
<!-- <span>Feedback: <a href="https://forms.gle/CN2Pkm4fnHjGzs889">https://forms.gle/CN2Pkm4fnHjGzs889</a></span>
<img src="images/QR-Feedback.svg" aria-hidden="true" /> -->
<span>Feedback: <a href="https://forms.gle/cbWKnurf75Exi8ry8">https://forms.gle/cbWKnurf75Exi8ry8</a></span>
<img alt="A QR code of the aforementioned link" src="images/QR-Feedback.svg" aria-hidden="true" />
</div></li>
<li>Join us: <a href="https://freeside.co.uk/">https://freeside.co.uk/</a></li>
<li>Discord | Forums | PC Access</li>
<li>Questions?</li>
</ul>
</article>
</section>
</main>
<!---------------->
<link rel="stylesheet" href="linux101.css" />
<script src="linux101.js"></script>
</body>
</html>