1. alias指令在 Linux 终端里敲命令有些组合非常长且难记。为了提高效率Linux 提供了alias命令让你可以给常用的长命令设置一个简短的“别名”。1.1 功能说明用于设置或查看命令的别名。设置后你可以直接输入别名来执行原本复杂的命令省时又省力。1.2 基本语法alias # 查看当前系统所有已设置的别名 alias [别名][原始命令及参数] # 设置别名 unalias [别名] # 删除别名1.3 实战示例创建并验证别名假设我们经常需要查看目录的详细信息每次都敲ls -a -l -n太麻烦了我们给它起个简单的名字叫hello。第一步设置别名alias hellols -a -l -n第二步验证别名是否生效可以使用which或直接敲别名看效果。which hello输出解析alias hellols -a -l -n -- 确认这是一个别名定义 /usr/bin/ls -- 实际执行的底层命令第三步使用别名现在直接输入hello试试hello输出解析total 36 drwxrwxr-x 2 1003 1003 4096 Jan 11 17:59 . drwx------ 22 1003 1003 4096 Jan 11 17:57 .. -rw-rw-r-- 1 1003 1003 28667 Jan 11 18:29 temp.txt注意这里显示的是带 UID/GID 的数字而不是用户名/组名因为-n参数的作用。补充1. alias设置的别名通常在当前终端会话中有效。如果想永久生效需要将别名配置写入~/.bashrc或~/.zshrc文件中。# 编辑.bashrc文件 [whbbite-alicloud ~]$ vim ~/.bashrc # 在文件末尾添加以下内容 alias mkdirpmkdir -p # 递归创建目录 alias rmrfrm -rf # 强制递归删除目录/文件 # 使配置生效 [whbbite-alicloud ~]$ source ~/.bashrc # 测试别名 [whbbite-alicloud test]$ mkdirp a/b/c/d # 等同于mkdir -p a/b/c/d [whbbite-alicloud test]$ tree a a └── b └── c └── d 3 directories, 0 files [whbbite-alicloud test]$ rmrf a # 等同于rm -rf a [whbbite-alicloud test]$ ls a ls: 无法访问a: 没有那个文件或目录2. 当设置的别名不想使用时可以使用unalias指令将别名删除。# 查看所有别名 [whbbite-alicloud test]$ alias alias cpcp -i alias hellols -a -l -n alias mkdirpmkdir -p alias mvmv -i alias rmrm -i alias rmrfrm -rf alias lsls --colorauto # 删除hello别名 [whbbite-alicloud test]$ unalias hello [whbbite-alicloud test]$ hello -bash: hello: 未找到命令2. grep指令在 Linux 终端中面对动辄上万行的日志或配置文件如何快速找到我们需要的信息grep命令就是解决这个问题的终极利器。它能在文件中搜索指定的字符串并将匹配的行打印出来。2.1 基本语法grep [选项] 搜寻字符串 文件2.2 常用选项-i忽略大小写。在搜索时不区分字母的大小写非常实用。-n显示行号。在输出结果前标明该行在文件中的具体行数方便定位。-v反向选择。默认是显示匹配的行加上-v则显示不匹配的行常用于排除特定内容。3.3 实战示例首先我们准备一个测试文件temp.txt内容如下abcd ABCD hello bite 12341. 基础搜索最基本的用法搜索包含abcd的行。grep abcd temp.txt输出abcd2. 忽略大小写搜索 (-i)搜索abcd但不区分大小写结果会同时匹配abcd和ABCD。grep -i abcd temp.txt输出abcd ABCD3. 显示行号 (-n)想知道匹配内容在第几行吗加上-n。grep -n abcd temp.txt输出1:abcd4. 组合使用 (-ni)忽略大小写的同时显示行号这是最常用的组合之一。grep -ni abcd temp.txt输出1:abcd 2:ABCD5. 反向选择 (-v)找出不包含​abcd的所有行。grep -v abcd temp.txt输出ABCD hello bite 12346. 反向选择并显示行号 (-vn)排除abcd的同时看看剩下内容都在第几行。grep -vn abcd temp.txt输出2:ABCD 3:hello 4:bite 5:12343. top指令在 Linux 系统运维中实时监控系统的运行状态和进程资源占用是必不可少的技能。top命令就像 Windows 下的“任务管理器”它是一个动态显示系统进程信息的实时视图。3.1 基础语法参数解析-d 1指定刷新时间间隔为 1 秒。这意味着屏幕上显示的数据每隔 1 秒会自动更新一次。-n 5指定刷新的次数。这里设置为 5意味着 top 会连续更新 5 次数据后自动退出。3.2 常用交互指令q退出​ top 界面。k杀死指定 PID 的进程输入 PID 后按回车确认。P按 CPU 使用率从高到低排序默认。M按内存MEM使用率从高到低排序。h查看帮助文档。启动与基本交互直接在终端输入top即可进入监控界面。退出时按下键盘上的q键即可返回命令行。实战演示批量监控模式除了交互式运行top还支持在命令行指定刷新次数非常适合脚本采集或单次观察。4. zip/unzip指令在 Linux 系统中文件的压缩、解压以及跨机器传输是日常运维中最基础也最频繁的操作。本文将带你掌握zip、tar的核心用法以及如何使用rzsz实现与 Windows 的极简互传。4.1 zip/unzip指令通用的压缩与解压虽然 Linux 原生更偏爱tar但zip格式因其通用性Windows/macOS/Linux 全兼容在跨平台协作中依然不可或缺。1. 功能与语法功能将文件或目录压缩成.zip格式。压缩语法zip压缩包名.zip源文件或目录解压语法unzip压缩包名.zip-d目标目录2. 常用选项zip-r递归压缩压缩目录时必须使用该选项否则仅压缩目录本身不包含子目录和文件。-q静默压缩不显示压缩过程的详细信息。-m压缩后删除原始文件移动文件到压缩包。-v显示压缩过程的详细信息 verbose 模式。unzip-d 目录指定解压目录若目录不存在则自动创建。-l查看压缩包内的文件列表不解压。-q静默解压不显示解压过程的详细信息。-o覆盖已存在的文件不提示确认。-x 文件排除压缩包内的指定文件不解压该文件。3. 实战示例# 将 test2 目录压缩为 test2.zip zip test2.zip test2/* # 将 test2.zip 解压到 /tmp 目录下 unzip test2.zip -d /tmp4.2 跨平台传输工具rzsz如果你使用的是 XShell 等终端工具想要从 Windows 本地向远端 Linux 服务器传文件或者反向传输安装rzsz是最直观的方法。1. 功能用于在 Windows 和远端 Linux 之间传输文件。安装完毕后可以直接通过拖拽的方式将文件上传到 Linux 终端当前目录下。2. 安装方法根据你的 Linux 发行版选择对应的包管理器支持 yum 和 apt 两种包管理器# CentOS / RHEL 系统 sudo yum install -y lrzsz # Ubuntu / Debian 系统 sudo apt install -y lrzsz3. 核心命令rz从 Windows 客户端上传文件到 Linux 服务器执行后会弹出文件选择窗口选择文件后自动上传到当前工作目录。sz 文件 / 目录从 Linux 服务器下载文件 / 目录到 Windows 客户端执行后会弹出保存路径选择窗口选择路径后自动下载。4. 实战示例进行上传命令rz将windows系统上的text.txt文件上传到Linux系统中的目标目录[whbbite-alicloud test]$ rz # 执行后弹出Windows文件选择窗口选择test.txt文件点击确定 rz waiting to receive.zmodem trlC to cancel. 100% 1024 bytes 1024 bytes/sec 00:00:01 0 Errors [whbbite-alicloud test]$ ls test.txt输入rz指令后弹出的窗口如下所示Xshell进行下载命令sz从Linux服务器上下载文件到Windows系统中的目标目录中[whbbite-alicloud test]$ sz -r test2 # -r递归下载目录 # 执行后弹出保存路径选择窗口选择保存位置 sz -v -r test2 creating archive test2.tar.gz... adding: test2/ (stored 0%) adding: test2/file3.txt (stored 0%) sending: test2.tar.gz (1024 bytes)输出说明通过-r选项实现目录的递归下载sz命令会自动将test2目录压缩为test2.tar.gz格式文件并传输到 Windows 客户端。下载完成后您需要在 Windows 系统中手动解压该压缩包以获取完整的目录结构及文件内容。4.3 tar指令Linux 的打包工具Linux 中真正的“老大哥”是tar。它最初设计是用来打包将多个文件合并成一个大文件后来集成了压缩功能。它支持多种压缩算法gzip, bzip2 等。1. 核心功能打包把一堆散落的文件缝合成一个.tar文件体积并未减小。压缩在打包的基础上用算法减小文件体积如.gz,.bz2。2. 基础语法tar [-cxtzjvf] 文件与目录 ...3. 常见选项-c建立压缩文件Create。-x解开压缩文件Extract。-t查看​ tarfile 里面的文件列表。-z是否具有 gzip 属性是否需要用 gzip 压缩生成.tar.gz或.tgz。-j是否具有 bzip2 属性是否需要用 bzip2 压缩生成.tar.bz2。-v显示过程。压缩/解压时显示处理的文件名常用但不建议在后台执行时使用。-f指定压缩包名称。注意-f后面必须立刻接文件名不要再加其他参数-C解压到指定目录。-p保留原本文件的属性权限、时间戳等非常重要。4. 实战示例案例一打包与压缩# 1. 仅打包 /etc 目录不压缩 tar -cvf /tmp/etc.tar /etc # 2. 打包并以 gzip 压缩 tar -zcvf /tmp/etc.tar.gz /etc # 3. 打包并以 bzip2 压缩压缩率更高速度稍慢 tar -jcvf /tmp/etc.tar.bz2 /etc案例二查阅压缩包内容不解压如果要查看.tar.gz里的文件必须加上-z参数。tar -ztvf /tmp/etc.tar.gz案例三解压缩到指定目录先切换目录再解压解压后的目录结构会相对当前路径展开。cd /usr/local/src tar -zxvf /tmp/etc.tar.gz案例四从压缩包中解压单个文件如果只想拿出etc/passwd不需要全部解压。cd /tmp tar -zxvf /tmp/etc.tar.gz etc/passwd案例五备份并保留文件属性重要备份场景加上-p参数确保备份出来的文件权限、属主等与原文件一致。tar -zxvpf /tmp/etc.tar.gz /etc案例六增量备份按时间筛选在/home中只备份比 2005/06/01 更新的文件。tar -N 2005/06/01 -zcvf home.tar.gz /home案例七排除特定文件进行备份备份/home和/etc但不要备份/home/dmtsai。tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc输出说明--exclude /home/dmtsai选项指定打包时排除/home/dmtsai目录该目录及其中的文件不会被纳入压缩包。案例八打包后立即解压管道传输将/etc/打包后直接解压到/tmp下不产生中间文件。cd /tmp tar -cvf - /etc | tar -xvf -解释-代表标准输出stdout和标准输入stdin。这就像是cp -r /etc /tmp但用的是流式处理。补充要点命名习惯习惯上未压缩的用.targzip 压缩的用.tar.gz或.tgzbzip2 压缩的用.tar.bz2。路径警告使用绝对路径如/etc打包时tar可能会发出警告Removing leading / from member names这是安全机制它会把开头的/去掉解压时变成相对路径防止覆盖系统根目录文件。现场演示建议配合实际操作演示 Linux 之间或 Linux 与 Windows 之间如何互传并解压这些压缩包。5. bc指令在 Linux 终端里除了最基础的expr或$(( ))进行整数运算外当你需要进行高精度浮点运算时bc命令绝对是你的首选工具。它不仅能算小数还支持复杂的数学函数堪称 Linux 界的“科学计算器”。5.1 基本语法bc [选项] [文件...]5.2 功能说明bc(Basic Calculator) 是一个强大的命令行计算器。它能很方便地进行浮点运算并且支持用户自定义变量和函数。5.3 常用选项-q静默模式启动不显示 bc 版本信息和欢迎信息。-l加载数学库支持三角函数、对数函数等高级运算同时默认设置浮点运算精度为 20 位。scale数字设置浮点运算的小数位数精度如scale4表示保留 4 位小数。5.4 支持的运算形式运算分类符号 / 函数含义说明算术运算​加法-减法*乘法/除法%取余^幂运算比较运算​等于!不等于,,,大于、小于、大于等于、小于等于逻辑运算​逻辑与!逻辑非数学函数​sin(x),cos(x)等三角函数需配合-l选项加载数学库5.3 实战示例1. 进入交互式模式直接在终端输入bc即可进入它的计算环境[rootlinux ~]# bc2. 开启浮点运算支持默认情况下bc只输出整数结果。为了支持小数通常需要结合管道使用scale变量来设置精度。scalen设置小数点后的位数。# 设置保留 2 位小数并计算 10 除以 3 echo scale2; 10/3 | bc输出3.333. 高级数学运算bc还内置了数学库需要加载可以计算三角函数、平方根等-l加载标准数学库提供更丰富的函数。# 加载数学库计算平方根 echo scale4; sqrt(16) | bc -l输出4.0000退出bc交互界面时输入quit即可。6. uname lsb_release指令在 Linux 运维和开发中无论你是刚登录一台新服务器还是排查环境差异第一时间了解系统的“底细”都是必不可少的步骤。uname和lsb_release就是两个最常用、最经典的获取系统软硬件信息的命令。6.1uname指令uname命令用于获取当前电脑和操作系统的相关信息它能够显示 Linux 主机所使用的操作系统版本、硬件名称等关键信息。1. 基本语法uname [选项]2. 常用选项解析-a或--all显示所有信息。这是最实用的参数它会一次性输出所有字段依次为内核名称、主机名、内核版本号、内核版本、硬件名、处理器类型、硬件平台类型、操作系统名称。# 实战示例 [rootlinux ~]# uname -a Linux localhost.localdomain 3.10.0-1160.el7.x86_64 #1 SMP ...-r仅显示内核版本号。如果只关心内核版本不需要其他冗余信息直接用如下指令。[rootlinux ~]# uname -r 3.10.0-1160.el7.x86_64-m显示机器硬件架构如x86_64或aarch64。在区分系统是 64 位还是 ARM 架构时非常有用。-n显示主机名网络节点名称。-s显示内核名称默认就是显示这个通常省略。6.2lsb_release指令虽然uname很强大但它主要聚焦于内核和底层硬件。如果你想查看更上层的操作系统发行版信息比如是 CentOS 7 还是 Ubuntu 20.04就需要用到lsb_release。1. 基本语法lsb_release[选项]2. 功能说明专门用于显示 Linux Standard Base (LSB) 和具体的发行版Distribution信息。3. 常用选项-a或--all显示所有 LSB 信息。这是最常用的参数会输出发行版 ID、描述、版本号、代号等。# 实战示例 [rootlinux ~]# lsb_release -a LSB Version: :core-4.1-amd64:... Distributor ID: CentOS Description: CentOS Linux release 7.9.2009 (Core) Release: 7.9.2009 Codename: Core6.3 两者结合在实际工作中我们通常将这两个命令结合起来快速获取一台服务器的完整信息echo 内核信息 uname -a echo 发行版信息 lsb_release -a补充要点uname是 POSIX 标准命令几乎所有类 Unix 系统都有。lsb_release需要系统安装了redhat-lsb-core(CentOS/RHEL) 或lsb-release(Ubuntu/Debian) 包。如果提示命令不存在记得先安装。对于现代 Linux 系统还有一个命令hostnamectl也能显示非常详细的系统和内核信息可以作为补充学习。两者对比命令核心关注点最常用参数典型场景uname内核与硬件​-a,-r查看内核版本、CPU 架构lsb_release操作系统发行版​-a查看是 CentOS/Ubuntu 及其版本7. Linux系统的核心热键快捷键功能描述适用场景Tab​自动补全命令或路径按两次显示所有候选快速输入长命令或路径避免拼写错误Ctrl C​强行终止当前运行的前台进程终止卡死的程序或退出当前执行的命令Ctrl D​发送文件结束符或退出当前终端退出shell或确认文本输入完成Ctrl Z​将前台任务挂起并转入后台暂停任务以便稍后恢复便于多任务切换Ctrl A/E​快速定位光标到行首/行尾快速修改命令行内容无需手动移动光标Ctrl U/K​删除从光标到行首/行尾的内容快速修正输入错误提高编辑效率Ctrl W​向前删除一个单词更精准地删除命令行中的单词片段Ctrl L​清除当前屏幕显示内容保持终端界面整洁便于查看新内容Ctrl R​在命令历史中进行搜索快速查找并复用之前执行过的命令!!​重新执行上一条命令避免重复输入相同命令提高操作效率!n​执行历史记录中第n条命令通过序号快速调用特定的历史命令!keyword​执行最近一条以特定关键词开头的命令通过关键词查找并执行相关命令8. shutdown指令在 Linux 系统的日常运维与操作中掌握安全关机与重启的指令至关重要。shutdown命令不仅功能强大还能向系统其他登录用户广播关机信息避免数据丢失。以下是其核心用法与扩展命令的梳理。8.1 基础语法使用shutdown命令的基本格式如下shutdown [选项] [时间] [消息]8.2 常用选项解析通过不同的选项我们可以控制系统在关机前的行为-h(halt)停止系统服务后立即执行关机操作。这是最常用的关机选项。-r(reboot)停止系统服务后重新启动计算机。-t sec(timeout)设置延迟时间秒。即在指定的秒数之后才执行关机或重启动作。8.3 时间参数说明shutdown的时间参数是其区别于halt或reboot的核心特性之一它允许你规划关机时间now立刻执行等同于时间设为 0。m在m分钟之后执行。例如5表示 5 分钟后关机。hh:mm设定具体的绝对时间点。例如22:30表示晚上 10 点半执行。注意如果不指定时间默认行为是1即 1 分钟后关机并会向所有用户发送警告信息。8.4 实战示例为了更好地理解通过几个实际场景来演练shutdown的用法示例 1立刻关机shutdown -h now示例 210 分钟后重启系统shutdown -r 10此时系统会开始倒计时并向所有终端发送“系统将在 10 分钟后重启”的消息。示例 3设定在今天 23:00 关机shutdown -h 23:00示例 4取消已经计划的关机任务如果你刚才设置了关机但突然不想执行了可以使用-c选项取消shutdown -c系统会向所有用户发送“关机已被取消”的通知。