|
@@ -1,551 +0,0 @@
|
|
----
|
|
|
|
-marp: true
|
|
|
|
-title: An introduction to Linux
|
|
|
|
-author: P.Y. Barriat
|
|
|
|
-description: https://dev.to/nikolab/complete-list-of-github-markdown-emoji-markup-5aia
|
|
|
|
-backgroundImage: url('assets/back.png')
|
|
|
|
-_backgroundImage: url('assets/garde.png')
|
|
|
|
-footer: 13/04/2023 | An introduction to Linux | PY Barriat
|
|
|
|
-_footer: ""
|
|
|
|
-paginate: true
|
|
|
|
-_paginate: false
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-An introduction to Linux<!--fit-->
|
|
|
|
-===
|
|
|
|
-
|
|
|
|
-https://gogs.elic.ucl.ac.be/pbarriat/learning-linux
|
|
|
|
-
|
|
|
|
-![h:280](assets/www.makeuseof.com.png)
|
|
|
|
-
|
|
|
|
-**Pierre-Yves Barriat**
|
|
|
|
-ACELI Training Sessions `April 13th, 2023`
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# What is UNIX ?
|
|
|
|
-
|
|
|
|
-- Operating System
|
|
|
|
- > Windows 10 (Microsoft), MacOSX (Apple), Android (Google), etc
|
|
|
|
-- UNIX is a (family of) Operating System
|
|
|
|
-- Invented by AT&T Bell Labs in late 60's
|
|
|
|
-- Currently there are different versions and variants of UNIX
|
|
|
|
- > Solaris, AIX, HP-UX, etc.
|
|
|
|
-- UNIX is **not** free or Open Source: "GNU is Not UNIX"
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# What is Linux ?
|
|
|
|
-
|
|
|
|
-- GNU (80's) is a free, open source version of the UNIX OS, but without the most important element: the **kernel**
|
|
|
|
-- Linux kernel was developed in 1991 by Linus Torvalds, a Finnish graduate student
|
|
|
|
-- The association GNU/Linux is an operating system (say just "Linux") and provides an alternative to commercial operating systems
|
|
|
|
-- Linux exists without GNU (eg Android) : used to power a multitude of systems... from your phone to your smart fridge
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# What is a Linux distribution ?
|
|
|
|
-
|
|
|
|
-- Many versions of Linux
|
|
|
|
- > Red Hat, Debian, Suse, etc
|
|
|
|
-
|
|
|
|
-- But one common linux kernel: **kernel** is like an **engine**. A distribution is an actual car that hosts the engine
|
|
|
|
-
|
|
|
|
-- Distributions differ from
|
|
|
|
- - the application/management layer
|
|
|
|
- - GUI (Graphical User Interface = desktop environment)
|
|
|
|
- - software packages
|
|
|
|
- - help-desk, support, language
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# Why Linux ?
|
|
|
|
-
|
|
|
|
-- **Linux is free**
|
|
|
|
-- Linux is supported on older computers (perf & updates)
|
|
|
|
-- Linux has many more free applications
|
|
|
|
-
|
|
|
|
-`Security`: there are very few viruses for Linux
|
|
|
|
-`Privacy`: most Linux distributions don't collect your data at all
|
|
|
|
-`Reliability`: if you want to stop something, you really can
|
|
|
|
-`Updates`: package manager
|
|
|
|
-`Customisation`: you can make Linux look, feel and behave as you want it to
|
|
|
|
-`Command Line Interface:` faster & efficient
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-![bg left 100%](assets/win_mac.png)
|
|
|
|
-
|
|
|
|
-![h:280](assets/linuxvs.png)
|
|
|
|
-![h:150](assets/logolinux.png)
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# Linux Statistics
|
|
|
|
-
|
|
|
|
-![bg right 100%](assets/OS_developers.png)
|
|
|
|
-
|
|
|
|
-- 47% of professional **developers** use Linux-based operating systems (Statista)
|
|
|
|
-- Linux powers 39.2% of **websites** whose operating system is known (W3Techs)
|
|
|
|
-- Linux powers 85% of **smartphones** (Hayden James)
|
|
|
|
-
|
|
|
|
-<!-- _footer: "https://truelist.co/blog/linux-statistics/" -->
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-![bg right 95%](assets/Distrib.png)
|
|
|
|
-
|
|
|
|
-![h:260](assets/Desktop_Market.png)
|
|
|
|
-![h:260](assets/Server_Market.png)
|
|
|
|
-
|
|
|
|
-<!-- _footer: "https://truelist.co/blog/linux-statistics/" -->
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# Why not Linux ?
|
|
|
|
-
|
|
|
|
-1. Hardware compatibility (printers, etc)
|
|
|
|
-2. Missing famous software (MS Office, Adobe, CAO, etc)
|
|
|
|
-3. Gaming
|
|
|
|
-
|
|
|
|
-### Workarounds
|
|
|
|
-
|
|
|
|
-1. Many devices "Linux compatible"
|
|
|
|
-2. Emulation (eg virtualbox), online usage, alternatives (GIMP)
|
|
|
|
-3. Difficult, but it exists emulation and Steam
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# Distribution: why Ubuntu ?
|
|
|
|
-
|
|
|
|
-- easy to install and easy to use
|
|
|
|
-- easy to maintain and update
|
|
|
|
-- useful applications
|
|
|
|
-- looks nice
|
|
|
|
-- wide variety of supported applications
|
|
|
|
-- strong community support
|
|
|
|
-- better driver support
|
|
|
|
-- LTS and staging releases available as per user needs
|
|
|
|
-
|
|
|
|
-> get the latest Ubuntu LTS : [ubuntu-22.04.2-desktop-amd64.iso](https://releases.ubuntu.com/jammy/ubuntu-22.04.2-desktop-amd64.iso)
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# Test Linux inside Windows: how ?
|
|
|
|
-
|
|
|
|
-Using a virtual machine: test Linux without changing anything to your computer
|
|
|
|
-
|
|
|
|
-You need to install a VM and then install the Linux inside
|
|
|
|
-
|
|
|
|
-- Get a Virtual Machine: https://www.virtualbox.org/wiki/Downloads
|
|
|
|
- > VirtualBox + Extension Pack
|
|
|
|
-
|
|
|
|
-- Install Linux in a VM: [Install Linux Inside Windows Using VirtualBox](https://itsfoss.com/install-linux-in-virtualbox/)
|
|
|
|
- > Step by Step Guide
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# Linux GUI
|
|
|
|
-
|
|
|
|
-![bg right 95%](assets/GUI.png)
|
|
|
|
-
|
|
|
|
-A Linux distribution contains a [display server](https://www.google.com/search?tbm=isch&q=display+manager), a [window manager](https://www.google.com/search?tbm=isch&q=windows+manager) (manage windows, panel, menus, dash interfaces and core applications), and a [desktop environment](https://www.google.com/search?tbm=isch&q=graphical+interface) (eg status bars, drag-and-drop capabilities, etc)
|
|
|
|
-
|
|
|
|
-These 3 items are **bundled together** to make what is known as a `GUI environment`
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# Using Linux
|
|
|
|
-
|
|
|
|
-**Using Linux through a GUI environment is similar to Windows or MacOSX**
|
|
|
|
-
|
|
|
|
-Linux users do not install software the same way that Windows users do: Linux has a tool known as a `package manager`
|
|
|
|
-
|
|
|
|
-A package manager provides a way to search for software, install software, keep the software up to date and remove the software
|
|
|
|
-> Similar to Google or Apple store
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# Linux CLUI
|
|
|
|
-
|
|
|
|
-Using Linux with GUI, it's already great !
|
|
|
|
-**Using CLUI = unlock the power of Linux !**
|
|
|
|
-
|
|
|
|
-Each Linux system contains a terminal
|
|
|
|
-
|
|
|
|
-A terminal is where you enter Linux commands
|
|
|
|
-
|
|
|
|
-It's called the **C**ommand **L**ine **U**ser **I**nterface
|
|
|
|
-
|
|
|
|
-CLUI is one of the many strengths of Linux and can be more efficient than using the GUI
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# Linux CLUI
|
|
|
|
-
|
|
|
|
-- CLUI allows users to be independent of distros (or UNIX systems like OSX)
|
|
|
|
-- CLUI saves system resources which are consumed by GUIs
|
|
|
|
-- CLUI allows users to easily work at distance (SSH)
|
|
|
|
-- CLUI allows developers to join together simple (and less simple) commands to do complex things and automate... whatever you want to
|
|
|
|
-
|
|
|
|
-> People tend to think command line is difficult. It's not.
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# Linux Shell
|
|
|
|
-
|
|
|
|
-A **shell** is a program that takes commands from the keyboard and gives them to the operating system to perform
|
|
|
|
-
|
|
|
|
-The main function is to interpret your commands **= language**
|
|
|
|
-
|
|
|
|
-The **bash** shell is one of several shells available for Linux
|
|
|
|
-
|
|
|
|
-Learning the shell:
|
|
|
|
-
|
|
|
|
-> *"When you are a child you use a computer by looking at the pictures. When you grow up, you learn to read and write"*
|
|
|
|
-
|
|
|
|
-It's more or less like SMSing to your PC, telling it what to do
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# Linux Shell
|
|
|
|
-
|
|
|
|
-Shells have some built-in commands
|
|
|
|
-
|
|
|
|
-A shell also supports programming constructs, allowing complex commands to be built from smaller parts **= scripts**
|
|
|
|
-
|
|
|
|
-Scripts can be saved as files to become new commands
|
|
|
|
-> many commands on a typical Linux system are scripts
|
|
|
|
-
|
|
|
|
-An open terminal show you a **PROMPT** waiting for your commands
|
|
|
|
-
|
|
|
|
-Commands can have **options** and parameters
|
|
|
|
-
|
|
|
|
-All your commands are saved in a **history**
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# Linux Shell Demo
|
|
|
|
-
|
|
|
|
-Rename many files at once ?
|
|
|
|
-
|
|
|
|
-```bash
|
|
|
|
-mmv '*.JPG' '#1.jpg'
|
|
|
|
-```
|
|
|
|
-
|
|
|
|
-Download a youtube video ?
|
|
|
|
-
|
|
|
|
-```bash
|
|
|
|
-youtube-dl https://www.youtube.com/watch?v=G7KNmW9a75Y&ab_channel=MileyCyrusVEVO
|
|
|
|
-```
|
|
|
|
-
|
|
|
|
-Convert color pictures in BW at once ?
|
|
|
|
-
|
|
|
|
-```bash
|
|
|
|
-#!/bin/bash
|
|
|
|
-for file in *.jpg
|
|
|
|
-do
|
|
|
|
- convert ${file} -colorspace Gray "${file%.*}_bw.jpg"
|
|
|
|
- echo "${file}... converted"
|
|
|
|
-done
|
|
|
|
-```
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# Online Linux Demo
|
|
|
|
-
|
|
|
|
-- [Run Linux or other Operating Systems in your browser](https://bellard.org/jslinux/)
|
|
|
|
-- [Run bash (and others) scripts online ](https://rextester.com/l/bash_online_compiler)
|
|
|
|
-- [Free online containers and virtual machines that run full Linux systems](https://linuxcontainers.org/)
|
|
|
|
-- [Free GNU/Linux Online Terminal learning platform ](https://www.webminal.org/)
|
|
|
|
-
|
|
|
|
-- [CISM/ELIC Jupyter portal](https://jupyter.cism.ucl.ac.be)
|
|
|
|
- > you need a UCLouvain/CISM account: see [here](https://www.cism.ucl.ac.be/doc/_contents/About/cilog.html)
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# What you'll learn
|
|
|
|
-
|
|
|
|
-- Navigating the File System
|
|
|
|
- > Get up and running with the CLUI by navigating directories and files
|
|
|
|
-
|
|
|
|
-- Viewing and Changing Files and Directories
|
|
|
|
- > Learn to manipulate directories and files from the CLUI
|
|
|
|
-
|
|
|
|
-- Configuring the Environment
|
|
|
|
- > Learn to configure the environment using the CLUI
|
|
|
|
-
|
|
|
|
-- Accessing Linux remotely
|
|
|
|
- > Learn to use SSH (basics)
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# Navigating the File System
|
|
|
|
-
|
|
|
|
-A file system is a section of hard disk that has been allocated to contain files
|
|
|
|
-> it's arranged like hierarchical tree structure
|
|
|
|
-
|
|
|
|
-Files are grouped in the directory structure
|
|
|
|
-
|
|
|
|
-The top of the tree is called `root` and `/` is used to present the `root`
|
|
|
|
-
|
|
|
|
-![h:280](assets/arbo.png)
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-### Absolute paths
|
|
|
|
-
|
|
|
|
-In the tree `/users/usern/file1` is an absolute pathname
|
|
|
|
-
|
|
|
|
-### Relative paths
|
|
|
|
-
|
|
|
|
-If you are already in the `users` directory, the relative pathname for `file1` is `usern/file1`
|
|
|
|
-
|
|
|
|
-- `~` (tilda) points to the user's **home directory**. Useful if you are logging into a workstation with many users. It's the **default working directory** when you log in. If you are user `usern`, then `/users/usern/file1` is the same as `~/file1`
|
|
|
|
-
|
|
|
|
-- `.` refers to the current directory
|
|
|
|
-- `..` refers to the parent directory
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# Basic commands
|
|
|
|
-
|
|
|
|
-- `ls` : lists folders/files in a directory
|
|
|
|
-- `cd` : change directory
|
|
|
|
- > use `cd name` to navigate to directory name
|
|
|
|
-- `pwd` : print working directory. Prints the path of the current directory
|
|
|
|
-- `du` : disk usage. Shows the disk usage of the current directory
|
|
|
|
-- `man` : manual
|
|
|
|
- > use `man name` to bring up a manual entry for command or program called `name`
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-### Creation
|
|
|
|
-
|
|
|
|
-- `mkdir` : use `mkdir name` to create a new directory named `name` in the current directory
|
|
|
|
-- `cp` : use ```cp file1 file2``` to create `file2` which is a copy of `file1`
|
|
|
|
- > can also use `cp -r` to copy whole directories
|
|
|
|
-- `mv` : move = same as copy, but deletes the original file
|
|
|
|
-
|
|
|
|
-### Deletion
|
|
|
|
-
|
|
|
|
-- `rm` : delete files ( cannot recover your files after removed them ! )
|
|
|
|
- > can also use `rm -rf` to remove whole directories
|
|
|
|
-
|
|
|
|
-**Be careful : there is no trash in CLUI**
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-- `tab` is used for auto-complete ![h:80](assets/tab.png)
|
|
|
|
- > If a file/directory name was partly typed in, **tab will auto-complete** it
|
|
|
|
-
|
|
|
|
- > If there are multiple options, tab will auto-complete up to the point where the options branch and show you a list of possible options
|
|
|
|
-
|
|
|
|
-- `*` is used as a wild card
|
|
|
|
- > `rm blah*` removes all files which start with `blah`: eg `blah1`, `blah2`, and `blahblah` would all be removed
|
|
|
|
-
|
|
|
|
- > using `cp public/* private/` copies all files in a `public` directory into a `private` directory, and keeps all file names intact
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# File permissions
|
|
|
|
-
|
|
|
|
-### Groups
|
|
|
|
-
|
|
|
|
-Each file and directory has three user based permission groups
|
|
|
|
-
|
|
|
|
-- **owner** :the `owner` permissions apply only the owner of the file or directory, they will not impact the actions of other users
|
|
|
|
-- **group** : the `group` permissions apply only to the group that has been assigned to the file or directory, they will not effect the actions of other users
|
|
|
|
-- **all users** : the `all users` permissions apply to all other users on the system, this is the permission group that you want to watch the most
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-### Types
|
|
|
|
-
|
|
|
|
-Each file or directory has three basic permission types
|
|
|
|
-
|
|
|
|
-- **read** : the `read` permission refers to a user's capability to read the contents of the file
|
|
|
|
-- **write** : the `write` permission refer to a user's capability to write or modify a file or directory
|
|
|
|
-- **execute** : the `execute` permission affects a user's capability to execute a file or view the contents of a directory
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-The following command :
|
|
|
|
-
|
|
|
|
-```bash
|
|
|
|
-ls -l
|
|
|
|
-```
|
|
|
|
-gives :
|
|
|
|
-
|
|
|
|
-| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|
|
|
|
-| --------------- | --------------- | ------------ | ------- |----------- | ------- | ---------- |
|
|
|
|
-| `-rwxr-xr-x` | `1` | `dupont` | `grpelic` | `3528` | `2022-08-04` | `file_1` |
|
|
|
|
-| `drwxr-xr-x` | `3` | `dupont` | `grpelic` | `512` | `2022-01-02` | `dir_1` |
|
|
|
|
-| `lrwxr-xr-x` | `2` | `dupont` | `grpelic` | `210` | `2020-12-16` | `short -> /data` |
|
|
|
|
-| `-rw-------` | `1` | `dupont` | `grpelic` | `4587` | `2022-12-04` | `file_2` |
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# Linux privileges
|
|
|
|
-
|
|
|
|
-![bg right 70%](assets/sandwich.png)
|
|
|
|
-
|
|
|
|
-Linux has a robust permissions system: this is a very good thing, as it enables a **clear separation** of roles among users
|
|
|
|
-
|
|
|
|
-Especially between the `root` user and your `standard` user
|
|
|
|
-
|
|
|
|
-Sometimes, though, you might want your standard user to have **some** or **all** of root's privileges : this is accomplished with `sudo`
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# Shell syntax rules
|
|
|
|
-
|
|
|
|
-Shells use three **"standard I/O streams"**
|
|
|
|
-
|
|
|
|
-- `stdin` is the standard input stream, which provides input to commands.
|
|
|
|
-- `stdout` is the standard output stream, which displays output from commands.
|
|
|
|
-- `stderr` is the standard error stream, which displays error output from commands.
|
|
|
|
-
|
|
|
|
-Shell has several **meta-characters** and **control operators**
|
|
|
|
-
|
|
|
|
-> `|`, `&`, `>`, `;` , etc.
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# Environment
|
|
|
|
-
|
|
|
|
-In a bash shell many things constitute your environment
|
|
|
|
-
|
|
|
|
-- the form of your prompt
|
|
|
|
-- your home directory and your working directory
|
|
|
|
-- the name of your shell
|
|
|
|
-- functions that you have defined
|
|
|
|
-- etc.
|
|
|
|
-
|
|
|
|
-Environment includes many variables that may have been set **by bash** or **by you**
|
|
|
|
-> Access the value of a variable by prefixing its name with `$`
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# Environment variables
|
|
|
|
-
|
|
|
|
-- `USER` : the name of the logged-in user
|
|
|
|
-- `UID` : the numeric user id of the logged-in user
|
|
|
|
-- `HOME` : the user's home directory (similar to `~` )
|
|
|
|
-- `PWD` : the current working directory
|
|
|
|
-- `SHELL` : the name of the shell
|
|
|
|
-
|
|
|
|
-Set a shell variable : typing a name followed immediately by an equal sign ( `=` )
|
|
|
|
-> if the variable exists, you will modify it to assign the new value
|
|
|
|
-
|
|
|
|
-You can use special files to control bash variables : `$HOME/.bashrc`
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# Remote Linux Access
|
|
|
|
-
|
|
|
|
-`SSH` (or **S**ecure **SH**ell) is a **protocol** used to securely log onto remote systems
|
|
|
|
-> the most common way to access remote Linux and Unix-like servers
|
|
|
|
-
|
|
|
|
-`VNC` (or **V**irtual **N**etwork **C**omputing) is a **software** that allows a personal computer's desktop environment to be run
|
|
|
|
-
|
|
|
|
-Aside from bandwidth, latency and security issues (which can vary a bit), the big differences are the functionality
|
|
|
|
-- VNC exports a whole session, desktop and all (GUI)
|
|
|
|
-- SSH runs a single program (CLUI) and show its windows on your machine
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# Remote Linux using SSH
|
|
|
|
-
|
|
|
|
-You need:
|
|
|
|
-- an access to the distant machine : login/password
|
|
|
|
- > or a login with SSH keys (with passphrase)
|
|
|
|
-- the hostname or the IP address of the distant machine
|
|
|
|
-- and (of course) a UNIX terminal
|
|
|
|
-
|
|
|
|
-```bash
|
|
|
|
-ssh -X pbarriat@coriolis.elic.ucl.ac.be
|
|
|
|
-
|
|
|
|
-ssh -X -i ~/.ssh/id_rsa.ceci pbarriat@gwcism.cism.ucl.ac.be
|
|
|
|
-```
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# Remote Linux from Windows
|
|
|
|
-
|
|
|
|
-Using a SSH client to reach a distant Linux Workstation
|
|
|
|
-
|
|
|
|
-**mobaXTerm** is free and easy to use
|
|
|
|
-> allow you to test a Linux environmment but in CLUI only
|
|
|
|
-
|
|
|
|
-Get a SSH client
|
|
|
|
-https://mobaxterm.mobatek.net/download-home-edition.html
|
|
|
|
-
|
|
|
|
-How to use a SSH client
|
|
|
|
-https://support.ceci-hpc.be/doc/_contents/QuickStart/ConnectingToTheClusters/MobaXTerm.html
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# Linux text editors
|
|
|
|
-
|
|
|
|
-### GUI
|
|
|
|
-
|
|
|
|
-- nedit (simple text editor available in most distributions)
|
|
|
|
-- Kate, Gedit (KDE, Gnome)
|
|
|
|
-
|
|
|
|
-### CLUI
|
|
|
|
-
|
|
|
|
-- vi (available in all Unix systems) and **vim** (vi improved)
|
|
|
|
- > Difficult to learn for beginners used to graphical text editors
|
|
|
|
- > Very productive for power users
|
|
|
|
- > [Vim Cheatsheet](assets/vim-cheatsheet.pdf)
|
|
|
|
-- nano (friendly and easier to learn)
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# Scripting
|
|
|
|
-
|
|
|
|
-How to do a backup ?
|
|
|
|
-- with Dropbox or Google Drive ?
|
|
|
|
-- with a private cloud such as Nextcloud ?
|
|
|
|
-- with an other drive and/or an external drive ?
|
|
|
|
-
|
|
|
|
-Backup on external drive ?
|
|
|
|
-- manually ?
|
|
|
|
-- with Windows tools ?
|
|
|
|
-- with external softwares ?
|
|
|
|
-
|
|
|
|
-**Why don't do that with a simple linux script ?**
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-![h:600](assets/scripting.png)
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-# Conclusions
|
|
|
|
-
|
|
|
|
-| Advantages of Linux | Disadvantages of Linux |
|
|
|
|
-| --------------------- | ---------------------------------- |
|
|
|
|
-| Cost | Not easy to master ( **CLUI only** ) |
|
|
|
|
-| Security and robustness | Hardware compatibility issues ( sometimes ) |
|
|
|
|
-| Freedom | Not compatible with some Windows software |
|
|
|
|
-| Software ||
|
|
|
|
-| Development ||
|
|
|
|
-
|
|
|
|
----
|
|
|
|
-
|
|
|
|
-### Need to know more about available Linux applications ?
|
|
|
|
-
|
|
|
|
-[Check out the list of the best Linux software](https://www.makeuseof.com/tag/best-linux-software/)
|
|
|
|
-
|
|
|
|
-### Need help with bash scripting ?
|
|
|
|
-
|
|
|
|
-- [Bash Scripting Tutorial for Beginners](https://linuxconfig.org/bash-scripting-tutorial-for-beginners)
|
|
|
|
-- [My favorite CLUI cheatsheet](assets/Linux_CLI_Cheat_Sheet.pdf)
|
|
|
|
-- [Bash scripting cheatsheet](https://devhints.io/bash)
|
|
|
|
-
|
|
|
|
-### Need help with Ubuntu ?
|
|
|
|
-
|
|
|
|
-The massive community is one of Ubuntu's biggest strengths
|
|
|
|
-> Visit https://askubuntu.com/ or https://answers.launchpad.net/
|
|
|