一、文件的相关操作
1.文件的创建
(对文件的操作路径:既可以是相对路径也可以是绝对路径)
touch: 用于创建文件,如果文件不存在则创建,如果文件存在则更新时间戳,文件本身的内容不会发生变化
格式:touch 文件名
多文件创建:touch 1.c 2.c 3.c
mkdir: 用于创建一个目录,目录存在则报错
linux@Ubuntu:~/$ mkdir demo
mkdir: 无法创建目录"demo":文件已存在
格式:mkdir 目录名
多文件创建:mkdir 1 2 3(同时创建) 或者 mkdir {1...100}(快速创建)
-m :用于创建指定权限的目录
mkdir -m 666 test:创建一个具有666权限的目录
-p :用于目录及其子目录的创建(递归创建目录)
mkdir -p 1/2/3:创建一个目录名为1的目录其中包含子目录2,子目录2中又包含次一级目录3
./
└── 1
└──2
└──3
2.文件的删除
rmdir: 用于删除一个目录,只能删除一空目录
格式:rmdir 空目录名
rm: 删除命令,用于删除一个或多个文件
格式:rm 文件名 文件名 ...
慎用:rm -rf *
“*”:通配符,用来表示任意字符
rm *.c:删除当前目录下所有.c文件
-r:递归的删除目录及其下的所有内容
-f:忽略不存在的文件和参数,不提示
-rf:这两个参数同时使用时,表示强制删除目录及其下的所有内容且不提示
3.文件的移动
mv: 用于对文件的移动和重命名
移动格式:mv 路径/源文件 目标目录
mv ./01 demo
mv -t 目标目录 路径/源文件
mv -t demo ./01
重命名格式: mv 路径/源文件名 目标目录/将要改成的目标文件名
mv ./01.c demo/hello.c
cp: 用于对文件的拷贝和重命名
移动格式:cp 路径/源文件 目标目录
cp ./01 demo
cp -t 目标目录 路径/源文件
cp -t demo ./01
重命名格式: cp 路径/源文件名 目标目录/将要改成的目标文件名
cp ./01.c demo/hello.c
-r:递归的复制目录及其下的所有内容
4.文件的查看
(拓展‘-*’可以叠加使用)
pwd: 用于查看当前所在的目录
[root@oldboy ~]# pwd
/root
该命令显示的路径为绝对路径
ls: 查看目录下的文件
格式:ls 文件名/目录名
-l:查看目录下文件的详细信息(相当于ll)
-a:查看目录下的隐藏信息
-d:查看目录本身的信息
-h:查看目录下的详细信息,并以人类可读的形式显示
-i:显示文件系统给文件分配到inode号
inode号是有限资源,如果消耗完毕,无法继续新建文件
解决方法:删除空文件,无用的文件
inode号在同一设备中是唯一的
在不同设备中inode号是可以相同的
cat: 查看文件内容(将文件内容显示到终端)
格式:cat 文件名 (tac 文件名 会反向显示文件内容)
-n:查看文件内容并显示行号
-b:查看文件并对非空行输出行号
-E:查看文件内容并在每行结尾加一个 $ 符号
-s:如果文件中存在多个空行,那么只显示一个
tail: 查看文件的后10行(其中包括空行)
格式:tail 文件名
指定行号查询:tail -n 文件名(n可以是任意整数超过10也可以,-n必须在中间,顺序不能出错)
-n:显示文件最后n行,而不是10行,用法同上(或者-n 1...)
-f:显示文件最新追加的内容,实时监视文件变化
head: 查看文件前10行(其中包括空行)
格式:head 文件名
指定行号查询:tail -n 文件名(n可以是任意整数超过10也可以,-n必须在中间,顺序不能出错)
-n:显示文件最后n行,而不是10行,用法同上(或者-n 1...)
less: 分页查看文件
格式:less 文件路径
进去之后,f向下翻页,b向上翻页,q退出查看
more: 分页查看文件 (和less区别是more看完就退出)
格式:more 文件路径
进去之后,f向下翻页,b向上翻页,q退出查看
5.文件的编辑
cat: 作为编辑使用时用于将一个或多个文件连接起来并打印它们的内容
>:输出重定向,文件不存在则创建,存在则覆盖文件全部内容
格式:cat 源文件名 > 目标文件名(不能输出字符串)
使用 > 符号可以将命令的输出重定向到一个文件。如果文件不存在,它会被创建;如果文件已经存在,它的内容会被覆盖。
>>:追加重定向,将内容追加到文件末尾
格式:cat 源文件名/字符串 >> 目标文件名(能追加字符串)
使用 >> 符号可以将命令的输出追加到一个文件的末尾,而不是覆盖它。
EOF:结束符
格式:cat >/>> 文件名 <<EOF
>内容
>内容
>EOF
echo: 用打印的方式编辑文件
格式:echo 字符/字符串
-n:就是去掉数据内容最后的换行符(不输出换行符)
格式:echo -n "内容"
-E:默认的选项参数,不解析转义字符(禁用‘\’转义字符)
-e:解析转义字符(启用‘\’转义字符)
>:打印并覆盖重定向到目标文件
格式:echo 字符串 > 目标文件名(不能使用文件名)
>>:打印并追加重定向到目标文件
格式:echo 字符串 >> 目标文件名(不能使用文件名)
使用 >> 符号可以将字符串追加到一个文件的末尾
6.vi编辑器的使用
vi/vim: 使用程序员的文件编辑器编译
进入文件后,是【视图模式】
一、【视图模式】下进入【编辑/插入模式】的方式:
i #插入,光标在哪里,就在哪里插入;
a #追加插入,光标的下一个字符前插入;
I #在光标所在的行的行首插入;
o #在当前行的下一行插入一个空行进行编辑;
A #在当前行的行尾进行插入;
O #在当前行的上一行插入一个空行进行编辑;
C #删除光标所在位置,到行尾;
cc #清空当前行(保留清空后的空行)
esc #插入模式回到视图模式;
二、【视图模式】下命令
:wq #保存退出
:set nu #显示行号
:q! #强制退出不保存
:set paste #原格式粘贴插入模式;(会有粘贴内容,格式变化问题时使用)
三、【视图模式】下的快捷键
u #返回上一步操作;
ctrl + r #回到下一步操作;
dd #删除当前行;
3dd #连续删除三行
^ #光标到行首
$ #光标到行尾
G #光标到最后一行
gg #光标到第一行
3G 或者 3gg #光标到第三行;
**********************************
dG #删除当前行一直到文件最后一行;
d1G #删除当前行到第一行;
d^ #从光标位置,删除到行首;
d$ #从光标位置,删除到行尾;
yy #复制当前行
3yy #复制三行内容(算上光标所在行)
p #粘贴一次
3p #连续粘贴3次;
四、搜索、替换文件内容、撤销
/wa #n从上到下查找 N从下往上查找;
/wa\c #忽略大小写查找
?wa #从文件下岛上查找
n :从上往下查看搜索结果
N :从下往上查看搜索结果
%s#HAHAHA#hehe#g #替换文件内容(第一个#后面,是文件中要被替换的内容,最后一个#前面,是要替换成什么)
:7,10s###g #指定行数进行内容替换(替换7-10行的内容)
s###g==s///g
:noh #取消搜索后的高亮;