思维导图





一、Linux 简介
1.1 什么是 Linux?
Linux 是一种自由、开源的类Unix操作系统内核,由林纳斯·托瓦兹 (Linus Torvalds) 在1991年首次发布。我们通常所说的 "Linux 系统",指的是基于 Linux 内核并集成了各种软件和工具的操作系统发行版 (Distribution)。1.2 常见的 Linux 发行版:
常见的发行版包括 Debian 系 (如 Debian, Ubuntu, Mint),Red Hat 系 (如 RHEL, CentOS, Fedora),以及 Arch Linux, SUSE Linux 等。1.3 Linux 的特点:
开源免费、安全稳定、多用户多任务、强大的命令行,以及“一切皆文件”的设计哲学。
二、Linux 文件系统结构
Linux 文件系统采用树形结构,所有文件和目录都始于根目录 /。
重要的目录及其作用:
/ - 根目录,所有路径的起点。
/bin - 存放所有用户可用的基本命令 (如 ls, cp)。
/sbin - 存放仅限系统管理员使用的管理命令 (如 ifconfig)。
/etc - 存放系统和应用的配置文件。
/home - 普通用户的家目录。
/root - 超级用户 (root) 的家目录。
/usr - 用户安装的应用程序和文件。
/var - 存放经常变化的文件,如日志 (/var/log)。
/tmp - 临时文件目录。
/dev - 设备文件目录。
/boot - 系统启动相关文件 (如内核)。
/proc - 内核和进程信息的虚拟文件系统。
三、基本的 Shell 命令
Shell 是一个 命令行解释器,它 接收用户输入并 交给操作系统内核执行。 Bash 是 最常用的Shell。3.1 目录操作命令:
-
ls:
列出目录内容。
- 语法结构:
ls [选项] [目录路径]
- 常用选项:
-l:
长格式显示,包含权限、所有者、大小、修改时间等详细信息。
-a: 显示
所有文件,包括以
. 开头的
隐藏文件。
-h:
人性化显示文件大小 (如 KB, MB, GB)。通常与
-l 配合使用。
-t: 按
修改时间排序,最新的在前面。
-R:
递归列出子目录内容。
代码示例:
bash ls ls -l /home ls -alh ls -lt /var/log
pwd:
显示当前工作
目录的绝对路径。
语法结构:
pwd
代码示例:
bash [root@redhat ~]# pwd /root
cd:
切换目录。
语法结构:
cd [目录路径]
常用用法:
cd /dir: 切换到
绝对或相对路径。
cd ..: 切换到
上一级目录。
cd ~ 或
cd: 切换到
当前用户的家目录。
cd -: 切换到
上一次所在的目录。
代码示例:
bash cd /etc/sysconfig/ cd .. cd cd -
mkdir:
创建新目录。
语法结构:
mkdir [选项] 目录名
常用选项:
-p:
递归创建。如果要创建的目录的父目录不存在,会自动创建。
代码示例:
bash mkdir project_a mkdir -p workspace/code/java
rm:
删除文件或目录。
语法结构:
rm [选项] 文件或目录
常用选项:
-f:
强制删除,不进行任何提示。
-r:
递归删除目录及其所有内容。
-i: 删除前
进行交互式确认。
代码示例:
bash rm temp.log rm -f temp.log rm -r old_backup rm -rf /path/to/very/dangerous/dir
3.2 文件操作命令:
touch:
创建空文件或
更新时间戳。
语法结构:
touch 文件名
代码示例:
bash touch my_note.txt
cp:
复制文件或目录。
语法结构:
cp [选项] 源 目标
常用选项:
-r:
递归复制目录。
-p:
保留源文件的
属性 (如修改时间、权限)。
代码示例:
bash cp file1.txt file1.bak cp file2.txt /home/user/documents/ cp -r my_app /opt/backup/
mv:
移动或
重命名文件或目录。
语法结构:
mv 源 目标
代码示例:
bash mv old_file.txt new_file.txt mv large_file.zip /tmp/
cat:
查看文件
全部内容。
语法结构:
cat [选项] 文件名
常用选项:
-n: 显示
行号。
代码示例:
bash cat /etc/hostname cat -n /etc/profile
head:
查看文件的
开头部分。
语法结构:
head [选项] 文件名
常用选项:
-n <行数>: 指定
显示的行数,例如
-n 20 显示前20行。
代码示例:
bash head /var/log/dmesg head -n 20 /var/log/dmesg
tail:
查看文件的
结尾部分。
语法结构:
tail [选项] 文件名
常用选项:
-n <行数>: 指定
显示的行数。
-f:
实时跟踪文件的新增内容 (Follow)。
代码示例:
bash tail /var/log/messages tail -n 100 /var/log/messages tail -f /var/log/secure
3.3 帮助命令:
man:
查看命令的
详细手册。
语法结构:
man 命令名
代码示例:
bash man ls
--help:
显示命令的
简要帮助。
语法结构:
命令名 --help
代码示例:
bash cp --help
## 四、常用的快捷键
4.1 自动补全与屏幕控制
Tab: 自动补全命令、文件名或路径,按一次尝试补全,按两次列出所有可能选项。Ctrl + L: 清屏,效果等同于 clear 命令。
4.2 光标移动与编辑
Ctrl + A: 将光标移动到行首。Ctrl + E: 将光标移动到行尾。Ctrl + U: 剪切从光标处到行首的全部内容。Ctrl + K: 剪切从光标处到行尾的全部内容。Ctrl + W: 剪切光标前的一个单词。Ctrl + Y: 粘贴 (Ctrl + U, K, W剪切) 的内容。Alt + B: 光标向左移动一个单词。Alt + F: 光标向右移动一个单词。
4.3 进程控制
Ctrl + C: 强制中断当前正在运行的程序。Ctrl + Z: 暂停 (挂起) 当前前台运行的程序,并将其放入后台。Ctrl + D: 输入文件结束符 (EOF),通常用于退出当前Shell会话或结束某些程序的输入。
4.4 历史命令
上/下箭头: 浏览上一个或下一个历史命令。Ctrl + R: 反向搜索历史命令,输入关键字即可查找。!!: 执行上一条命令。!n: 执行历史记录中第n条命令。!string: 执行最近一次以 "string" 开头的命令。
五、总结
本章初步介绍了Linux的基本概念、文件系统结构以及最核心的命令行操作。熟练掌握这些基础命令及其常用选项和快捷键是高效使用Linux系统的第一步。
练习题
请在您的Linux环境中完成以下操作,并写出所使用的命令。
题目:
- 在当前用户的主目录 (
~) 下,创建一个名为linux_practice的新目录。 - 进入你刚刚创建的
linux_practice目录。 - 在
linux_practice目录中,创建一个名为level1的子目录,并在level1目录中再创建一个名为level2的子目录 (要求使用一条命令完成)。 - 在
linux_practice目录中,创建一个名为notes.txt的空文件。 - 将
notes.txt文件复制一份,命名为notes_backup.txt。 - 将
notes.txt文件重命名为study_notes.txt。 - 查看
study_notes.txt文件的详细信息(包括权限、所有者、大小、修改时间等)。 - 将
study_notes.txt文件移动到level1/level2/目录下。 - 不切换目录,直接列出
level1/level2/目录下的所有文件。 - 删除
linux_practice目录及其下的所有内容 (包括子目录和文件)。
创建
linux_practice目录:mkdir ~/linux_practice解析:
mkdir是创建目录的命令。~/代表当前用户的主目录。进入
linux_practice目录:cd ~/linux_practice解析:
cd是切换目录的命令。递归创建多级子目录:
mkdir -p level1/level2解析:
mkdir命令配合-p(--parents) 选项可以创建不存在的父目录,实现一次性创建多级目录。创建空文件:
touch notes.txt解析:
touch命令用于创建空文件或更新文件时间戳。复制文件:
cp notes.txt notes_backup.txt解析:
cp命令用于复制文件,格式为cp source destination。重命名文件:
mv notes.txt study_notes.txt解析:
mv命令在同一目录下使用时,效果就是重命名。查看文件详细信息:
ls -l study_notes.txt解析:
ls是列出命令,-l(--long) 选项使其以长格式(详细信息)显示。移动文件:
mv study_notes.txt level1/level2/解析:
mv命令将文件移动到指定的目标目录。不切换目录列出子目录内容:
ls -l level1/level2/解析:
ls命令可以接受一个路径作为参数,来列出该路径下的内容,而不需要先cd过去。递归删除目录:
rm -rf ~/linux_practice解析:
rm是删除命令。-r(--recursive) 选项用于删除目录及其内容。-f(--force) 选项用于强制删除,不进行任何提示。此命令非常危险,使用前务必确认路径是否正确!
rm -r ~/linux_practice # 会逐个文件提示确认