一,常见的文件类型
(一)7大文件类型
第一个字符 | 文件类型 |
- | 普通文件,包括纯文本文件、二进制文件、各种压缩文件等。 |
d | 目录,类似 Windows 系统中的文件夹。 |
b | 块设备文件,就是保存大块数据的设备,比如最常见的硬盘。 |
c | 字符设备文件,例如键盘、鼠标等。 |
s | 套接字文件,通常用在网络数据连接,可以启动一个程序开监听用户的要求,用户可以通过套接字进行数据通信。 |
p | 管道文件,其主要作用是解决多个程序同时存取一个文件所造成的错误。 |
l | 链接文件,类似 Windows 系统中的快捷方式。 |
(二)如何查看文件类型
file 文件
可以看文件类型(文件格式)
二,显示命令
(一)cat
1,cat 通式
cat [选项] 文件名 ....
2,cat 缺点:
能看文本文档 不能看普通文件 二进制
内容过多时,会显示不全
3,cat 常用选项
① cat -A 显示隐藏字符
$ 表示换行符 ^i 表示tab 标黑这边是空格
② cat -n 显示行号
显示行号包括空行
③ cat -b 跳过空白编号
④ cat -s 压缩成一个空行
将所有的连续的多个空行替换成一个空行
4,标准输入和标准输出
标准输入:键盘输入到屏幕的东西
标准输出:电脑反馈给你的信息
错误输出:电脑的报错信息
默认输出在当前屏幕上显示的,不想在屏幕上显示,显示在别的地方,就需要重定向,即重新定义标准输出方向。
5,基于标准输入和标准输出,深入理解管道符
①管道符定义:
管道符 丨 将前面 命令的结果 当做后面命令的参数执行
②管道符格式
命令1丨命令2丨命令3丨命令4丨命令5
左边得命令 一定要有标准输出
右边的命令 一定要可以接受标准输入
③常见管道符用法
cat echo 丨 grep
④管道符特殊情况
当有些命令不能接受标准输入,这时我们需要xargs (二传手)
格式为: 命令1 丨 xargs 命令2
6, > 使用方法
用> 可以改变到文件,也可以是终端
①合并文件
例题:
如何将a b 两个文件合并
②覆盖和追加文件
一个> 是覆盖 A B >C C 是新建的文件,里面有A B 文件的内容
两个>> 是 追加
(二)paste 横向合并
多用于将账户 和密码横向合并 便于查看的工作环境
(三)tac 反方向查看
(四)rev 将同一行的内容逆向显示
(五) hexdump 查看硬件设备内容
-c 十六进制 - n512前512字节 sda 磁盘(s接口)
(六) more 能全部看到
more不能搜索 more看完自动退出
(七)less 能全部看到
1,使用方法
/关键字 进行搜写 注意区分大小写 搜索的时候n向下 N向上)
看完不自动退出
2,日常使用:
命令太多,无法翻页的情况
3,less 经典命令
命令 丨 less 进行分页查看
(八)head 可以显示文件或标准输入的前面行
1,格式
head -n 数字 文件名
看文件的前多少行
如head -n2 头两行 不加-n2 默认10行
2,head 使用方法
① head -c 取字符
② head -n -数字
去掉最后数字行
如: seq 10 丨 head -n -3
表示显示1到7行 (不加数字默认10行,10-3=7 所以就是显示1到7行)
③ head -n +数字
从数字行开始显示
(九)tail 查看文件或标准输入的倒数行
1,格式
tail -n 数字 文件名
2,日常使用:
踪显示文件新追加的内容,常用日志监控
tail -f 具体数字 文件名 实时跟踪最后十行
tail -n +k 文件名 从k行开始显示
(十)wc 统计
1,通式
wc [选项]... 目标文件..
分别指: 2行 2个单词 12个字符数
2,常用命令
- -l:统计行数
- -w:统计单词个数
- -c:统计字节数
注意:wc 统计的单词不是真正的单词
(十二)正则表达式与通配符
1,含义
正则表达式:匹配文件中的字符串(grep awk sed)
通配符:匹配文件的名字(ls find)
2,具体内容
通配符:*代表所有 ?任意一个
正则表达式:
. 任意字符
^ 一行的开头
$ 一行的结尾
3,使用场景
通配符使用场景:
ls 通配符
find -name
(十三) grep 过滤文件中命中的字符
1,通式
grep [选项].. 正则表达式 文件
示例1,过滤 /etc/passwd 文件中含有r..t 关键字的行
示例2,过滤 /etc/passwd 文件中含有root 关键字的行
示例3,显示ens33的网络参数 并过滤子网掩码行
2,常用命令
①grep -o 只显示匹配内容
②grep-v 反选
③grep-n 显示行号
④grep -i 忽略大小写
⑤grep -f 对比两个文件的相同行
例题:如何找出两个文件中相同的部分?
答: grep -f a文件 b 文件
即将a文件作为条件去匹配b文件,得到二者相同部分
⑥grepn -c 命中的行数
⑦ grep -r 递归目录,但不处理软链接
3,grep 与正则表达式 熟练使用
正则表达式
. 任意字符
^ 一行的开头
$ 一行的结尾
①,
②,正则表达式总结
grep "^root" passwd 以root开头
grep "root$" passwd 以root结尾
grep "^$" passwd 空行
grep -v "^$" passwd 非空行
③ 例题
问 在某一文件夹中,快速找到所有含有root字符的文件
问 如何快速过滤数据,找到含有特定字符的文件
答 grep -r root /etc
三,分割命令split
(一)通式
split [-b ][-C ][-][-l ] [要切割的文件] [输出文件名前缀] [-a ]
(二)常用选项
1,-b 指定按多少字节进行拆分,也可以指定 K、M、G、T 等单位。
2,- 或-l 指定每多少行要拆分成一个文件
3,输出文件名前缀: 设置拆分后的文件的名称前缀,split 会自动在前缀后加上编号,默认从 aa 开始。
4,-a<后缀长度> 默认的后缀长度是 2,也就是按 aa、ab、ac 这样的格式依次编号。
(三)例题
问:我有一个10G文件,怎么分成小的文件比如100M存储
答:split -b 100M 文件名
四,压缩命令
1,制作压缩文件
gzip [-9] 文件名
bzip2 [-9] 文件名
2,解压缩
gzip -d .gz格式的压缩文件
bzip2 -d .bz2格式的压缩文件
3,常用选项
-9 指压缩比例
-d 指解压缩
-k 指保留原文件
五,归档命令tar
注意:tar 本身无归档功能
1,格式
tar [选项] ... 归档文件名 源文件或源目录
tar [选项]... 归档文件名 [-C目标目录]
2,选项
-f 代表要用tar这个命令 必带
-c 建立归档
-x 解开归档
-j 代表使用bzip2 压缩
-z 代表使用gzip 压缩
-C 指定解压的目录
-t 不解开压缩包 查看压缩包中的内容
-v 显示过程
-P保留权限
-p 保留路径
注意:tar 对选项顺序有要求(加- 为了方便记忆,我们这边不加了)
3,语法
建立归档
tar fzcv 压缩包的名字(*.tar.gz) 需要压缩的文件
解压 tar xf
六,查找替换(末行模式下)
(一)通式
范围 s/文件中的旧内容/替换的内容/修饰符
1,范围
不写范围 默认光标当前行
% 全文
2,5 2到5行
2 第二行
$ 最后一行
$-1 倒数第二行
2,$ 2到最后一行
2,固定格式
固定格式 s///
3,修饰符
不加,只改第一个(不一定是开头的)
加g 全改
4,特殊情况
查找替换
里面有/ 所以换一个分割符
这几个都可以
5,注释
注意:配置文件 只有开头的#才是注释
给所有行的开头加上#
将所有行开头的#去掉
七,文本编辑器
set list 看隐藏字符
set nu 看行号
/ 搜索 高亮
nohl 取消高亮
(一)文本编辑器作用
创建或修改文本文件
维护linux系统中的各种配置文件
(二)最常用文本编辑器
1,vi 默认文本编辑器
2,vim (有颜色 坐标)是 vi的升级版本
(三)常用选项
vim [OPTION]... ...
命令 选项 文件
1,
vim 文件名不存在 是新建
vim 文件名存在 就是修改
2,
如果系统最小化安装vim并没有提前安装,可以使用
yum install vim -y
最小桌面
3,
+# 打开文件后,让光标处于第#行的行首,+默认行尾
! 打开上一次的文件
esc : w q ! 退出
保存 退出 强制
(四)三种模式
命令或普通(Normal)模式:默认模式,可以实现移动光标,剪切/粘贴文本
插入(Insert)或编辑模式:用于修改文本
扩展命令(extended command )或末行模式:保存,退出等搜索替代
1,命令模式
此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。
操作键 | 功能 |
ctrl+f或者Pagedown | 向下翻页 |
ctrl+b或者Pageup | 向上翻页 |
Home;^;0 | 跳到本行的行首 |
按 End 键或$ | 跳转到本行的行尾 |
1G 或 gg | 跳转到文件的第一行包括空行 |
G | 跳转文件的末尾 |
#G | #代表行号数字,直接跳转到#行 |
M | 跳转到当前显示页面的中间行 |
x或delete | 删除当前光标的字符 |
dd | 删除一整行 |
#dd | 删除当前光标开始到第#行(包括当前行) |
d^ | 删除当前光标之前到行首 往前不包括当前光标处的字符 86 往后删除包括当前光标处的字符 |
d$ | 删除当前光标到行尾 |
dw | 删除当前光标处的单词 |
R 或shift+r | 替换当前光标处文字,会进入替换模式 |
yy | 复制当前光标处整行 |
#yy | 复制当前光标处向下的#行 |
p | 粘贴到光标处下一行 |
P | 粘贴到光标处上一行 |
u | 只消除上一次可多次使用 |
U | U 取消所有操作 |
/字符 | 向下查找 |
?字符 | 向上查找 |
n | 向同一方向重复上次的查找指令 |
N | 向相反方向重复上次的查找指定末行模式 |
补充:
删单词 dw
替换 r
~ 大小写转换
/ 关键字高亮
取消撤销 ctrl+r
把光标放到花括号上 按 d i {} 就会准确删除{}里面的内容 (其他符号也可以 类似() “”)
y i 就会准确复
2,输入模式
①从命令模式切换到输入模式
两种方法:
i 当前光标处插入
o 光标下一行插入,
从 输入模式退回到命令模式 esc
3,末行模式(在最后一行操作)
注意:
输入模式和末行模式 永远不会相互转换,要先经过命令模式
从命令模式到末行模式 英文冒号
回退 esc
快捷键 | 功能效果 |
:q | 退出不保存 |
:q! | 强制退出不保存 |
:w | 保存 |
:w 新文件名 | 另存为新文件: |
:wq :zz :x | 保存并退出 |
:e 其他文件名(如果已修改需要加e!) | 打开新文件进行编辑 |
:r 其他文件名 | 在当前文件中读入其他文件内容 |
!命令 | 执行命令 |
:r!命令 | 读入命令 |
: [替换范围] s /旧的内容/新的内容[/g] | |
:s /old/new | 替换当前行中的第一个old改为new |
:s /old/new/g | 替换当前行中的所有old改为new |
:#,# s /old/new/g | #到#行所有old改为new |
:%s /old/new/g | %代表全文 全文替换所有old改为new |
# d | 删除 第#行 |
#,# d | 删除#到#行 |
#,# y | 复制三到6 行 |
:set nu 或:set nonu | 加行号 不显示行号 |
:set cul (:set nocul ) | 光标所在行有下划线(取消) |
no hl | 取消高亮 |
:set ai | 对齐 回车后和上一行对齐 |
:set all 可以看所有的一些帮助 | 可以看所有的一些帮助 |
set key=password (大X) | 加密码 |
set key=空白 | 取消密码 |
set tabstop=4 (set ts=4) | tab 一次为四个空格 |
.!命令 (who,date ) | 将date命令插入当前行注意会覆盖当前 |
较为常用:
wq 保存退出
r! 读入
set nu 显示行号
set ai 回车换行后自动对齐
nohl 取消高亮
set key=123123 设密码123123
set key=空白 取消密码
set ic 忽略字符大小写
4,可视模式
v 一个字符选
V 一行
CTRL v 任意选
5,vim 个性化
Vim 启动时,会根据配置文件(.vimrc)来设置 Vim,因此我们可以通过此文件来定制适合自己的 Vim。
/etc/.vimrc # 全局
~/.vimrc # 个人
vim 配置文件分为系统配置文件和用户配置文件:
- 系统配置文件位于 Vim 的安装目录(默认路径为 /etc/.vimrc);
- 用户配置文件位于主目录 ~/.vimrc,即通过执行
vim ~/.vimrc
命令即可对此配置文件进行合理修改。通常情况下,Vim 用户配置文件需要自己手动创建。
设置参数 | 功能描述 |
set nu | 显示行号 |
set cul | 突出显示当前行。 |
set ai | 设置自动缩进,即每行的缩进同上一节相同。 |
set ts=4 | 设置 Tab 键宽度为 4 个空格。 |