Linux系统使用超详细(五)~命令符号

目录

一、逻辑符号

1.1&&

1.2||

二、连接符号

2.1|

2.2>

2.3>>

2.4<

三、分隔符号

3.1 ;


在Linux中,逻辑符号和连接符号常用于构建命令行中的逻辑操作和管道操作。下面对这两种符号进行总结描述。

一、逻辑符号

1.1&&

逻辑与符号,用于在一个命令成功执行后执行另一个命令,如果前面的命令失败了,后面的命令不执行。例如,command1 && command2表示只有当command1成功执行后,才会执行command2

用法示例:

mkdir A1 && cd A1 

这个命令是会先创建一个名为A1的目录,然后如果创建成功,才会进入该目录。 

执行结果如下:

Linux系统使用超详细(五)~命令符号_第1张图片

观察图中结果:

在p4的目录下只有一个A2的文本文件,当执行命令后发现命令提示符已经切换到A1目录,证明目录A1已经创建成功,再次检查p4目录,结果为A1和A2。 

1.2||

逻辑或符号,用于在一个命令执行失败后执行另一个命令,如果前面的命令成功了,后面的命令不执行。例如,command1 || command2表示只有当command1执行失败后,才会执行command2

用法示例:

rmdir  B3 || cat > A3
  • 如果目录 B3 存在并且成功被删除,则不执行后续命令。
  • 如果目录 B3 不存在或无法删除,则将用户的输入保存到文件 A3 中。

因为目录 B3 不存在,所以rmdir 命令将会失败,执行 cat > A3 命令。

然后编辑A3文件内容,保存退出。

执行结果如下:

Linux系统使用超详细(五)~命令符号_第2张图片

观察图中结果:

p4的目录下没有B3空目录,因此执行命令失败进行提示;然后编辑A3文件内容:asdf保存退出,再次查看p4目录发现已经存在A3文件,查看A3文件内容和上面编辑一样。 

二、连接符号

2.1|

管道符号,用于将前一个命令的输出作为后一个命令的输入。例如,command1 | command2表示将command1的输出作为command2的输入进行处理。

或者换种理解:

| 是在当多个命令作用在同一个文件上时,可以使用,是先把第一个命令执行,然后在执行得到的结果上,再执行第二个命令。

只需要在第一个命令后加文件名;

该符号相当于oracle把子查询的结果集当成数据来源。

用法示例: 

ls -l|grep ".txt"
  • ls -l:列出当前目录下的文件和文件夹详细信息。
  • grep ".txt":在 ls -l 的输出中搜索包含 ".txt" 的行。

执行结果如下:

Linux系统使用超详细(五)~命令符号_第3张图片

  • 执行 ls -l 命令,列出当前目录下的文件和文件夹的详细信息。
  • 将 ls -l 的输出作为输入传递给 grep 命令。
  • 在 ls -l 的输出中,通过 grep 过滤出包含 "file.txt" 的行,并将其打印出来。

2.2>

重定向符号,用于将命令的输出重定向到文件中。例如,command > file表示将command的输出写入到文件file中,如果文件不存在则创建,如果文件已存在则覆盖原有内容。

用法示例: 

echo "hi,树先生" > c.txt
  • 执行 echo "hi,树先生" 命令,将字符串 "hi,树先生" 输出到标准输出(通常是终端)。
  • 将标准输出的内容通过重定向操作符 > 保存到文件 c.txt 中。

执行结果如下:

Linux系统使用超详细(五)~命令符号_第4张图片

文件 c.txt 已经存在,使用 > 操作符会覆盖文件中的内容。

如果c.txt不存在,运行该命令后,文件 c.txt 将被创建,并且其中的内容将包含字符串 "hi,树先生"。 例如重定向到d.txt中:

注意:

假如遇到下图这种情况:

通常是由于 Bash Shell 的历史扩展功能导致的。在 Bash 中,! 符号被用作历史命令扩展的起始符号。可以按照下面方法解决:

  1. 使用单引号:将命令包裹在单引号中可以禁用历史命令扩展功能。例如,使用 '!' 而不是 !
    echo 'Hello, World!' > d.txt
    

    如上面例子中的   hi,老板!

  2. 使用反斜杠转义:使用反斜杠 \! 进行转义,以防止其被识别为历史命令扩展。
    echo hi,\!树先生 > e.txt

    执行结果如下:

2.3>>

追加重定向符号,用于将命令的输出追加到文件中。例如,command >> file表示将command的输出追加到文件file的末尾,如果文件不存在则创建。

用法示例: 

2.2示例中讲到 假如文件 c.txt 已经存在,使用 > 操作符会覆盖文件中的内容。

如果只是想要追加内容而不是覆盖,请使用 >> 操作符。

echo '
Hello, World!
This is an example file.
It contains some text for demonstration. ' >> c.txt

执行结果如下:

Linux系统使用超详细(五)~命令符号_第5张图片

该命令将会追加内容到现有的 c.txt 文件末尾。 

2.4<

输入重定向符号,用于将文件的内容作为命令的输入。例如,command < file表示将文件file的内容作为command的输入进行处理。

三、分隔符号

3.1 ;

分号符号 --命令分隔符; 用于指定多个命令在同一行上依次执行,不考虑前一个命令的执行结果。即连接多个命令,命令之间互不影响;会把前后两个命令的结果一次都显示出来。

用法示例:

cat c ; cat d ; cat -n g

执行结果如下:

Linux系统使用超详细(五)~命令符号_第6张图片

进行连续的 cat 操作,并使用 -n 选项对最后一个文件进行行号编号。

每个 cat 命令之间使用分号 ; 进行分隔。这样,命令将按顺序执行,并在终端上连续显示各个文件的内容。 

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