根目录&家目录
root用户无视权限
Linux有三个权限
可读 | r |
---|---|
可写 | w |
可执行 | x |
一个文件对不同用户有不同的权限分配
文件访问者的分类
文件所有者,文件所属组用户,其他用户
对于三种用户的理解:现有两个小组A、B、C,每个小组都有各自的成员,A小组写出了一个文件
用户 | 不同用户简写 |
---|---|
文件所有者(小组A) | user—u |
文件所属组用户(小组A中的成员) | group—g |
其他用户(小组B和C) | other—o |
linux中,文件类型是以罗列出的第一个字符区分,不是以后缀名区分
- -rw- r-- r-- 1 root root 6223 mar 19 10:01 0319.sql
- 文件标识符后的九个字符,每三个一组
分别对应的是文件所有者,文件所属用户组,其他用户;- 所有文件都是这个顺序,不同的字符代表当前用户不同的权限
- 第一个root是文件的拥有者
第二个root是文件的所属组
不属于这两个的都是other
- | 第一个 - 表示普通文件,然后每三个字符对应一个用户权限 |
---|---|
rw- | 文件所有者有可读可写权限 |
r- - | 文件所属用户组有可读权限 |
r- - | 其他用户有可读权限(三个用户权限顺序是依次固定的) |
1 | 表示链接数 |
6223 | 文件大小单位是字节 |
mar 19 10:01 | 修改时间 |
0319.sql | 文件名 |
-:普通文件,文本,源代码,第三方动静态库
d:目录文件
l:链接文件
p:管道文件
b:磁盘
c:字符设备文件
gcc是Linux上面使用的一个软件,所以文件名必须是.c结尾
文件权限值的表示方式:
- 字符表示方式:r;w;x
各用户对应的三个权限顺序分别是rwx,有则为相应字符,无为- - 8进制数字表示形式:
111 111 111,表示文件所有者,文件所属组用户,其他用户
都有可读可写可执行的权限(有则为1,无为0)
转成八进制后为 777
所以可以根据八进制数字确定各用户的权限;当数字为664时,那么文件所有者有可读可写权限;文件所属组用户有可读可写权限,其他用户有可写可执行权限
更改文件权限
- 用户+/-字符权限:
chmod +要更改的用户权限名简写(u/g/0) +或者- r/w/x +文件或文件夹名
chmod u-r 1.txt
chmod a=rw 1.txt
- 八进制数字更改:
chmod +8进制数字+文件或文件夹名
a就是all,每个组都会被改
权限对文件的影响
对于文件:
- 可读:影响用户查看文件内容
- 可写:影响用户往文件中写入内容
- 可执行:文件可以被执行,但是,影响执行成功时能否查看文件的内容
对于文件夹:
可读:影响用户查看文件夹下的内容
可写:影响用户在文件夹下创建文件或者文件夹
可执行:影响用户进入文件夹
更改所属用户或所属用户组
chown+新用户+文件 | 更改所属用户 |
---|---|
chgrp+新用户组+文件 | 更改所属用户组 |
更改的是文件夹需要加命令行参数-r
目录
目录权限是rwx
没有r:允许进入,可以在目录下创建文件,不能读文件
没有w:允许进入,可以查看,不能创建文件
没有rw:允许进入,不能查看创建文件
没有x:不能进入目录
目录也是文件
文件=内容+属性,目录的内容是保存了部分文件的属性
- 创建的目录权限是775,创建的文件权限是664
- 默认目录的起始权限是777,默认文件权限是666
- 因为权限掩码umask是0002,在权限掩码中出现的权限都不应该在最终权限中出现
- 默认权限≠最终权限
最终权限=默认权限 去掉 umask中存在的权限
最终权限=默认权限 & (~umask)
粘滞位
Linux下可以存在一些目录,拥有者和所属组是root,其他人允许以other的身份在该目录下进行增删改查
- 在一个共享目录下,你不让我写,不让我读,但防不住被我删除
- 给共享目录加粘滞位
chmod +t 文件夹名
vim
- 使用vim编辑文件:
vim+文件名
文件不存在则创建,代码都需要用vim命令进入文件开始编辑。
vim编辑文件,文件会有三种模式:
正常模式 | 在此模式下不能往文件中写内容,需要进入到插入模式中才能编辑 |
---|---|
插入模式 | 在键盘上按i进入该模式,esc能从任何模式回到正常模式 |
低行模式 | 先在键盘上按 :进入该模式,:+w保存,:+q退出,:+q! 强制退出 |
退出各模式要用Esc按键进入正常模式
正常模式下的快捷使用,都是按键:
- 移动:
移动光标:↑↓← → 键- h j k l:
h向上,j向下,k向上,l向右
快捷命令:
gg | 回到第一行 |
---|---|
G | 回到最后一行 |
num+G | 跳转到第num行 |
删除:
- x:向后删除光标所在位置字符
num+x:从光标处开始删num个字符- X:向前删除光标前的字符
num+x:- dd:剪切一行,剪切完后不粘贴等同于删除
num+dd:
复制:
- yy:复制该行
num:复制num行
粘贴:
- 小写p:向光标所在的下一行粘贴
- 大写P:向光标所在的上一行粘贴
替换:
- r:替换当前光标所在字符
- R:进入replace模式进行替换,按esc结束替换
撤销
- u:撤销
- ctrl+r:反撤销
更改:
- cw:替换摸一个单词,并从正常模式切换到插入模式
跳动:
- gg =G:整理当前代码格式
su:切换用户
su+要切换的用户名 | 切换到某个用户,当前位置还在之前路径下 |
---|---|
su+ -要切换的用户名 | 切换到某个用户,并且回到新用户的家目录 |
su -:切换成root |
sudo:提升权限
- 以root的身份运行
- root把用户添加到信任列表中,就不用输入root密码了