文章索引
Learning Path
A Linux fundamentals learning path from system concepts to remote workflows, aimed at readers who are using Linux primarily on remote servers for the first time.
Operating System Basics
Many Linux problems look like "I don't know the command" on the surface, but the real issue is a mismatch in operating system concepts: why processes exist, why files need permissions, what memory and scheduling are actually managing.
Linux System Introduction
If you've primarily used computers through a graphical interface, Linux may initially feel very "command-line." This material helps you build a big-picture understanding first: what Linux is, what components make up the system, and which concepts will come up again and again in daily use.
Linux Beginner Quick Start Notes
A remote-server-centered introduction to the terminal, paths, permissions, processes, and logs that Linux beginners should learn first.
Linux Path Basics
Paths are one of the most fundamental concepts in Linux -- and one of the easiest to get stuck on at the beginning. Relative paths, absolute paths, current directory, home directory, system directory: if you don't sort these out first, you'll quickly run into "I typed it correctly, why can't the file be found?" situations when writing commands later.
Linux Permission Control
Permission issues are one of the most common blockers for beginners using servers: scripts won't execute, directories can't be written to, files can't be modified, services can't read configs. Often the problem isn't a complex command -- it's that the model of users, groups, and read/write/execute permissions hasn't clicked yet.
Linux Environment Variables
Environment variables may look like a bunch of scattered names and values, but they actually determine where commands look for executables, how programs run, and which default settings tools read. Once you understand variables like PATH, HOME, and LDLIBRARYPATH, many environment configuration issues go from "black magic" to something you can actually diagnose.
Linux Scheduled Tasks
Some tasks aren't suited for manual execution -- periodic backups, log cleanup, service status checks, recurring script runs. Linux scheduled tasks delegate these repetitive actions to the system.
Linux Module Usage
On clusters or shared servers, users typically aren't allowed to freely modify the system environment. Instead, software stacks like compilers, MPI, CUDA, and math libraries are switched via the module system. Knowing how to use modules directly affects whether you can correctly load the environment your work requires.
Vim Basics
Vim isn't necessarily everyone's favorite editor, but on remote servers it's often the most readily available tool. Knowing at least how to enter edit mode, save, quit, and search can save you from a lot of awkward moments when you first connect to a server.
Linux Software Compilation and Installation
Installing software on Linux sometimes isn't as simple as running apt install or conda install. Research code, performance libraries, legacy projects, and specific version dependencies will often lead you down the path of compiling from source.
Shell Environment Configuration in Linux
Many environment configuration issues surface at the moment the Shell starts: which config files get read, when variables take effect, and why settings disappear after opening a new terminal.
Shell Programming: echo Command
echo is one of the most unassuming yet frequently used commands in Shell. It can simply print a message, but it can also check variables, concatenate output, and help debug scripts.
Shell Programming: find Command
When you have lots of files, manually digging through directories level by level becomes very inefficient. The value of find is that it can locate files by name, type, size, time, permissions, and other criteria -- and then chain further batch operations.
Shell Programming: grep Command
grep solves the problem of "pull out the lines I care about from a pile of text." Reading logs, checking configs, locating errors, filtering command output -- many Linux troubleshooting actions rely on it repeatedly.
Shell Programming: Loops
Loops are the key step that turns a Shell script from "a single command" into an "automated workflow." Batch processing files, repeatedly checking status, executing tasks from a list -- these all rely on loop structures underneath.
Shell Programming: Conditional Statements
Whenever a script needs to do "if the file exists, do something," "only continue if the command succeeds," or "warn the user if the argument is empty," conditional statements come into play. They let scripts go beyond sequential execution and make choices based on the current environment.
Shell Programming: Redirection
Redirection is a very small but critical capability on the command line. Writing output to a file, saving errors separately, passing one command's result to another -- these are fundamental actions for daily troubleshooting and automation scripts.
Shell Programming: Regular Expressions
Regular expressions aren't just knowledge for programming languages. On the Linux command line, they're frequently used for searching logs, filtering files, and batch-processing text.