文章目录
- 什么是linux?
- 一、Linux基本命令
- 1.ls
- 2.pwd
- 3.cd
- 4.touch
- 5.mkdir
- 6.rm && rmdir
- 7.man
- 8.cp
- 9.mv
- 10.cat
- 11.more
- 12.less
- 13.head
- 14.tail
- 15.date
- 16.cal
- 17.find
- 18.which
- 19.whereis
- 20.alias
- 21.grep
- 22.zip/unzip && rzsz
- 23.bc
- 24.uname -r
- 二、shell命令及运行原理
什么是linux?
Linux 是一种开源的类 Unix 操作系统内核,同时也是基于该内核构建的操作系统生态系统的统称。
1. 内核与操作系统
内核(Kernel):
Linux 的核心是内核,负责管理硬件资源(如 CPU、内存、磁盘)、进程调度和系统安全。
其设计遵循 POSIX 标准(一种类 Unix 系统的兼容性规范),支持多任务、多用户操作。
操作系统}= 内核 + 系统工具+ 应用程序操作系统发行版(Distribution):
用户实际使用的 "Linux" 通常指 Linux 发行版(如 Ubuntu、CentOS、Debian),包含内核、软件包管理工具、图形界面(如 GNOME、KDE)及常用应用软件。
2. 开源特性
- Linux 遵循 GPL 协议(GNU General Public License),允许用户自由使用、修改和分发源代码。
- 社区驱动开发模式使其具备高灵活性与强安全性,开发者可针对需求定制系统。
3. 技术优势
- 稳定性:服务器领域占比超 90%(如 Web 服务器、云计算平台)。
- 轻量化:内核模块化设计,适合嵌入式设备(如路由器、智能家电)。
- 开发友好:提供强大的命令行工具(如
grep、sed)和编程环境(支持 C/C++、Python 等)。
4. 典型应用场景
领域 示例 服务器/云计算 AWS、Google Cloud 底层支持 嵌入式系统 智能电视、物联网设备 开发环境 Docker 容器、持续集成工具 科研计算 高性能计算集群(HPC)
5. 常见发行版选择建议
- 初学者:Ubuntu(图形界面友好)
- 服务器:CentOS 或 Debian(稳定性优先)
- 定制化:Arch Linux(模块化设计)
一、Linux基本命令
1. ls - 列出目录内容
功能: 列出当前目录或指定目录下的文件和子目录。
常用选项:
-l: 长格式显示(详细信息)。-a: 显示所有文件,包括隐藏文件(以.开头)。-h: 以人类可读的格式显示文件大小(例如KB、MB)。
例子:
# 列出当前目录内容
ls
# 列出详细信息,包括隐藏文件
ls -la
# 列出指定目录(如/home)的内容
ls /home
2. pwd - 打印当前工作目录
功能: 显示当前所在的绝对路径。
常用选项: 无常用选项,直接使用即可。
例子:
# 显示当前目录路径
pwd
3. cd - 更改目录
功能: 切换到指定目录。
常用选项:
..: 上级目录。~: 用户主目录。
例子:
# 切换到用户主目录
cd ~
# 切换到上级目录
cd ..
# 切换到指定目录(如/etc)
cd /etc
4. touch - 创建空文件或更新文件时间戳
功能: 创建一个新空文件,或更新已有文件的访问和修改时间。
常用选项:
-a: 只更新访问时间。-m: 只更新修改时间。
例子:
# 创建一个新文件(如test.txt)
touch test.txt
# 更新文件时间戳(如果文件存在)
touch -m existing_file.txt
5. mkdir - 创建目录
功能: 创建一个或多个新目录。
常用选项:
-p: 递归创建父目录(如果不存在)。
例子:
# 创建单个目录(如new_dir)
mkdir new_dir
# 递归创建目录结构(如dir1/dir2)
mkdir -p dir1/dir2
6. rm 和 rmdir - 删除文件和目录
功能:
rm: 删除文件或目录(可递归删除)。rmdir: 删除空目录(只能删除空目录)。
常用选项(针对rm):-r: 递归删除目录及其内容。-f: 强制删除,不提示确认。
例子:
# 删除文件(如file.txt)
rm file.txt
# 递归删除目录(如dir),包括所有内容
rm -r dir
# 删除空目录(如empty_dir)
rmdir empty_dir
7. man - 显示命令手册页
功能: 查看命令的帮助手册。
常用选项: 无常用选项,直接跟命令名。
例子:
# 查看ls命令的手册
man ls
8. cp - 复制文件或目录
功能: 复制文件或目录到指定位置。
常用选项:
-r: 递归复制目录。-i: 交互模式,覆盖前提示。
例子:
# 复制文件(如source.txt到dest.txt)
cp source.txt dest.txt
# 递归复制目录(如dir1到dir2)
cp -r dir1 dir2
9. mv - 移动或重命名文件或目录
功能: 移动文件/目录到新位置,或重命名。
常用选项:
-i: 交互模式,覆盖前提示。
例子:
# 重命名文件(如old.txt到new.txt)
mv old.txt new.txt
# 移动文件到指定目录(如file.txt到dir)
mv file.txt dir/
10. cat - 连接文件并打印内容
功能: 显示文件内容,或将多个文件合并输出。
常用选项:
-n: 显示行号。
例子:
# 显示文件内容(如file.txt)
cat file.txt
# 合并两个文件并输出
cat file1.txt file2.txt
11. more - 分页显示文件内容
功能: 分页查看文件内容(只能向下滚动)。
常用选项: 无常用选项,直接跟文件名。
例子:
# 分页查看文件(如large_file.txt)
more large_file.txt
12. less - 分页显示文件内容(更强大)
功能: 类似more,但支持向上/向下滚动和搜索。
常用选项:
/pattern: 在文件中搜索模式。
例子:
# 分页查看文件(如log.txt)
less log.txt
# 在less中搜索"error"
/log.txt # 输入"/error"后按Enter
13. head - 显示文件开头部分
功能: 显示文件的前几行(默认10行)。
常用选项:
-n: 指定显示行数。
例子:
# 显示文件前10行(如data.txt)
head data.txt
# 显示文件前5行
head -n 5 data.txt
14. tail - 显示文件结尾部分
功能: 显示文件的最后几行(默认10行),常用于查看日志。
常用选项:
-n: 指定显示行数。-f: 实时跟踪文件变化(常用于日志监控)。
例子:
# 显示文件最后10行(如server.log)
tail server.log
# 实时跟踪日志文件
tail -f server.log
15. date - 显示或设置系统日期和时间
功能: 显示当前日期和时间,或设置系统时间(需要权限)。
常用选项:
+%format: 自定义输出格式。
例子:
# 显示当前日期和时间
date
# 显示自定义格式(如年月日)
date +"%Y-%m-%d"
16. cal - 显示日历
功能: 显示当前月或指定月份的日历。
常用选项:
-3: 显示前月、本月、后月。-y: 显示全年日历。
例子:
# 显示本月日历
cal
# 显示指定年份(如2023)的全年日历
cal -y 2023
17. find - 搜索文件
功能: 在指定目录树中搜索文件,基于名称、类型等条件。
常用选项:
-name: 按文件名搜索。-type: 按文件类型搜索(如f为文件,d为目录)。
例子:
# 在当前目录搜索名为"config.txt"的文件
find . -name "config.txt"
# 在/home目录搜索所有目录
find /home -type d
18. which - 显示命令的完整路径
功能: 查找命令的绝对路径(在PATH环境变量中)。
常用选项: 无常用选项。
例子:
# 查找ls命令的路径
which ls
19. whereis - 定位命令的二进制、源文件和手册页
功能: 显示命令的二进制文件、源文件(如果存在)和手册页位置。
常用选项:
-b: 只显示二进制文件。-m: 只显示手册页。
例子:
# 查找gcc命令的相关文件
whereis gcc
20. alias - 创建命令别名
功能: 为命令创建简短的别名(仅在当前会话有效)。
常用选项: 无常用选项,直接定义别名。
例子:
# 创建别名(如ll代替ls -l)
alias ll='ls -l'
# 使用别名
ll
21. grep - 搜索文本模式
功能: 在文件或输入中搜索匹配的文本模式(支持正则表达式)。
常用选项:
-i: 忽略大小写。-r: 递归搜索目录。
例子:
# 在文件中搜索"error"(忽略大小写)
grep -i "error" log.txt
# 递归搜索目录中的"pattern"
grep -r "pattern" /path/to/dir
22. zip/unzip 和 rz/sz - 压缩解压缩和文件传输
功能:
zip/unzip: 压缩和解压缩文件(.zip格式)。rz/sz: 用于通过串行端口传输文件(常用于终端仿真器)。
常用选项(针对zip/unzip):-r: 递归压缩目录。
例子:
# 压缩文件(如压缩dir为archive.zip)
zip -r archive.zip dir
# 解压缩文件
unzip archive.zip
# 使用rz接收文件(需要终端支持)
rz
# 使用sz发送文件(如file.txt)
sz file.txt
23. bc - 任意精度计算器
功能: 执行数学计算(支持浮点和高精度)。
常用选项:
-l: 加载数学库(支持高级函数)。
例子:
# 启动计算器交互模式
bc
# 计算表达式(如2+2)
echo "2+2" | bc
# 使用数学库计算平方根
echo "sqrt(16)" | bc -l
24. uname -r - 显示内核版本
功能: uname命令显示系统信息,-r选项指定显示内核版本。
常用选项:
-r: 只显示内核版本。
例子:
# 显示当前内核版本
uname -r
二、shell命令及运行原理
Shell 命令基础概念
Shell 是用户与操作系统内核交互的接口,通过命令行界面(CLI)接收用户输入的命令并执行。常见的 Shell 包括 Bash、Zsh、Fish 等,其中 Bash 是 Linux 和 macOS 的默认 Shell。
Shell 命令运行流程
-
输入解析
用户在终端输入命令后,Shell 会按空格分割参数,识别命令名称(如ls)和选项(如-l)。特殊字符(如*、|)会被 Shell 优先处理。 -
命令查找
Shell 通过PATH环境变量定义的路径列表查找可执行文件。例如输入ls,Shell 会依次检查/bin/ls、/usr/bin/ls等路径。 -
进程创建与执行
找到命令后,Shell 调用fork()创建子进程,子进程通过exec()系列函数加载命令程序并替换当前进程。父进程(Shell)默认会等待子进程结束(同步执行)。 -
输入输出重定向
符号>、<、|会由 Shell 处理:>将命令输出重定向到文件(覆盖)。2>重定向错误输出。|将前一个命令的输出作为后一个命令的输入。
常用 Shell 命令示例
-
文件操作
ls -l /home # 列出目录详情 cp file1 file2 # 复制文件 grep "text" file # 搜索文件内容 -
进程管理
ps aux # 查看所有进程 kill -9 PID # 强制终止进程 nohup command & # 后台运行并忽略挂断信号 -
权限控制
chmod 755 script.sh # 设置文件权限 sudo command # 以超级用户权限执行
Shell 脚本执行原理
-
脚本解析
脚本首行#!/bin/bash(Shebang)指定解释器。系统调用解释器执行脚本内容。 -
变量与环境
脚本中的变量默认为局部变量,export VAR可设为环境变量,子进程会继承父进程的环境变量。 -
执行控制
if [ -f file ]; then # 条件判断 echo "File exists." fi
高级特性
-
命令替换
echo "Today is $(date)" # 将 `date` 的输出嵌入字符串 -
后台任务
command & # 后台运行 jobs # 查看后台任务 fg %1 # 将任务 1 切换到前台
4212

被折叠的 条评论
为什么被折叠?



