Loomio

Basic command line and system administration online training camp for people want to contribute to Debian

PP Pirate Praveen Public Seen by 85

Introduction

During many debian packaging workshops we had to work with people who are very new to GNU/Linux and that slowed down the sessions considerably even when we clearly stated it is an advanced workshop. Now we should make sure they know these basics before accepting them to packaging workshop.

Reference: http://write.flossmanuals.net/command-line/introduction/ (thanks to @Mohammed Sadiq for the suggestion)

Schedule

Session 1 (2 hours) Handling files

Shell and kernel - basic idea about command line interface and graphical shell

Reference: https://www.thegeekdiary.com/unix-linux-what-is-a-shell-what-are-different-shells/

File operations - ls, cd, cp, mv, cat, less, touch, mkdir, rm,

Reference: https://www.howtogeek.com/107808/how-to-manage-files-from-the-linux-terminal-11-commands-you-need-to-know/

Hidden files for user specific configuration (.bashrc, .vimrc, .gitconfig etc).

Filesystem Hierarchy Standard (FHS) - location of various types of files in system. /etc, /usr/bin, /var/cache, /var/lib...

/usr/local and /opt

Reference: https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html

Exercise: Get root access via grub. Editing /boot for setting password for grub boot loader (could be completed later).

Documentation: man and /usr/share/doc

Environment variables and .bashrc/.zshrc

Reference: https://linuxhint.com/bash-environment-variables/

Notes: https://git.fosscommunity.in/jyothisjagan/notes-from-online-camp-for-newbies-to-debian/blob/master/session1.md

Session 2 (2 hours) Text editing and searching

Text Editing: vim/nano/emacs/micro

Search: grep, find

https://opensourceforu.com/2012/06/beginners-guide-gnu-grep-basics/

https://danielmiessler.com/study/find/

Find and replace: sed

https://www.poftut.com/ultimate-sed-tutorial-with-examples/

Notes: https://git.fosscommunity.in/jyothisjagan/notes-from-online-camp-for-newbies-to-debian/blob/master/session2.md

Session 3 (2 hours) Package management

Managing packages: apt (search, policy, install, remove, dist-upgrade),

https://wiki.debian.org/AptCLI

https://wiki.debian.org/apt-file

sources.list (installing from experimental/backports),

https://backports.debian.org/Instructions/

dpkg. Source packages (downloading, installing build dependencies and building).

https://wiki.debian.org/Packaging/SourcePackage

Setting up locales: apt install locales, dpkg-reconfigure locales (choose same locale as host like en_IN)

Session 4 (2 hours) File and User Permissions

Users and Groups: adduser, deluser

https://www.debianadmin.com/users-and-groups-administration-in-linux.html

File permissions: chmod, chown

https://ryanstutorials.net/linuxtutorial/permissions.php

Execution permission and $PATH. alias and creating custom commands.

root user and root privilege: sudo or su (never use root for something that can be done as normal user), gpasswd (give sudo access).

You are normally not supposed to login as root to reduce damages caused by mistakes. There are two common methods to gain root privileges after you login as normal user, su and sudo.

After you get # prompt with su -command as normal user, anything you run on that prompt will be run as root user. You will need to enter the root password.

Alternatively, any command prefixed with sudo will be run as root user, provided the user running that command must be allowed to use sudo command during installation or explicitly by root user later. Learn more about sudo at https://wiki.debian.org/sudo

Advanced permissions https://linoxide.com/how-tos/stickbit-suid-guid/

Session 5 (2 hours) Basics of network services

/etc/hosts, ip, ss (ss -aut) (ip and ports), nslookup/host/dig, ping

nginx basic setup with a custom domain name.

https://linuxize.com/post/how-to-install-nginx-on-debian-10/

Free domain names like .tk, .ml and setting up home page with gitlab pages.

Session 6 (2 hours) Git and SSH access

Account in git.fosscommunity.in (create project, clone, add, commit and push).

SSH keys and ssh clone (public key crypto).

How to join?

We will be using a matrix group for this purpose. You will need a Debian bare metal installation on your machine (we want to help people who want to contribute to Debian and hence using Debian is a first step. If you are using other distributions as your main OS, you can dual boot or convince your distro community to offer something similar). We hope people who attend these sessions to contribute to the projects the mentors are involved in (since we are not charging money for the sessions). You can either join as a mentor or a student. Mentors can list the projects they are involved with as suggested projects to contribute.

What is different about it? We already have many technical workshops

Most technical workshops focus on just teaching skills without giving an orientation or guidance to contribute to a Free Software project. We want to propose these sessions as training for people who want to contribute.

Can i use something like debian vagrant box/virtual machine or docker instead of dual booting?

No. The idea is to mentor people to contribute to Debian, so only those who can install it on their laptops are eligible, it is also a kind of filter to see if people are really interested to contribute. We have been organizing workshops without such requirements in the past and the results have not been very exciting.

We also do debian packaging sessions and mentor people always without such requirements too where people just use a container or virtual machine or schroot to get a debian unstable environment. You can directly start there if you already know the basics. You can start directly at https://www.loomio.org/d/LTpSdMuX/debian-packaging-pre-requisites and join #debian-browserify:diasp.in (via Matrix).

When will it start?

First batch is starting on December 7 and second batch starting on December 14. You can say hi to @praveen:poddery.com or @kannan:poddery.com or @bady:poddery.com on matrix to join the discussion group. If you are new to Matrix, checkout https://riot.im and install Riot app or any matrix client of your choice.

PP

Pirate Praveen Mon 9 Dec 2019 4:36AM

Invited to the group.

PP

Poll Created Wed 25 Dec 2019 5:31PM

When do you want the second session? Closed Sat 28 Dec 2019 2:03PM

How about December 28th/29th?

Results

UTC Votes SA SK JJ PM A A A
Sat 28 Dec 2019  2:30PM
4
 
 
 
 
 
 
 
Sun 29 Dec 2019  6:00PM
4
 
 
 
 
 
 
 

7 of 134 people have participated (5%)

PP

Poll Created Thu 2 Jan 2020 6:31PM

When do you want session 3? Closed Sat 4 Jan 2020 2:03PM

Outcome
by Pirate Praveen Sat 4 Jan 2020 5:39PM

Session 3 happened today and session 4 will happen tomorrow.

We will not be doing repeat sessions from now on. So we have to find a suitable time convenient to most.

Results

UTC Votes JJ
Sat  4 Jan 2020  2:30PM
1
 
Sun  5 Jan 2020  2:30PM
1
 

1 of 134 people have participated (0%)

PM

Prateek Mishra Fri 3 Jan 2020 5:01PM

4th will be fine for me.

B

Poll Created Sat 15 Feb 2020 3:54PM

When do you want session 5? Closed Fri 21 Feb 2020 4:03PM

Session 5 already started and basic network related commands are covered. Next topics are about configuring Nginx and setting up a custom domain. When do you want this session?

Results

UTC Votes JJ
Sat 22 Feb 2020  2:30PM
1
 
Sun 23 Feb 2020  2:30PM
0
 

1 of 134 people have participated (0%)