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

Linux-常见命令(三)

前言

作者小蜗牛向前冲

名言我可以接收失败,但我不能接收放弃

  如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正。

目录

find指令:(灰常重要) -name

which指令

alias 指令

whereis 指令

grep指令

zip/unzip指令

tar指令(重要) 

 bc指令

uname指令

重要的几个热键[Tab],[ctrl]-c, [ctrl]-d

关机

补充几个下指令


 这里我们继续学习前面没有讲完的常见指令。

find指令:(灰常重要) -name

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

功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)
常用选项:-name 按照文件名查找文件
 

Linux下find命令在目录结构中搜索文件,并执行指定的操作。
Linux下find命令提供了相当多的查找条件,功能很强大。

由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。
即使系统中含有网络文件系统( NFS), find命令在该文件系统中同样有效,只你具有相应的权限。
在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统) 

虽然这个命令非常重要,要讲的话估计要单独写一篇博客,因为我们是初学,我们现在大概认识就好了下面为大家举例个例子:

//我们在/home/pjb路径下找test.c
[pjb@VM-8-3-centos lesson2]$ find /home/pjb/ -name test.c
/home/pjb/study/lesson1/test.c

 这里我们要注意find在寻找的时候可能会到磁盘中寻找,这样就会导致效率低下。

which指令

语法:which 指令

功能:搜索以前用过的指令,在那个路径下。

[pjb@VM-8-3-centos lesson2]$ which top
/usr/bin/top
[pjb@VM-8-3-centos lesson2]$ which mkdir
/usr/bin/mkdir
[pjb@VM-8-3-centos lesson2]$ which touch
/usr/bin/touch
[pjb@VM-8-3-centos lesson2]$ which mv
/usr/bin/mv
[pjb@VM-8-3-centos lesson2]$ which pwd
/usr/bin/pwd
pjb@VM-8-3-centos lesson2]$ which which
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
	/usr/bin/alias
	/usr/bin/which

 那我们可以思考一个问题which指令到底是如何搜索这些指令的呢?为什么我们在用这些指令的时候不用加路径,但我们在编译代码的时候就要加路径呢?其实这就和编译环境有关,这里我们就不扩展了。

alias 指令

在学习这给指令前,我们先看一个例子:

[pjb@VM-8-3-centos lesson2]$ touch test.txt
[pjb@VM-8-3-centos lesson2]$ mkdir dir
[pjb@VM-8-3-centos lesson2]$ ll
total 4
drwxrwxr-x 2 pjb pjb 4096 Sep 30 21:14 dir
-rw-rw-r-- 1 pjb pjb    0 Sep 30 21:14 test.txt
[pjb@VM-8-3-centos lesson2]$ which ll
alias ll='ls -l --color=auto'
	/usr/bin/ls
[pjb@VM-8-3-centos lesson2]$ which ls
alias ls='ls --color=auto'
	/usr/bin/ls

 这里我们发现目录是带颜色的,其实ll命令的本质其实就是ls-l,至于为什么会带颜色呢?其实是因为带了--color=autod的颜色选项;这里我们为什么说ll的本质是ls-s呢?其实这就不得不是alias的功能了,该命令其实是对命令重命名的(起别名)。

举个例子:

[pjb@VM-8-3-centos lesson2]$ alias zhangshan='pwd'
[pjb@VM-8-3-centos lesson2]$ zhangshan
/home/pjb/study/lesson2

这里我们用alias给pwd命令(查看当前的路径) 取了个憋名叫zhangshan,当我们在命令行直接输入zhangshan的时候,我们发现真的就执行了pwd命令。

whereis 指令

听完上面的finde和which指令,来理解他就非常容易了,为什么这么说呢?因为这给指令,也是用来查找文档的,但他的查找范围比find小比which大(which<whereis<find)

ll:[pjb@VM-8-3-centos lesson2]$ whereis test.c
test: /usr/bin/test /usr/share/man/man1/test.1.gz /usr/share/man/man1p/test.1p.gz

whereis指令会在特定的路径下,查找指定的的文件名对于的指令或者文档。

grep指令

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

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

常用选项:

-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行

[pjb@VM-8-3-centos lesson2]$ ll
total 172
drwxrwxr-x 2 pjb pjb   4096 Sep 30 21:14 dir
-rw-rw-r-- 1 pjb pjb 168908 Oct  1 11:01 test.txt
[pjb@VM-8-3-centos lesson2]$ grep '999' test.txt
hello 106 [999]
hello 106 [1999]
hello 106 [2999]
hello 106 [3999]
hello 106 [4999]
hello 106 [5999]
hello 106 [6999]
hello 106 [7999]
hello 106 [8999]
hello 106 [9990]
hello 106 [9991]
hello 106 [9992]
hello 106 [9993]
hello 106 [9994]
hello 106 [9995]
hello 106 [9996]
hello 106 [9997]
hello 106 [9998]
hello 106 [9999]

 这个指令就是可以匹配文本中的关键字,匹配上了就会显示出来,该命令还能和其实命令组成管道一起用,下面我们用命令行为大家演示一下常用的选项。

[pjb@VM-8-3-centos lesson2]$ grep -n 'Happy' test.txt
7:Happy National Day to you all of you
8:Happy National Day to you all of you
9:Happy National Day to you all of you
[pjb@VM-8-3-centos lesson2]$ grep -i 'Happy' test.txt
Happy National Day to you all of you
Happy National Day to you all of you
Happy National Day to you all of you
happy Natinoal Day to you all of you

zip/unzip指令

语法: zip 压缩文件名(自定义) 要压缩的文件
功能: 将目录或文件压缩成zip格式

常用选项:-r 递 归处理,将指定目录下的所有文件和子目录一并处理
举例:

[pjb@VM-8-3-centos study]$ ll
total 12
drwxrwxr-x 3 pjb pjb 4096 Sep 29 18:45 lesson
drwxrwxr-x 3 pjb pjb 4096 Sep 29 20:17 lesson1
drwxrwxr-x 3 pjb pjb 4096 Sep 30 21:14 lesson2
[pjb@VM-8-3-centos study]$ zip my.zip lesson2 -r
  adding: lesson2/ (stored 0%)
  adding: lesson2/test.txt (deflated 85%)
  adding: lesson2/dir/ (stored 0%)
[pjb@VM-8-3-centos study]$ ll
total 40
drwxrwxr-x 3 pjb pjb  4096 Sep 29 18:45 lesson
drwxrwxr-x 3 pjb pjb  4096 Sep 29 20:17 lesson1
drwxrwxr-x 3 pjb pjb  4096 Sep 30 21:14 lesson2
-rw-rw-r-- 1 pjb pjb 25840 Oct  1 11:54 my.zip

这里我们用zip对目录lesson2打包压缩,但我们要注意该命令对目录打包压缩的时候,是默认只对目录打包压缩而不会打包压缩目录中的内容,其实我们只要加说-r指令(递归)。

那么我们又是如何去解包解压的呢?这就要用到我们unzip。

我们继续解包解压一下上面的文件:

[pjb@VM-8-3-centos study]$ unzip my.zip
Archive:  my.zip
replace lesson2/test.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
  inflating: lesson2/test.txt        
[pjb@VM-8-3-centos study]$ tree lesson2
lesson2
|-- dir
`-- test.txt

那么要将文件压缩到指定的路径下我们又该这么做呢?

 

这里我们可以思考一个问题?

什么是打包压缩?

其实就是将多个文件或目录合并成为一个特殊的文件。

为什么要打包压缩?

减小文件的体积    加快资源传输     节省网络的带宽。

tar指令(重要)
 

该指令也是用来打包或者解压的,但是他可以组合使用命令。

下面是他的常用选项:

 -c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
-C : 解压到指定目录

 我们来看到这个命令行,这里我们通过tar把lessin2打包到my.tgz这个文件中,其中的-czf分别表示:c表示创建一个压缩文件,z表示压缩文件,f表示压缩的文档,后面要马上跟要压缩的文件。

 解压就很简单了,我们仍然是用tar但是我们把z的选项换成x就可以解压了。

那我们要指定路径解压我们又该这么做呢?

 这里我们又加了一个指令v就是不解压直接查看文件的内容。

 bc指令

这个指令非常简单,就是个计算机。

 我们可以进行各种数据的计算。

uname指令

 uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息,他其中也有一些选项像其中的-r就是显示操作系统的内核信息,-a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称。

 其中的红线标注的便是内核版本。

重要的几个热键[Tab],[ctrl]-c, [ctrl]-d

tab键

其中的tab其实就是有补齐功能的按键,他能够快速补齐我们的命令,只要我们输入一个命令的头几个字符,就能快速补齐,但我们要注意的是当我们帮程序放了很久在去用,他就会显示出所以的相关命令。        

 [ctrl]-c

这个按键是能够强行终止程序,当我们的程序一直在跑的时候我们要想让程序停止就可以按 [ctrl]-c。

 这里我们写了个死循环的程序,只有我们按[ctrl]-c终止程序。

[Ctrl]-d按键
通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可以用来取代exit,这里简单就是退出Linux的操作。

关机

语法: shutdown [选项] ** 常见选项: **

-h: 将系统的服务器停掉后立刻关机

-r: 将系统的服务器停掉后重新启动

-t sec: -t后面加秒数,就是几秒后关机的以上。

补充几个下指令

iscpu指令 

查看cpu的信息

ismem指令

查看内存信息。

who指令 vs whoami

who看有哪些用户使用这台机器甚至上机的时间都可以显示,whoami显示直接的用户的信息。

其实Linux还有好多操作命令,一般的机器都有1千个命令以上,剩下的还的我们自己去学习。 

相关文章:

  • 【国庆活动】Spring Boot 必知必会的核心理念(二)
  • c++:程序流程结构,顺序结构,选择结构if else,三目运算符
  • 使用 Amazon Rekognition API 进行文本检测和 OCR
  • 内核驱动踩坑记录
  • 半导体中的杂质和缺陷能级
  • SSM毕设项目大学生心理咨询系统792l6(java+VUE+Mybatis+Maven+Mysql)
  • 嵌入式学习的第二天
  • R语言(4) plot函数介绍
  • JVM -- 垃圾回收器7种(四)
  • 模型调优:验证集的作用(就是为了调整超参数)
  • PyQt5之消息对话框
  • java计算机毕业设计校友闲置书籍管理平台源代码+数据库+系统+lw文档
  • Interactron | 体现自适应的目标检测器
  • javaEE---CSS
  • PCIE操作基础原理
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • GitUp, 你不可错过的秀外慧中的git工具
  • Java|序列化异常StreamCorruptedException的解决方法
  • JavaScript 基础知识 - 入门篇(一)
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • Javascript基础之Array数组API
  • Mithril.js 入门介绍
  • mysql innodb 索引使用指南
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • PAT A1120
  • tab.js分享及浏览器兼容性问题汇总
  • 京东美团研发面经
  • 看域名解析域名安全对SEO的影响
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 两列自适应布局方案整理
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 爬虫模拟登陆 SegmentFault
  • 前端_面试
  • 我与Jetbrains的这些年
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • #Ubuntu(修改root信息)
  • (C++)八皇后问题
  • (C++20) consteval立即函数
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (三)终结任务
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • (转载)OpenStack Hacker养成指南
  • ***监测系统的构建(chkrootkit )
  • .naturalWidth 和naturalHeight属性,
  • .Net Core缓存组件(MemoryCache)源码解析
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET gRPC 和RESTful简单对比
  • .net Stream篇(六)
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • .NET值类型变量“活”在哪?
  • .NET中 MVC 工厂模式浅析
  • .pop ----remove 删除