Update from Sync Service

This commit is contained in:
FNS Service
2026-04-21 20:31:53 +08:00
parent 5afb4d968f
commit 6ea7eabc5e
2 changed files with 320 additions and 188 deletions

View File

@@ -1,175 +1,200 @@
**命令历史** # Vim 命令速查
以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。
**启动vim**
在命令行窗口中输入以下命令即可
vim 直接启动vim
vim filename 打开vim并创建名为filename的文件
**文件命令**
打开单个文件
vim file
同时打开多个文件
vim file1 file2 file3 ...
在vim窗口中打开一个新文件
:open file
在新窗口中打开文件
:split file
切换到下一个文件
:bn
切换到上一个文件
:bp
查看当前打开的文件列表,当前正在编辑的文件会用[]括起来。
:args
打开远程文件比如ftp或者share folder
:e [ftp://192.168.10.76/abc.txt](ftp://192.168.10.76/abc.txt)
:e [\\qadrive\test\1.txt](file:///\\qadrive\test\1.txt)
**vim的模式**
正常模式按Esc或Ctrl+[进入) 左下角显示文件名或为空
插入模式按i键进入 左下角显示--INSERT--
可视模式(不知道如何进入) 左下角显示--VISUAL--
**导航命令**
% 括号匹配
**插入命令**
i 在当前位置生前插入
I 在当前行首插入
a 在当前位置后插入
A 在当前行尾插入
o 在当前行之后插入一行
O 在当前行之前插入一行
**查找命令**
/text  查找text按n健查找下一个按N健查找前一个。
?text  查找text反向查找按n健查找下一个按N健查找前一个。
vim中有一些特殊字符在查找时需要转义  .*[]^%/?~$
:set ignorecase  忽略大小写的查找
:set noignorecase  不忽略大小写的查找
查找很长的词,如果一个词很长,键入麻烦,可以将光标移动到该词上,按*或#键即可以该单词进行搜索,相当于/搜索。而#命令相当于?搜索。
:set hlsearch  高亮搜索结果所有结果都高亮显示而不是只显示一个匹配。
:set nohlsearch  关闭高亮搜索显示
:nohlsearch  关闭当前的高亮显示如果再次搜索或者按下n或N键则会再次高亮。
:set incsearch  逐步搜索模式对当前键入的字符进行搜索而不必等待键入完成。
:set wrapscan  重新搜索在搜索到文件头或尾时返回继续搜索默认开启。
**替换命令**
ra 将当前字符替换为a当期字符即光标所在字符。
s/old/new/ 用old替换new替换当前行的第一个匹配
s/old/new/g 用old替换new替换当前行的所有匹配
%s/old/new/ 用old替换new替换所有行的第一个匹配
%s/old/new/g 用old替换new替换整个文件的所有匹配
:10,20 s/^/    /g 在第10行知第20行每行前面加四个空格用于缩进。
ddp 交换光标所在行和其下紧邻的一行。
**移动命令**
h 左移一个字符
l 右移一个字符这个命令很少用一般用w代替。
k 上移一个字符
j 下移一个字符
以上四个命令可以配合数字使用比如20j就是向下移动20行5h就是向左移动5个字符在Vim中很多命令都可以配合数字使用比如删除10个字符10x在当前位置后插入3个3a<Esc>这里的Esc是必须的否则命令不生效。
w 向前移动一个单词光标停在单词首部如果已到行尾则转至下一行行首。此命令快可以代替l命令。
b 向后移动一个单词 2b 向后移动2个单词
e同w只不过是光标停在单词尾部
ge同b光标停在单词尾部。
^ 移动到本行第一个非空白字符上。
0数字0移动到本行第一个字符上
<HOME> 移动到本行第一个字符。同0健。
$ 移动到行尾 3$ 移动到下面3行的行尾
gg 移动到文件头。 = [[
Gshift + g 移动到文件尾。 = ]]
ffind命令也可以用于移动fx将找到光标后第一个为x的字符3fd将找到第三个为d的字符。
F 同f反向查找。
跳到指定行,冒号+行号回车比如跳到240行就是 :240回车。另一个方法是行号+G比如230G跳到230行。
Ctrl + e 向下滚动一行
Ctrl + y 向上滚动一行
Ctrl + d 向下滚动半屏
Ctrl + u 向上滚动半屏
Ctrl + f 向下滚动一屏
Ctrl + b 向上滚动一屏
**撤销和重做**
u 撤销Undo
U 撤销对整行的操作
Ctrl + r 重做Redo即撤销的撤销。
**删除命令**
x 删除当前字符
3x 删除当前光标开始向后三个字符
X 删除当前字符的前一个字符。X=dh
dl 删除当前字符, dl=x
dh 删除前一个字符
dd 删除当前行
dj 删除上一行
dk 删除下一行
10d 删除当前行开始的10行。
D 删除当前字符至行尾。D=d$
d$ 删除当前字符之后的所有字符(本行)
kdgg 删除当前行之前所有行(不包括当前行)
jdGjd shift + g   删除当前行之后所有行(不包括当前行)
:1,10d 删除1-10行
:11,$d 删除11行及以后所有的行
:1,$d 删除所有行
J(shift + j)  删除两行之间的空行,实际上是合并两行。
**拷贝和粘贴**
yy 拷贝当前行
nyy 拷贝当前后开始的n行比如2yy拷贝当前行及其下一行。
p  在当前光标后粘贴,如果之前使用了yy命令来复制一行那么就在当前行的下一行粘贴。
shift+p 在当前行前粘贴
:1,10 co 20 将1-10行插入到第20行之后。
:1,$ co $ 将整个文件复制一份并添加到文件尾部。
正常模式下按v逐字或V逐行进入可视模式然后用jklh命令移动即可选择某些行或字符再按y即可复制
ddp交换当前行和其下一行
xp交换当前字符和其后一个字符
**剪切命令**
正常模式下按v逐字或V逐行进入可视模式然后用jklh命令移动即可选择某些行或字符再按d即可剪切
ndd 剪切当前行之后的n行。利用p命令可以对剪切的内容进行粘贴
:1,10d 将1-10行剪切。利用p命令可将剪切后的内容进行粘贴。
:1, 10 m 20 将第1-10行移动到第20行之后。
**退出命令**
:wq 保存并退出
ZZ 保存并退出
:q! 强制退出并忽略所有更改
:e! 放弃所有修改,并打开原来文件。
**窗口命令**
:split或new 打开一个新窗口,光标停在顶层的窗口上
:split file或:new file 用新窗口打开文件
split打开的窗口都是横向的使用vsplit可以纵向打开窗口。
Ctrl+ww 移动到下一个窗口
Ctrl+wj 移动到下方的窗口
Ctrl+wk 移动到上方的窗口
关闭窗口
:close 最后一个窗口不能使用此命令可以防止意外退出vim。
:q 如果是最后一个被关闭的窗口那么将退出vim。
ZZ 保存并退出。
关闭所有窗口,只保留当前窗口
:only
录制宏
按q键加任意字母开始录制再按q键结束录制这意味着vim中的宏不可嵌套使用的时候@加宏名比如qa。。。q录制名为a的宏@a使用这个宏
**执行shell命令**
:!command
:!ls 列出当前目录下文件
:!perl -c script.pl 检查perl脚本语法可以不用退出vim非常方便。
:!perl script.pl 执行perl脚本可以不用退出vim非常方便。
:suspend或Ctrl - Z 挂起vim回到shell按fg可以返回vim。
**注释命令**
perl程序中#开始的行为注释,所以要注释某些行,只需在行首加入#
3,5 s/^/#/g 注释第3-5行
3,5 s/^#//g 解除3-5行的注释
1,$ s/^/#/g 注释整个文档。
:%s/^/#/g 注释整个文档,此法更快。
**帮助命令**
:help or F1 显示整个帮助
:help xxx 显示xxx的帮助比如 :help i, :help CTRL-[即Ctrl+[的帮助)。
:help 'number' Vim选项的帮助用单引号括起
:help <Esc> 特殊键的帮助用<>扩起
:help -t Vim启动参数的帮助用-
help i_<Esc> 插入模式下Esc的帮助某个模式下的帮助用模式_主题的模式
帮助文件中位于||之间的内容是超链接可以用Ctrl+]进入链接Ctrl+oCtrl + t返回
**其他非编辑命令**
. 重复前一次命令
:set ruler?  查看是否设置了ruler在.vimrc中使用set命令设制的选项都可以通过这个命令查看
:scriptnames  查看vim脚本文件的位置比如.vimrc文件语法文件及plugin等。
:set list 显示非打印字符如tab空格行尾等。如果tab无法显示请确定用set lcs=tab:>-命令设置了.vimrc文件并确保你的文件中的确有tab如果开启了expendtab那么tab将被扩展为空格。
Vim教程
在Unix系统上
$ vimtutor
在Windows系统上
:help tutor
:syntax 列出已经定义的语法项 > 最常用的 Linux 文本编辑器
:syntax clear 清除已定义的语法规则
:syntax case match 大小写敏感int和Int将视为不同的语法元素 ---
:syntax case ignore 大小写无关int和Int将视为相同的语法元素并使用同样的配色方案
> 来自 <[https://www.cnblogs.com/softwaretesting/archive/2011/07/12/2104435.html](https://www.cnblogs.com/softwaretesting/archive/2011/07/12/2104435.html)> ## 模式切换
| 模式 | 进入 | 说明 |
|------|------|------|
| 正常模式 | `Esc` | 默认模式,左下角显示文件名 |
| 插入模式 | `i` | 左下角显示 `--INSERT--` |
| 可视模式 | `v` / `V` | 选择文本 |
---
## 启动与退出
```bash
vim filename # 打开文件
vim file1 file2 # 打开多文件
vim -O file1 file2 # 垂直分屏
vim -o file1 file2 # 水平分屏
```
| 命令 | 说明 |
|------|------|
| `:wq` | 保存并退出 |
| `ZZ` | 保存并退出(等价) |
| `:q!` | 强制退出(不保存) |
| `:x` | 保存并退出 |
---
## 移动命令
```bash
# 字符移动
h # 左
j # 下
k # 上
l # 右
5h # 左移5字符
# 单词移动
w # 下一词首
e # 下一词尾
b # 上一词首
2b # 上移2词
# 行移动
0 # 行首
^ # 行首(非空白)
$ # 行尾
3$ # 下移3行尾
# 屏幕移动
Ctrl+f # 下翻一屏
Ctrl+b # 上翻一屏
Ctrl+d # 下翻半屏
Ctrl+u # 上翻半屏
# 文件移动
gg # 文件开头
G # 文件结尾
10G # 跳到第10行
:10 # 跳到第10行
```
---
## 查找与替换
```bash
# 查找
/text # 向下查找
?text # 向上查找
n # 下一个匹配
N # 上一个匹配
* # 查找光标所在词(向下)
# # 查找光标所在词(向上)
# 替换
:s/old/new/ # 替换当前行第一个
:s/old/new/g # 替换当前行所有
:%s/old/new/ # 替换所有行第一个
:%s/old/new/g # 替换所有行
:10,20 s/^/#/ # 10-20行加注释
```
---
## 编辑命令
```bash
# 插入
i # 光标前插入
a # 光标后插入
o # 当前行下插入新行
O # 当前行上插入新行
A # 行尾插入
# 删除
x # 删除当前字符
dd # 删除当前行
5dd # 删除5行
d$ # 删除到行尾
dw # 删除一个词
# 复制粘贴
yy # 复制当前行
5yy # 复制5行
p # 粘贴到光标后
P # 粘贴到光标前
# 撤销
u # 撤销
U # 撤销整行
Ctrl+r # 重做(撤销撤销)
```
---
## 可视模式
```bash
v # 逐字选择
V # 逐行选择
Ctrl+v # 块选择
# 选择后操作
y # 复制
d # 删除
x # 删除
> # 右缩进
< # 左缩进
```
---
## 多文件操作
```bash
:open file # 打开文件
:split file # 分屏打开
:bn # 下一个文件
:bp # 上一个文件
:args # 查看文件列表
:bd # 关闭当前文件
```
---
## 窗口操作
```bash
:split # 水平分屏
:vsplit # 垂直分屏
Ctrl+ww # 切换窗口
Ctrl+wh # 移向左窗口
Ctrl+wl # 移向右窗口
:close # 关闭窗口
:only # 只保留当前窗口
```
---
## 常用配置
```bash
:set number # 显示行号
:set hlsearch # 高亮搜索
:set ignorecase # 忽略大小写
:set tabstop=4 # Tab 宽度
:set expandtab # Tab 转空格
```
---
## 实用技巧
```bash
ddp # 交换两行
xp # 交换两字符
. # 重复上次命令
q: # 命令历史
:%!xxd # 十六进制查看
```
---
## Vim 教程
```bash
vimtutor # 进入教程
```
---
> 参考:[Vim 命令详解](https://www.cnblogs.com/softwaretesting/archive/2011/07/12/2104435.html)

View File

@@ -1,19 +1,126 @@
有两个修改命令可以用到「change mode」&「change owner」 # 修改文件所有者和权限
## 即chmod以及chown其中可以用递归参数**==-R**==来实现更改所有子文件和子目录的权限。
## 1、利用chmod修改权限
## 对Document/目录下的所有子文件与子目录执行相同的权限变更:
## chmod -R 700 Document/
## -R参数是递归 处理目录下的所有文件以及子文件夹 > 两个核心命令:`chmod`(改权限)和 `chown`(改所有者)
700是变更后的权限表示只有所有者有读和写以及执行的权限 ---
Document/ 是需要执行的目录 ## chmod - 修改权限
## 2、利用chown改变所有者 ### 权限表示法
## 对Document/ 目录下的所有文件与子目录执行相同的所有者变更修改所有者为users用户组的username用户
## chown -R username:users Document/
## username:users users用户组的username用户组参数不是必须有 **符号方式**
## 参考http://rabbit52.com/2011/linux/ubuntu/linux-chmod-chown | 符号 | 说明 |
> 来自 <[http://blog.csdn.net/songyu0120/article/details/43408499](http://blog.csdn.net/songyu0120/article/details/43408499)> |------|------|
| `u` | 所有者user |
| `g` | 用户组group |
| `o` | 其他人other |
| `a` | 所有人all |
**权限操作**
| 符号 | 说明 |
|------|------|
| `+` | 添加权限 |
| `-` | 移除权限 |
| `=` | 设置权限 |
**权限值**
| 值 | 说明 | 二进制 |
|----|------|--------|
| `r` | 读 | 4 |
| `w` | 写 | 2 |
| `x` | 执行 | 1 |
### 使用示例
```bash
# 符号方式
chmod u+x file # 所有者添加执行权限
chmod g-w file # 组移除写权限
chmod o+r file # 其他用户添加读权限
chmod a+x file # 所有用户添加执行权限
chmod u=rw file # 设置所有者读写权限
# 数字方式(推荐)
chmod 755 file # rwxr-xr-x
chmod 644 file # rw-r--r--
chmod 700 file # rwx------
chmod 600 file # rw-------
chmod 777 file # rwxrwxrwx危险
# 目录权限
chmod 755 /path/to/dir # 目录权限
```
---
## chown - 修改所有者
### 使用示例
```bash
# 修改所有者
chown user file # 文件
chown -R user /path/to/dir # 目录(递归)
# 修改所有者和组
chown user:group file # 文件
chown -R user:group /path/to/dir # 目录(递归)
# 只修改组
chown :group file # 文件
chgrp group file # 等效命令
```
---
## 常见场景
### 场景1授权网站目录
```bash
# 将网站目录授权给 www-data 用户
chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html
```
### 场景2授权用户目录
```bash
# 将用户目录授权给用户
chown -R username:username /home/username
chmod 700 /home/username
```
### 场景3修复权限危险慎用
```bash
# 修复系统文件权限(不要用 777
chmod 644 /etc/passwd
chmod 600 /etc/shadow
chmod 755 /bin /usr/bin /sbin /usr/sbin
```
---
## 权限速查
| 命令 | 权限 | 说明 |
|------|------|------|
| `chmod 755` | rwxr-xr-x | 目录典型权限 |
| `chmod 644` | rw-r--r-- | 文件典型权限 |
| `chmod 700` | rwx------ | 私有目录 |
| `chmod 600` | rw------- | 私有文件 |
---
## 递归参数
```bash
-R # 递归处理目录下所有文件和子目录
-v # 显示每个文件的处理信息
-c # 只显示有变化的内容
```
---
> 参考:[Linux chmod/chown](http://blog.csdn.net/songyu0120/article/details/43408499)