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

【Linux系统编程】3. Linux基本指令(下)

文章目录

    • 1、cal指令
    • 2、find指令
    • 3、which指令
    • 4、whereis指令
    • 5、alias指令
    • 6、grep指令
    • 7、zip指令 和 unzip指令
      • 1)zip指令
      • 2)unzip指令
    • 8、rz指令 和 sz指令
      • 1)rz指令
      • 2)sz指令
    • 9、tar指令
    • 10、bc指令
    • 11、uname指令
    • 12、重要的⼏个热键 Tab,Ctrl+C,Ctrl+D
    • 13、shutdown指令
    • 14、扩展命令
    • 15、shell命令以及运⾏原理

1、cal指令

cal命令可以⽤来显⽰公历(阳历)⽇历。公历是现在国际通⽤的历法,⼜称格列历,通称阳历。“阳历”⼜名“太阳历”,系以地球绕⾏太阳⼀周为⼀年,为西⽅各国所通⽤,故⼜名“西历”。

命令格式: cal [选项] [月份] [年份]
功能: ⽤于查看⽇历等时间信息,如只有⼀个参数,则表⽰年份,如有两个参数,则表⽰⽉份和年份。
常⽤选项:

  • -3 显⽰系统前⼀个⽉,当前⽉,下⼀个⽉的⽉历。
  • -j 显⽰在当年中的第⼏天(⼀年⽇期按天算,从1⽉1号算起,默认显⽰当前⽉在⼀年中的天数)。
  • -y 显⽰当前年份的⽇历

举例:

  1. 显示2025 年1月的日历:cal January 2025

  2. 显示2025整年的日历:cal 2025

  3. 显示当前月份及相邻的前一个月和后一个月的日历:cal -3

2、find指令

  • Linux下find命令在⽬录结构中搜索⽂件,并执⾏指定的操作。
  • Linux下find命令提供了相当多的查找条件,功能很强⼤。由于find具有强⼤的功能,所以它的选项也很多,其中⼤部分选项都值得我们花时间来了解⼀下。
  • 即使系统中含有⽹络⽂件系统(NFS),find命令在该⽂件系统中同样有效,只你具有相应的权限。
  • 在运⾏⼀个⾮常消耗资源的find命令时,很多⼈都倾向于把它放在后台执⾏,因为遍历⼀个⼤的⽂件系统可能会花费很⻓的时间(这⾥是指30G字节以上的⽂件系统)。

语法: find [搜索路径] [匹配条件]
功能: ⽤于在⽂件树中查找⽂件,并作出相应的处理(可能访问磁盘)
搜索路径: 指定要搜索的目录(默认为当前目录),可指定1个或多个路径。
匹配条件:

  • -name 按文件名匹配(区分大小写),支持通配符(如 *.txt)
  • -iname 按文件名匹配(不区分大小写)
  1. 在指定路径下搜索执行名称的文件:find ~ -name temp.txt
    在这里插入图片描述

3、which指令

语法: which [选项] 命令名
功能: 搜索系统指定命令的位置
常用选项:

  • -a:显示所有匹配的可执行文件路径
  • -s:静默模式,不输出结果,仅通过退出状态码表示是否找到(0 表示找到,1 表示未找到)

举例:

4、whereis指令

语法: whereis [选项] 命令名
功能: 用于查找程序的可执行文件、源代码文件和帮助文档(man 手册)位置的命令

常用选项:

  • -b:仅搜索可执行文件
  • -s:仅搜索源代码文件
  • -m:仅搜索帮助文档

举例:

  1. 查找 ls 命令的所有相关文件:where ls
    在这里插入图片描述

  2. 仅查找 python3 的可执行文件位置:whereis -b python3
    在这里插入图片描述

  3. 仅查找 gcc 的帮助文档位置:whereis -m gcc
    在这里插入图片描述

5、alias指令

功能: 用于创建命令的别名
举例:

  1. 创建简单别名(用 ll 代替 ls -l
alias ll="ls -l"
  1. 创建带参数的复杂别名(例如快速进入常用目录)
alias work="cd /home/user1"
  1. 查看已定义的别名
alias # 显示所有别名
alias ll # 仅显示ll别名的定义
  1. 删除别名
unalias work

在这里插入图片描述

6、grep指令

语法: grep [选项] 搜寻字符串 文件
功能: 在⽂件中搜索字符串,将找到的⾏打印出来。
常⽤选项:

  • -i:忽略⼤⼩写的不同,所以⼤⼩写视为相同
  • -n:输出⾏号
  • -v:反向选择,即显⽰出没有’搜寻字符串’内容的那⼀⾏

举例:
先向temp.txt文件写入如下内容:

  1. 在文件中搜索指定字符串:grep "ab" temp.txt
    在这里插入图片描述

  2. 忽略大小写搜索,并显示行号:grep -in "ab" temp.txt
    在这里插入图片描述

  3. 反向匹配(显示不包含指定内容的行):grep -v "ab" temp.txt

7、zip指令 和 unzip指令

1)zip指令

语法: zip [选项] 压缩文件名.zip 要压缩的文件/目录...
功能: 将⽬录或⽂件压缩成zip格式
常⽤选项:

  • -r:递归压缩目录

举例:

  1. 压缩单个文件
zip test1.zip test1.txt
  1. 压缩多个文件
zip files.zip test2.txt test3.txt test4.txt
  1. 压缩目录(必须加 -r)
zip -r dir.zip dir

2)unzip指令

语法:unzip [选项] 压缩文件名.zip [要解压的文件...]
功能: 解压压缩文件
常用选项:

  • -d 目录:指定解压到的目标目录(目录不存在会自动创建)
  • -l:列出压缩文件中的内容(不解压)
  • -o:覆盖已存在的文件,无需确认
  • -x 文件:排除指定文件,不解压该文件
  1. 解压到当前目录
unzip test1.zip
  1. 解压到指定目录
unzip files.zip -d /home
  1. 查看压缩包内容(不解压)
unzip -l files.zip
  1. 解压时排除指定文件
unzip files.zip -x "test2.txt"

8、rz指令 和 sz指令

1)rz指令

语法:rz [选项]
功能: 从本地 Windows 系统向 Linux 服务器上传文件
常用选项:

  • -b 二进制模式传输:用于传输压缩包(.tar/.zip)、可执行文件、图片等非文本文件,避免文件内容损坏

举例:

  1. 基础传输:rz
    在这里插入图片描述
    接下来会弹出窗口,点击想要传输的文件即可进行传输:

  2. 二进制模式传输(用于非文本文件)
    传输压缩包(如 data.tar.gz)、图片(如 img.png)、可执行程序时,必须用 -b 确保文件不损坏:rz -b
    在这里插入图片描述
    接下来也是在弹出的窗口选择要传输的内容即可

2)sz指令

语法: sz [选项] 文件名1 [文件名2 ... 文件名N]
功能: 从本地 Linux 服务器向 Windows 系统上传文件
常用选项:

  • -b 二进制模式传输:用于传输压缩包、图片、可执行文件等非文本文件,避免内容损坏。

举例:

  1. 传输压缩包 files.zip 到远程终端:
    在这里插入图片描述
    执行后,远程终端会弹出窗口,选择目录后开始传输:

    最后在我们的终端上就可以看见我们上传的压缩包了

9、tar指令

语法: tar [选项] 归档文件名 文件或目录
功能: 另外一种常见的打包和解包工具
常用选项:

  • -c:建⽴⼀个压缩⽂件,附档名为.tar
  • -x:解开⼀个压缩⽂件
  • -t:查看压缩文件⾥⾯的内容
  • -z:使用 gzip 压缩格式,附档名为.tar.gz
  • -j:使用 bzip2 压缩格式,附档名为.tar.bz2
  • -v:显示详细的处理过程
  • -f:指定归档文件名。注意:在 f 之后要⽴即接档名,不要再加参数。
  • -C:解压到指定⽬录

举例:

  1. 打包目录:将/home/test目录打包成test_backup.tar
tar -cf test_backup.tar /home/test
  1. 打包并压缩目录:把/home/test目录打包并压缩成test_backup.tar.gz(gzip 格式)
tar -czf test_backup.tar.gz /home/test

如果打包后压缩成bzip2格式:

tar -cjf test_backup.tar.bz2 /home/test
  1. 解压压缩文件到当前目录:解压test_backup.tar到当前工作目录
tar -xf test_backup.tar
  1. 解压压缩归档文件到指定目录:将test_backup.tar.gz解压到/home目录
tar -xzf test_backup.tar.gz -C /home
  1. 查看归档文件内容:查看test_backup.tar.bz2归档文件包含的文件和目录:
tar -tf test_backup.tar.bz2

10、bc指令

语法:bc [选项] [文件名]
功能: bc 是 Linux/Unix 系统中一款高精度的计算器工具,支持整数、小数运算,还能处理表达式、函数和变量,语法简洁直观,适合在命令行中进行数学计算。
常用选项:

  • -l 加载数学库,支持小数运算和数学函数。
  • -q 安静模式,进入交互环境时不显示版本信息和提示。

举例:

  1. 交互式计算
bc -lq
  1. 非交互式计算(单行命令):通过管道传递表达式
echo "2^10 + 100" | bc
  1. 计算文件中的表达式
bc -lq calc.txt

11、uname指令

语法:uname [选项]
功能: 用于获取系统信息的命令, 可以显示当前操作系统的名称、节点名称、内核版本、内核发行版本、机器硬件名称等信息。

常⽤选项:

  • -a:详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
  • -r:显示内核发行版本

举例:

  1. 显示当前系统的内核发行版本号:uname -r

12、重要的⼏个热键 Tab,Ctrl+C,Ctrl+D

  • Tab:命令自动补全(最常用),文件 / 目录路径自动补全。

  • Ctrl + C:让当前的程序停掉。如果在命令行中,出现了异常情况,统一尝试Ctrl + C来终止异常。

  • Ctrl + D: 退出交互式程序(断开连接)

13、shutdown指令

语法: shutdown [选项]
常⻅选项:

  • -h:将系统的服务停掉后,⽴即关机。
  • -r:在将系统的服务停掉之后重新启动
  • -t sec:-t 后⾯加秒数,亦即过⼏秒后关机的意思。

14、扩展命令

  • 安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;
  • ⽂件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;
  • 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;
  • ⽹络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、nslookup;
  • 系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;
  • 其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。

15、shell命令以及运⾏原理

Linux严格意义上说的是⼀个操作系统,我们称之为“核⼼(kernel)”,但我们⼀般⽤户,不能直接使⽤kernel。⽽是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。

如何理解?
从技术⻆度,Shell的最简单定义:命令⾏解释器(command Interpreter)主要包含:

  • 将使⽤者的命令翻译给核⼼(kernel)处理。
  • 同时,将核⼼的处理结果翻译给使⽤者。

为什么要存在外壳程序?

  1. 方便用户操作
  2. 保护内核

对⽐windows GUI,我们操作windows 不是直接操作windows内核,⽽是通过图形接⼝,点击,从⽽完成我们的操作(⽐如进⼊D盘的操作,我们通常是双击D盘盘符或者运⾏起来⼀个应⽤程序)。

shell对于Linux,有相同的作⽤,主要是对我们的指令进⾏解析,解析指令给Linux内核。反馈结果在通过内核运⾏出结果,通过shell解析给⽤⼾。

帮助理解: 如果说你是⼀个闷骚且害羞的程序员,那shell就像媒婆,操作系统内核就是你们村头漂亮的且有让你⼼动的⼩花。你看上了⼩花,但是又不好意思直接表⽩,那就让你家⼈找媒婆帮你提亲,所有的事情你都直接跟媒婆沟通,由媒婆转达你的意思给⼩花,⽽我们找到的媒婆姓王,所以我们叫它王婆,它对应我们常使⽤的bash。

http://www.dtcms.com/a/503142.html

相关文章:

  • sql练习-5
  • 做网站审批号必须要wix做网站的建议
  • YAML的Value表示
  • 如何在Gitee和GitHub上部署SSH公钥
  • 成都高新网站建设美图秀秀在线制作
  • Flutter Isolate的使用
  • 从 JDK 8 到 JDK 23:HotSpot 垃圾回收器全景演进与深度剖析
  • 深圳网站建设jm3q网站是公司域名是个人可以吗
  • 【深度学习新浪潮】多模态大模型在图像理解领域的技术进展与实践
  • wordpress 分类菜单高亮外贸seo软件
  • 百度面试题解析:Zookeeper、ArrayList、生产者消费者模型及多线程(二)
  • excel绘制折线图
  • 数据结构(c++版):二叉树的实现
  • 厦门手机网站建设wordpress mkv格式
  • spiderdemo题解系列——第2篇:请求头检测挑战(第1题)
  • 数据事件及数据查询——东方财富掘金量化速成学习(python)
  • 数据库做网站wordpress ip地址
  • 上海做网站及推广网站关键词怎么优化
  • 利用汽车雷达测试系统模拟多径效应——论文阅读
  • 【大语言模型】—— 自注意力机制及其变体(交叉注意力、因果注意力、多头注意力)的代码实现
  • TensorFlow2 Python深度学习 - 生成对抗网络(GAN)简介
  • 珠海网站品牌设计公司简介厦门网页
  • 房子网站有哪些在线企业查询系统
  • 临颖网站建设漳州做网站建设
  • Linux oops时进行panic
  • 【Docker】Docker Image(镜像)
  • 重生之我拿捏Linux——《三、shell脚本使用》
  • Altium Designer(AD24)Windows窗口功能总结
  • C++进阶:重载类型转换
  • SKY77645 导致的Rach failure问题