Linux指令2

Linux指令2

补充:

文件=文件内容+文件属性
文件内容: 其实最终就是二进制数据,存储在电脑中,并有显性的大小标注
文件属性: 如文件名, 文件创建的时间, 文件的大小(也就是文件内容的大小), 这些都是文件属性
所以后续我们对文件的操作都是对文件的这两部分操作, 修改文件的属性或者修改文件的内容, 包括访问等操作
  • 那么在Windows系统上创建一个空文件, 这个文件会占据磁盘/固态硬盘的存储空间吗?
  • 答案是会的. 因为即使是空文件, 但是它本身的文件属性也要被存储到电脑当中, 所以它也是会占据磁盘空间的, 只不过它不会像文件内容的大小一样显性的展示出来.
  • 像这样:
  • 在这里插入图片描述

指令1(man指令)

  • 该指令的作用是用户在不知道一个陌生指令的具体用法时, 可以通过man指令进行查询了解这个指令的用法

  • man 陌生命令(如ls)
    
  • 这里用一个特殊一点的例子给大家讲解一下man指令

  • 这个例子就是:

  • man printf           printf在Linux中也可以作为指令去用
    
  • 在这里插入图片描述

  • 如果我们输入man man这个指令, 就可以更好的了解man这个指令了
    
  • 在这里插入图片描述

  • 在这里插入图片描述

  • 那么我们看看跟了手册编号的指令的情况是啥样的:

  • man 3 printf
    
  • 那么首先我在进行这个指令操作的时候是报错了, 不可行的, 如下图

  • 在这里插入图片描述

  • 经过查验之后发现系统应该默认不安装有关于标准库函数的man pages,我们需要手动安装. 也有一些同学的情况可能是man这个指令根本用不了. 那么这里对这个内容进行一个补充说明:

  • 首先我们用的是云服务器, 而且只有一台
    一般一个企业在做开发, 或许做一个项目的时候, 那么一个开发团队是需要起码3种环境的
    开发环境
    测试环境
    生产环境:就是一个真实的线上环境, 团队写完代码, 测试完功能后真正给用户提供服务的环境. 就好比如游戏王者荣耀, 它会时不时显示说, 不停机更新, 那么它更新的就是用户用的这么一个生产环境.
    
    但是我们这里只有一台服务器, 那么这台服务器其实就兼顾了三种环境, 三位一体的这么一个状态, 而且是以生产环境为核心为我们打造的一款服务器. 生产环境其实可以说是一个非常干净的操作系统, 不会安装和开发强相关的工具或者库, 所以我们在使用一些指令工具的时候可能就会报错, 说没有这个工具. 那么这个时候我们手动的安装上这个工具就可以了. 
    
  • 那么安装man全套工具的指令是(云服务器适用):
    yum install -y man-pages
    
  • 完成之后我们就可以执行man 3 printf这个指令了, 效果如下:

  • 在这里插入图片描述

  • 那么我们也顺便展示一下printf作为指令的一个效果吧:

  • 在这里插入图片描述

补充工具(nano工具)

  • 这个东西其实就是类似于Windows下的文本文档

  • nano 1.text
    
  • 在这里插入图片描述

  • 在这里插入图片描述

  • 如果没有这个工具, 下载指令是: 
    yum install -y nano
    

指令2(cp指令)

  • 该指令的作用其实就是复制粘贴这么个用处(补充一点就是同级目录也就是同一个文件夹是不允许有同名文件或同名目录的, 区分大小写)

  • 语法:
    cp (后缀如-f) 源文件或目录 目标文件或目录 
    解释: 
    cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。
    若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息 
    
  • 常见后缀: 
    -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在 
    -i 或 --interactive 覆盖文件之前先询问用户 
    -r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链
    接,则一律视为普通文件处理 
    -R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理
    
  • 展示:

  • 在这里插入图片描述

  • 一开始就已经说过了同级目录下是不能有同名文件或目录的, 所以我们如果确实想在同级目录下拷贝一份一样的文件就只能给这个文件改名字:

  • 在这里插入图片描述

  • 那么拷贝目录呢:

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 需要注意的是拷贝目录的时候是不会把源目录(需要拷贝的目录)的隐藏文件拷贝过去的. 因为每个目录都有自己的隐藏文件, 如果把隐藏文件也都拷贝过去了, 那么就有可能发生冲突等等的问题.

指令3(mv指令)

  • 这个指令的作用有两个, 一个是相当于Windows系统里面的剪切, 一个是重命名, 共两个作用

  • 语法: mv [后缀] 源文件或目录 目标文件或目录 
    
    功能: 
    1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的
    目录中。 
    2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它
    将所给的源文件或目录重命名为给定的目标文件名。 
    3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至
    目标目录中。
    
    常见后缀: 
    -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖 
    -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
    
  • 演示(重命名) :

  • 在这里插入图片描述

  • 演示(剪切) :

  • 在这里插入图片描述

  • 补充一下就是, Windows系统中有回收站这么一个文件夹, 也就是目录, Windows中的删除文件或文件夹这些东西, 其实就是将你要删除的文件或文件夹剪切到了, 移动到了回收站这个文件夹里面. 随后你清理回收站的时候才是真的把要删的东西删除了. Linux中其实也可以做到这样, 不过当前暂时不涉及, 后期再展示.

补充知识:

  • Linux中的指令, 本质就是一个可执行文件.

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 在这里插入图片描述

补充工具(echo工具)

  • 语法:echo "内容" 
    功能是向显示器打印内容
    语法:echo "内容" > 目标文件名
    功能是将内容写入到目标文件中,如果目标文件不存在,则创建该文件,并写入内容
    语法:>文件名
    功能其实就是创建一个新文件,里面啥也没有,没有内容.或者该文件已经存在,向该文件写入空内容, 起到一个清空文件的作用
    
  • “>”这个符号是输出重定向符号. 有着“输出”和“重定向”的两个作用

  • 怎么理解呢, echo指令默认是向显示器打印相应内容, 结合echo “内容” > 目标文件名, 这个指令, 作用是将内容写入目标文件. 那么我们是不是可以把原来的“向显示器打印内容”变更为“向显示器写入内容”.

  • 当然了, 有写就有读, 就好比如c语言中的scanf是从我们的键盘中读取内容. 这样我们就可以引出一个概念就是大部分的硬件设备都可以看做有读写方法, 只不过有一些硬件的其中一个方法可以为空, 就好像键盘是没有写方法的(是不能向键盘写入数据的).

  • 其次便是在Linux中有个概念就是“Linux下一切皆是文件”, 因为我们所有的操作都可以通过操作文件完成, 操作文件又是写文件和读文件, 所以在Linux中屏幕, 键盘其实也是文件. 这是Linux的一个设计理念, 减少了Linux系统的编码维护成本.

  • 用生活中的例子解释一下就是, 发生什么事情都不重要, 都是浮云, 除了生死. 那么生活中一切的事情都会变得简单很多, 被老板辞职了, 没事, 浮云, 被老婆戴绿帽子了, 没事, 浮云, 中了1000万, 没事, 也是浮云. 这样一看, 人生是不是豁然开朗许多, 人生不需要过多的解释, 也不需要过多的定义, 简简单单.

  • 展示:

  • 在这里插入图片描述

  • 需要注意的是使用输出重定向>的时候, 每次都会清空文件, 然后再重新写入新内容, 是不会保存原来的内容的

  • 在这里插入图片描述

  • 这样一来指令“>文件名”就可以起到清空已经存在的文件的一个作用

  • 这样就又引出一个符号,”>>”这个符号叫追加重定向, 就可以在原文件内容的基础上, 继续追加新的内容, 如下:

  • 在这里插入图片描述

指令4(cat指令)

  • 作用就是查看文件中写了啥内容, 在显示器打印文件内容
语法:cat [后缀] 目标文件
常用后缀:
-b 对非空输出行编号 
-n 对输出的所有行编号 
-s 不输出多行空行
  • 展示 :

  • 在这里插入图片描述

  • 语法:tac 目标文件
    功能反向输出文件内容
    
  • 在这里插入图片描述

  • 扩展 :

  • 在这里插入图片描述

  • cat命令呢主要是读取一些简单文件中的简单内容的, 它其实不是很适合读取复杂文件, 大文件, 有别的指令比cat好用.

指令5(more指令)

  • 作用与cat类似

  • 语法: more [后缀] 文件名
    常用后缀:
    -n 对输出的所有行编号
    
  • 在这里插入图片描述

  • 这个命令其实也不怎么用了, 还有另外一个指令.

指令6(less指令)

  • 作用也是和cat, more类似

  • 语法: less [后缀] 文件名
    
    常用后缀:
    -i忽略搜索时的大小写
    -N  显示每行的行号
    
    进入指令后的一些操作:
    /字符串:向下搜索“字符串”的功能
    ?字符串:向上搜索“字符串”的功能
    n:重复前一个搜索(与 / 或 ? 有关)
    N:反向重复前一个搜索(与 / 或 ? 有关)
    q:quit也就是退出less这个指令
    
  • less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极 其强大。

  • less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看

  • 但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用 来查看一个文件的内容!

  • 除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。

指令7(head指令)

  • head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的 开头至标准输出中,而 tail 想当然尔就是看档案的结尾。

  • 语法: head [后缀] 文件名
    常用后缀:
    -n<行数> 显示的行数
    功能:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
    

指令8(tail指令)

  • 语法: tail [后缀] 文件名
    功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
    常用后缀:
    -f 循环读取
    -n<行数> 显示行数 
    

引申:

  • 那要是我想找1000行数据其中的某10行怎么办, 比如想找700行到710行的数据怎么做呢?

  • 在这里插入图片描述

  • 原理后面再讲

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值