一、初识 Linux 与基本命令

作者:IvanCodes

日期:2025年7月28日

专栏:Linux教程

思维导图





一、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环境中完成以下操作,并写出所使用的命令。

题目:

  1. 在当前用户的主目录 (~) 下,创建一个名为 linux_practice 的新目录。
  2. 进入你刚刚创建的 linux_practice 目录。
  3. linux_practice 目录中,创建一个名为 level1 的子目录,并在 level1 目录中再创建一个名为 level2 的子目录 (要求使用一条命令完成)。
  4. linux_practice 目录中,创建一个名为 notes.txt 的空文件。
  5. notes.txt 文件复制一份,命名为 notes_backup.txt
  6. notes.txt 文件重命名为 study_notes.txt
  7. 查看 study_notes.txt 文件的详细信息(包括权限、所有者、大小、修改时间等)。
  8. study_notes.txt 文件移动到 level1/level2/ 目录下。
  9. 不切换目录,直接列出 level1/level2/ 目录下的所有文件。
  10. 删除 linux_practice 目录及其下的所有内容 (包括子目录和文件)。

答案与解析:

  1. 创建 linux_practice 目录:
bash 复制代码
mkdir ~/linux_practice

解析: mkdir 是创建目录的命令。~/ 代表当前用户的主目录。

  1. 进入 linux_practice 目录:
bash 复制代码
cd ~/linux_practice

解析: cd 是切换目录的命令。

  1. 递归创建多级子目录:
bash 复制代码
mkdir -p level1/level2

解析: mkdir 命令配合 -p (--parents) 选项可以创建不存在的父目录,实现一次性创建多级目录。

  1. 创建空文件:
bash 复制代码
touch notes.txt

解析: touch 命令用于创建空文件或更新文件时间戳。

  1. 复制文件:
bash 复制代码
cp notes.txt notes_backup.txt

解析: cp 命令用于复制文件,格式为 cp source destination

  1. 重命名文件:
bash 复制代码
mv notes.txt study_notes.txt

解析: mv 命令在同一目录下使用时,效果就是重命名。

  1. 查看文件详细信息:
bash 复制代码
ls -l study_notes.txt

解析: ls 是列出命令,-l (--long) 选项使其以长格式(详细信息)显示。

  1. 移动文件:
bash 复制代码
mv study_notes.txt level1/level2/

解析: mv 命令将文件移动到指定的目标目录。

  1. 不切换目录列出子目录内容:
bash 复制代码
ls -l level1/level2/

解析: ls 命令可以接受一个路径作为参数,来列出该路径下的内容,而不需要先 cd 过去。

  1. 递归删除目录:
bash 复制代码
rm -rf ~/linux_practice

解析: rm 是删除命令。-r (--recursive) 选项用于删除目录及其内容。-f (--force) 选项用于强制删除,不进行任何提示。此命令非常危险,使用前务必确认路径是否正确!

bash 复制代码
rm -r ~/linux_practice # 会逐个文件提示确认
相关推荐
绵绵细雨中的乡音1 小时前
网络基础知识
linux·网络
Peter·Pan爱编程1 小时前
Docker在Linux中安装与使用教程
linux·docker·eureka
kunge20132 小时前
Ubuntu22.04 安装virtualbox7.1
linux·virtualbox
清溪5492 小时前
DVWA中级
linux
MUY09902 小时前
应用控制技术、内容审计技术、AAA服务器技术
运维·服务器
楠奕2 小时前
elasticsearch8.12.0安装分词
运维·jenkins
Sadsvit3 小时前
源码编译安装LAMP架构并部署WordPress(CentOS 7)
linux·运维·服务器·架构·centos
xiaok3 小时前
为什么 lsof 显示多个 nginx 都在 “使用 443”?
linux
java资料站3 小时前
Jenkins
运维·jenkins
Lx3523 小时前
Hadoop小文件处理难题:合并与优化的最佳实践
大数据·hadoop