从命令行管理文件
文件命名规则:
- 不能使用/来当文件名,/是用来做根的,也是用来做路径分隔符的
- 文件名不能超过255个字符
- 区分大小写file File FILE fIle root Root ROOT rOOt ROOT
- 目录也是文件,在同一路径下,两个不同类型文件不能同名
创建链接文件
Linux系统中硬盘文件存储原理
硬盘数据分类
用户数据(user data):即文件的数据块(data block),存储数据真实空间
元数据(metadata):存储文件附加属性,如:文件的大小、创建的时间、所有者等信息
硬连接
原理:
linux系统允许多个文件指向同一个inode,即允许一个文件拥有多个有效地路径名
理解:硬连接就是指向原始文件inode的指针
查看方法
ll 文件名stat 文件名
建立硬连接
格式:ln -参数 源文件 目标连接文件[root@localhost ~]# touch aaa.txt
[root@localhost ~]# stat aaa.txt
#建立aab.txt 指向 aaa.txt的硬连接[root@localhost ~]# ln aaa.txt aab.txt
[root@localhost ~]# stat aaa.txt
硬连接建立后,删除源文件后数据依然可以访问,只有硬连接为0时,数据旧无法访问了
[root@localhost ~]# echo "hello" > aaa.txt
[root@localhost ~]# cat aaa.txt
[root@localhost ~]# stat aaa.txt

[root@localhost ~]# rm -f aaa.txt# 删除文件,相当于删除一个硬连接
[root@localhost ~]# cat aab.txt
[root@localhost ~]# stat aab.txt
在这里可以看到硬链接变更。
软连接
原理:
软连接是一种符号连接,类似于windows的“快捷方式”,仅包含所连接的路径名
格式
ln -s 源文件 目标连接名
建立软连接
#新建文件
[root@localhost ~]# echo "hello word!" > 555.txt
#创建软连接指向555.txt
[root@localhost ~]# ln -s 555.txt 556.txt
[root@localhost ~]# ll 556.txt
[root@localhost ~]# stat 555.txt

软连接只是一种指向关系,删除源文件则数据不可访问
目录操作命令
创建目录(make directory)
格式:
mkdir [-p] [/路径/]目录名
参数:
-p 可快速创建出目录结构中指定的每个目录,对于已存在的目录不会被覆盖-v 显示创建目录的详细过程
du命令
作用:
统计目录及文件的空间占用情况,查看某个目录中的各级子目录所占用的磁盘空间数。
命令格式:
du [参数] [目录名]
参数:
选项
| 功能 |
-a | 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录。 |
-s | 只统计每个文件所占用空间总的大小,而不是统计每个子目录、文件的大小。 |
-h | 以K,M,G为单位显示磁盘使用情况,以提高信息的可读性 |
新建文件
创建普通文件
touch 文件名1 文件名2 文件名3touch {文件名1,文件名2,文件名3}#举例[root@localhost 桌面]# touch r1.txt[root@localhost 桌面]# touch r1.txt r2.txt r3.txt[root@localhost 桌面]# touch {1,2}{3,4}[root@localhost 桌面]# touch abc{1..100}

tree命令
作用:
显示目录下文件的树形拓扑图及摘要
格式:
tree -参数 路径
参数:
-a : 所有文件包含显示隐藏文件[root@localhost 桌面]# tree -a-f : 列出文件的完整路径内容[root@localhost 桌面]# tree -f-d :只显示目录[root@localhost 桌面]# tree -d-L : 设置显示最大深度[root@localhost 桌面]# tree -f -L 2
创建大容量文件
作用
制作指定个数及容量的空文件
格式
dd if=来源 of=新文件名 count=数据块个数 bs=块容量
分析
- if=/dev/zero zero空数据设备文件,可以向其它文件中填充无数个数据0
- of=新文件名,一般给出存储路径
- count=:新文件由几个数据块组成
- bs=:一个数据块容量
#制作100MB空数据文件
[root@server ~]# dd if=/dev/zero of=/root/z1 count=1 bs=20M#制作2G文件[root@server ~]# dd if=/dev/zero of=/z2 count=1 bs=2GB#制作光盘镜像[root@server ~]# dd if=/dev/sr0 of=/RHEL8.5.iso
数据流和重定向
数据流
- 标准输入(standard input,简称stdin):默认情况下,标准输入指从键盘获取的输入
- 标准输出(standard output,简称stdout):默认情况下,命令执行所回传正确的信息会输出到屏
- 幕上
- 标准错误输出(standard error output,简称stderr):默认情况下,标准错误输出可理解为命令
- 执行失败后,所回传的错误信息会输出到屏幕上
- 不管正确或错误的数据都是默认输出到屏幕上,所以屏幕是混乱的。所以就需要用数据流重定向将
- 这两条数据分开。数据流重定向可以将标准输出和标准错误输出分别传送到其他的文件或设备去,
- 而分别传送所用的特殊字符如下所示:
- 标准输入(stdin):代码为0
- 标准输出(stdout):代码为1
- 标准错误输出(stderr):代码为2
重定向操作符
概念
重定向操作符可以将命令输入和输出数据流从默认设备重定向到其他位置。
重定向操作符本身不是命令,而是命令中附加的可改变命令的输入和输出对象的特殊符号。
符号
输出重定向操作符: > >>输入重定向操作符: < <<
tee命令读取数据输出到文件
tee命令
作用:
读取标准输入的数据,并将其内容输出到文件的同时输出到屏幕(即想把输出保存到文件中,又想
在屏幕上看到内容)
tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时输出到文件。
格式
tee 参数 文件名[root@localhost 桌面]# tee test1.txt
111
111
222
222
333
333
[root@localhost 桌面]# cat test1.txt

参数
-a或--append,附加到现有文件的后面,而非覆盖它
-i或--ignore-interrupts 忽略中断信号
--help 在线帮助
管道符:|
作用
管道符号,是unix一个很强大的功能,符号为一条竖线:"|",用于两个命令或者多个命令相连接,将管道符左边命令的输出作为管道符右边命令的输入
格式:
命令A | 命令2 | 命令3 ……# 统计行数[root@localhost 桌面]# more test1.txt | wc -l
3
[root@localhost 桌面]# cat /etc/group | tee test2.txt[root@server ~]# cat /etc/group | tee test1.txt test2.txt

vi/vim文本编辑器
vim编辑器的三种模式
结构图:
概念
- 命令模式:也成为了阅读模式,可以控制光标移动,对文本进行查看、删除、复制粘贴等操作(默认)
- 编辑模式:也称为插入模式,可以对文本进行编辑
- 末行模式:保存、退出、设置编辑环境
- 进入的顺序:
刚打开文件后进入的为命令模式(默认)
命令模式点击i'键进入输入模式,点击Esc返回命令模式
命令模式中点击冒号进入末行模式,点击Esc返回
输入模式与末行模式不可以相互进入
命令模式的快捷键
光标跳转按键
复制、粘贴、删除
编辑模式的快捷键
- 可通过如下任意一种功能键从命令模式切换到编辑模式
- 按esc键可从编辑模式切换到命令模式
功能
| 按键 |
在光标前插入 | i |
在光标所在行行首第一个非空字符前插入
| I(大写字母i) |
在光标后插入 | a |
在光标所在行末尾插入 | A |
在光标所在行上一行插入 | O(大写字母) |
在光标所在行下一行插入 | o(小写字母) |
删除光标所在字符并进入插入模式 | s(小写字母) |
删除当前行并进入插入模式 | S(大写字母) |
末行模式的快捷键
- 按 : 或者 / 可从命令模式切换到末行模式
- 按esc键可从末行模式切换到命令模式。
查找关键字并替换
