Linux文件编辑、替换的常用命令

查看文件权限

# 进入指定目录
cd /test
# 查看文件夹内所有文件权限
ls -l
# 或者使用ll查看文件权限
ll

查看文件1权限

在这里插入图片描述

为某个文件赋权限权限各字符在Linux中所代表的含意

参考上图:

在bin文件夹对应的第一个参数是d,d在Linux中代表该文件是一个目录文件。

说明:

linux替换文件命令_linux常用命令替换_linux替换命令

当为d则是目录;

当为-则是文件;

若是l则表示为链接文档(linkfile);

若是b则表示为装置文件上面的可供存放的插口设备(可随机存取装置);

若是c则表示为装置文件上面的串行端口设备,诸如按键、鼠标(一次性读取装置)。

其权限对应关系:

chgrp和chown

在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。文件所有者以外的用户又可以分为文件所属组的同组用户和其他用户。

Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。

linux替换命令_linux常用命令替换_linux替换文件命令

# chgrp:更改文件属组 
# -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
chgrp [-R] 属组名 文件名
# chown:更改文件属主,也可以同时更改文件属组
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
# 举例: 将文件夹中test.log文件的拥有者改为test这个账号
chown test test.log
# 举例: 将test.log的拥有者与群组改回为root
chown root:root test.log

chmod

Linux文件属性有两种设置方式,一种是数字linux替换文件命令linux命令ls,一种是符号。

使用数字来代表各个权限,各权限的分数对照如下:

# 变更权限指令
# xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
# -R : 进行递归(recursive)的持续变更,以及连同次目录下的所有文件都会变更
chmod [-R] xyz 文件或目录
# 举例: 为文件1赋所有权限
sudo chmod -R 777 /test/file1

在这里插入图片描述

符号类型改变文件权限

u,g,o来代表三种身分的权限,a则代表alllinux替换文件命令,即全部的身分。读写的权限可以写成r,w,x。

命令角色动作可使用字符作用对象

chmod

linux常用命令替换_linux替换命令_linux替换文件命令

+(加入)/-(去除)/=(设定)

r、w、x

文件或目录

chmod

+(加入)/-(去除)/=(设定)

r、w、x

文件或目录

chmod

+(加入)/-(去除)/=(设定)

r、w、x

文件或目录

chmod

+(加入)/-(去除)/=(设定))

r、w、x

文件或目录

# 举例 修改 test1 权限为-rwxr-xr--
chmod u=rwx,g=rx,o=r  test1  
# 举例 给所有用户赋读写权限,但不赋执行权限
chmod a-x test1

批量替换文件中的内容vi/vim替换(需打开文件)

冒号( : ) ➕  小写字母( s )/well/good/g 替换当前行所有 well 为 good

直接替换文件中的字符串(不用打开文件,且可以批量替换多个文件)

perl命令替换linux操作系统版本,参数涵义如下:

# 用法示例:将所有C程序中的foo替换成bar,旧文件备份成.bak
perl -p -i.bak -e 's/bfoob/bar/g' *.c

# 将当前文件夹下lishan.txt和lishan.txt.bak中的“shan”都替换为“hua”
perl -p -i -e "s/shan/hua/g" ./lishan.txt ./lishan.txt.bak

# 将每个文件中出现的数值都加一
perl -i.bak -pe 's/(d+)/ 1 + $1 /ge' file1 file2

sed替换

sed命令下批量替换文件内容

# 语法: 
sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` 文件名
# 例如:我要把mahuinan替换 为huinanma,执行命令: 
sed -i "s/mahuinan/huinanma/g" 'grep mahuinan -rl /www'

# 示例 把当前目录下lishan.txt里的shan都替换为hua
sed -i "s/shan/hua/g"  lishan.txt

# 使用变量替换(使用双引号)
sed -e "s/$var1/$var2/g" filename

perl句型

find -name '要查找的文件名' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g'

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复