用户权限修改
chmod修改文件权限
文字设定法
- u:所有者
- g:所属组
- o:其他人
- a:所有
- +:添加权限
- -:删除权限
- =:赋予权限
数字设定法
- r:4
- w:2
- x:1
- 每一组权限:0~7
- 举例:
添加新用户和新用户组
-
添加新用户:
sudo adduser 新用户名
-
查看用户:
- /home目录下,多出新用户的宿主目录。
- 在 /etc/passwd 文档的末尾,新增新用户相关信息。
- 在 /etc/group 文档中,新增用户组相关信息。
-
删除用户
sudo deluser 用户名
-
在 /etc/passwd 文件中,会对应删除相应用户数据。
-
在 /etc/passwd 文件中,会对应删除相应用户组数据。
-
/home目录下,新用户的宿主目录不会自动被删除,可以使用
sudo rm -rf
-
-
扩展:
-
添加用户组:
sudo addgroup 组名
-
删除用户组:
sudo delgroup 组名
-
修改文件所有者和所属组
修改所有者:
语法:
sudo chown 用户名 文件名
修改所属组:
语法:
sudo chgrp 用户组名 文件名
一次性修改所有者和所属组
语法:
sudo chown 用户名:组名 文件名
查找和过滤
find
语法:find 搜索路径(绝对、相对)参数 条件
find参数:
- -name:按文件名搜索
- 通配符“*”:匹配0~N个任意字符。
- 通配符“?”:匹配1个任意字符。
-
-type:按Linux文件类型搜索
-
搜索普通文件,使用 f 。
find ./ -type f
-
搜索除普通文件之外的文件,按7中Linux文件类型。
find /tmp -type s #搜索套接字文件 find /dev -type c #搜索字符设备文件 find ./ -type p #搜索管道文件
-
-
-size:按文件大小搜索
-
注意事项:
-
取范围时,要有两个 -size参数。
-
k必须小写,M,G大写。
find ./ -size +3M -size -5M find ./ -size +3k -size -5k
-
-
混合多个参数搜索:
find ~/ -name "*2015.jpg" -size +1k -size -2M
-
-maxdepth:指定搜索层级深度
find ~/ -maxdepth 4 -name "*2015.jpg" -size +1k -size -2M
-
-exec:将find搜索的结果,指定给某一个其他命令执行。
-
语法:find 命令 -exec shell命令 {} ;
find ~/ -maxdepth 4 -name "*2015.jpg" -size +1k -size -2M -exec ls -lh {} \;
-
语法:find 命令 -ok shell命令 {} ; 会在执行命令时询问
-
-
“|”结合 xargs 实现将find搜索的结果,指定给某一个其他命令执行。
find ~/ -maxdepth 4 -name "*2015.jpg" -size +1k -size -2M | xargs ls -lh
-
如果创建了带有特殊字符的文件,再进行检索需要修改 find 搜索结果集的分割条件。
-
创建带有空格的文件:
-
使用 find | xargs 搜索,报错。
-
解决:修改 find 搜索结果集的分割条件。 -print0
find ./ -type f -print0 | xargs -0 ls -l;
-
-
grep
按文件内容搜索
-
语法:grep -r “关键字” 搜索目录位置
grep -r "love" ./
-
-n:显示所在行行号。
-
-i:忽略大小写。
grep -r "LOVE" ./ -n -i
-
压缩和解压缩
Linux 操作系统中,默认支持的压缩格式:gzip、bzip2。默认这两种压缩格式只能压缩单个文件,不支持打包。压缩后源文件消失。
在 Linux/unix 中压缩、解压缩,借助 tar 命令完成。tar 的作用是“打包”。
压缩
-
格式:
tar zcvf 压缩包名.tar.gz 压缩原材料 tar jcvf 压缩包名.tar.bz2 压缩原材料
- z:使用 gzip 压缩格式。
- j:使用bzip2压缩格式。
- c:创建压缩包。
- v:显示压缩过程。
- f:用来指定压缩包包名。f 必须是最后一个参数,后面紧跟压缩包名称。
解压缩
-
格式:
tar zxvf 压缩包名.tar.gz tar jcvf 压缩包名.tar.bz2
-
x:解压缩。
-
直接解压缩到当前目录
-
解压缩到指定目录,使用参数 -C:
-
tar zxvf 压缩包名.tar.gz 压缩原材料 -C 目录
-
vim编辑器
vim的三种工作模式
- 命令模式:
- 进入 vim/vi 后自动处于的一种模式。
- 在此种模式下。用户键入的所有内容都被当做命令看到。
- 编辑模式
- 编写代码。
- 末行模式
- 在此种模式下,键入的指令都被当做末行命令。
切换编辑模式
-
i:改变工作模式为编辑模式,向光标 前 插入数据。
-
a:改变工作模式为编辑模式,向光标 后 插入数据。
-
o:改变工作模式为编辑模式,向光标所在行的 下一行 插入数据。
-
I(大i):改变工作模式为编辑模式,向光标所在行的 行首 插入数据。
-
A:改变工作模式为编辑模式,向光标所在行的 行尾 插入数据。
-
O:改变工作模式为编辑模式,向光标所在行的 上一行 插入数据。
-
s:改变工作模式为编辑模式,删除光标所选字符。
-
S:改变工作模式为编辑模式,删除光标所在行。
保存和退出
- 命令模式:
- ZZ
- 末行模式:
- w:保存
- q:退出
- q!:强制退出
- x:保存、退出
光标移动
- hjkl:左下上右
- G:文件的末行
- gg:文件的首行
- gg=G:自动排版(缩进对齐)
- 0:不改变工作模式,将光标移动至本行行首。
- $:不改变工作模式,将光标移动至本行行尾。
- NG:不改变工作模式,跳转至第N行。
- 末行模式,跳转至指定行:
- :N回车,跳转到第N行。
撤销、反撤销
- 撤销:命令模式下 u
- 反撤销:ctrl -r
复制、粘贴
- 单行复制:
- 光标移动至待复制行,放在任意字符上,按 yy 复制本行,移动光标至目标位置,p 向下粘,P 向上粘。
- 多行复制:
- 光标移动至待复制多行的首行任意字符上,按 Nyy 复制多行,移动光标至目标位置,p 向下粘,P 向上粘。
- 片段复制:
- 光标移动至待复制区域的首个字符上,先按 v ,再按 hjkl ,移动光标,选中待复制区域,按 y 复制,p 向后粘,P 向前粘。
- 复制一个单词:
- 光标移动至待复制单词首字符上,按 yw 复制一个单词,移动光标至目标位置,p 向后粘,P 向前粘。
剪切、删除
vim 中剪切不粘贴就是删除。
- 单行剪切:
- 光标移动至待剪切行,放在任意字符上,按 dd 剪切本行,移动光标至目标位置,p 向下粘,P 向上粘。
- 多行剪切:
- 光标移动至待剪切多行的首行任意字符上,按 Ndd 剪切多行,移动光标至目标位置,p 向下粘,P 向上粘。
- 片段剪切:
- 光标移动至待剪切区域的首个字符上,先按 v ,再按 hjkl ,移动光标,选中待剪切区域,按 d 剪切,p 向后粘,P 向前粘。
- 剪切一个单词:
- 光标移动至待剪切单词首字符上,按 dw 剪切一个单词,移动光标至目标位置,p 向后粘,P 向前粘。
查找、替换
查找
- 想象一个关键词,在文件中查找。
- 命令模式下,输入“/”,按 n 查找下一个。
- 看到一个关键词,查找在文件后续出现的位置。
- 将光标放在任意字符上:
- 使用 * 向后查找。
- 使用 # 向前查找。
- 将光标放在任意字符上:
替换
-
单行替换
-
将光标置于待替换行的任意位置,进入末行模式
#:s/旧字符串/新字符 #只能替换首个 #想替换全部,使用 /g #:s/旧字符串/新字符/g #举例: :s/append/add/g
-
-
通篇替换
#:%s/旧字符串/新字符/g #举例: :%s/append/add/g
-
多行替换
#:起始行号,终止行号s/旧字符串/新字符/g #举例: :173,180s/append/add/g
分屏
-
横屏分:
- sp:直接将当前文件划分为两个屏幕。
- sp 新文件名:将新文件和现有文件,在同一个 vim 中打开。
-
竖屏分:
- vsp
- vsp 新文件名
-
切换:ctrl + ww
-
退出:
- 在哪个分屏窗口执行,q 或 wq,就退出哪个窗口。
- wqall,可以一次性退出所有窗口。
/add/g
-
通篇替换
#:%s/旧字符串/新字符/g #举例: :%s/append/add/g
-
多行替换
#:起始行号,终止行号s/旧字符串/新字符/g #举例: :173,180s/append/add/g
分屏
- 横屏分:
- sp:直接将当前文件划分为两个屏幕。
- sp 新文件名:将新文件和现有文件,在同一个 vim 中打开。
- 竖屏分:
- vsp
- vsp 新文件名
- 切换:ctrl + ww
- 退出:
- 在哪个分屏窗口执行,q 或 wq,就退出哪个窗口。
- wqall,可以一次性退出所有窗口。