Linux文件目录管理命令
一、vi/vim
1. vi / vim 的使用
vi / vim分为三种模式:命令行模式,输入模式和底线命令模式
2. vi /vim工作模式
命令模式:进入vi / vim默认模式
编辑模式:按下a(光标之后)/i(光标之前)/o(光标的下一行)都可以进入
底线命令模式:按下:之后进入到的模式
3. vi/vim基础用法
vi filename #打开文件
打开后无法直接编辑,需要按下a/i/o进入编辑模式
修改这个文件
修改完成后,按下ecs退出编辑模式
按下:进入底线命令模式,输入wq,保存退出
:wq表示保存并退出
:q! 表示强制退出不保存
:wq! 表示强制保存退出
4. 命令模式
启动vi/vim就进入了命令模式
w(e) 移动光标到下一个单词
b 移动到光标上一个单词
数字0 移动到本行开头
$ 移动光标到本行结尾
H 移动光标到屏幕首行
M 移动到光标到屏幕的中间一行
L 移动光标到屏幕的尾行
gg 移动光标到文档的首行
G 移动光标到文档尾行
ctrl + f 下一页
ctrl + b 上一页
查找
/Never 在整篇文档中搜索chaoge字符串,向下查找
?Never 在整篇文档中搜索chaoge字符串,向上查找
* 查找整个文档,匹配光标所在的所有单词,按下n查找下一处,N上一处
# 查找整个文档,匹配光标所在的所有单词,按下n查找下一处,N上一处
gd 找到光标所在单词匹配的单词,并停留在非注释的第一个匹配上
% 找到括号的另一半!!
复制,删除,粘贴
yy 拷贝光标所在行
dd 删除光标所在行
D 删除当前光标到行尾的内容
dG 删除当前行到文档尾部的内容
p 粘贴yy所复制的内容
x 向后删除字符
X 向前删除字符
u 撤销上一步的操作
. 重复前一个执行过的动作
快捷方式
删除光标所在位置到行尾的内容并进入编辑模式 C(大写字母)
在当前行下面插入一行并进入编辑模式 o(小写字母)
在当前行上面插入一行并进入编辑模式 O(大写字母)
快速到达行尾并进入编辑模式 A
快速保存并退出 ZZ
批量删除:
ctrl+v 进入批量编辑模式(可视块)
选择 上下左右
删除 d
批量去掉注释
a. 进入命令行模式,按ctrl + v进入 visual block模式,按字母l横向选中列的个数
b. 按字母j,或者k选中注释符号
c. 按d键就可全部取消注释
vim 批量缩进
:set tabstop=4 设定tab宽度为4个字符
:set shiftwidth=4 设定自动缩进为4个字符
:set expandtab 用space替代tab的输入
:set noexpandtab 不用space替代tab的输入
a.命令模式,按下v,进入可视模式
b.光标移动选择行,输入 > 大于号,缩进,输入< 缩进
输入行号缩进:
a.显示行号
:set nu #显示
:set nonu #关闭
b.行号缩进
:5,8 > #10到20行,缩进一次
5.底线命令模式
:wq表示保存并退出
:q! 表示强制退出不保存
:wq! 表示强制保存退出
:set nu #显示
:set nonu #关闭
:数字表示调到数字那一行
二、重定向符号
三、特殊符号
*:匹配任意个字符
?:匹配一个字符
| :管道符
& :后台进程符
&&:逻辑与符号,命令1 && 命令2,当命令1执行成功继续执行命令2
\: 逻辑或符号,命令1 \ 命令2 ,当命令1执行失败才会执行命令2
# :注释符号
" " :双引号表示字符串,能够识别,··反引号,$符,\转义字符
‘ ’ :单引号表示普通字符串,无特殊含义
$ : 变量符
四、处理文件的几个重要命令
1. cat 命令用于查看纯文本文件(常用于内容较少)
查看文件内容
多个文件合并
非交互式编辑或者追加内容
清空文件内容
> 文件名
cat命令参数解释:
-n 或 --number:由 1 开始对所有输出的行数编号。
-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
-E 或 --show-ends : 在每行结束处显示 $。
-T 或 --show-tabs: 将 TAB 字符显示为 ^I。
-A, --show-all:等价于 -vET。
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;
2. tac命令
与cat命令相反,反向读取文件内容
3. more命令
用于分页显示(一次一屏)文本,以当前屏幕窗口尺寸为准
more 参数 文件
-num 指定屏幕显示大小为num行
+num 从num行开始显示
交互式more的命令:
空格 向下滚动一屏
b 向上滚动一屏
Enter 向下显示一行
= 显示当前行号
q 退出
4. less命令
less 参数 文件
-N 显示每行编号
-e 到文件结尾自动退出,否则得手动输入q退出
整个的翻页
b 向前一页
f 向后一页
空格 查看下一行,等于 ↓
y 查看上一行,等于↑
q退出
5. head命令
用于显示文件内容的头部,默认显示开头10行
6. tail命令
用于显示文件内容的末尾,默认输出后10行
语法:
-c 数字 指定显示的字节数
-n 行数 显示指定的行数
-f 实时刷新文件变化
-F 等于 -f --retry 不断打开文件,与-f合用
7. cut命令
在文件的每一行中提取片段
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的
范围之内,该字符将被写出;否则,该字符将被排除
8. sort命令
将输入的内容按照规则排序,然后输出结果
-b 忽略每行前面开始出的空格字符。
-c 检查文件是否已经按照顺序排序。
-n 依照数值的大小排序。
-u 意味着是唯一的(unique),输出的结果是去完重了的。
-o<输出文件> 将排序后的结果存入指定的文件。
-r 以相反的顺序来排序。
-t<分隔字符> 指定排序时所用的栏位分隔字符。
9. uniq命令
可以输出或者忽略文件中的重复行,常与sort排序结合使用
用法:uniq [选项]... [文件]
从输入文件或者标准输入中筛选相邻的匹配行并写入到输出文件或标准输出。
不附加任何选项时匹配行将在首次出现处被合并。
-c, --count 在每行前加上表示相应行目出现次数的前缀编号
-d, --repeated 只输出重复的行
-u, --unique 只显示出现过一次的行,注意了,uniq的只出现过一次,是针对-c统计之后的结果
10. wc命令
用于统计文件的行数、单词、字节数
11. tr命令
将标准输入中替换、缩减或删除字符,将结果写入到标准输出
12. stat命令
用于显示文件的状态信息。
Access: 2019-10-18 14:58:59.465647961 +0800
Modify: 2019-10-18 14:58:57.799636638 +0800
Change: 2019-10-18 14:58:57.799636638 +0800
access、最近访问,文件每次被cat之后,时间变化,由于操作系统特性,做了优化,频繁访问,时间不变
modify,最近更改,更改文件内容,vim等
change,最近改动,文件元数据改变,如文件名
13. find命令
用来在指定目录下查找文件
语法:find 路径 命令参数 【输出形式】
14. xargs命令
该命令又称管道命令,构造函数
xargs识别字符串的标识是空格或是换行符,因此,遇到文件名有空格或者换行符,xargs会识别为两个字符串。
-print0 在find中表示每一个结果之后加一个NULL字符,而不是换行符(find 默认在结果后加上\n,因此结果是换行输出的)
xargs -0 表示xargs用NULL作为分隔符