&& 和 &

& 表示任务后台执行,与nohup命令功能差不多。

# 运行jar包,并且置于后台执行,执行的日志重定向到当前默认的log.txt文件中
[root@localhost local]$ java -jar test.jar > log.txt &

&& 表示前一条命令执行成功时,才执行后一条命令。

# 执行ls -l成功后,执行cd ..
[root@localhost tmp]$ ls -l && cd ..
总用量 4
-rw-r–r–. 1 root root 2252 1月 4 22:25 log.txt
-rw——-. 1 root root 0 1月 3 23:23 yum.log
[root@localhost /]$

| 和 ||

| 表示管道,上一条命令的输出,作为下一条命令参数(输入)。

# 查询全部进程后输出结果在进行过滤跟 进行中包含aux的进程。
[root@localhost ~]$ ps -aux | grep aux
Warning: bad syntax, perhaps a bogus ‘-‘? See /usr/share/doc/procps-3.2.8/FAQ
root 53 0.0 0.0 0 0 ? S 16:33 0:00 [ata_aux]
root 2379 4.0 0.1 110224 1172 pts/2 R+ 22:55 0:00 ps -aux
root 2380 0.0 0.0 103316 868 pts/2 D+ 22:55 0:00 grep aux

|| 表示上一条命令执行失败后,才执行下一条命令。

[root@localhost tmp]$ als -l || cd ..
-bash: als: command not found
[root@localhost /]$

> 和 >>

表示stdout标准输出信息重定向输出,覆盖写。

[root@localhost ~]$ cat test.txt
Hello
[root@localhost ~]$ echo 'World' > test.txt
[root@localhost ~]$ cat test.txt
World

表示内容追加写。

[root@localhost ~]$ cat test.txt
Hello
[root@localhost ~]$ echo 'World' >> test.txt
[root@localhost ~]$ cat test.txt
HelloWorld

&> 、2>&1 和 2>1

&> 表示stdout标准输出和stderr错误输出信息,重定向输出,覆盖写。

[root@localhost ~]$ cat test.txt
World
[root@localhost ~]$ lll
-bash: lll: command not found
[root@localhost ~]$ lll > test.txt
[root@localhost ~]$ cat test.txt
# 由于这个是错误信息,所以不能使用标准输出>将信息重定向到test文件中,但覆盖写为空
# 所以错误信息直接在控制台打印出来了
[root@localhost ~]$ lll &> test.txt
[root@localhost ~]$ cat test.txt
-bash: lll: command not found
# 使用&>重定向错误信息没有输出到控制台了,表示错误信息正确重定向到了test文件,也同样是覆盖写

2>&1 表示把标准错误的输出重定向到标准输出1,&指示不要把1当做普通文件,而是fd=1即标准输出处理。

2>1 表示把标准错误的输出重定向到1,但这个1不是标准输出,而是一个名为1的文件。

linux重定向的设备代码

空设备文件/dev/null

  • 标准输入(stdin) 代码为0,实际映射关系:/dev/stdin -> /proc/self/fd/0
  • 标准输出(stdout)代码为1,实际映射关系:/dev/stdout -> /proc/self/fd/1
  • 标准错误输出(stderr)代码为2,实际映射关系:/dev/stderr ->/pro/self/fd/2

command>a 2>1 、command>a 2>a 与 command>a 2>&1的区别

1. command>a 2>&1 等价于 command 1>a 2>&1
意思为执行command产生的标准输入重定向到文件a中,标准错误也重定向到文件a中。 2. command>a 2>a 不等价于 command 1>a 2>&1,其区别如下:
i. command>a 2>a打开文件两次,而command 1>a 2>&1只打开文件一次;
ii. command>a 2>a由于打开文件两次,导致stdout被stderr覆盖;
iii. 从IO效率上来讲,command 1>a 2>&1比command 1>a 2>a的效率更高。 3. command>a 2>1 等价于 command 1>a 2>1
意思为执行command产生的标准输入重定向到文件a中,标准错误重定向到文件1中。

来源:https://blog.csdn.net/bocai8058/article/details/82932397

Linux中&&、&、|、||等特殊符号的更多相关文章

  1. Linux中删除特殊符号文件名文件

    Linux 系统下的文件名长度最多可到256个字符.通常情况下,文件名的字符包括:字母.数字.“.”(点).“_”(下划线)和“-”(连字符). Linux 允许在文件名中使用除上述符号之外的其它符号 ...

  2. linux中的特殊符号及其含义梳理

    1. 重定向符号及含义 注意:箭头流向即是数据的流向. 数字0:标准输入(standard input,简写stdin),数据从右往左方向流动 数字1:标准正确输出(standard output,简 ...

  3. Linux中的常用符号

    >, 1>     输出重定向符stdout,代码为1,重定向内容到文件,清除已有的内容,然后加入新内容,如果文件不存在还会创建文件 >>, 1>>   追加输出重 ...

  4. Linux Shell 编程中的特殊符号

    一.井号 # 1.在脚本文件中对一行进行注释. 2.在引号和\符号后不是注释,只是#号本身: echo "12 # hehe" echo '12 # hehe' echo 12 \ ...

  5. linux shell中的特殊符号

    该内容,均来自此网址(http://www.92csz.com/study/linux/12.htm).在下只是把那些命令的截图给去了. 你在学习linux的过程中,也许你已经接触过某个特殊符号,例如 ...

  6. Linux Shell中的特殊符号和含义简明总结(包含了绝大部份)

    case语句适用于需要进行多重分支的应用情况. case分支语句的格式如下: case $变量名 in 模式1) 命令序列1 ;; 模式2) 命令序列2        ;; *) 默认执行的命令序列  ...

  7. (转)linux 中特殊符号用法详解

    linux 中特殊符号用法详解 原文:https://www.cnblogs.com/lidabo/p/4323979.html # 井号 (comments)#管理员  $普通用户 脚本中 #!/b ...

  8. linux中c表示字符设备文件符号

    linux中c表示字符设备文件,b表示块设备文件,l表示符号链接文件,r表示可读权限,w表示可写权限.linux文件属性解读:文件类型:-:普通文件 (f)d:目录文件b:块设备文件 (block)c ...

  9. Linux中find常见用法示例

    ·find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \; find命令的参数: pathname: find命 ...

  10. Linux中检索文件

    1 , Use locate command It is a fast way to find the files location, but if a file just created ,it w ...

随机推荐

  1. go强大的垃圾回收机制。

    一.C语言中返回函数中局部变量值和指针(1) 在C语言中,一个函数可以直接返回函数中定义的局部变量,其实在函数返回后,局部变量是被系统自动回收的,因为局部变量是分配在栈空间,那为什么还可以返回局部变量 ...

  2. 我有点想用JDK17了

    大家好呀,我是summo,JDK版本升级的非常快,现在已经到JDK20了.JDK版本虽多,但应用最广泛的还得是JDK8,正所谓"他发任他发,我用Java8". 其实我也不太想升级J ...

  3. python-判断两个序列的成员是否一样

    目的:判断两个序列的成员是否一样,如:list1 = [1, 2],list2 = [2, 1],则两个序列的成员是一样的. 实现:借助集合set()的性质实现. 代码如下: 1 if __name_ ...

  4. pandas rank()函数简介

    本文简单的说一下自己对pandas的rank()函数的简单讲解. 函数原型:rank(axis=0, method: str = 'average', numeric_only: Union[bool ...

  5. CF1753

    CF1753 成功因为虚拟机炸了,重新写一遍此文. 都是没有保存的错. A. Make Nonzero Sum 由于 Note that it is not required to minimize ...

  6. 关于朋友圈出现的小米新店广告骗局(非法获取个人消息)木马通过广东政务服务网(tyrz.gd.gov.cn)的url漏洞显示

    前两天在朋友圈突然看到有发 小米新店开业 送千台扫地机器人的 广告,出于天上不会掉馅饼到我身上的原则 我选择忽略了,但是没多久 看到他又晒了个物流订单,于是还是点开看了一下,发现微信打开的网站还蛮正规 ...

  7. EF INNER JOIN WHERE ORDER BY

    同时使用 join,where,order by. UpdaterDbContext db = new UpdaterDbContext(); // 按 t_server 表的 seq ASC 排序, ...

  8. 开源一款功能强大的 .NET 消息队列通讯模型框架 Maomi.MQ

    目录 文档说明 导读 快速开始 消息发布者 IMessagePublisher 连接池 消息过期 事务 发送方确认模式 独占模式 消费者 消费者模式 事件模式 分组 消费者模式 消费.重试和补偿 消费 ...

  9. Vulnhub Fall Walkthrough

    Recon 二层本地扫描,发现目标靶机. ┌──(kali㉿kali)-[~] └─$ sudo netdiscover -r 192.168.80.0/24 Currently scanning: ...

  10. python 方法调用另一个方法报错,捕获的异常只有message,优化为trackback捕获详细的报错信息

    A方法加了try...expect... B方法也加了try....expect... B方法调用了A方法,A方法查找元素,找不到报超时异常,实际B捕获到的异常,只有message\n,没有办法看出是 ...