shell+vim——05
ln --->link 链接, 链接有两种:
软连接 ln -s 源文件 目标文件 :相当于创建了一个快捷方式,源文件损坏后这个链接也就失效了
ln -s a.text a.text.soft //给a.text 创建一个名为 a.text.soft 的软链接
硬连接 ln 源文件 目标文件
ln a.text a.text.hard //给a.text 创建一个名为 a.text.soft 的硬链接
#硬连接相当于cp -p +同步跟新 ,-p就是拥有原来文件所有的属性
重定向与管道符
作用:将命令的执行结果输出到指定的文件中,而不是直接显示在屏幕上
0 标准输入 键盘 stdin 仅读取
1 标准输出 终端 stdout 仅写入
2 标准错误 终端 stderr 仅写入
3+ filename 其他文件 读/写
在linux中构建了一个带有编号标记的通道(文件描述符)的进程结构来管理打开文件
通过进程连接到文件,进行文件数据的操作
类型1:重定向标准输入,将命令的执行结果输出到指定的文件家中
- 1>(也可以省略写为 > )代表覆盖写
- 1>>(也可以省略写为 >> )代表追加写
类型2:重定向标准错误,将错误信息写入指定文件中
- 2> 代表覆盖写
- 2>> 代表追加写
类型3:重定向标准输入和标准错误,将标准输出和标准错误输出写入指定的文件中
- &> 代表覆盖写
- &>> 代表追加写
举例子:
- 我用的是root登录,来到一个文件夹中,随便啥文件夹都可以 执行 命令 ll > message.txt 你会发现执行的结果都在message中了
- 执行ls > message.txt 你会发现执行的结果仍然在message.txt 中,但是原来的内容被覆盖掉了
- 执行 find / -user student(我事先有一个student的用户) 就会出现一堆执行结果,有错误输出和正常输出
- 执行 find / -user studnet > message.txt 你会发现,屏幕上只是打印了标准错误输出,正常输出写入了message.txt 文件中
- 执行 find / -user studnet 2> message.txt 你会发现,屏幕上只是打印了标准输出,标准错误输出写入了message.txt 文件中
- 执行 find / -user studnet &> message.txt 你会发现所有的输出都写入了文件中
管道符:传送 符号 | (将管道前面的输出结果作为后面语句的条件执行)
举栗子:加入在当前目录下 ls 命令会打印许多内容 那么我们就可以使用 ls | more,就可以将打印的结果分页展示
Vim文本编辑器
vi/vim vim是 vi 的一个升级版本
vim特点:可拓展性比较高,支持多种语言的脚本,支持文件类型的插件,支持文本的各种骚气操作
直接在终端中输入 vim 或者 vi 都可以查看一下当前vim的一些信息
vim filename 就可以使用vim对这个文件进行一些骚操作了,打开后有三种模式:
命令模式:此模式用于文件导航,复制粘贴,剪切,可以使用简单的命令,撤销,恢复
输入模式:正常的文本编辑模式,进行文本的常规操作,还可以替换文本
末行模式:保存,退出,搜索,替换
使用vim打开文件的默认模式是命令模式,这个时候你对文件是无法操作的,按o键会给你换行切换到输入模式,按i键会直接给你切换到输入模式,按Esc键又可以回到命令模式,然后 输入 : 就可以到末行模式 在末行模式或者命令中输入 :w 就可以保存对文件的修改,同样在这两种模式下输入 :w 就可以对文件进行保存,:q,就可以退出,但是如果你改动了文件没有保存 :q 时无法退出了,这个时候就需要强制退出 :q!
末行模式和输入模式之间不能互相切换,只有通过命令模式进行中转