Basic command line and system administration online training camp for people want to contribute to Debian
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,
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/
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/
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://codema.in/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.
Poll Created Sat 16 Nov 2019 10:20AM
Would you like to be a mentor? Closed Sat 23 Nov 2019 10:01AM
If you are comfortable with any of the proposed sessions, you can sign up as a mentor and list projects you are involved with as suggested projects to students.
Results
Results | Option | Voters | |||
---|---|---|---|---|---|
|
Yes | 6 | |||
|
Undecided | 126 |
6 of 132 people have participated (4%)
Pirate Praveen
Sat 16 Nov 2019 10:21AM
I'd like to be a mentor and would like students to contribute to Debian and help maintain services run by FSCI.
Mohammed Sadiq
Sun 17 Nov 2019 5:25AM
only if happening on weekends and online via matrix/irc (and only for commandline)
Akash Sarda
Sun 17 Nov 2019 5:25AM
I can if I am in Pune
Kannan V M
Tue 19 Nov 2019 6:44PM
I can teach GNU/Linux basics
Pirate Bady
Wed 20 Nov 2019 10:19AM
I am willing to handle any of the proposed sessions.
Poll Created Sat 16 Nov 2019 10:26AM
Would you like to be a student? Closed Sat 30 Nov 2019 10:02AM
We have 23 registrations so far and we will have 2 batches - first batch starting on December 7 and second batch starting at December 14. Session 2 date poll https://codema.in/d/kVYl89A7/basic-command-line-and-system-administration-online-training-camp-for-people-want-to-contribute-to-debian/67
We are going to dedicate our time on you with the hope that you will contribute to the projects we are involved in. You will need a Debian bare metal installation on your laptop or willing to install it to qualify. You will also need to dedicate at least 8 hours a week for this. Once you vote yes here, contact @praveen:poddery.com via matrix to join the chat group.
Results
Results | Option | Voters | |||
---|---|---|---|---|---|
|
Yes | 23 | |||
|
Undecided | 111 |
23 of 134 people have participated (17%)
Raju Devidas
Sat 16 Nov 2019 10:43AM
I want to re-visit my System Administration skills
Akash Sarda
Sun 17 Nov 2019 6:37AM
I would love to contribute to debian
Prateek Mishra
Mon 18 Nov 2019 5:49PM
The content of this course is just perfect for a begginer like me.