【Linux】指令补充与shell的简单介绍

前言:上两篇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. 打包:把多个文件、多个目录合并成一个文件
  2. 压缩:是通过算法减少文件体积

打包本身通常不会明显减小体积,可以理解成把很多东西装进一个箱子里,但是压缩会让减少文件大小可以理解成把箱子里的东西压紧、抽真空

所以打包 + 压缩 == 多个文件合成一个较小文件

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优化了下排版,感觉确实好看多了

相关推荐
DLYSB_2 小时前
《从零开始搭建机房轻量化“声光告警”系统:基于 HTTP API 与 TTS 的运维实践》
运维·网络协议·http·报警灯
阿成学长_Cain2 小时前
Linux talk 命令详解:经典终端实时聊天工具,无需图形界面即可对话
linux·运维·前端
一拳一个娘娘腔2 小时前
【后渗透-Linux篇】Linux 提权与逃逸:从 www-data到 root的蜕变
linux·运维·服务器
jieyucx2 小时前
零基础通关:Shell 编程核心语法全景详解
linux·运维·编程·shell
杨运交2 小时前
[045][Crypto模块]设计一个可扩展的加解密框架:策略模式与工厂模式实战
linux·运维·策略模式
shx_wei3 小时前
从函数调用到进程替换:使用 execl、CMake 与 PowerShell 构建一个多可执行程序
linux·c语言·windows·c
Dlrb12113 小时前
信息查询Web服务器-->电子商城信息查询项目
linux·服务器·数据库·html·嵌入式·epoll·数据查询
纳兰青华3 小时前
在 PVE 上通过 LXC 部署 Ubuntu 24.04:为 OpenClaw 打造轻量高效的 AI 环境
linux·ai编程