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

Linux基础指令(入门必备2.0)

创作初心:在加深个人对知识系统理解的同时希望可以帮助到更多需要的同学

😄柯一梦的专栏系列

🚀柯一梦的Gitee主页

🛠️柯一梦主页详情

座右铭:心向深耕,不问阶序;汗沃其根,花自满枝


date指令

指定格式显示时间:date+%Y/%m/%d

用法:date  [OPTION]......[+FORMAT],为什么指定格式内容之前要加+呢?其实+是为了区分选项和格式内容。

1.在格式内容的显示方面:

  • %Y:完整的年份
  • %m:月份
  • %d:日
  • %F:相当于%Y-%m-%d
  • %H:小时
  • %M:分钟
  • %S:秒
  • %s:按照时间戳的格式输出

左边(+ 之前)的都是 命令选项(比如 -d 指定时间、-u 用 UTC 时区),负责告诉 date“要处理哪个时间、用什么规则处理”;
右边(+ 之后)的都是 格式内容(比如 %Y-%m-%d%H:%M:%S),负责告诉 date“最终要以什么样子输出时间”。

2.时间戳和时间之间的转化

date -d @1716000000 +"%Y-%m-%d %H:%M"
date -d "2024-05-17 10:13:20" +%s

举个之前的例子再印证下:

时间戳转化为可视化时间:

可视化时间转化为时间戳:


cal指令

cal指令用来显示公历(阳历)日历。公历是现在国家通用历法,又称为格列历,统称为阳历。

命令格式:cal 参数 [年份]

功能:用于查看日历等时间信息,如只有一个参数,则表示当前年份,如有两个参数,则表示月份和年份。

常用选项:

  • -3 系统显示前一个月
  • -j 显示在当年中的第几天(一年当中的日期按天算,从1月1号算起,默认显示当天在一年中的天数)
  • -y 显示当前年份的日历
  • 无参数:默认显示当前月份的日历(如 cal 显示当前月)。
  • 1 个参数:参数为年份(如 cal 2025),显示该年份的全年日历(1-12 月)。
  • 2 个参数:第一个参数为月份(1-12),第二个参数为年份(如 cal 10 2025),显示指定年份的指定月份日历。

举例:

无参数:

1个参数(表示年份):

2个参数(形式是月份 年份):

显示天数:


find指令

find命令会在指定的路径下面递归式的搜索所有文件,并且会把相关文件的路径缓存起来,所以当你重复使用的时候它会搜索的越来越快。

  • Linux下find命令在目录结构中搜索文件,并且执行指定的操作
  • Linux下的find命令提供了相当多的查找条件,功能非常强大。由于find具有强大的功能,所以它的选项很多,并且都值得我们花时间去了解一下
  • 在运行一个非常耗费资源的find命令式时,人们倾向于把它放在后台去执行,因为遍历一个打的文件系统可能汇划费很长的时间

语法:find pathname(路径名称) -options(选项)

功能:用于在文件树中(递归)查找文件,并且做出相应的处理

常用选项

  • -name 按照文件名查找文件
  • 其他选项需要自己下去查,这个命令其实比较复杂

举例:

其实有一个小细节,*.exe代表什么呢,*是通配符可以代表任意内容,其实就是寻找后缀为.exe的文件。

我们在这里再补充一些理论知识:我们使用的大部分命令都是二进制的可执行文件

我们可以看到,我们之前使用的ls,居然是/usr/bin/ls路径下的一个可执行文件,所以我们不仅可以ls展开当前路径下的信息,还可以使用/usr/bin/ls去查看

既然我们使用的大部分命令都是二进制文件,那么我们可以自己写一个二进制文件当指令吗?当然可以,但是我们自己写的二进制文件想要运行,必须要加./文件名。为什么呢?要执行一个程序,首先要知道那个程序在哪里。那我们不妨大胆猜测一下,是不是我们的文件储存的位置不同,导致系统不能直接找到我们的文件呢?答案是是的,系统会现在/usr/bin这个路径下去寻找命令,并且直接执行,这样的话就不需要./文件名 这么挫的方法了。

所以 如果你自己写了一个可执行文件,并且把它移到/usr/bin目录下,那么就相当于你给你的系统装了一个自己写的指令。

其实我们在Windows系统下安装软件的本质就是拷贝可执行文件到某个目录下。


which指令

which的核心功能查找并显示某个可执行命令在系统中的具体路径

find也可以搜索,但是which更快,因为which是在指定的/usr/bin路径下面去搜索那个命令的

所以which = find /usr/bin -name  (那个bin代表的就是二进制)

举例:

注意:我们通常不建议把自己写的指令拷贝到系统中,因为自己写的没有经过测试,可能会造成污染。所以我们自己使用时,通常都是./ 进行使用(这个操作就是为了找到二进制文件)


file指令

file指令通过分析文件的内容(而非文件名或扩展名),判断文件的实际类型(比如文本、二进制、图片、压缩包等)

举例:file /usr/bin/ls


whereis指令

主要功能:在系统预设的标准目录中,搜索与指定命令 / 程序相关的二进制文件(可执行文件)、源代码文件和手册页(man page)的位置

了解即可


alias指令

我们在使用which ls的时候,第一行为什么会出现一个alias?

这个指令的作用就是给一些命令或者文件起别名,我们可以看到 ls 是 ls --color的别名,所以我们平时使用的 ls 并不只是 /usr/bin/ls 而是 ls --color

所以:执行命令时,会优先搜索别名。

值得注意的是,我们自己取的别名是内存级的,你退出系统员以后,它会自动删除。

最好不要给你的命令设置别名


grep指令(行文本过滤工具)

语法:grep [选项] 搜索字符串 文件

功能:在文件中搜索字符串,将找到的行列打印出来

常用选项:

  • -i:忽略大小写的不同(所以grep默认是大小写敏感的)
  • -n:顺便输出行号
  • -v:反向选择,也就是显示没有“搜寻字符串”内容的那一行

举例:

显示行号:

反向搜索:


htop指令

功能:一款交互式系统资源监控与进程管理工具

格式:htop -d **  -n **

  • -d:刷新的时间间隔
  • -n刷新的次数

zip指令

产生背景:打包 压缩与解压 解包 都是在本地的计算机上完成的,他减少的是文件的传输效率,相当于用空间来换时间

语法:zip [选项] 压缩文件名.zip 要压缩的文件或目录...

常用选项:

  • -r:递归处理,将指定目录下的所有文件和子目录一并处理

用法:以为内我们常常打包压缩多个文件,所以不妨把那些文件放在一个目录下,然后再对那个目录进行递归打包,这样就可以实现对多个文件的打包

举例:


unzip指令

在解包的时候我们通常会把那个压缩包转移到一个新建的目录下,这是为了防止解压出来的文件对系统里面本身的文件造成污染。所以解压一般是配合着mv使用,但是也可以指定目录下解包

语法:unzip 压缩包 ( [选项] 指定目录 )

常用选项

  • -d:指定路径下解包

用法:如果没有-d,也就是指定路径解包,默认是在当前目录下解包

举例

手动在指定路径下解包

使用命令中的选项在指定路径下解包


rzsz指令

这个指令分为两个小指令,认rz(接收文件)和sz(发送文件),主要功能是实现Linux系统和Windows系统之间的文件互传

rz指令:

sz:


tar指令

语法:tar [选项] 文件与目录

选项:

  • -c:建立一个压缩文件的参数指令
  • -z:告诉tar这个文档是否使用gzip算法
  • -f:告诉tar具体要操作的是哪个压缩包文件
  • -v:压缩过程中显示文件压缩进程
  • -x:告诉tar要解压一个文件
  • -C:解压到指定目录
  • -t:查看tarfile里面的文件

举例:

压缩文件(值得注意的是:使用 tar czf 压缩目录时,会自动递归处理目录内的所有内容(包括子目录、文件等),无需额外添加 -r 选项)

解压:


bc指令

bc 是 Linux 命令行中一款强大的任意精度计算器工具,支持整数、浮点数运算,以及数学函数、条件判断、循环等简单编程功能,常用来在终端中快速执行数学计算

使用方法很简单,直接在命令界面输入bc,然后就可以进行计算了


uname -r 指令

uname是Linux / 类 Unix 系统中用于显示系统内核及硬件相关信息的命令,常用于快速查询系统的基本属性(如内核版本、硬件架构等)

  • -a:内核名称 主机名 内核版本 内核编译信息 硬件架构 处理器类型 操作系统
  • lsb_release -a:查看操作系统版本

举例:

-a:

lsb_release-a:

http://www.xdnf.cn/news/20366.html

相关文章:

  • B.50.10.06-NoSQL数据库与电商应用
  • 深度学习:CNN 模型训练中的学习率调整(基于 PyTorch)
  • nVisual从入门到精通—应用实例
  • 【51单片机8*8点阵显示箭头动画详细注释】2022-12-1
  • vim 常用快捷键汇总
  • 学习 Android (二十) 学习 OpenCV (五)
  • FastVLM-0.5B 模型解析
  • React Hooks UseCallback
  • Docker Registry 实现原理、适用场景、常用操作及搭建详解
  • CRYPT32!CryptMsgUpdate函数分析两次CRYPT32!PkiAsn1Decode的作用
  • Linux之Docker虚拟化技术(四)
  • 解决Vue Canvas组件在高DPR屏幕上的绘制偏移和区域缩放问题
  • Process Explorer 学习笔记(第三章3.2.1):主窗口与进程列表详解
  • 9.5C++作业
  • Ruoyi-vue-plus-5.x第五篇Spring框架核心技术:5.2 Spring Security集成
  • 使用PyTorch构建卷积神经网络(CNN)实现CIFAR-10图像分类
  • 1688 商品详情抓取 API 接口接入秘籍:轻松实现数据获取
  • LeetCode Hot 100 第11天
  • 微前端架构:解构前端巨石应用的艺术
  • 【Android】制造一个ANR并进行简单分析
  • Kotlin中抽象类和开放类
  • 《从报错到运行:STM32G4 工程在 Keil 中的头文件配置与调试实战》
  • CRYPT32!ASN1Dec_SignedDataWithBlobs函数分析之CRYPT32!ASN1Dec_AttributesNC的作用是得到三个证书
  • 垃圾回收算法详解
  • 《sklearn机器学习——回归指标2》
  • Java内部类
  • 再读强化学习(动态规划)
  • 时隔4年麒麟重新登场!华为这8.8英寸新「手机」给我看麻了
  • 《Ceph集群数据同步异常的根因突破与恢复实践》
  • 深入剖析RocketMQ分布式消息架构:从入门到精通的技术全景解析