目录
1.数据流和重定向
1.2数据流
1.2重定向操作符
1.2.2符号
1.2.3用法
输出重定向具体命令用法:
输入重定向具体命令用法:
1.3 echo
2.tee
3.1 作用
3.2 格式
3.3 参数
3.4 用法:
4.管道符
4.1.作用
4.2.格式
4.3使用:
5.vi/vim文本编辑器的使用
5.1 vim三种编辑器模式
5.2 命令模式的快捷键
5.2.1. 光标跳转按键
5.2.2. 复制、粘贴、删除
5.3 编辑模式的快捷键
5.4 末行模式的快捷键
5.4.1. 查找关键字并替换
5.4.2 保存退出
5.5.3. 其他操作
5.6. vim的配置文件
5.7. vim的异常处理
5.8. 示例
第一步:安装编译器:gcc
第二步:编写c程序
第三步:编译c源文件
第四步:查看结果
标准输入 (standard input,简称stdin):默认情况下,标准输入指从键盘获取的输入
标准输出(standard output,简称stdout): 默认情况下,命令执行所回传正确的信息会输出到屏幕上
标准错误输出(standard error output,简称stderr): 默认情况下,标准错误输出可理解为命令执行失败后,所回传的错误信息会输出到屏幕上
不管正确或错误的数据都是默认输出到屏幕上,所以屏幕是混乱的。所以就需要用数据流重定向将这两条数据分开。数据流重定向可以将标准输出和标准错误输出分别传送到其他的文件或设备去,而分别传送所用的特殊字符如下所示:
标准输入 (stdin):代码为0 0代表输入(键盘)
标准输出 (stdout):代码为1 1代表输出(屏幕)
标准错误输出(stderr) : 代码为2 2代表错误(输出错误提示)[root@server q1]# ll /dev 显示系统中该命令的存放位置
重定向操作符可以将命令输入和输出数据流从默认设备重定向到其他位置。、
重定向操作符本身不是命令,而是命令中附加的可改变命令的输入和输出对象的特殊符号.
输出重定向操作符: > >>
“>”默认是覆盖,覆盖原有内容 “>>”默认是追加,在原有内之后添加内容
输入重定向操作符:< <<“<” 输入重定向
"<<"表示输入的终止符用哪一种,一般在<<后直接加输入终止符
[root@server q1]# cat > t1.txt << aaa
自我理解:以看的形式给t1.txt输入内容,当遇到aaa时输入终止三种文件存储方式:echo "hello word" > t1.txt
cat > file3 << end
cat > t5.txt
命令 >文件 或 命令 1>文件 : 将命令执行后的结果不在默认的屏幕上显示,而是以覆盖的方式写入到指定立件中,若指定的文件不存在,则自动创建该文件
命令 2>文件 :将命令执行后所产生的错误信息不在默认的屏幕上显示,而是以覆盖的方式写入到指定文件中,若指定的文件不存在,则自动创建该文件
命令 2>/dev/nu11 : 将命令执行后所产生的错误信息不在默认的屏幕上显示,而是写入到空设备命令文件(黑洞)中(相当于Vin的回收站),即将输出的错误信息丢弃掉
命令&>文件 命令>&文件 : 将命令执行后的正确输出信息和错误信息不在默认的屏幕上显示,而是以罗盖的方式写入到指定文件中,若指定的文件不存在,则自动创建该文件
命令 >>文件 : 将命令执行后的正确输出信息以追加的方式写入到指定的文件中,不覆盖原文件内容,若指定的文件不存在,则自动创建该文件
命令 <文件 : 使命令从指定的文件中读取数据作为输入命令 <<结束标识字符串 : 在命令行读取数据作为输入,直到遇到指定的结束标识字符串
>符号的用法,覆盖
>> 符号的用法,追加
注意:若命令echo输入错误,则会导致文件内容的丢失。例:
因此>覆盖也可以删除文件
将错误提示,输入到文件夹中:在>之前加数字2
[root@server q1]# ehco "xixihaha" 2> ni.txt
将正确和错误的信息都转储到文件中
[root@server q1]# echo "xixihaha" &> ni.txt
隐藏脚本执行的过度信息:
[root@server q1]# yum makecache > n1.txt缺点:n1.txt文件会越执行越大
因此优化 [root@server q1]# yum makecache > /dev/null 该命令为不显示也不储存
使脚本后台静默安装,安装过程不保存
合并文件:[root@server q1]# cat t1.txt t2.txt >t3.txt
符号:< <<
将字符串test输入重定向到文件file中 [root@server q1]# echo test > file
"<<"表示输入的终止符用哪一种,一般在<<后直接加输入终止符
以看的形式给file3输入内容,当遇到end时输入终止
[root@server q1]# cat > file3 << end
第二种输入法:[root@server q1]# cat > t5.txt
该输入发较难使用,最后结束要组合按键Ctrl + D 删除输入错的同行字母时要用组合按键
Ctrl + Backspace
以上命令都只能更改/删除同一行,不能更改/删除上一行
1.3.1.作用
向终端设备上输出字符串或变量的存储数据(像屏幕终端输出)
1.3.2.格式
echo "字符串"
注意:单引号' $PATH'是原样输出"$PATH"含义是保留部分字符含义
echo $变量名($提取变量的值)
tee -参数 文件名
-a:加数据,即--apped。
-i:忽略终端信号·
--help:帮助信息
[root@server ~]# tee test.txt用法与[root@server q1]# cat > t.testxt相似
用于两个命令或多个命令相连接,将左侧命令的结果作为右侧命令的数据输入
命令1 | 命令2 | 命令3 .....
查看passwd这个文件有多少行,
[root@server q1]# cat /etc/passwd | wc -l 将左侧查看的数据交给右侧来处理
过滤出 ip a 命令中的ip地址,即图中红框中的内容
grep 关键字 意义:按照右边的关键字对文本进行过滤
tr -s 替换
[root@server q1]# ip a | grep ens160 | grep inet | tr -s " " | cut -d " " -f3
有于vi是vim的加强版因此在此处着重讲解Vim
概念:
命令模式:也成为了阅读模式,可以控制光标移动,对文 本进行查看、删除、复制粘贴等操作(默认)
编辑模式:也称为插入模式,可以对文本进行编辑
末行模式:保存、退出、设置编辑环境
进入的顺序 刚打开文件后进入的为命令模式(默认)
命令模式点击'i'键进入输入模式,点击Esc返回命令模式
命令模式中点击冒号进入末行模式,点击Esc返回
输入模式与末行模式不可以相互进入
结构图:
可通过如下任意一种功能键从命令模式切换到编辑模式
按esc键可从编辑模式切换到 命令模式
按:或者 / 可从命令模式切换到末行模式
按Esc键可从末行模式切换到命令模式。
[root@server ~]# vim /etc/vimrc # 输入以下 内容
set nu # 永久设置行号
当我们在Vim模式编辑代码时,vim异常终止,当我们重新打开时,会发现文本变成一下内容:
此时我们一直按”↓“ 直到出现一下文字,根据文字做出回应
然后会到下图所示界面:按提示点击Enter键 ,此时我们就会回到原来的界面。
但当我们按wq保存并退出后,我们再次进入时,还会有如上提示,
若我们想在看到如上提示,我们一个直接删除交换文件
也就是第一幅图显示的 .ps.swp 方法如下:
此时,当我们再次用Vim打开ps文件编辑时,就不会在弹出一开始的界面了
使用vim编写c程序,实现编译运行
[root@server ~]# yum install gcc -y
[root@server ~]# vim test.c # 输入以下程序
#include
int main(void)
{
int i,j;
for(i=1;i<10;i++)
printf("%d\t",i);
printf("\n");
for(i=1;i<66;i++)
printf("-");
printf("\n");
for(i=1;i<10;i++)
{
for(j=1;j<10;j++)
if(i>=j)
printf("%d\t",i*j);
printf("\n");
}
}
[root@server ~]# gcc test.c
[root@server ~]# ./a.out