从命令行管理文件(二)

目录

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源文件

第四步:查看结果


1.数据流和重定向

1.2数据流

        标准输入 (standard input,简称stdin):默认情况下,标准输入指从键盘获取的输入

        标准输出(standard output,简称stdout): 默认情况下,命令执行所回传正确的信息会输出到屏幕上

        标准错误输出(standard error output,简称stderr): 默认情况下,标准错误输出可理解为命令执行失败后,所回传的错误信息会输出到屏幕上

        不管正确或错误的数据都是默认输出到屏幕上,所以屏幕是混乱的。所以就需要用数据流重定向将这两条数据分开。数据流重定向可以将标准输出和标准错误输出分别传送到其他的文件或设备去,而分别传送所用的特殊字符如下所示:
        标准输入 (stdin):代码为0              0代表输入(键盘)
        标准输出 (stdout):代码为1           1代表输出(屏幕)
        标准错误输出(stderr) : 代码为2    2代表错误(输出错误提示)

[root@server q1]# ll     /dev      显示系统中该命令的存放位置

从命令行管理文件(二)_第1张图片

1.2重定向操作符

        重定向操作符可以将命令输入和输出数据流从默认设备重定向到其他位置。、

        重定向操作符本身不是命令,而是命令中附加的可改变命令的输入和输出对象的特殊符号.

1.2.2符号

        输出重定向操作符: >     >>

                “>”默认是覆盖,覆盖原有内容 “>>”默认是追加,在原有内之后添加内容
        输入重定向操作符:<      <<

                “<” 输入重定向

                "<<"表示输入的终止符用哪一种,一般在<<后直接加输入终止符        

                        [root@server q1]# cat > t1.txt << aaa
                        自我理解:以看的形式给t1.txt输入内容,当遇到aaa时输入终止

三种文件存储方式:echo  "hello word" > t1.txt

                                cat > file3 << end

                                cat > t5.txt

1.2.3用法

        命令 >文件 或 命令 1>文件 : 将命令执行后的结果不在默认的屏幕上显示,而是以覆盖的方式写入到指定立件中,若指定的文件不存在,则自动创建该文件
        命令 2>文件 :将命令执行后所产生的错误信息不在默认的屏幕上显示,而是以覆盖的方式写入到指定文件中,若指定的文件不存在,则自动创建该文件
        命令 2>/dev/nu11 : 将命令执行后所产生的错误信息不在默认的屏幕上显示,而是写入到空设备命令文件(黑洞)中(相当于Vin的回收站),即将输出的错误信息丢弃掉
        命令&>文件 命令>&文件 : 将命令执行后的正确输出信息和错误信息不在默认的屏幕上显示,而是以罗盖的方式写入到指定文件中,若指定的文件不存在,则自动创建该文件
        命令 >>文件 : 将命令执行后的正确输出信息以追加的方式写入到指定的文件中,不覆盖原文件内容,若指定的文件不存在,则自动创建该文件
        命令 <文件 : 使命令从指定的文件中读取数据作为输入   

        命令 <<结束标识字符串 :  在命令行读取数据作为输入,直到遇到指定的结束标识字符串

输出重定向具体命令用法:

>符号的用法,覆盖

从命令行管理文件(二)_第2张图片

>> 符号的用法,追加 

从命令行管理文件(二)_第3张图片

注意:若命令echo输入错误,则会导致文件内容的丢失。例:

从命令行管理文件(二)_第4张图片

因此>覆盖也可以删除文件

将错误提示,输入到文件夹中:>之前加数字2

[root@server q1]# ehco "xixihaha" 2> ni.txt

从命令行管理文件(二)_第5张图片

将正确和错误的信息都转储到文件中

[root@server q1]# echo "xixihaha" &> ni.txt

从命令行管理文件(二)_第6张图片

隐藏脚本执行的过度信息:

[root@server q1]# yum makecache > n1.txt缺点:n1.txt文件会越执行越大

从命令行管理文件(二)_第7张图片

因此优化     [root@server q1]#  yum makecache > /dev/null    该命令为不显示也不储存

使脚本后台静默安装,安装过程不保存

从命令行管理文件(二)_第8张图片从命令行管理文件(二)_第9张图片

合并文件:[root@server q1]# cat t1.txt t2.txt >t3.txt

从命令行管理文件(二)_第10张图片

输入重定向具体命令用法:

符号:<     <<

将字符串test输入重定向到文件file中      [root@server q1]# echo test > file

从命令行管理文件(二)_第11张图片

"<<"表示输入的终止符用哪一种,一般在<<后直接加输入终止符

        以看的形式给file3输入内容,当遇到end时输入终止

[root@server q1]# cat > file3 << end

从命令行管理文件(二)_第12张图片

以看的形式给t1.txt输入内容,当遇到aaa时输入终止从命令行管理文件(二)_第13张图片

第二种输入法:[root@server q1]# cat > t5.txt

从命令行管理文件(二)_第14张图片

该输入发较难使用,最后结束要组合按键Ctrl + D  删除输入错的同行字母时要用组合按键

Ctrl  + Backspace

以上命令都只能更改/删除同一行,不能更改/删除上一行

1.3  echo

1.3.1.作用

向终端设备上输出字符串或变量的存储数据(像屏幕终端输出)

1.3.2.格式

echo    "字符串"

 注意:单引号' $PATH'是原样输出"$PATH"含义是保留部分字符含义

echo    $变量名($提取变量的值)


从命令行管理文件(二)_第15张图片

2.tee

3.1 作用

读取标准输入数据,将结果输出到文件中同时输出到屏幕上从命令行管理文件(二)_第16张图片

3.2 格式

tee -参数 文件名

3.3 参数

-a:加数据,即--apped。

-i:忽略终端信号·

--help:帮助信息

3.4 用法: 

[root@server ~]# tee test.txt用法与[root@server q1]# cat > t.testxt相似

从命令行管理文件(二)_第17张图片

4.管道符

4.1.作用

用于两个命令或多个命令相连接,将左侧命令的结果作为右侧命令的数据输入

4.2.格式

命令1  命令2 命令3 .....

4.3使用:

查看passwd这个文件有多少行,

[root@server q1]# cat /etc/passwd | wc -l    将左侧查看的数据交给右侧来处理

过滤出 ip a 命令中的ip地址,即图中红框中的内容

从命令行管理文件(二)_第18张图片

grep   关键字    意义:按照右边的关键字对文本进行过滤

tr  -s     替换

[root@server q1]# ip a | grep ens160 | grep inet | tr -s " " | cut -d " "  -f3

5.vi/vim文本编辑器的使用

有于vi是vim的加强版因此在此处着重讲解Vim

5.1 vim三种编辑器模式

概念:

        命令模式:也成为了阅读模式,可以控制光标移动,对文 本进行查看、删除、复制粘贴等操作(默认)

        编辑模式:也称为插入模式,可以对文本进行编辑

        末行模式:保存、退出、设置编辑环境

                进入的顺序 刚打开文件后进入的为命令模式(默认)

                命令模式点击'i'键进入输入模式,点击Esc返回命令模式

                命令模式中点击冒号进入末行模式,点击Esc返回

                输入模式末行模式不可以相互进入

结构图:

从命令行管理文件(二)_第19张图片

5.2  命令模式的快捷键

5.2.1. 光标跳转按键

从命令行管理文件(二)_第20张图片

5.2.2. 复制、粘贴、删除

从命令行管理文件(二)_第21张图片

5.3 编辑模式的快捷键

可通过如下任意一种功能键命令模式切换到编辑模式

按esc键可从编辑模式切换到 命令模式

从命令行管理文件(二)_第22张图片

5.4 末行模式的快捷键

或者 / 可从命令模式切换到末行模式

Esc键可从末行模式切换到命令模式。

5.4.1. 查找关键字并替换

从命令行管理文件(二)_第23张图片

5.4.2 保存退出

从命令行管理文件(二)_第24张图片

5.5.3. 其他操作

从命令行管理文件(二)_第25张图片

5.6. vim的配置文件

[root@server ~]# vim      /etc/vimrc # 输入以下 内容

                set nu # 永久设置行号

5.7. vim的异常处理

当我们在Vim模式编辑代码时,vim异常终止,当我们重新打开时,会发现文本变成一下内容:

从命令行管理文件(二)_第26张图片

此时我们一直按”↓“  直到出现一下文字,根据文字做出回应

从命令行管理文件(二)_第27张图片

然后会到下图所示界面:按提示点击Enter键 ,此时我们就会回到原来的界面。

从命令行管理文件(二)_第28张图片

但当我们按wq保存并退出后,我们再次进入时,还会有如上提示,

若我们想在看到如上提示,我们一个直接删除交换文件

也就是第一幅图显示的   .ps.swp   方法如下:

从命令行管理文件(二)_第29张图片

此时,当我们再次用Vim打开ps文件编辑时,就不会在弹出一开始的界面了

5.8. 示例 

        使用vim编写c程序,实现编译运行

第一步:安装编译器:gcc     

      [root@server ~]# yum install gcc -y

第二步:编写c程序

[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");
        }
}

第三步:编译c源文件

  [root@server ~]# gcc test.c

第四步:查看结果

 [root@server ~]# ./a.out

从命令行管理文件(二)_第30张图片

你可能感兴趣的:(服务器,运维,linux)