Linux——基础指令2 + 权限
目录
1.zip/unzip
2.tar
3.bc
4.uname –r
5.重要的几个热键
6.扩展命令
7.shell命令以及运行原理
8.Linux权限的理解
关于权限的三个问题:
1.目录权限
2.缺省权限
3.粘滞位
1.zip/unzip
打包、压缩:使用特定的算法,文件进行合并或者压缩,减少体积。
打包/压缩作为一个整体。
原因:1)文件体积减少,节省资源、磁盘空间,减少网络传输成本
2)多个文件转一个文件,可以提高文件传输的容错性
语法: zip 压缩文件.zip 目录或文件
功能: 将目录或文件压缩成zip格式
常用选项:
-r 递 归处理,将指定目录下的所有文件和子目录一并处理
举例:
可以得到结果如下:
再进行解压操作如下:
unzip XX.zip -d 路径 //解压到指定路径中
那么怎样实现Linux 和 Windows 之间文件的互相传递呢?
1)将Linux中的文件传到Windows中
此时在桌面上(或者你所选择的位置上)就可以看见test.zip文件
其中打开之后就可以看见你在文件中所填的内容
2)将Windows中的文件传到Linux中
可以直接进行拖拽,也可以用 rz 的命令。
2.tar
打包/解包,不打开它,直接看内容
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
-C : 解压到指定目录
这里我们举例压缩和解压的方法——
1)压缩
tar -czf dst.tgz src
例如:
2)解压
tar -xzf XXX.tgz
例如:
若要展现压缩过程或者是解包压缩过程,只需要在选项中添加 v 即可,例如:
tar -cvzf test.tgz test
tar -xvzf test.tgz
若要解压缩到指定路径——
tar -xzvf XXX.tgz -C 指定路径
在上述,我们知道了Linux和Windows之间文件的互传,那么Linux 和 Linux之间该怎样互传呢?
用 scp 指令(这里由于条件的限制,暂时省略)
3.bc
bc命令可以很方便的进行浮点运算
例如:
4.uname –r
语法:uname [选项]
功能: uname用来获取电脑和操作系统的相关信息。
补充说明:uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。常用选项:
-a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
5.重要的几个热键
tab键进行命令或者路径的补齐
ctrl + c 终止当前的程序
上/下键可以翻阅历史的命令
ctrl + r 搜索历史命令
通过上述的内容,我们可以知道,Linux 系统会记录历史命令
6.扩展命令
◆ 安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;
◆ 文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;
◆ 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;
◆ 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup;
◆ 系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;
◆ 其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。
7.shell命令以及运行原理
从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:
将使用者的命令翻译给核心(kernel)处理。
同时,将核心的处理结果翻译给使用者。
shell通常会进行创建子进程的方式进行命令行解析(进行命令行解析,同时保护内核)
然而,在Linux中通常是bash ,那么bash 和Linux之间有什么联系呢?
bash是shell的一个称呼,所有的都可以成为shell(可以理解bash是shell中的一个)
---这里是一个相对浅显的概念,在之后的学习中,我们将会进行深入的理解---
8.Linux权限的理解
权限:权限首先是限制特定身份角色的,目标事物的属性也会影响权限,所以,权限 = 角色 + 事物属性。
Linux下有两种用户:超级用户(root)、普通用户
超级用户:可以再linux系统下做任何事情,不受权限的约束
普通用户:在linux下做有限的事情,受到权限的约束
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”
当处于普通用户的时候,我们执行命令 ‘ su ’后,输入密码就可以转换到root中。再回退到普通账号,只需要输入 ctrl + d 或者 exit 就可以回到普通用户。
例如:
或者也可以使用“ su - ”命令,此时家目录也会发生变化。
在普通用户时使用“ su ”也可以转换成其他的用户,不过要知道该用户下的登录密码,但是,在超级用户上时,不用输入密码。
在Linux安装软件时,一般是在root身份下安装的,所以,此时在普通用户的账号下时需要进行指令提权。
其中,文件类型如下:
d 目录
- 普通文件
c 字符设备文件
b 块设备文件
p 管道文件
l 链接文件
其中,字符设备文件最常见的就是显示器和键盘。
块设备文件最常见的就是磁盘。
---管道文件和链接文件在后续的学习中会讲到---
Linux中角色可以分为三类:
1)文件拥有者
2)文件所属组
3)other
其中,r 表示读,w 表示写,x 表示可执行。(当有时表示可以,否则不可以)
也可以改变拥有者/所属组/other的权限,例如:
chmod u-r test.txt //拥有者
chmod g-r test.txt //所属组
chmod o-r test.txt //other
chmod u-r,g-rw,o-w test.txt
chmod u+rw,g+r,o+w test.txt
chmod a+r test.txt //修改所有具有读的权限
需要注意的是:
1)要修改权限,必须为拥有者,或者是超级用户。
2)并不是有权限就可以执行,Linux下能够执行的条件是:
真的是一个可执行文件 + 可执行权限。
3)在user,group,other 和我自己之间进行身份对比的时候,是依次只对比一次。
其中,命令中的760,777 是用八进制来进行转换
修改角色——>可以使用以下的命令:
chown (user name) test.txt
sudo chown (user name) test.txt//强制更改
改变时,需要有root 权限或者是提权。
修改所属组——>
sudo chgrp (user name) (文件名)
对于一个文件,没有 r 权限,那么用任何工具都不行。(权限限制的是用户/操作者)
关于权限的三个问题:
1.目录权限
r 对于目录的意义:是否有权查看指定目录下的文件信息
w对于目录的意义:是否有权在指定目录内部新建、删除、修改文件名等修改文件的操作。
x 对于目录的意义:是否具有进入目录的权限
2.缺省权限
1)根据图片可以看出,文件的起始权限是固定的
2)umask 权限掩码
修改权限掩码,达到修改Linux文件缺省权限的问题!
3)最终权限(缺省权限)
结论:最终权限(默认)= 起始权限 & (~umask)
umask可以进行改变
umask设置的目的是为了增加灵活性
这里有个图片来进行解释——
3.粘滞位
1)Linux多用户下,对于文件的访问,是隔离的。
2)需求:我们想让Linux下不同的账号共享文件,则该文件不能再任何一个普通账号的家目录里。
3)存在的问题:
1. 在共享目录下,可以执行文件的删除操作。(因为存在 w 权限)
2.粘滞位:任何用户,在设置了粘滞位的目录下,自己只能删除自己的文件,其他人无法删 除。
3.粘滞位只用给目录设置,不需要给普通用户设置。