写给文达,一位上进爱学习的90后IOS程序员。
用途:解决程序无法正常使用文件
命令:6个 ,掌握时间:30分钟
mkdir logs #创建logs目录
mkdir -p cms/content/logs #创建多层目录
ls -lh #查看执行目录下文件列表
df -lh #查看硬盘使用情况
chown test:test config.properties #更换文件的用户权限
chgrp -v test config.properties #更换文件的所属组
chmod 757 config.properties #更换文件的使用权限
- 配置目录不存在 mkdir
使用log4j的童鞋都知道 log4j中设置的日志目录在程序启动后是不会自动创建的,需要人为提前创建好目录。
mkdir logs
如想创建多层目录
mkdir -p cms/content/logs
#参数-p 可以帮忙一次创建多层级的目录,不用一个个创建
- 文件是否存在 ls
查看当前目录下有什么文件
$ ls -lh
total 16
-rwxr-xr-x 1 lixinran staff 394B 3 2 22:07 config.properties
-rwxr-xr-x 1 lixinran staff 394B 3 5 11:28 config.properties.bak
查看指定文件的信息
$ ls -lh config.properties
-rwxr-xr-x 1 lixinran staff 394B 3 2 22:07 config.properties
- 无法对文件进行写操作 chown、chmod、df -lh
代码在本地运行时一般不会遇到因权限不对而无法进行操作的问题。
而部署到测试环境/生产环境时 因使用的用户不同,无写权限发生的可能性比较大。
判断步骤
3.1 判断硬盘空间是否足够
不要问我为什么,这个已经成为习惯啦
df -lh
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk1 233Gi 61Gi 171Gi 27% 1203366 4293763913 0% /
Capacity 如果为100%,请先清理硬盘。
3.2 判断文件是否有写权限
$ ls -hl
total 16
-rwxr-xr-x 1 lixinran staff 394B 3 2 22:07 config.properties
-rwxr-xr-x 1 lixinran staff 394B 3 5 11:28 config.properties.bak
-rwxr-xr-x (-为文件,r:读、w:写、x:执行)
代表的意思,依次如下:
第一组:rwx,代表所属用户对该文件有读、写、执行权限
第二组:r-x,代表所属组对该文件有读、执行的权限
第三组:r-x,代表任何人对该文件有读、执行的权限
3.3 判断程序用的是什么用户 whoami
$ whoami
lixinran
结合2⃣️和3⃣️,就可以知道自己有哪些操作文件的权限啦。
3.4 如何赋予用户操作文件的权限 chown、chmod
第一种方式:更改文件的所属用户
如test用户想对config.properties文件进行写操作
chown test:test config.properties
第二种方式:更改文件所属组
test用户想对config.properties文件进行写操作
test用户所属组test
而config.properties文件所属组为staff
chgrp -v test config.properties
第三种方式:直接给文件赋予其他人可写的操作
chmod 757 config.properties #r+w+x=2+4+1=7,第一个7代表所属用户、第二个5代表所属用户组、第三个7代表任何人
在测试过程中,经常出现一个现象,在测试环境点哪哪报错,而将bug报给研发,研发会说:我这是好的呀!是你环境/数据的问题吧! 曾有人做过一次调查,上面这句话,是研发最常说的理由之一,同时也是测试最不喜欢听到的理由之一。
文达,你有对测试人员说过这样的话吗?
望测试和研发都知道 为什么换个环境就不ok的原因,以及排查方式。