Linux-03-控制符权限用户搜索压缩
控制符
输出重定向 > >>
order1 > file1
将 order1 返回的内容覆盖写入 file1 中。
order1 >> file1
将 order1 返回的内容追加写入 file1 中。
管道符 |
order1 | order2
将 命令1 执行的结果返回给 命令2 作为输入。
常用和 grep 一起用。
权限概念
权限表示
文件或者目录的权限表示: r-xr-xr-x
每三位一组,分别表示 user group others 所属的权限。
u (user) 表示该文件的拥有者,g (group) 表示与该文件的拥有者属于同一个群体者,o (others) 表示其他以外的人,a (all) 表示这三者皆是。
一组的三位表示权限的意思分别是:r (read) 读取,w (write) 写入,x (executable) 执行,- 表示没有此项权限。文件和目录对于权限的解释是不同的。
文件:注意拥有文件的 w 权限不代表可以删除文件。要删除文件需要有当前目录的 w 权限才可以。
目录:r 表示可以 ls 查看目录内容。w 表示可以删除新增重命名新目录或文件。x 表示可以进入当前目录。
chmod 改变权限
change mode 改变模式,用来改变文件的权限。
权限作用人
[who]
分为:u (user) 表示该文件的拥有者,g (group) 表示与该文件的拥有者属于同一个群体者,o (others) 表示其他以外的人,a (all) 表示这三者皆是。权限
[mode]
分为:r (read) 读取,w (write) 写入,x (executable) 执行。
- 权限操作
[operator]
分为:+ 增加权限,- 取消权限, = 表示唯一设定权限(也就是清除所有权限之后再增加设定权限)
- 对指定的用户组进行修改
格式:chmod [who][operator][mode] file
。
例:chmod u=rw waifu.jpg
命令表示将 waifu.jpg 文件所有者的权限重新设定为只有读写权限。
- 对所有用户组进行修改
格式:chmod [OperatorNumber][OperatorNumber][OperatorNumber] file
。
上面每一个都表示某一个用户组的权限:第一位表示 user 第二位表示 group 第三位表示 others。
[OperatorNumber]
表示将权限符号用数字替代,没有权限用 - 代表,r 4、w 2、x 1,然后相加就是代表的权限。如 7 表示同时拥有读写执行权限。
例:chmod 764 waifu.jpg
.
- 对文件夹下面的所有文件/目录一起修改权限
chomd -R [OperatorNumber][OperatorNumber][OperatorNumber]
-R 递归改变,包括子目录。要慎用此命令。
改变所属用户和组
可以将文件绑定的用户和组进行更改,使用 chown 和 chgrp 命令。
chown 用户 文件/目录
更改绑定用户,加上 -R 则是目录递归修改。
chgrp 组名 文件/目录
更改绑定组,加上 -R 则是目录递归修改。
用户管理
添加切换删除修改查看用户
1 | useradd 用户名 (功能描述:添加新用户) |
添加完用户之后
1 | passwd 用户名 (功能描述:设置用户的密码) |
可以使用 su 用户名
来切换当前登录的用户 switch user。
userdel 用户名
删除用户
usermod -g 用户组 用户名
modify 修改用户所在的用户组
cat /etc/passwd
查看所有用户信息。
sudo 管理员权限
一般我们禁止使用 root 账号,给一些重要的普通账号执行管理员命令的权限。这些普通账号想要执行管理员命令的时候,要加上 sudo
关键字。
首先我们需要用 root 账号下发权限给其他账号:修改 /etc/sudoers
文件:
1 | ## Allow root to run any commands anywhere |
这样就给普通账户 Xorex 了执行 sudo 的权限,如果想用 root 权限执行命令,则在前面加上 sudo 前缀即可,比如 sudo shutdown
。
需要注意的是,sudo 不能作用在内嵌命令中(cd、history等),因为 sudo 也是外部程序,只能作用与外部程序,而不是自己所在的 bash。那么这个时候就需要想办法绕过这些内嵌命令(用外部命令实现类似的效果)。或者直接开一个 sudo bash
在里面调用内嵌命令,用完 exit 即可。
用户组
用户组是拥有相同特征的一组用户集合,这里的特征主要指的是 权限。也就是在一个组里面的用户,拥有相同权限。
groupadd xxxx
创建用户组groupdel xxxx
删除用户组groupmod -n oldName newName
修改用户组的名字cat /etc/group
查看所有用户组信息。
用户组权限管理
同样可以给用户组 Admin 里面的所有用户授权 sudo 权限:
就是多了一个 %
表示组名。
1 | ## Allows people in group wheel to run all commands |
搜索查找
find 文件查找
find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。
find [搜索范围] [选项]
搜索范围:不写就是从当前目录开始,写了就是从指定目录开始递归查找。
选项:
-xxx xxx
的形式,前面是选项类别,后面是选项参数。比如find -name "*.txt"
。
-name "Regex"
按照指定的文件名查找模式查找文件,如果是正则表达式,一定要加双引号find -name "*.txt"
。-user 用户名
查找属于指定用户名所有文件find -user Xorex
。-size +大小 -size -大小
按照指定的文件大小查找文件,单位为:
b —— 块(512 字节)
c —— 字节
w —— 字(2 字节)
k —— 千字节
M —— 兆字节
G —— 吉字节
+
表示文件大于此大小,-
表示文件小于此大小。找 10 到 15 MB 之内的文件:find / -size +10M -size -15M
这样。
locate 路径匹配
Linux 根据文件路径建立了一个数据库,每天自动更新一次,使用前输入 updatedb
手动更新, locate 命令可以从这个数据库来查找文件和路径,速度很快,但是不支持正则表达式。
命令:locate 关键字
从路径中找含有关键字的,然后返回。
whereis 命令查找
用于查看在环境变量中的命令的位置,whereis vim
就是查找 vim 的地址。
grep 内容查找
grep:Global Regular Expression Print 全局正则匹配打印、用来对文件内容进行正则匹配并打印结果。
grep -n StringPattern FileName
-n 是显示匹配字符串行号
ls | grep -n "Hello"
利用管道符去匹配命令返回结果。
压缩包
zip/unzip
压缩:
zip 压缩文件名.zip 被压缩文件
或者递归压缩目录,zip -r 压缩文件名.zip 被压缩目录
。解压
unzip -d 文件解压目录 压缩文件名.zip
-d 用来指定解压位置。
tar 打包
tar
命令用来对文件进行打包,压缩或者解压操作。需要配合各种命令进行操作,格式为:tar -[选项] 压缩文件 源文件/目录
-c
创建压缩文件,后面需要写要创建的文件名称,一般后缀是.tar
。-x
解压缩文件,后面需要写解压后的文件名称。-t
查看压缩包里都有什么文件。-z
使用 Gzip 压缩或者解压,后缀需要是.tar.gz
-v
显示压缩或者解压的过程,强烈推荐使用。-f
需要被压缩或者解压的文件名,需要被放在最后。-C
指定解压到的目录。
这些命令可以组合操作,比如:
压缩:
tar -czvf Xorex.tar.gz Xorex
就是将 Xorex 文件夹使用 Gzip 算法压缩成为 Xorex.tar.gz 压缩文件,如果不使用压缩算法,那么就是单纯的打包文件,不进行压缩。解压:
tar -xzvf Xorex.tar.gz ./tmp
将压缩文件解压到./tmp
目录下面。
也可以选择文件进行压缩,只需要后面多写几个源文件即可:
tar -czvf Files.tar.gz file1.txt file2.txt file3.txt
这样三个文件就被打成一个压缩包了。