• 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字节以上的文件系统) 

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

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

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

    which指令

    语法:which 指令

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

    1. [pjb@VM-8-3-centos lesson2]$ which top
    2. /usr/bin/top
    3. [pjb@VM-8-3-centos lesson2]$ which mkdir
    4. /usr/bin/mkdir
    5. [pjb@VM-8-3-centos lesson2]$ which touch
    6. /usr/bin/touch
    7. [pjb@VM-8-3-centos lesson2]$ which mv
    8. /usr/bin/mv
    9. [pjb@VM-8-3-centos lesson2]$ which pwd
    10. /usr/bin/pwd
    11. pjb@VM-8-3-centos lesson2]$ which which
    12. alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
    13. /usr/bin/alias
    14. /usr/bin/which

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

    alias 指令

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

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

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

    举个例子:

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

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

    whereis 指令

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

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

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

    grep指令

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

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

    常用选项:

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

    1. [pjb@VM-8-3-centos lesson2]$ ll
    2. total 172
    3. drwxrwxr-x 2 pjb pjb 4096 Sep 30 21:14 dir
    4. -rw-rw-r-- 1 pjb pjb 168908 Oct 1 11:01 test.txt
    5. [pjb@VM-8-3-centos lesson2]$ grep '999' test.txt
    6. hello 106 [999]
    7. hello 106 [1999]
    8. hello 106 [2999]
    9. hello 106 [3999]
    10. hello 106 [4999]
    11. hello 106 [5999]
    12. hello 106 [6999]
    13. hello 106 [7999]
    14. hello 106 [8999]
    15. hello 106 [9990]
    16. hello 106 [9991]
    17. hello 106 [9992]
    18. hello 106 [9993]
    19. hello 106 [9994]
    20. hello 106 [9995]
    21. hello 106 [9996]
    22. hello 106 [9997]
    23. hello 106 [9998]
    24. hello 106 [9999]

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

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

    zip/unzip指令

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

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

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

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

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

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

    1. [pjb@VM-8-3-centos study]$ unzip my.zip
    2. Archive: my.zip
    3. replace lesson2/test.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
    4. inflating: lesson2/test.txt
    5. [pjb@VM-8-3-centos study]$ tree lesson2
    6. lesson2
    7. |-- dir
    8. `-- 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千个命令以上,剩下的还的我们自己去学习。 

  • 相关阅读:
    提升 Windows 生产力的实用工具集:Microsoft PowerToys | 开源日报 No.42
    洛谷:P1434 [SHOI2002] 滑雪 题解
    轻量级SQLite可视化工具Sqliteviz
    MATLAB | 三个趣的圆相关的数理性质可视化
    Vue3简单使用(一) --- 环境搭建
    已解决 Go Error: cannot use str (type string) as type int in assignment
    智能运维应用之道,告别企业数字化转型危机
    如何打造适用的MES管理系统解决方案
    ubantu搭建cdh6(自己留的草稿版本)
    【OpenCV实现图像:图像处理技巧之空间滤波】
  • 原文地址:https://blog.csdn.net/qq_61552595/article/details/127128710