当前位置: 首页 > news >正文

Linux系统编程Day3-- Linux常用操作(终)

往期内容回顾:

        Linux常用操作(续)

        Linux常用操作

        Linux系统的概念,主要内容

一、find指令的介绍:

        find 是 Linux 系统中非常强大且常用的文件查找命令,可以在指定目录下递归查找文件或目录,支持多种条件组合搜索。

其中:

  • 搜索路径:在哪个目录下查找(可以是.表示当前目录)

  • 搜索条件:如 -name、-type、-size 等

  • 处理动作:如 -print(默认)、-delete、-exec 等

  • 1、-name 选项:按名称匹配文件

find [路径] -name "文件名"
find . -name "test.txt"

        2、查找以 .log 结尾的文件(通配符)

find /var/log -name "*.log"
  • *:匹配任意字符

  • *.log:匹配所有以 .log 结尾的文件名

⚠️ 注意:

  • -name 匹配是大小写敏感的;

  • 若想大小写不敏感,可以用 -iname:find查找磁盘效率很低

  • 3、常配合 -name 使用的组合示例:

用法

含义

find . -type f -name "*.c"

查找当前目录及子目录下所有 .c 文件

find / -name passwd 2>/dev/null

在整个系统中查找名为 passwd 的文件,忽略报错信息

find . -name "*.sh" -exec chmod +x {} \;

查找所有 .sh 脚本并添加执行权限

        4、总结

选项

说明

-name

精确匹配文件名(大小写敏感)

-iname

不区分大小写的名称匹配

-type f

查找普通文件

-type d

查找目录

-exec ...

对匹配结果执行命令

-delete

删除匹配到的文件或目录

        5、其他相关的查找命令

        1、locate —— 按文件名快速查找文件路径

       locate 命令通过系统维护的文件索引数据库(通常是 /var/lib/mlocate/mlocate.db)来快速查找文件,相比 find,速度更快,但查找的不是“实时”的文件系统。

locate filename.txt
        2、which —— 查找可执行文件的位置

        用于显示某个命令在系统中的完整路径(一般是 PATH 环境变量中的)

which python3
        3、command -v —— 类似于 which,适合脚本中使用
command -v grep
        4、whereis—— 查找命令的所有相关路径(包括执行文件、源码、man手册等)
whereis gcc

       

6、alias命名

       alias 是 Linux/Unix 系统中的一个 Shell 内建命令,用于为常用的命令创建快捷方式或别名,以减少输入量,提高效率。

        1、基本语法
alias [别名]='[原始命令]'

注意:等号两边不能有空格,命令要用引号括起来。

1. 给 ls命令加颜色:

alias ls='ls --color=auto'

2.  防止 rm 误删文件,要求确认:

alias rm='rm -i'

3. 缩写常用命令:

alias ll='ls -l'
alias la='ls -la'
alias gs='git status'

4、取消别名

unalias ll

二、grep指令的介绍

        一、基本语法:

grep "^[a-zA-Z]" file.txt
grep [选项] "要查找的内容" 文件名
grep "hello" file.txt

表示在 file.txt 文件中查找所有包含字符串 "hello" 的行。

        二、常用选项说明:

选项

含义

-i

忽略大小写(ignore case)

-n

显示匹配的行号(line number)

-v

显示包含匹配字符串的行

-r 或 -R

递归搜索子目录

-l

只输出包含匹配内容的文件名(不显示内容)

-c

统计匹配的行数

-E

使用扩展正则表达式(同 egrep)

        三、正则表达式支持(进阶)

        1、匹配以字母开头的行:

grep "^[a-zA-Z]" file.txt

        2、匹配空行:

grep "^$" file.txt

三、sort指令介绍

        1、基本语法

sort [选项] [文件名]

若不指定文件名,则默认从标准输入读取(可以使用管道输入)

       2、常用选项详解

选项

含义

-n

按 数字 排序(默认按字符串排序)

-r

倒序排序(reverse)

-k

按指定  排序,例如 -k 2

-t

指定分隔符,例如 -t :

-u

去重排序(只保留唯一行)

-o

指定输出文件

-V

按照 版本号 排序,例如 v1.2 v1.10

        3、使用举例

1. 默认排序(按字典序)sort 默认是按字符串的字典序排序(而不是按数字),所以:

sort names.txt

2、数值排序(按数字大小排序)

sort -n numbers.txt

3. 倒序 + 数值排序

sort -nr numbers.txt

4. 去除重复行排序

sort -u words.txt

5、搭配管道使用(常用)

        例如统计某文件中出现次数最多的行:

sort file.txt | uniq -c | sort -nr

        4、总结

用法

说明

sort file.txt

字典序排序

sort -n

数字排序

sort -r

倒序

sort -k 2

按第2列排序

sort -t ':'

设置分隔符

sort -u

排序+去重

sort -V

版本号排序

sort -o output.txt

输出到文件


四、zip和unzip命令介绍

        zip 和 unzip 是 Linux 中最常用的压缩与解压命令之一,主要用于 .zip 格式的压缩包的创建与解压。

1、zip基本语法和常用选项

zip [选项] 压缩包名.zip 要压缩的文件/目录

常用选项:

选项

含义

-r

递归压缩整个目录

-q

静默模式(不显示压缩过程)

-9

最大压缩率(从 0 到 9)

-e

创建加密压缩文件(需要输入密码)

1. 压缩单个文件:
zip myfile.zip file.txt

2. 压缩多个文件:

zip archive.zip file1.txt file2.txt

3. 压缩整个目录(递归):

zip -r mydir.zip mydir/

4. 压缩并设置密码:

zip -e secret.zip secret.txt

2、unzip命令及常用选项

unzip [选项] 压缩包.zip

常用选项:

选项

含义

-l

查看压缩包内文件(列出文件列表)

-d

指定解压目录

-o

解压时自动覆盖已有文件,无需确认

-n

解压时不覆盖任何已存在的文件

-q

静默模式,不显示过程信息

1. 解压到当前目录:

unzip archive.zip

2. 解压到指定目录:

unzip archive.zip -d /path/to/destination

3. 解压时覆盖已有文件:

unzip -o archive.zip

4. 查看压缩包内容(不解压):

unzip -l archive.zip

补充说明:

        .zip 文件通常不保留文件权限(不像 .tar.gz)

  • 如果你要压缩包含 Linux 权限和符号链接的文件夹,推荐使用 tar 命令

  • 如果系统未安装 zip / unzip,可以使用以下命令安装:

  • sudo apt install zip unzip        # Ubuntu / Debian
    sudo yum install zip unzip        # CentOS / RHEL

    操作

    命令

    压缩文件

    zip a.zip a.txt

    压缩目录

    zip -r a.zip folder/

    解压当前目录

    unzip a.zip

    解压指定目录

    unzip a.zip -d ./out/

    查看内容

    unzip -l a.zip


五、tar指令(重要) 

         一、tar 的基本语法

tar [选项] [归档文件名] [要归档的文件/目录]

常见选项组合(核心操作):

操作

命令组合

含义说明

-c

create

创建归档文件

-x

extract

解包归档文件

-t

list

列出归档内容(不解包)

-v

verbose

显示详细处理信息

-f

file

指定归档文件名

-z

gzip

用 gzip 进行压缩/解压

-j

bzip2

用 bzip2 压缩(.bz2 格式)

-J

xz

用 xz 压缩(.xz 格式)

二、常用操作举例

 1. 创建归档(打包)

        将目录/文件打包为 .tar(不压缩):

tar -cvf archive.tar mydir/

        打包并用 gzip 压缩为 .tar.gz

tar -xjvf archive.tar.bz2
tar -czvf archive.tar.gz mydir/

        打包并用 bzip2 压缩为 .tar.bz2

tar -cjvf archive.tar.bz2 mydir/

        打包并用 xz 压缩为 .tar.xz

tar -cJvf archive.tar.xz mydir/

2. 解压归档

        解压 .tar文件:

tar -xvf archive.tar

      解压 .tar.gz 或 .tgz文件:

tar -xzvf archive.tar.gz

        解压 .tar.bz2 文件:

tar -xjvf archive.tar.bz2

        解压到指定目录:

tar -xvf archive.tar -C /path/to/destination

3. 查看归档内容(不解压)

tar -tvf archive.tar.gz

4. 从归档中提取某个文件

tar -xvf archive.tar.gz path/to/file.txt

三、典型用途总结

用途

命令示例

打包目录

tar -cvf dir.tar mydir/

打包并 gzip 压缩

tar -czvf dir.tar.gz mydir/

解压 .tar.gz

tar -xzvf dir.tar.gz

查看 .tar.gz 内容

tar -tzvf dir.tar.gz

解压到指定目录

tar -xvf file.tar.gz -C /target/dir/

添加文件到已有归档

tar -rvf archive.tar newfile.txt

删除归档中的某个文件

tar --delete -f archive.tar file.txt

解压多个 .tar.gz 脚本

for i in *.tar.gz; do tar -xzvf $i; done


四、注意事项

  • .tar 本质是打包工具,不压缩(加 -z/-j/-J 才压缩)

  • .tar.gz 是 .tar + gzip 压缩,最常用

  • .tgz 与 .tar.gz 是一样的,只是文件名简化

  • 文件名要写在 -f 之后,如 -czvf archive.tar.

        


六、Linux计算器

        bc 是 Linux 下一个功能强大的 命令行计算器(Basic Calculator),支持 任意精度运算浮点运算变量定义数学函数(如 s(sin)、l(ln) 等),还可以配合脚本做更复杂的计算。


一、基本用法

        启动交互式 bc:

bc

进入后可直接输入表达式,比如:

3 + 5
7 * 8

退出用:

quit

二、使用示例

1. 直接执行表达式

echo "3+5" | bc

2. 支持浮点运算(默认不开启小数)

echo "scale=2; 5/3" | bc
# 输出:1.66
  • scale=2 表示保留 2 位小数

3. 定义变量

echo "a=3; b=5; a*b" | bc

4. 使用数学函数(需加 -l 参数加载数学库)

echo "s(1.57)" | bc -l     # 近似 sin(π/2)
echo "l(2.71828)" | bc -l  # 自然对数 ln(e)
echo "e(1)" | bc -l        # e 的 1 次方
echo "sqrt(2)" | bc -l     # 平方根

三、注意事项

  • bc 默认不显示小数,要用 scale 设置精度;

  • 支持整数和浮点数运算;

  • 可定义变量、支持流程控制(if、while 等);

  • bc -l 加载数学库,能用如 sqrt()、s()、l() 等数学函数


七、Linux操作常用热键

        1、命令行编辑热键(适用于 Bash)

快捷键

功能说明

Ctrl + A

光标移动到行首

Ctrl + E

光标移动到行尾

Ctrl + U

删除光标到行首的内容

Ctrl + K

删除光标到行尾的内容

Ctrl + W

删除光标前的一个“单词”(以空格为界)

Ctrl + Y

粘贴上次被 Ctrl+U/K/W 删除的文本

Ctrl + L

清屏(类似于 clear 命令)

Ctrl + C

中断当前命令

Ctrl + D

退出终端(当没有输入内容时)/ 发送 EOF

Ctrl + H

相当于退格键(Backspace)

Ctrl + _

撤销上一步操作(Undo,部分终端支持)

        2、命令历史与搜索

快捷键

功能说明

↑ / ↓

浏览历史命令

Ctrl + R

搜索历史命令(反向增量搜索)

Ctrl + G

退出历史搜索模式

!!

执行上一条命令(等价于 `history -1

!n

执行历史记录中编号为 n 的命令

!string

执行最近一条以 string 开头的命

        3、命令行跳词(光标快速移动)

快捷键

功能说明

Alt + F

向右移动一个“单词”

Alt + B

向左移动一个“单词”

Alt + D

删除光标后的一个“单词”

Ctrl + T

交换光标前两个字符

        4、进程控制与终端操作

快捷键

功能说明

Ctrl + Z

暂停当前任务(挂起),可用 fg 或 bg 恢复

Ctrl + C

强制终止当前运行的命令

Ctrl + D

结束终端会话或向程序发送 EOF

Ctrl + S

暂停屏幕输出(冻结终端)

Ctrl + Q

恢复屏幕输出(解冻终端)

        5、屏幕管理(tmux/screen 可增强)

快捷键(需安装 tmux 或 screen

功能说明

Ctrl + B,然后按 "

分割窗口为上下两个 pane

Ctrl + B,然后按 %

分割窗口为左右两个 pane

Ctrl + B,然后按 o

在 pane 之间切换

Ctrl + B,然后按 d

暂时离开 tmux 会话

八、关机操作

        在 Linux 系统中,关机(Shutdown)操作可以通过多种命令实现,常用于关闭系统、重启系统或让系统进入特定的电源状态。下面是常用的关机相关命令及其详细用法:

 一、关机命令 

1. 立即关机:

sudo shutdown now

2. 定时关机(例如 10 分钟后):

sudo shutdown +10

3. 关机并发送广播消息:

sudo shutdown +5 "系统将在5分钟后关机,请保存工作。"

4. 指定时间关机(如晚上11:00):

sudo shutdown 23:00

5. 取消计划中的关机:

sudo shutdown -r now
sudo shutdown -c

二、重启命令

1. 使用 reboot:

sudo reboot

2. 使用 shutdown 实现重启:

sudo shutdown -r now

大多数关机、重启操作都需要使用 sudo 提权,因为普通用户无权限控制电源管理

http://www.lryc.cn/news/608328.html

相关文章:

  • 2025-08 安卓开发面试拷打记录(面试题)
  • 3 使用 Jenkins 构建镜像:将你的应用打包成镜像
  • K8S部署ELK(三):部署Elasticsearch搜索引擎
  • 【机器学习】非线性分类算法(上):KNN(基于距离相似度)与朴素(特征独立)贝叶斯(基于概率统计)
  • 排序算法-堆排序
  • SQL 四大语言分类详解:DDL、DML、DCL、DQL
  • 分布在内侧内嗅皮层的层Ⅱ或层Ⅲ的头部方向细胞(head direction cells)对NLP中的深层语义分析的积极影响和启示
  • 智能制造——解读CMMM评估手册【附全文阅读】
  • MyBatis 批量操作 XML 实现方式
  • 信创应用服务器TongWeb安装教程、前后端分离应用部署全流程
  • 元宇宙重构未来交通新图景
  • linux source命令使用详细介绍
  • 空间平面旋转与xoy平行
  • Node.js中path模块的使用指南
  • QT中使用OpenCV保姆级教程
  • 1分钟临时共享空间在线小工具实现
  • 安卓自动点击器:设置点击周期 / 滑动,抢票、游戏刷日常秒会
  • 2025牛客多校第六场 D.漂亮矩阵 K.最大gcd C.栈 L.最小括号串 个人题解
  • C++入门基础(三):const引用、指针和引用的关系、inline(修饰内联函数)替代宏、nullptr代替null
  • Rust进阶-part1-智能指针概述-box指针
  • Java中Lambda 表达式的解释
  • 机器学习实战:KNN算法全解析 - 从原理到创新应用
  • 机器学习消融实验:方法论演进、跨领域应用与前沿趋势
  • 大模型(五)MOSS-TTSD学习
  • 【MATLAB】(四)函数运算
  • 【MATLAB】(五)向量
  • C语言第八章指针一
  • MybatisPlus生成代码
  • MQTT协议测试环境部署
  • MybatisPlus-自动生成代码