Course overviewCommand indexAbout
The command line for people who work on a shared server. Adapted from Linux Journey for an introductory Master's level bioinformatics course.
What Linux actually is, then reaching your server with ssh, keys and VS Code.
The fundamentals: navigating files and directories, and editing them with nano.
Redirection, pipes, and the tools for slicing text: grep, sort, uniq, cut, sed, awk.
Read, write and execute, and how to change them.
Variables, conditionals, loops, running many jobs, and how R and Python fit in.
Background jobs, screen sessions that survive a dropped connection, and htop.
Getting files on and off the server: wget, scp, rsync and tar.
Environment variables, PATH, startup files, installing software with conda, and disk space.
Accounts, groups, root and sudo, and the files behind them.
Package managers, repositories, and building from source.
Config files, agents, jump hosts and port forwarding, once the basics chafe.
Monitoring CPU, memory and I/O, and scheduling work with cron.
Where the system writes things down, and how to read it.
Where Linux came from, and how Ubuntu, Debian, Red Hat and the rest differ.
Disks, partitions, mounting, inodes and symlinks.
How Linux represents the hardware attached to your machine.
What happens between power on and a login prompt.
The core of the operating system, modules and system calls.
How services get started, from SysV through to systemd.
The models and layers that networking is built on.
IPv4, subnet math, CIDR, NAT and IPv6.
Routers, routing tables and the protocols between them.
Interfaces, routes, DHCP and ARP.
ping, traceroute, netstat and packet analysis.
Everything and more that you wanted to know about DNS.