一、编辑器
vi和vim编辑器
vi是Unix操作系统和类Unix操作系统中最通用的文本编辑器
vim编辑器是从vi发展而来的,是一个功能和性能更加强大的文本编辑器,方便程序设计。vi和vim编辑器是完全兼容的
二、3种模式
1.vi/vim模式
2.一般模式
vi 文件名.后缀名
vim 文件名.后缀名
文件的操作
命令(语法) | 功能描述 |
---|---|
yy | 复制光标所在的一整行 |
p | 粘贴(粘贴到光标所在的下一行) |
u | 撤销上一步操作 |
dd | 删除光标所在一整行 |
y数字y | 复制一段文字内容(从当前光标开始往后数数字行) |
d数字d | 删除一段文字内容(从当前光标开始往后数数字行) |
G | 光标移动到页尾 |
gg | 光标移动到页头 |
3.编辑模式
按键 | 功能描述 |
---|---|
i | 当前光标前插入数据 |
o | 在当前光标下一行插入数据 |
a | 当前光标后插入数据 |
I(大写i) | 光标所在行的前面插入数据 |
A | 光标所在行的后面插入数据 |
O(大写o) | 当前光标上一行插入数据 |
4.命令模式
ESC
按键 | 功能描述 |
---|---|
:set nu 或 :set number | 显示行号 |
:set nonu | 关闭行号 |
:q | 关闭 |
:q! | 不保存强制退出 |
:w | 保存 |
:wq | 保存并退出 |
ZZ(大写) | 保存后退出 |
/输入要查找的词 | n查找下一个,N查找上一个 |
:nohl | 去掉高亮显示 |
:%s/要替换的/替换后的 | 批量替换 |
三、文件目录操作指令
1.ls(列出目录内容)
list:列出
列出目录的内容
# 语法 []可有可无 ls [选项][目录或者文件]
选项 | 功能描述 |
---|---|
-a | 全部文件,连同隐藏文件一起列出 |
-l | 长数据串,包括文件的属性和权限 |
清屏:
ctrl+L 或者 clear
# 查询当前目录(~)下的所有文件 [root@localhost ~]# ls -a . anaconda-ks.cfg .bash_logout .bashrc .config .dbus .ICEauthority .mozilla .tcshrc 公共 视频 文档 音乐 .. .bash_history .bash_profile .cache .cshrc .esd_auth .local .mysql_history .viminfo 模板 图片 下载 桌面 # 查看 / (根目录下)的文件 [root@localhost ~]# ls / bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var # 查看/(根目录)下的所有文件 [root@localhost ~]# ls -a / . .. .autorelabel bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var # ls -l 等同于 ll
2.cd(切换目录)
cd:change directory 切换目录
# 语法 cd [参数]
参数 | 功能描述 |
---|---|
cd 绝对路径 | 切换到绝对路径(路径前面有/) |
cd 相对路径 | 切换到相对路径 |
cd.. | 返回上一级目录 |
cd- | 返回上一次所在的目录 |
cd~ | 回到home目录 |
# 进入到/usr (绝对路径)目录 [root@localhost ~]# cd /usr [root@localhost usr]# ls 2024991709 bin etc games include lib lib64 libexec local sbin share src tmp # 进入到usr目录里面的tmp(相对路径)目录 [root@localhost usr]# cd tmp # 返回上一次操作所在的目录 [root@localhost tmp]# cd - /usr # 返回上一次操作所在的目录 [root@localhost usr]# cd - /usr/tmp # 返回上一层目录 [root@localhost tmp]# cd .. [root@localhost usr]# cd .. [root@localhost /]# cd /usr/tmp # 返回上一层,上一层目录 [root@localhost tmp]# cd ../../
3.mkdir(创建文件夹)
创建一个新的目录(文件夹)
mkdir:make directory 建立目录(文件夹)
#语法 mkdir [选项] 要创建的目录名
选项 | 功能描述 |
---|---|
-p | 创建一级或多级目录 |
# 在当前目录(~)里面创建目录a [root@localhost ~]# mkdir a [root@localhost ~]# ls a anaconda-ks.cfg 公共 模板 视频 图片 文档 下载 音乐 桌面 # 在当前目录(~)里面的a文件里创建b文件夹 [root@localhost ~]# mkdir a/b # 在当前目录(~)里面的a/b文件夹里创建c文件夹 [root@localhost ~]# mkdir a/b/c [root@localhost ~]# ls a anaconda-ks.cfg 公共 模板 视频 图片 文档 下载 音乐 桌面 # 创建失败。原因:使用mkdir 不能直接创建多级目录(如果有上级目录不存在,则不能创建) [root@localhost ~]# mkdir abc/def mkdir: 无法创建目录"abc/def": 没有那个文件或目录 # 创建成功。加入选项-p后,表示可以创建多级目录 [root@localhost ~]# mkdir -p abc/def/zzz # 创建成功。添加选项-p后,也可以创建一级目录 [root@localhost ~]# mkdir -p ggg
4.rmdir(删除文件夹)
删除一个目录
rmdir:remove directory 删除目录
# 语法 rmdir 空的目录(文件夹)
# 使用rmdir指令删除文件夹,必须删除的是空的文件夹 [root@localhost ~]# rmdir abc/def/zzz [root@localhost ~]# rmdir abc/def [root@localhost ~]# rmdir abc # 删除非空文件夹就会出现错误提示 [root@localhost ~]# rmdir a rmdir: 删除 "a" 失败: 目录非空
四、文件操作指令
1.touch(创建文件)
创建空文件
#语法: touch 文件名.后缀名
# 在当前目录(相对路径)里创建了一个空文件java.txt [root@localhost ~]# touch java.txt
2.cp(复制文件)
复制文件
#语法 cp [选项] 复制的源 复制到哪里去(目的地)
选项 | 功能描述 |
---|---|
-r | 递归 复制整个文件夹 |
# 复制当前目录里的anaconda-ks.cfg,复制到文件夹abc里面 [root@localhost ~]# cp anaconda-ks.cfg abc [root@localhost ~]# ls abc anaconda-ks.cfg [root@localhost ~]# vim abc/anaconda-ks.cfg [root@localhost ~]# mkdir my [root@localhost ~]# ls abc anaconda-ks.cfg my 公共 模板 视频 图片 文档 下载 音乐 桌面 # 复制失败。文件夹abc不为空,直接复制文件夹导致里面的文件无法复制报错 [root@localhost ~]# cp abc my cp: 略过目录"abc" [root@localhost ~]# ls my # 递归复制文件夹abc,复制到文件夹my里面 [root@localhost ~]# cp -r abc my/
3.rm(删除文件)
remove:删除、移除
移除文件或者文件夹
#语法: rm [选项] 要删除的文件或者是目录(文件夹)
选项 | 功能描述 |
---|---|
-r | 递归 删除目录中所有内容 |
-f | 强制执行删除操作,不出现确认提示 |
-v | 显示指令执行过程 |
# 强制删除当前目录中的my文件夹,以及该文件中的所有内容,并显示执行过程 [root@localhost ~]# rm -rfv my 已删除"my/abc/anaconda-ks.cfg" 已删除目录:"my/abc" 已删除目录:"my" # 递归删除文件夹abc,以及其中的内容,显示执行过程 [root@localhost ~]# rm -rv abc rm:是否进入目录"abc"? y rm:是否删除普通文件 "abc/anaconda-ks.cfg"?y 已删除"abc/anaconda-ks.cfg" rm:是否删除目录 "abc"?
4.mv(剪切文件)
mv:move 移动
剪切文件/目录,重命名文件名
# 语法: mv 要剪切的文件 移动到的目的地(此时可重命名)
# 将当前目录(~)中的anaconda-ks.cfg,剪切到~/abc目录里 [root@localhost ~]# mv anaconda-ks.cfg abc/ [root@localhost ~]# ls abc 公共 模板 视频 图片 文档 下载 音乐 桌面 [root@localhost ~]# ls abc anaconda-ks.cfg # ~/abc/anaconda-ks.cfg,剪切到 ~/ 并且重命名为anacond.cfg [root@localhost ~]# mv abc/anaconda-ks.cfg ~/anacond.cfg [root@localhost ~]# ls abc/ [root@localhost ~]# ls abc anacond.cfg 公共 模板 视频 图片 文档 下载 音乐 桌面 # 将当前目录的anacond.cfg移动到当前目录,并且重命名为anaconda-ks.cfg [root@localhost ~]# mv anacond.cfg anaconda-ks.cfg [root@localhost ~]# ls abc anaconda-ks.cfg 公共 模板 视频 图片 文档 下载 音乐 桌面 # 剪切文件夹abc,到/usr目录里 [root@localhost ~]# mv abc /usr/
5.cat(查看文件内容)
查看文件的内容
#语法 cat [选项] 要查看的文件
选项 | 功能描述 |
---|---|
-n | 查看文件并显示行号 |
# 查看文件anaconda-ks.cfg,并添加行号 [root@localhost ~]# cat -n anaconda-ks.cfg
6.more(分屏查看文件)
more指令是一个基于vi编辑器的文本过滤器,它以全屏的方式按照页显示文件内容
# 语法 more 要查看的文件
操作指令 | 功能描述 |
---|---|
space(空格键) | 下一页 |
enter(回车键) | 下一行 |
q | 退出该模式 |
ctrl + f | 向下滚动一个屏幕的信息 |
ctrl + b | 向上滚动一个屏幕的信息 |
= | 查看当前行号 |
:f | 输出文件名以及当前的行号信息 |
7.less(分屏查看文件)
分屏查看文件
它的功能比more更强大
#语法 less 要查看的文件
操作指令 | 功能描述 |
---|---|
space(空格键) | 向下翻一页 |
Pageup(↑) | 向上翻动一行 |
Pagedown(↓) | 向下翻动一行 |
/要查找的内容 | n:向后查找 N:向上查找 |
?要查找的内容 | N:向后查找 n:向上查找 |
q | 退出 |
8.echo(输出内容到控制台)
输出内容到控制台
#语法 echo [选项] 输出的内容
选项 | 功能描述 |
---|---|
-e | 支持反斜线的字符转换 |
字符转换
控制字符 | 功能描述 |
---|---|
\\ | 输出\ 本身 |
>
和>>
>
:覆盖
>>
:追加
#语法 #意思:创建文件,并在文件中写入字符串,以覆盖的方式写入的 echo 字符串>文件 #意思:创建文件,并且在文件中写入字符串,以i追加的方式 echo 字符串>>文件
# 创建文件java.txt,写入字符串abc [root@localhost ~]# echo abc>java.txt [root@localhost ~]# ls anaconda-ks.cfg java.txt 公共 模板 视频 图片 文档 下载 音乐 桌面 [root@localhost ~]# cat java.txt abc # 如果java.txt存在,会先删除java.txt,然后重新创建java.txt,写入def [root@localhost ~]# echo def>java.txt [root@localhost ~]# cat java.txt def [root@localhost ~]# rm -rf java.txt [root@localhost ~]# [root@localhost ~]# ls anaconda-ks.cfg 公共 模板 视频 图片 文档 下载 音乐 桌面 # 如果java.txt不存在,则先创建然后写入到abc,如果该java.txt已经存在,则追加字符串abc [root@localhost ~]# echo abc>>java.txt [root@localhost ~]# cat java.txt abc [root@localhost ~]# echo def>>java.txt [root@localhost ~]# cat java.txt abc def
9.ln(软连接,创建快捷方式)
软连接,也就是windows中的快捷方式
#语法: ln -s 源文件 软连接地址11
# 创建软连接 (真实的文件是/usr/java.txt) 软连接是 ~/java.txt [root@localhost ~]# ln -s /usr/java.txt ~/java.txt # 删除软连接(删除后对真实的文件没有任何影响) [root@localhost ~]# rm -rf java.txt
五、cal(日历)
查看日历
#查看今天的日历 [root@localhost ~]# cal 九月 2024 日 一 二 三 四 五 六 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30