Linux指令补充与shell的命令及运行原理
前言:上两篇Linux介绍基本指令的文章我漏掉掉了一些比较重要的指令,我将在这篇文章里做补充并简单介绍下shell与Linux的常用热键
1、Linux指令补充
1.1 管道的使用简单介绍
在 Linux 中,管道符使用 | 表示
它的作用是:把前一个命令的输出结果,交给后一个命令继续处理
基本格式如下:
命令1 | 命令2
可以简单的理解为:
左边命令负责产生结果,右边命令负责筛选或处理结果
比如这里我想要查看当前系统的日志并输出后面十个我可以:
[root@VM-0-5-centos ~]# cat tail /var/log/messages | tail
管道就先简单介绍到这里,后面我会详细的介绍管道,现在会简单的用就可以了,主要是为了介绍grep指令我才在这里做简单的用法介绍
1.2 grep 指令
功能:grep 是 Linux 中常用的文本搜索命令
语法:
grep [选项] "查找内容" 文件名
用法举例:
[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后面会介绍,用来查看进程):
ps aux | grep nginx
总之 grep 是 Linux 中非常重要的文本搜索工具,常用于查找文件内容、筛选日志信息和过滤命令输出
1.3 Linux下打包与压缩
在 Linux 里, 打包 和 压缩 是两个不同概念,不要给搞混了:
- 打包:把多个文件、多个目录合并成一个文件
- 压缩:是通过算法减少文件体积
打包本身通常不会明显减小体积,可以理解成把很多东西装进一个箱子里,但是压缩会让减少文件大小可以理解成把箱子里的东西压紧、抽真空
所以打包 + 压缩 == 多个文件合成一个较小文件
1.3.1 zip / unzip指令
Linux安装zip:
#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 的文):
zip files.zip file1.txt file2.txt
- 压缩整个文件夹(压缩整个文件夹必须配合 -r 参数):
zip -r project.zip my_folder/
unzip 指令
语法:unzip [参数] [压缩文件名.zip]
常用操作:
- 解压到当前目录下:
unzip files.zip
- 解压到指定的目标目录(使用 -d 参数,如果目标目录如果不存在系统会自动创建它):
unzip files.zip -d /path/to/put/files/
- 只查看压缩包内容,不解压(使用 -l 参数):
unzip -l files.zip
1.3.2 sz与rz指令
功能: sz与rz是 Linux/Unix 下用于发送文件到本地电脑的命令,常和 rz 搭配使用。它属于 lrzsz 工具包
安装:
#Ubuntu / Debian: sudo apt update sudo apt install lrzsz #CentOS / RHEL: sudo yum install lrzsz #Fedora: sudo dnf install lrzsz
1. sz:从服务器下载到本地
语法:sz 文件名
演示:
sz test.txt
下载多个文件:
sz a.txt b.txt c.txt
下载目录时需要先打包压缩:
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 | 解压到指定目录 |
常见用法:
- 打包目录(只打包,不压缩):
tar -cf backup.tar mydir/
- 打包并压缩:
tar -czf backup.tar.gz mydir/
- 解压 tar.gz 文件(解压到当前目录):
tar -xzf backup.tar.gz
- 解压 tar.gz 文件(解压到指定目录):
tar -xzf backup.tar.gz -C /tmp/
- 查看压缩包内容(不解压,只查看里面有什么):
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 退出
演示:
[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架构、操作系统名等):
uname -a
只看内核版本:
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 zsh sh
我们平常输入的指令这些都属于通过 shell 执行的命令,比如这里我们运行下面的命令
[root@VM-0-5-centos ~]# ls -l
运行的过程大概是:
用户输入命令
↓
Shell 读取命令
↓
Shell 解析命令:ls 是命令,-l 是参数
↓
Shell 判断命令能不能执行
↓
交给 Linux 内核处理
↓
内核调用文件系统,查找目录内容
↓
结果返回给 Shell
↓
Shell 显示到终端因此,Shell 就是 Linux 中连接“用户”和“内核”的命令解释器。用户输入命令,shell 负责解析命令并交给内核执行,内核执行完成后再把结果通过 shell 返回给用户
完,我尝试用AI优化了下排版,感觉确实好看多了
到此这篇关于Linux指令补充与shell的命令及运行原理的文章就介绍到这了,更多相关linux shell命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
一天一个shell命令 linux好管家-磁盘-du命令详解
这篇文章主要介绍了一天一个shell命令 linux好管家-磁盘-du命令详解,需要的朋友可以参考下2016-06-06


最新评论