前言:上两篇Linux介绍基本指令的文章我漏掉掉了一些比较重要的指令,我将在这篇文章里做补充并简单介绍下shell与Linux的常用热键
1、Linux指令补充
1.1 管道的使用简单介绍
在 Linux 中,管道符使用 | 表示
它的作用是:把前一个命令的输出结果,交给后一个命令继续处理
基本格式如下:
bash
命令1 | 命令2
可以简单的理解为:
bash
左边命令负责产生结果,右边命令负责筛选或处理结果
比如这里我想要查看当前系统的日志并输出后面十个我可以:
bash
[root@VM-0-5-centos ~]# cat tail /var/log/messages | tail
管道就先简单介绍到这里,后面我会详细的介绍管道,现在会简单的用就可以了,主要是为了介绍grep指令我才在这里做简单的用法介绍
1.2 grep 指令
功能: grep 是 Linux 中常用的文本搜索命令
语法:
bash
grep [选项] "查找内容" 文件名
用法举例:
bash
[root@VM-0-5-centos airone]# cat -n test.c
1 #include <stdio.h>
2 int main() {
3 printf("Hello, World\n");
4 return 0;
5 }
[root@VM-0-5-centos airone]# grep -n "return" test.c
4: return 0;
下面是grep的常用选项:
| 选项 | 作用 |
|---|---|
-i |
忽略大小写 |
-n |
显示行号 |
-v |
反向匹配 |
-c |
统计匹配行数 |
-r |
递归查找目录 |
-w |
匹配完整单词 |
-o |
只输出匹配到的内容 |
这里我就不依次举例了,其实 grep 指令比较重要的用法是搭配管道,可以更加方便的查看或者是排查一些错误
比如我们这里想要查看从所有进程中查找包含 nginx 的进程我们就可以(ps后面会介绍,用来查看进程):
bash
ps aux | grep nginx
总之 grep 是 Linux 中非常重要的文本搜索工具,常用于查找文件内容、筛选日志信息和过滤命令输出
1.3 Linux下打包与压缩
在 Linux 里, 打包 和 压缩 是两个不同概念,不要给搞混了:
- 打包:把多个文件、多个目录合并成一个文件
- 压缩:是通过算法减少文件体积
打包本身通常不会明显减小体积,可以理解成把很多东西装进一个箱子里,但是压缩会让减少文件大小可以理解成把箱子里的东西压紧、抽真空
所以打包 + 压缩 == 多个文件合成一个较小文件
1.3.1 zip / unzip指令
Linux安装zip:
bash
#Ubuntu / Debian:
sudo apt update
sudo apt install zip unzip
#CentOS / RHEL:
sudo dnf install zip unzip
#Arch Linux:
sudo pacman -S zip unzip
作用: 在 Linux 系统中,zip 和 unzip 是非常经典的用来压缩和解压文件的命令。它们的通用性极高,因为生成的 .zip 格式可以在 Windows、Mac 和 Linux 之间无缝传递
zip 指令
语法: zip [参数] [压缩后的文件名.zip] [要压缩的文件或目录]
常用操作:
- 压缩单个或多个文件(这会把 file1.txt 和 file2.txt 打包压缩成一个名为 files.zip 的文):
bash
zip files.zip file1.txt file2.txt
- 压缩整个文件夹(压缩整个文件夹必须配合 -r 参数):
bash
zip -r project.zip my_folder/
unzip 指令
语法: unzip [参数] [压缩文件名.zip]
常用操作:
- 解压到当前目录下:
bash
unzip files.zip
- 解压到指定的目标目录(使用 -d 参数,如果目标目录如果不存在系统会自动创建它):
bash
unzip files.zip -d /path/to/put/files/
- 只查看压缩包内容,不解压(使用 -l 参数):
bash
unzip -l files.zip
1.3.2 sz与rz指令
功能: sz与rz是 Linux/Unix 下用于发送文件到本地电脑的命令,常和 rz 搭配使用。它属于 lrzsz 工具包
安装:
bash
#Ubuntu / Debian:
sudo apt update
sudo apt install lrzsz
#CentOS / RHEL:
sudo yum install lrzsz
#Fedora:
sudo dnf install lrzsz
1. sz:从服务器下载到本地
语法: sz 文件名
演示:
bash
sz test.txt
下载多个文件:
bash
sz a.txt b.txt c.txt
下载目录时需要先打包压缩:
bash
sz dir.zip
2.rz:从本地上传到服务器:
语法: rz
执行后,终端一般会弹出文件选择窗口,选择本地文件上传到当前目录
1.3.3 tar指令
功能: tar 是 Linux 中常用的打包/解包命令,经常用来把多个文件或目录打成一个包,tar 本身主要是打包,不一定压缩
常见文件:
| 文件名 | 含义 |
|---|---|
.tar |
只打包,不压缩 |
.tar.gz / .tgz |
打包并用 gzip 压缩 |
.tar.bz2 |
打包并用 bzip2 压缩 |
.tar.xz |
打包并用 xz 压缩 |
常用参数:
| 参数 | 作用 |
|---|---|
-c |
创建压缩包 / 打包 |
-x |
解包 / 解压 |
-v |
显示过程 |
-f |
指定文件名,通常必须有 |
-z |
使用 gzip |
-j |
使用 bzip2 |
-J |
使用 xz |
-t |
查看包内文件 |
-C |
解压到指定目录 |
常见用法:
- 打包目录(只打包,不压缩):
bash
tar -cf backup.tar mydir/
- 打包并压缩:
bash
tar -czf backup.tar.gz mydir/
- 解压 tar.gz 文件(解压到当前目录):
bash
tar -xzf backup.tar.gz
- 解压 tar.gz 文件(解压到指定目录):
bash
tar -xzf backup.tar.gz -C /tmp/
- 查看压缩包内容(不解压,只查看里面有什么):
bash
tar -tf backup.tar.gz
1.3.4 scp指令
功能: scp是 Linux 中用于远程复制文件的命令,基于 SSH 协议,可以安全地在本地和远程服务器之间传输文件
语法: scp [参数] 源文件 目标位置
常用选项:
| 参数 | 作用 |
|---|---|
-r |
复制目录 |
-P |
指定 SSH 端口 |
-v |
显示详细过程 |
-C |
传输时压缩 |
-p |
保留文件属性 |
1.4 bc与uname指令
bc指令
功能: bc 是一个精密计算器
用法: 在终端直接输入 bc 并回车,就会进入计算器界面。输入算式回车就能出结果,输入 quit 退出
演示:
bash
[root@VM-0-5-centos ~]# bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1 + 2
3
34.3 - 1.2
33.1
quit
uname指令
功能: 用来打印当前系统的硬件和软件信息
演示:
把所有系统信息一股脑全打印出来(包括内核名、主机名、内核版本、打包时间、CPU架构、操作系统名等):
bash
uname -a
只看内核版本:
bash
uname -r
2、Linux的一些热键
下面是Linux有关终端操作的一些热键:
| 快捷键 | 作用 |
|---|---|
Ctrl + C |
终止当前正在运行的命令 |
Ctrl + Z |
暂停当前程序,放入后台 |
Ctrl + D |
退出终端 / 输入结束(EOF) |
Ctrl + L |
清屏(等同 clear) |
Ctrl + A |
光标移动到命令行开头 |
Ctrl + E |
光标移动到命令行结尾 |
Ctrl + U |
删除光标前所有内容 |
Ctrl + K |
删除光标后所有内容 |
Ctrl + W |
删除前一个单词 |
Ctrl + R |
搜索历史命令 |
↑ / ↓ |
查看上一条/下一条执行过的命令 |
Tab |
命令或路径自动补全 |
下面是Linux有关进程控制的一些热键:
| 快捷键 | 作用 |
|---|---|
Ctrl + C |
强制停止程序 |
Ctrl + Z |
暂停程序 |
fg |
将后台任务恢复到前台 |
bg |
将暂停任务放到后台运行 |
3、shell的简单介绍
Shell 不是某一个具体命令,而是 Linux 中负责"接收命令、解释命令、交给内核执行"的程序,Linux 的真正核心是 kernel 内核,但普通用户不能直接操作内核,所以需要通过 shell 来和内核沟通,这是用AI生成的辅助理解的图,目前感性的理解一些了,后面在介绍进程完进程后会再深入了了解shell:

常见的 shell 有(我们用的是bash):
bash
bash
zsh
sh
我们平常输入的指令这些都属于通过 shell 执行的命令,比如这里我们运行下面的命令
bash
[root@VM-0-5-centos ~]# ls -l
运行的过程大概是:
bash
用户输入命令
↓
Shell 读取命令
↓
Shell 解析命令:ls 是命令,-l 是参数
↓
Shell 判断命令能不能执行
↓
交给 Linux 内核处理
↓
内核调用文件系统,查找目录内容
↓
结果返回给 Shell
↓
Shell 显示到终端
因此,Shell 就是 Linux 中连接"用户"和"内核"的命令解释器。用户输入命令,shell 负责解析命令并交给内核执行,内核执行完成后再把结果通过 shell 返回给用户
完,我尝试用AI优化了下排版,感觉确实好看多了