• Linux 权限


    目录

    find指令:

     find -name:按照文件名查找文件

    which命令:

    whereis

    grep指令:

     grep -i忽略大小写:

    grep -v表示反转的意思:

    wc:wordcount的缩写

    sort:排序:

    uniq:去重

     zip指令

    unzip指令:

    tar指令。

    bc指令

     uname 指令

     uname -a

    Tab热键

    ctrl+x表示保存:

    ctrl+x终止前台的异常程序

    ctrl+r

    ctrl+d ——退出当前用户,退出一层。

    \反斜杠

     ctrl+c退出

    shutdown

    lscpu

     lsmem

     df -h

     who

    命令行解释器:

    shell

    扩展知识

    Linux权限

    1:基本的具体用户认识:

    用户级切换

    find指令:

     

     find -name:按照文件名查找文件

     例如:

    我们的文件排布如图所示:

     我们的根目录下有两个test.txt文件,假如我们要查找test.txt文件,我们可以这样操作:

    执行指令之后:

     我们可以发现,find -name查找出了在根目录下的全部的test.txt文件,查找的方式是递归,我们进行证明:

    我们可以多插入几个test.txt文件:

     我们一顿操作下来,出现了好多test.txt文件,假如我们的查找方式是递归时,我们查找的顺序如图所示:

     我们进行证明:

     我们的顺序完全相符,证明:find -name 在查找文件名时,进行的是递归式的拷贝。

    find指令不仅要访问内存,还要访问硬盘,这个就决定了find命令的效率并不会太高。

    which命令:

    which:搜索用过的指令在什么路径下:

    例如:

     which+指令搜索对应指令的地址。

    我们用以下ll指令:查看对应目录的文件属性:

     我们可以发现:显示的文件名既有白色的,也有蓝色的,原因是什么?

    我们可以通过which解答:

     其中,alias表示对一个命令进行重命名。color=auto'就是文件有颜色的由来。

     这串代码表示显示文件的路径。

    我们知道了如何进行重命名,所以我们也可以自己写重命名代码:

     我们把zhangsan重命名为我们的ll操作:

    我们再输入zhangsan对应的结果就是这样:

     which指令的查找范围是比较小的。

    whereis

    whereis也是一种查找执行,这种查找指令的范围是:

    which

    whereis是一种近似匹配的方案:

    例如:

    我们要查找指定的文件名test.c

     我们查找除了三个对应文件,但是这三种文件名都与test.c不同,只是文件名近似相等。

    所以whereis是一种近似匹配的方案。

    grep指令:

    grep是一种文本行过滤工具。

    默认会匹配文本中的关键字,匹配上的进行行显示:

    我们新建了一个test.txt文件,文件中有一万行内容

     我们显示文件内容:

     我们使用grep工具:

     文本文件中只有一个包含9999的文件,所以只显示了一个文件。

    假如我们显示999呢?

     这里就会显示所有含有999的文件。

    grep -n  ‘文本’ +对应文件表示显示行号:

     注意:我们这里显示的行号是源文件中对应文本的行号。

    grep默认是区分大小写的

    例如:我们对test.txt文件中的部分内容进行修改:

    我们输入vim test.txt表示对test.txt文本中的内容进行修改:

     我们把其中的两项内容进行修改。

    我们使用grep找‘bit’

    如图所示:

    如图所示,我们仅仅显示了小写的bit,我们再尝试大写的BIT

     

    由此可见,grep默认是区分大小写的。

     grep -i忽略大小写:

    -i表示的ignore,忽略大小写:

    例如:

     这样我们既显示了小写,也显示了大写。

    grep -v表示反转的意思:

    例如:

    假如我们要求没有文件名没有‘99’的全部文件,我们可以这样写:

    这样,我们显示的就是文件名不包含‘99’的全部文件。

     这些 -i -v -n可以任意组合

    例如:假如我们查看不分大小写,显示行数,除文件名为’99‘的全部文件对应的内容:

     对应的结果:

     假如我们要求这些文件一共有多少行?我们引入一个命令wc

    wc:wordcount的缩写

    我们可以采用管道的知识:

     

     我们对思路进行分析:

    我们使用grep来查看文件,我们要看的是test.txt中不带有'99'的文件,显示行数,并忽视大小写的文件,将这些文件通过管道传递到另一端,另一端的wc -l对这些文件进行操作。-l表示以行的形式显示。

    sort:排序:

    例如:我们首先来创建一个文件file.txt,对文件内容进行编辑:

     我们首先使用cat看文件内容:

    sort排序的方式是按行排序,以ascii码的形式进行排序的方式:

    例如:我们对file.txt文本内容进行排序:

     可以发现,ascii码相对小的放在上面,ascii码相对大的放在下面。

    uniq:去重

    我们使用vim对文件的内容进行修改,修改为这样:

     我们可以发现,文本中有许多相同的项目,我们如何把这些相同的项目去掉呢?

    uniq是unique的简称,作用是去掉重复项

     为什么最后一行的四个5没有被去掉呢?

    原因是这样:因为我们的uniq去重去的是相邻且相等的内容,对于不相邻的即便内容相等也不去重。

    我们该如何处理呢?

    我们可以先对文件内容进行排序,再进行去重(通过管道)

     zip指令

    zip指令是压缩

    例如:

    我们对应的根目录的树状结构

     我们尝试对目录A进行打包压缩:

     A表示我们要压缩的文件名,my.zip表示我们压缩A之后对应的压缩文件的名称,zip指令表示压缩。

    这个0%表示压缩文件的大小占源文件的大小的0%

    unzip指令:

    unzip指令是解压缩:

    接着我们的zip指令:我们刚刚把目录a压缩成为了名称为my.zip的压缩文件

    我们使用解压指令:

     表示我们对my.zip压缩文件进行解压。

    我们解压之后发现目录A对应的树目录依旧什么都没有,原因是什么?

    zip默认对一个目录进行打包压缩时,只会对目录文件进行打包压缩。

    所以我们要把一个文件全部压缩的话需要加 -r

     这时候相当于我们把A中的文件递归式的全部压缩到my.zip文件中了。

    为什么这里的stored全部都是0%

    原因是我们创建在目录A中的都是文件夹,没有实质的文件,所以所占空间为0字节,解压后也依然时0字节,所以是0%

    zip -r 你的压缩包(自定义)   dir(要打包压缩的目录)

    unzip 你的压缩包(自定义)  --在当前目录进行解包解压的功能。

    文件越大,压缩效果越好。

    假如我们要把压缩包解压到指定的文件夹:

    unzip 文件包 -d 对应的路径

    例如:

     我们举一个例子。

    我们对应的根目录:

     我们对A目录进行压缩,压缩文件为my.zip

    我们再进行解压,我们把my.zip压缩到我们的D目录中。

     

     我们就会把对应的路径也显示出来。

    为什么要打包和压缩呢?

    答:打包是把对应的文件放在一起,压缩是指把对应的文件进行压缩。

     

     

     总结:为什么要进行打包和压缩:

    1:压缩文件的大小,提升下载的效率

    2:把多个文件转换成一个文件,防止文件丢失。

    tar指令。

    tar:打包/解包,不打开它,直接看内容。

    例如:

    我们对应的根目录:

     假如我们要对A目录进行压缩,我们可以这样写:

     我们对这行代码进行分析:tar表示压缩或解压,如何区分,后面的三个字符可以帮我们区分,c对应的是创建压缩文件,所以我们要进行压缩,z表示以zip的算法进行压缩,f表示我们要压缩的文件名, my.tgz表示压缩后的压缩文件,我们的A表示我们要压缩的文件名。

    假如我们要进行解压,我们这样写就可以了:

    我们把c换成x即可,c对应的是创建压缩文件,x则对应的解压。

     所以:

     假如我们要看解包的具体过程,我们加一个v即可,例如。

     这个v的位置不做限制,只要能够保证f在最后即可。

    tar -tf表示不解压的情况下看压缩包内部的文件属性:

    例如:

     -t:表示不打开压缩文件,直接查看压缩包内的文件内容。

    -v:解压或者压缩时,同步显示压缩文件列表。

    我们使用tar怎么把文件解压到指定目录下。

    例如:

    上图是我们对应的根目录,假如我们想要解压使用tar解压,把my.tgz解压到根目录下,我们可以这样写:

    我们对这行代码进行分析:-xzvf,x表示的意思是解压,z表示的意思是以zip的算法进行解压,v表示显示解包过程, -C表示解压到指定目录。~表示家目录。

    bc指令

    bc指令就是Linux中的计算器。

    例如:

     我们输入bc,下面的这些是对bc的注解,我们忽略。

    接下来,我们就可以使用计算机了:

    我们输入2+6

     

     我们再输入1.2*12

     由此可见,该计算器不仅能够计算整型数据,也能够计算浮点型数据。

    我们输入quit退出计算器。

     bc还支持管道,例如:

    我们知道echo是把我们输入的字符打印到屏幕上:

    我们可以通过echo和bc来支持我们把计算输入的字符顺便打印到屏幕上

    例如:

     uname 指令

    我们输入uname在Linux进行尝试:

     uname显示计算机或操作系统相关的知识:

     uname -a

    uname -a可以把我们的机器属性全部显示出来:

    例如:

     3表示主版本,10表示次版本,0表示修订次数,el是centos的简称,el7就是centos7的意思。

    ×86_64是计算机体系结果,也就是cpu架构,简称×64 

    uname -r可以查看内核版本。

     

    Tab热键

    我们输入whi:

    按Tab

     我们可以显示全部以whi开头的指令。

    我们再举一个例子:

    我们输入a

    再按Tab

     我们会把所有以a开头的指令全部显示出来。

    tab的自动补齐:

    例如:

     我们可以发现以whi开头的指令一共有3个,但是以whic开头的指令有且只有一个which,所以我们输入whic就锁定了which

    我们输入whic

     然后直接按Tab

     然后就会对whic进行自动补齐。

    ctrl+x表示保存:

    例如:

    我们创建一个文件test.c

     然后我们使用nano对文件内容进行修改:

     

     我们对文件内容进行如下修改:

    我们按CTRL+X

     我们输入y

     我们来查看文件的内容:

     我们可以发现文件内容的确完成了修改。

    ctrl+x终止前台的异常程序

    例如:我们刚刚在test.c写了一个死循环程序,我们进行运行编译:

     

     死循环打印hello bit,我们可以按ctrl+c来终止异常程序。

    ctrl+r

    搜索历史命令,左右选中:

    例如:

    我们按ctrl+r

    我们输入l

     系统就会自动给我们匹配一个我们使用过的指令ll。

    我们输入t

     系统给我自动匹配了tree。

    按左右即可选中。

    ctrl+r的原理是输入片段找整体。

    ctrl+d ——退出当前用户,退出一层。

    例如:

    我们的ctrl+d会直接让我们的当前用户下线:

    \反斜杠

    可以起到换行的作用:

    例如:

     对应的信息:

     ctrl+c退出

    例如:

    我们使用续行,直接按ctrl+c

     直接就退出了。

    shutdown

    作用是关机:

     这个我们就不再做实验了。

    lscpu

    查看cpu的属性:

     lsmem

    可以查看内存属性:

     df -h

    可以查看磁盘结构

     

     who

    可以用来查看谁登录了我的账户:

     因为我们只创建了一个用户,所以我们只能查看一个。

    命令行解释器:

    例如:我们看到的命令行,指示符,以及我们输入的指令。

    命令行解释器其实是一个外壳程序shell

    我们在linux环境下能看见的这些字符都是命令行解释器。

    我们对shell进行理解:

    shell

    我们可以这样理解:人并不善于和操作系统打交道,但是人善于与shell外壳打交道,于是,我们人就通过shell外壳,来对操作系统进行处理。

    我们把对应的指令传递给shell,让shell来处理操作系统,操作系统把结果交给shell,shell再把结果返回给我们的用户。

    但是shell外壳还有另外一种作用,那就是保护操作系统,假如用户输入的代码是违法的或者是乱码,shell为了保护操作系统,就会拒绝执行用户的指令。

    shell在执行指令的时候是通过派生子进程的方式来执行用户的指令,shell本身并不执行。

    原因是shell外壳是唯一的操作系统和用户之间的桥梁,假如我们的指令致使shell外壳损坏,那我们就无法访问操作系统了,所以我们要派发子进程。

    总结:shell外壳的作用有两种

    1:方便用户访问操作系统

    2:同时也防止用户误操作导致操作系统的损害,来保护操作系统。

    扩展知识

    我们日常口中说的Linux其实就是Linux操作系统和一个shell外壳组成的。

    这个Linux操作系统也可以叫做Linxu内核。

    我们所熟知的windows图形界面也Linux的命令行解释器本质上都是外壳程序。

    注意:Linux shell命令行外壳和win图形化界面是兄弟关系。

    不存在把windows图形化界面转换为命令行再传递给操作系统,这两种外壳是互不相关的。

    我们平常熟知的安卓和鸿蒙

    安卓:操作系统使用Linux内核,外壳程序写手机图形化界面库。

    鸿蒙:操作系统使用Linux内核,外壳程序创建新的。

    我们使用的centox 7使用的外壳是bash外壳。

    Linux权限

    1:基本的具体用户认识:

    root用户:超级管理员

    普通用户:受权限约束的用户。

    用户级切换

    su能够切换用户:

    假如我们想要从普通用户切换成root,我们直接输入su或su -

    然后输入root的密码即可。

    su 和su -的区别是:

     

     su只是切换用户,但是su -相当于让root重新登陆了,对应的路径就是root的家路径。

    假如我们要从root用户转换为普通用户

    1:我们可以直接exit退出。

     或者我们可以su+用户名直接切换对应的用户,不需要输入密码。

    总结:从普通用户变成root使用su和su -即可,需要输入密码

    从root用户变成普通用户直接su+用域名即可,不需要输入密码。

     

     

     

  • 相关阅读:
    查询优化_关联查询与子查询优化
    为什么要做CRM?
    Google Earth Engine(GEE)—— Landsat7和8的2000-2021年的影像土地分类的下载和视频导出
    【深入浅出玩转FPGA学习5-----复位设计】
    聚沙成塔【45天玩转uni-app】uni-app开发工具
    拉链表的展开算法
    Android 使用DownloadMananger下载图片
    【SpringMVC】文件上传与下载、JREBEL使用
    Elasticsearch - Elasticsearch详解;安装部署(一)
    自动微分----pytorch中的梯度运算与反向传播函数(预备知识)
  • 原文地址:https://blog.csdn.net/qq_66581313/article/details/127114085