一、文件和目录的建立
文件
touch命令
单一文件的创建
当按下回车后我们就可以在桌面获得一个名字叫file的文件

bash
[root@localhost Desktop]# touch file
同步文件访问时间和文件修改时间


由上两图可知touch file这个命令还可以把文件访问时间和文件修改时间变成touch file命令回车后的那一刻
更改文件的访问和修改时间

注意:这个命令中的时间格式为YYYYMMDDHHmm
bash
[root@localhost Desktop]# touch -t 202503131313 file
多文件的创建
在同一目录底下的创建
如果我们同时在一个目录底下创建多个文件,那么我们也可以通过touch命令创建多个文件
bash
[root@localhost Desktop]# touch file1 file2 file3

在非当前目录下创建文件
比如我想在/root/Desktop/aaa目录下创建一个叫111的文件
bash
[root@localhost Desktop]# touch /root/Desktop/aaa/111


gedit
bash
[root@localhost Desktop]# gedit file

创建后编辑完save保存后也能创建以file为名的文件
vim



进入vim后在命令模式下按:wq退出保存即可创建出来以file为名的文件
注:
当然你在进入vim后你也可以按i(insert)进入编辑模式
编辑完成后可以按esc退出编辑模式
再在命令模式按:wq退出保存
目录
mkdir命令
目录的创建
跟touch命令差不多可以创建单个也可以创建多个目录

建立多层目录
比如我想在桌面下的bbb目录底下再创建abc目录,并且在abc目录下创建efg目录
bash
[root@localhost Desktop]# mkdir -p /root/Desktop/bbb/abc/efg

在非当前目录下创建目录
bash
[root@localhost Desktop]# mkdir /root/test
在mkdir目录后跟上你想创建的目录底下的绝对路径


二、文件和目录的删除
rm命令

有提示的删除
在确认删除或不删除时使用y/n来进行确认
bash
[root@localhost Desktop]# rm file
rm: remove regular empty file 'file'? y

没有提示的删除(强制删除)-f(--force)
bash
[root@localhost Desktop]# rm -f file1

多文件的同时删除(在同一目录下)
当然rm命令也可以同时删除多个文件
bash
[root@localhost Desktop]# rm -f file2 file3

三、文件编辑命令
gedit命令
当系统图形开启时可以使用gedit来对文件进行编辑,gedit依赖于图形,只有开启图形时才能使用gedit
gedit file #编辑文件


注意:如果你本身在当前命令行运行的目录下没有这个文件的话,点击save保存后,gedit会自动帮你创建以你gedit后面跟着的字符串为文件名的文件。
vim命令
vim是系统中最最常用的文本编辑命令
vim的模式
- 浏览模式(命令模式):可以对文件内容进行浏览,也可以对vim的工作方式进行设定
- 插入模式(编辑模式)【insert】:vim的编辑模式,只有在插入模式下才能对文件内容进行修改
- 退出模式:当文件内容修修改完毕可以通过退出模式来保存或不保存修改的内容
bash
vim file //进入到vim的浏览模式
//浏览模式不能编辑文件
//在浏览模式中按<i>进入插入模式
//在vim中鼠标不能控制光标用上下左右移动光标
//按<ESC>退出插入模式
//按:wq保存更改
//:q 当vim打开文件后未作任何操作可以直接退出
//:q! 当vim打开文件后修改文件内容但不想保存可以强制退出
处理vim的异常退出
当vim编写文件时在未保存更改内容被强制关闭,那么vim进入异常模式,当再次用vim打开文件后文件出现异常。
处理方法如下:
#[O] 只读打开文件
#(E) 继续编辑
#(R) 恢复未保存内容编辑
#(D) 删除.swp文件进入编辑
#(Q) 退出当前文件编辑
#(A) 退出vim程序
e.g.

就像这样我在vim的编辑模式下对file的第二行写了abc
但是我直接按了关闭vim,当第二次就会出现异常


如果直接通过桌面图标直接打开file,是不会报错,但是没有恢复上次在vim编辑的东西

如果通过vim再次打开file,就会出现异常

在最下面有一行提示,也就是我上面提到的处理异常的解决方法。
按O打开file以只读模式

在命令模式下按:q退出,此时之前的错误退出前的编辑文件(.file.swp)这个文件通常是隐藏的,还会在所以下次用vim打开file也还是可以按R恢复之前编辑的文字。
按E就是我就打开!我就编辑!

若这个时候按了:wq退出保存后,就会有第一次错误退出的文件残留
可以用rm命令删除(如果不想要了的话)
按R是恢复未保存内容编辑
(注:这里我异常退出了两次是为了展示,第三次用vim打开file选择R恢复后你仍需选择1或2来选择恢复哪个文件,你可以看到修改的日期,修改者等信息进而选择要恢复哪个版本的文件)

选择1或2后恢复后,你可以用rm命令删除另外一个异常退出的缓存文件,或者你发现你恢复错了,你可以再次用vim打开,再执行一遍R恢复,选择正确的需要恢复的文件。
当然你还可以选择0,什么文件都不恢复。
四、查看文件
cat命令
bash
[root@localhost Desktop]# cat file

bash
cat -b file ##显示文件内容并显示行号,不显示空行的行号
bash
cat -n file ##显示文件内容并显示行号
这样一对比,效果很明显

less命令
用来分页浏览文件内容(推荐👍)
bash
less file #进入less模式查看file

#less模式中 逐行查看文件内容
逐页查看文件内容
#/关键字 搜索关键字 n 向下匹配 N 向上匹配
有less模式进入到vim 编辑完成:wq退出返回less
#在less中 退出
当然有less就有more
more命令


不推荐使用more命令是因为查看到文件末会退出查看,想再次查看上面的内容需要重新打开more或者less才能查看。
head命令
head通常用来查看文件的前几行
bash
head file ##默认显示文件前10行

bash
head -n file ##n 代表数字 显示文件的前n行

同样有head就有tail
tail命令
tail用来查看文件的后几行
bash
tail file ##默认显示文件后十行

bash
tail -n file ##查看文件后面的n行

五、文件的复制和移动
cp命令
cp用来做文件或目录的复制
cp 文件 目的地文件
#复制原理:
#按照源文件建立新文件
bash
cp file file1
将file复制到file1(注:file1如果不存在的话,会自动创建file1)


同理目录也行
bash
cp -r aaa bbb
cp -r 目录1 目录2

mv命令
用来做文件或目录的移动和重命名
移文件
bash
mv file file1 aaa ## cp 文件1 文件2 目的地目录
移动原理: 相同设备分区中的文件移动是重命名过程
注:不同分区的文件移动是建立删除过程
可以用ls -i file 查看文件节点号(相当与文件身份证)


同样mv也能移动目录到目录
移目录
bash
mv bbb aaa #将bbb目录移到aaa目录下


重命名
bash
mv file newName


六、文件统计命令
file命令
查看文件类型
bash
file file #查看file的真实类型

wc命令
统计文件大小
bash
[root@localhost Desktop]# wc file1
1 1 4 file1

注意:字符数是4的原因是abc末尾后有一个隐藏的字符

|-------|---------|
| wc -l | 查看文件行数 |
| wc -m | 查看文件字符数 |
| wc -w | 查看文件单词数 |
| wc -c | 查看文件字节数 |
ls命令
ls通常用于列出文件指定信息
|--------------------|--------------------|
| ls | 显示当前目录中的文件名称 |
| ls file | 显示指定文件名称 |
| ls dir | 显示指定目录中内容的名称 |
| ls -d dir | 显示目录本身的名称 |
| ls -l file | 显示文件属性 |
| ls -l dir(也可以缩写ll) | 显示目录中内容的属性 |
| ls -ld dir | 显示目录本身属性 |
| ls -a dir | 显示目录中所有文件名称包括隐藏文件案 |
| ls -s | 显示文件大小 |
| ls -R dir | 第归显示目录中的内容 |

七、文件批处理
通配符
|-----------------|-----------|
| * | 匹配0~任意字符 |
| ? | 匹配单个字符 |
| [[:alpha:]] | 匹配单个字母 |
| [[:lower:]] | 匹配单个小写字母 |
| [[:upper:]] | 匹配单个大写字母 |
| [[:digit:]] | 匹配单个数字 |
| [[:alnum:]] | 匹配单个数字或字母 |
| [[:punct:]] | 匹配单个符号 |
| [[:space:]] | 匹配单个空格 |
root@localhost Desktop\]# cp SHENGCHAN/\*_d_\* /tmp/SHENGCHAND \&\& cp SHENGCHAN/\*_n_\* /tmp/shengchanN 通过cp分别备份所有的shenchan_d与shengchan_n文件到SHENGCHAND和shengchanN

root@localhost Desktop\]# cp /etc/\*\[\[:digit:\]\]\*.conf /tmp/confback 这句命令的意思是通过cp进行备份etc目录下的匹配含有一个数字的后缀为.conf的文件到tmp目录下的confback

其他通配符也如此类推
字符集合表示方式
[]
条件是或关系是模糊匹配,对象和几个对比匹配
1-10\] 1到10 \[!d-f\]\|\[\^d-f\] 除了d-f以外
{}
精确指定集合中的每一个元素
{1..10} 1-10
{a..c} a-c