LIN-001-EN Linux Introduction - command line skills
Duration: 1 day
The objective of the training is to introduce students to the use of command-line tools in Unix-like environments commonly used in modern DevOps, Cloud environments. The skills learnt in this training are prerequisites of other trainings in this catalog, skills which apply equally well in the following environments:
- Linux or other Unix derivatives
- macOS
- Windows when using WSL, git bash and other Linux tools
The training will cover the following skills:
- What is Unix, what is Linux ?
- What is the Shell ?
- Making remote connections to Linux
- Filesystems, devices
- Basic command tools
- Users, groups, processes, files, stdin, stdout
- Editing files at the command-line
- Using VSCode with Linux
- Unix tool philosophy
- Pipelines, environment variables
- Installing tools
The training consists of about 50% theory and 50% hands-on labs.
Training Outcomes
The training participant will acquire basic Linux skills allowing to understand and follow many DevOps or other tutorials, in particular:
- Working with and editing files
- Navigating the file system
- Using basic Linux commands
- Combining commands through pipelines
- The use of variables & environment variables
- More common Linux tools
- Writing scripts
Target Audience
This training is ideal for engineers with little or no experience with Linux or command-line working. Participants must provide their own PC with internet access, with the ability:
- to use a browser to connect to sites hosted on AWS
- to connect to AWS EC2 VMs using SSH: alternative connection methods can be provided
Pre-requisites
To take full advantage of this training, participants:
- despite inexperience, should be willing to work at the command line
Evaluation
At the beginning of the training we will verify the domain experience, if any, and any expectations of each participant. An accompaniment can be proposed at extra cost after the formation.
Programme
Proposed as a 1 day training, this may be extended according to specific needs.
Working from concrete examples, the following aspects will be covered
Module: What is an Operating System ?
- Review of different Operating Systems
- A brief history of Unixes and Linux
- Linux distributions (families), the Linux Kernel
- The Unix (Linux) philosophy
- The filesystem, disks, partitions, processes, users, groups, /proc, swap
- Binaries, Libraries, Include files, Device files
- Everything is a file
Module: Using Linux
- Logging in
- Shells (bash, fish, zsh), shell history
- Navigating the Filesystem (cd, ls, pwd, df, du, tree, find)
- Basic linux commands (id, whoami, cat, touch, mv, cp, rm, ps, sleep)
- variables, environment variables, aliases, $PATH
- Graphical environments
Module: Working with Linux
- Editing files with vi (vi, vim, neovim), emacs, nano …
- Command-line editing
- man pages
- Connecting using VSCode
- Using VSCode the Remote Shell extension
- Using VSCode extensions
Module: More Linux Commands
- Common linux text manipulation tools (sed, awk, perl, tac, head, tail, tr, sort, uniq, diff)
- More common commands (tee, xargs, pstree, wc)
- Pipes, redirection, stdin, stdout, signals, kill
- Quoting
- Regular expressions Globbing
- rsync, mkdir, rmdir, top, tmux
Module: Writing scripts
- Using loops (for, while, until)
- error codes
- Using pipes
- Specifying an interpreter with Shebang notation
- Heredocs
Module: Package management
- Installing and managing tools (using apt, apt-get, dpkg)
- Listing, removing, upgrading tool packages
- Archiving and compressing files (zip, tar, xz)
- System services
Module: Virtualization
- Virtualization (kvm, virtualbox, proxmox)
- Containers (LXC, Docker, Podman)
- Container Orchestration (Docker Swarm, Kubernetes, AWS ECS)|
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.