codema.in

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

PP Pirate Praveen Public Seen by 244

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://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.

PP

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 MS KSK AS KVM PB PP
Undecided 126 BC RD NAJ JI RS DU J RM SUK TT KVS JKT S K ATK AS KA RT HT MK

6 of 132 people have participated (4%)

PP

Pirate Praveen
Yes
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.

MS

Mohammed Sadiq
Yes
Sun 17 Nov 2019 5:25AM

only if happening on weekends and online via matrix/irc (and only for commandline)

AS

Akash Sarda
Yes
Sun 17 Nov 2019 5:25AM

I can if I am in Pune

KVM

Kannan V M
Yes
Tue 19 Nov 2019 6:44PM

I can teach GNU/Linux basics

PB

Pirate Bady
Yes
Wed 20 Nov 2019 10:19AM

I am willing to handle any of the proposed sessions.

PP

Poll Created Sat 16 Nov 2019 10:26AM

Would you like to be a student? Closed Sat 30 Nov 2019 10:02AM

Outcome
by Pirate Praveen Wed 25 Dec 2019 5:33PM

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 RD S SA NP S DU SJ PS DU KSK JJ A PM AM R BSJ SG A AS KB
Undecided 111 PP BC NAJ MS JI RS DU J RM PB SUK KVM TT KVS JKT K ATK AS KA RT

23 of 134 people have participated (17%)

RD

Raju Devidas
Yes
Sat 16 Nov 2019 10:43AM

I want to re-visit my System Administration skills

AS

Akash Sarda
Yes
Sun 17 Nov 2019 6:37AM

I would love to contribute to debian

PM

Prateek Mishra
Yes
Mon 18 Nov 2019 5:49PM

The content of this course is just perfect for a begginer like me.

Load More