一、初识 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 # 会逐个文件提示确认
相关推荐
BAOYUCompany4 小时前
暴雨服务器更懂人工智能+
运维·服务器·人工智能
一只小bit4 小时前
Linux网络:阿里云轻量级应用服务器配置防火墙模板开放端口
linux·网络·阿里云
智海观潮5 小时前
Unity Catalog与Apache Iceberg如何重塑Data+AI时代的企业数据架构
大数据·人工智能·ai·iceberg·catalog
嘉琪0015 小时前
实现视频实时马赛克
linux·前端·javascript
SpiderPex5 小时前
GitHub下载项目完整配置SSH步骤详解
运维·ssh·github
帽儿山的枪手5 小时前
HVV期间,如何使用SSH隧道绕过内外网隔离限制?
linux·网络协议·安全
柏峰电子6 小时前
市政道路积水监测系统:守护城市雨天出行安全的 “智慧防线”
大数据·人工智能·安全
睡觉的时候不会困6 小时前
基于三台主机搭建 Web 服务环境:Nginx、NFS 与 DNS 配置全流程
运维·nginx
@半良人6 小时前
Jenkins流水线部署+webhook2.0
运维·jenkins
邹诗钰-电子信息工程6 小时前
嵌入式基础知识复习(C语言)
linux·c语言·vim