Linux常用命令(链接命令权限管理命令和文件搜索命令)
Posted 林夕07
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux常用命令(链接命令权限管理命令和文件搜索命令)相关的知识,希望对你有一定的参考价值。
文章目录
链接命令
ln
功能:生成链接文件(-s是软连接,没有参数是硬链接)
全称:link
所在地址:/bin/ln
格式:ln 参数[-s] [原文件] [目标文件]
权限:所有用户
参数 | 解释 |
---|---|
-s | 生成软连接 |
连接类型 | 特点 |
---|---|
软连接 | l 代表软连接类似于windows的快捷方式 虽然是三个rwx但是决定权限的是原文件权限。原文件丢失,软链接就使用不了了。1、软链接都是l开头,软链接文件权限都是lrwxrwxrwx。2、软链接很小 (十几字节)3、还有明显的箭头标识 |
硬链接 | 相当于文件保存了属性的拷贝1、同时还具有同步更新2、可以通过前面的编号识别硬链接编号相同(ls -i)3、不能跨分4、不能对目录使用 |
无参数-硬链接
ln ./1.c ./q.hard
将1.c文件生成一个硬链接1.hard。我们发现俩者的身份证(编号)相同
软连接-参数n
ln -s ./1.c ./1.soft
将1.c文件生成一个软连接1.soft。可以看到软连接有明显的箭头标识
权限管理命令
chmod
功能:改变文件或目录权限
全称:change the permissions mode of a file 修改文件的权限模式
所在地址:/bin/chmod
格式:chmod [{ugoa}{±=}{rwx}] [文件或目录] [mode=42][文件或目录] -R 递归修改
权限:所有用户(只有拥有者和root才有修改权限)
参数 | 解析 | 参数 | 解析 | 参数 | 解析 |
---|---|---|---|---|---|
u | 拥有者 | + | 增加权限 | r(4) | 读权限 |
g | 所属组 | - | 减少权限 | w(2) | 写权限 |
o | 其他人 | = | 直接赋予新权限 | x(1) | 执行权限 |
使用+/-参数
chmod u+x,g+w,o-r ./1.c
查看1.c文件发现权限为拥有者有读写全权限,所属组有读权限,其他人拥有读权限。我们将这些权限原有基础上拥有者增加执行权限,所属组增加写权限,其他人减少读权限。
使用=参数
chmod u=rw,g=r,o=r ./1.c
直接将文件1.c权限设置为拥有者有读写权限,所属组有读权限,其他人有读权限
我们还有一种更加简单的方法
权限的数字表示方法
r-4 w-2 x-1
我们只需要分别计算拥有者、所属组、其他人的权限总和就ok了,比如我们现在给1.c文件给rwx-rw-r
转换为数字就是764
chmod 764 ./1.c
文件目录权限总结(重点)
对文件的操作取决于对文件所在目录的权限
代表字符 | 权限 | 对文件的含义 | 对目录的含义 |
---|---|---|---|
r | 读权限 | 可以查看文件内容 | 可以列出目录中的内容 |
w | 写权限 | 可以修改文件内容 | 可以在目录中创建 |
x | 执行权限 | 可以执行文件 | 可以进入目录 |
chown(拥有者权限修改)
功能:改变文件或目录的拥有者
全称:change the permissions mode of a file 修改文件的权限模式
所在地址:/bin/chown
格式:chmod [[用户] [文件或目录]
权限:只有管理员root才可以
将文件拥有者修改为zm用户
chown zm ./1.c
将目录拥有者修改为zm用户
chown zm ./test
chgrp(所属组权限修改)
功能:改变文件或目录的所属组
全称:change file group ownership更改文件组的拥有权
所在地址:/bin/chgrp
格式:chgrp[[用户组][文件或目录]
权限:只有管理员root才可以
将1.c文件所属组修改为zm用户
chgrp zm ./1.c
将test目录所属组修改为zm用户
chgrp zm ./test
umask(文件默认权限)
功能:显示、设置文件的缺省权限(安全提醒:缺省创建的文件是不能拥有可执行权限的(x))
全称:the user file-cretion mask用户文件创建掩码
所在地址:Shell命令
格式:umask [-S]
权限:只有管理员root才可以
参数 | 解析 |
---|---|
-S | 以rwx形式显示新建文件缺省权限 |
无参数显示默认权限
umask
为什么会有四个数字呢?
第一个是特殊权限(后面会说到),剩下三个022就是正常权限掩码(— -w- -w-)那么正常权限就是(rwx r-x r-x) 即为755权限
使用参数-S显示默认权限
umask -S
以rwx形式显示新建文件缺省权限
设置缺省权限
比如我们要设置rwx-rw-r,则转换为二进制为754,
转换为掩码:777-754=023即为--- -w- -wx
umask 023
文件搜索命令
find
功能:文件搜索
所在地址:/bin/find
格式:find [搜索范围] [参数] [匹配条件]
权限:只有管理员root才可以
参数 | 解析 |
---|---|
name | 通过文件名来搜索 (精准搜索,区分大小写) |
iname | 通过文件名来搜索 (不区分大小写) |
size | 通过大小来搜索(+代表大于,-代表小于,=代表等于)单位:c-字节 k-1024字节 M-1024k G - 1024M |
user | 通过文件拥有者来搜索 |
group | 通过文件所属组来搜索 |
amin | 通过文件修改访问时间属性来搜索 |
cmin | 通过文件修改文件属性来搜索 |
mmin | 通过文件修改内容属性来搜索 |
type | 根据文件类型查找(f文件、d目录、l软链接文件) |
-exec/-ok 命令 {} ; | -ok 和-exec功能相同,但是ok会逐步提醒用户是否确认该操作 |
-inum | 根据编号查找 |
perm | 八进制的文件访问权限条件数字 |
通配符 | 解析 |
---|---|
* | 表示任意字符且任意长度 |
? | 表示任意单个字符 |
通过文件名来搜索 name (精准搜索)
find ./ -name 1.c
通过文件名来搜索 (不区分大小写)
find ./ -name 1.c
通过文件名来搜索 (模糊搜索)
find /etc -name *init*
在 /etc目录下搜索带有“init”字符的所有文件
通过文件名来搜索 (模糊搜索)
find /etc -name init???
搜索在/etc目录下init开头后面还有三个字符的所有文件
通过文件大小来搜索
find ./ -size -3c
搜索当前目录下小于3字节的所有文件
通过文件拥有者来搜索
find ./ -user zm
搜索当前目录下文件拥有者为zm的所有文件
通过文件所属组来搜索
find ./ -group zm
搜索当前目录下文件所属组为zm的所有文件
通过文件内容修改时间属性来搜索
find ./ -mmin -300
搜索当前文件下,300分钟内被修改过的所有文件
使用多条件查找
条件变量 | 解释 |
---|---|
-a | 俩个条件都满足(and) |
-o | 俩个条件只需要满足一个就好(or) |
查找/etc目录下大于8M且小于10M的
find /etc -size +8M -a -size -10M
type根据文件类型查找
文件类型 | 解析 |
---|---|
f | 文件 |
d | 目录 |
l | 软连接文件 |
查找在home目录下名字为book开头 .c结尾的 且 文件类型为文件的
find /home -name book*.c -a type f
查找同时执行文件操作
格式:-exec/-ok [命令] {} ;
解析:ok 和exec功能相同,但是ok会逐步提醒用户是否确认该操作
查找/etc目录下名为inittab的文件且详细输出(ls -l)
find /etc/ -name inittab -exec ls -l {} \\;
查找/etc目录下名为init开头的的文件且详细输出(ls -l)
find /etc -name init* -a -type f -exec ls -l {} \\;
根据编号(inum)查找
查找1.c文件的编号为36843655
然后查找编号为36843655的文件将其删除时并逐步询问用户确定该操作
find ./ -inum 36843655 -ok rm {} \\;
根据文件的权限(perm)进行查找
find ./ -perm 755 -ls
在当前目录下查找755权限的所有文件
locate
功能:在文件资料库(数据库)中查找文件
所在地址:/usr/bin/locate
格式:locate 文件名
权限:所有用户
这个数据库一天更新一次,所以新创建的就可能查找不到
tmp目录下的文件不会被收录到资料库中
更新资料库命令:updatedb
下载跟新资料库(一般用于命令失效时使用):sudo updatedb
参数 | 解析 |
---|---|
i | 不区分大小写 |
命令失效
出现命令失效,使用updatedb
默认查找(区分大小写)
locate -i zhangsan
使用参数-i查找(不区分大小写)
locate -i zhangsan
which
功能:搜索命令所在目录及其别名信息
所在地址:/usr/bin/which
格式:which 命令
权限:所有用户
查看命令ls和rm别名信息
which ls
which rm
发现使用ls命令实际使用的是ls --color=auto,使用rm命令实际是rm -i
注释:–color=auto 表示搜索出的关键字用颜色显示
whereis
功能:搜索命令所在目录及其帮助文档路径
所在地址:/usr/bin/whereis
格式:whereis 命令
权限:所有用户
搜索命令ls和rm
whereis ls
第一个是绝对路径(/usr/bin/ls),其他就是帮助文档路径
grep
功能:在文件中搜寻子串匹配的行,并输出
所在地址:/usr/bin/grep
格式:grep 参数[-inv] [指定字串] [文件]
权限:所有用户
参数 | 解析 |
---|---|
i | 忽略大小写 |
n | 输出行号 |
v | 反向查找 |
–color=auto | 搜索出的关键字用颜色显示 |
默认搜索(区分大小写)
grep int ./MapDesign.cpp
搜索文件MapDesign.cpp文件中有int的子串的行,并输出
使用参数-i(不区分大小写)
grep -i azhang ./1.c
在文件中查找包含子串azhang(不区分大小写)的行,并输出
使用参数-n(输出行号)
grep -n int ./MapDesign.cpp
使用参数-v(反向输出)
grep -v azhang ./1.c
输出文件中不包含azhang子串的行
以上是关于Linux常用命令(链接命令权限管理命令和文件搜索命令)的主要内容,如果未能解决你的问题,请参考以下文章