Linux常见指令(二)

简介: Linux常见指令

grep指令


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

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

常用选项


-i 忽略大小写的不同
-n 顺便输出行号
-v 反向选择,显示出没有搜索字符串内容那一行


zip/unzip


语法:zip[压缩包(自定义)][待打包压缩的目录]

功能:zip压缩文件或目录,默认对一个目录进行打包压缩时,只会对目录文件打包压缩,其内部文件不进行操作

常用选项


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


既然存在压缩指令,就有其存在的意义。为什么要压缩,直接进行传输不是也可行吗???

原因是要是,在电脑中存在很多大小文件,在传输,保存时较麻烦。压缩的出现可以完美地解决这个问题,压缩可以将多个文件压缩成一个文件,且内容不会丢失,便于传输与保存


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


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


-c 建立一个压缩文件的参数指令
-x 解开一个压缩文件的参数指令
-t 查看tarfile里面的文件
-z 是否同时具有gzip的属性?亦即是否需要用gzip压缩?
-j 是否同时具有bzip的属性?亦即是否需要用bzip压缩?
-v 压缩的过程中显示文件
-f 使用档名,在f后直接接档名,不能加参数
-C 解压到指定目录
-czf 打包并压缩
-xzf 解包并解压


bc


bc命令可以很方便的进行浮点运算(计算器)


0055270d2902c84b212695103f389dac_d254012f9dd54132ba84dba6d6d195be.png


uname -r指令


语法:uname[选项]

功能:uname用来获取电脑和操作系统的相关信息

常用选项


-a 或-all 详细输出所有信息,以此为内核内容,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称


热键[Tab],[ctrl]-c,[ctrl]-d


[Tab] 命令自动补全的功能
[Ctrl]-c 让当前的程序停止
[Ctrl]-d 结束取代exit
lscpu 查看cpu信息
lsmem 查看内存信息
df -h 查看磁盘使用情况
who (当前linux系统的在线用户)


关机


语法:shutdown[选项]

常见选项


-h 将系统的服务器停掉后直接关机
-r 系统的服务器停掉后立刻重启
-t sec -t后面加秒数,过几秒后立刻关机


shell命令及其运行原理


字面意思shell是外壳,既然是外壳,在这里只能是操作系统的外壳,命令行解释器。linux严格意义上是一个操作系统,称之为核心,一般用户不能直接与核心沟通,只能通过核心的外壳也是就shell,与核心进行沟通。所以便有疑问,为什么只能通过外壳,外壳是什么呢?接下来解密


用户不能与操作系统进行很好的沟通,也就是说两者的交流很困难,所以需要shell将用户的命令解释之后传递给操作系统,操作系统在进行相应的操作再通过shell反馈给用户。


当然并不是用户所有的命令,操作系统都会进行反馈。当用户进行非法命令时,通过shell的解释之后,操作系统不会进行任何操作,即拒绝执行。此举也是对操作系统的保护。


038f8a54201d26eeb3e899d0e36cbd65_a49d0f43d711429d8217f548639ec820.png


对比

linux的shell命令行解释,与windows的图形化界面本质上一样的,兄弟关系


linux权限的概念


linux下有两种用户:超级用户(root),普通用户


  1. 超级用户:可以在linux系统下可以做任何事情,不受限制
  2. 普通用户:在linux系统下做有些事会受到限制
  3. 超级用户的命令提示符是#,普通用户的命令提示符是$


命令:su[用户名]

功能:切换用户


普通用户切换为root

su/su - 输入用户密码即可


root切换为普通用户

su XXX


linux权限管理


权限是什么?简单来说就是事情是否允许某某某谁做

事情在这里就是文件;某某某在这里就是角色

所以文件的权限可以解释为


文件权限=角色+文件


文件访问者的分类(角色)


  1. 文件和文件目录的所有者:u-user
  2. 文件和文件目录的所有者所在的组的用户:g-group
  3. 其他用户:o-others


文件类型和访问权限(属性)


51bc4dd7f6a1148fb72ead96d4bef785_2ac9ed8e89dd4c5286496bf3f1d309ff.png


a:文件类型


linux和Windows的文件类型的后缀差别很大。Linux的文件类型与文件后缀无关,因为文件名课随意修改。


d:文件夹

-:普通文件

b:基本权限;b1:文件所有者的权限;b2:文件所属用户组的权限;b3:其他用户的权限


r:read对于文件而言,具有读取文件的权限;对于目录而言,具有浏览目录信息的权限

w:write对于文件而言,具有修改文件内容的权限;对于目录而言,具有删除移动目录内文件的权限

x:execute对于文件而言,具有执行文件的权限;对于目录而言,具有进入目录的权限

-:表示不具有该权限

c:所属用户


d:所属用户组


e:文件大小


f:文件最新修改日期


g:文件名


文件权限值的表示方法


  1. 字符表示法

image.png


  1. 进制数值表示方法

image.png


文件访问权限的相关设置


chmod

功能:设置文件的访问权限

格式:chmod[参数] 权限 文件名

用户标识符


u:拥有者
g:拥有者同组
o:其他用户
a:所有用户


= 权限字符


+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限


1c8dbbf6641198eca0f3637e7e45ffee_0d36b37626674882a4e3cd32bea7e71b.png


chown

功能:修改文件的拥有者

格式:chown[参数] 用户名 文件名


chgrp

功能:修改文件或目录的所属组

格式:chgrp[参数] 用户组名 文件夹


umask

功能:查看或修改文件掩码

为什么会存在这个权限设置呢?

在电脑中,新建文件夹的默认权限为0666,也就是 rw-;新建目录默认权限为0777,也就是 rwx。但实际上所创建的新文件和目录却不是如此


cca58afb98aef60579940ead5e0b36a2_41587a2976b94917803c9fa7a9008a94.png


与预期不同的原因是,在创建文件或目录是还要受到umask的影响

凡是在umask中出现的权限,都必须在起始权限中去掉

Umask的默认值是0002,也就解释上面出现的情况


上面提到的去掉,难道是减去吗?

umask默认要去掉的权限位是 1,要保留的位是 0

~umask要去掉的权限位是 0,要保留的位是 1


这里的去掉是先将umask取反,再异或得到的结果便是新建文件或目录的权限


最终权限=起始权限&(~umask)


file指令


功能:辨识文件类型

语法:file[选项] 文件或目录

常用选项


-c 详细显示指令执行过程,便于排错或分析程序执行的情形
 -z 尝试去解读压缩文件的内容


目录的权限


  1. 可执行权限:如果目录没有可执行权限,则无法cd到目录中
  2. 可读权限:如果目录没有可读权限,则无法使用ls等命令查看目录中的文件内容
  3. 可写权限:如果目录没有可写权限,则无法再目录中创建文件,也无法再目录中删除文件


由于目录中的文件权限会受到目录权限的影响,是不是只要拥有目录的写权限,用户便可以删除目录中的文件,而不需要关系文件的写权限呢?


答案是,对的。也就是说,张三在一个共同目录中创建一个文件,李四便可以通过共同目录删除张三所创建的文件。

这不就会造成很大的问题吗?那么又该如何解决这个问题呢?


接下来介绍的粘滞位便可解决这个问题


粘滞位


当一个目录被设置为粘滞位(chmod+t),该目录下的文件只能由


  1. 超级管理员删除
  2. 该目录的所有者删除
  3. 该文件的所有者删除


总结


目录的可执行权限表示使用者是否可以再目录中执行命令


如果目录没有 -x权限,则无法对目录执行任何命令,甚至无法 cd进入到目录中


如果目录具有 -x权限,但没有 -r权限,则用户可以执行命令,可以 cd进入目录中,但是由于没有读取目录的权限,所以即使在目录中执行 ls命令,也不会读出目录中的文件


目录
相关文章
|
2天前
|
Linux
Linux:文件读取指令
Linux:文件读取指令
9 2
|
12天前
|
Linux
【Linux系统编程】基础指令(二)(下)
【Linux系统编程】基础指令(二)
|
12天前
|
Linux C语言
【Linux系统编程】基础指令(二)(上)
【Linux系统编程】基础指令(二)
|
2天前
|
缓存 安全 Linux
Linux入门基本指令(2)
Linux入门基本指令(2)
7 0
|
2天前
|
Linux Windows
Linux入门基本指令(1)-2
Linux入门基本指令(1)
8 1
|
2天前
|
Linux 数据安全/隐私保护 Windows
Linux入门基本指令(1)-1
Linux入门基本指令(1)
12 1
|
2天前
|
算法 Linux
Linux:文件增删 & 文件压缩指令
Linux:文件增删 & 文件压缩指令
5 0
|
2天前
|
Linux
Linux:时间指令 - cal & date
Linux:时间指令 - cal & date
9 2
|
3天前
|
人工智能 数据可视化 Unix
【Linux】Linux系统基础指令 ( 1 )
本文讲解的指令是基础的操作,下一篇文章我们将继续讲解不同指令。
13 0
|
3天前
|
存储 Unix Linux
【Linux修行路】基本指令(二)
【Linux修行路】基本指令(二)