Don’t be afraid of command line! It is friendly and powerful tool allowing to process large data and automate tasks. Practically identical is command line also in Apple macOS, BSD and another UNIX-based systems, not only in Linux. The course is designed for total beginners as well as intermediate advanced students. The only requirement is an interest (or need) to work in command line, typically on Linux computing server.
Knowledge of Linux/UNIX is useful e.g. for working with large molecular and another data on computing clusters like MetaCentrum. It is service provided by CESNET allowing access to huge computational capacity, which is readily available for all students and employees of Czech academic institutions to process their data. You can immediately use skills learned during the course. The course contains theoretical introduction as well as plenty of practical examples and exercises.
The course will be taught 4 days, while 3 days are for teaching and last day is for exams and individual consultations. Course participants can stay this last day (which is recommended), but it is not conditional.
Information are continuously updated in SIS. Schedules are also in SIS. The course will be taught in lecture hall OŽP B12 (1st mezzanine, Benátská 2, Prague 2) from January 15 to 18, 2024, from 9:00 AM to 4-5:00 PM (with enough breaks). I'd be glad if participants could fill a short questioner which will help me with preparation of the course and communication with participants.
The course will be combination of shorter talks followed by independent work of students, and room for questions and consultations, etc.
Depending on epidemiological situation the course can be in hybrid mode (not only in full attendance) or fully on-line only. Details will be updated according to the situation prior the course.
Syllabus
List of topics (might be edited according to wishes of participants):
- What it is UNIX, Linux, GNU, what are relationships among them, architecture of the system, kernel
- What does it mean "open-source", which licenses are in use, what is philosophy, trade model
- What are differences among various Linux distributions, how to find order in them, how to choose
- Linux graphical interface - graphical usage of Linux
- Trying using live CD/USB or virtualisation
- Special uses - rescue CD, BusyBox in embedded devices (NAS and another network devices, Android, …)
- Diversity of graphical interfaces vs. similarity in command line
- Installation, disk partitions, creating and control
- File systems, directory structure in Linux, file names and their conventions, where are configuration files and data
- File permissions, executability, ACL, another atributes
- Root and normal users, sudo
- Why it is important good text editor, what are possibilities, character encoding, differences among operating systems
- Command line: Shell - Bash and the others
- Variables, path to executable files, aliases, configuration of command line behavior
- Terminals and their emulators, multiple login, access to remote server
- Software management from command line (zypper, rpm, apt, aptitude), launching of the script, compilation
- Launching of Java applications
- Basic information about the system, free space, detection of the type of the file, hardware
- Users, change of password, services management (SystemD and others)
- Move within directory structure, searching
- Automated launching of tasks
- Viewing of processes and their killing
- Magic TAB key, history of commands, chaining of commands
- Standard input and output, redirects, pipes
- Work with text - reading, edition, selection of particular lines or columns, merging of files, writing into new files
- Common text editors in command line: Nano, MC, Vim, Emacs
- Comparison of text files, viewing changes
- Wildcards and special characters, escaping, regular expressions
- How to keep task running after login off - screen
- Work with documentation and searching for solutions
- Mounting of file systems, creations and control
- Writing of easy scripts - variables, conditions, forks, cycles, input parameters, exit values
- Parallelization of tasks - use of multicore CPUs
- Access to MetaCentrum of CESNET
- Launching of the tasks in MetaCentrum, basic script
- Launching of interactive and graphical tasks in MetaCentrum
- List of another offers of CESNET
- Basic monitoring of network
- Tracing historical versions of files (Git)
- And more... more topics will be added...
For course You need any computer with Linux - Linux-only machine, dualboot, virtualisation (image for VirtualBox is be available), or Cygwin or Linux subsystem in Windows 10, it doesn’t matter. Or another UNIX (osX and so on.). There will be a training server where we will connect to. It can be enough just to use Putty and login from Windows to this server, but it won’t be possible to do all the exercises on the server.