今天小编要跟大家分享的文章是关于Linux系统中shell各命令的区别有什么?喜欢Linux系统并对此感兴趣的小伙伴们快来一起看一看吧~希望对你有所帮助。

1、xargs作用:

(1)将前一个命令的标准输出传递给下一个命令,作为它的参数,xargs的默认命令是echo,空格是默认定界符

(2)将多行输入转换为单行

2、使用模式:

front command | xargs -option later command

front command: 前一个命令

-option: xargs的选项

later command: 后一个命令

一般与管道“|”结合使用

3、xargs常用选项

-n: 指定一次处理的参数个数

-d: 自定义参数界定符

-p: 询问是否运行 later command 参数

-t : 表示先打印命令,然后再执行

-i : 逐项处理

…更多参数查看man xargs

4、xargs与管道|的区别

管道“|” 用来将前一个命令的标准输出传递到下一个命令的标准输入。

xargs 将前一个命令的标准输出传递给下一个命令,作为它的参数。

可见,标准输入与命令参数是不同的。个人理解,命令参数就是直接跟在命令后面的,标准输入可以是键盘,文件等。

所以,管道符 |

所传递给程序的不是简单地在程序名后面输入的参数,它们会被程序内部的读取功能如scanf和gets等接收,而xargs则是将内容作为普通的参数传递给程序,相当于直接跟在命令后面。况且,有些命令是不接受标准输入的,比如kill,rm等命令。

总结:管道符后不加xargs相当于先将xargs后面的命令回车执行一下再从键盘里输入管道符前面命令执行的结果内容

加上xargs 相当于执行命令(xargs后面的命令)后,直接从键盘输入管道符前面命令执行的结果内容再回车,即管道前面的结果直接跟在xargs

后面的命令后面

再总结一下,就是回车的先后顺序不太一样。

5、xargs与-exec的区别

-exec:{}表示命令的参数即为所找到的文件,以;表示comman命令的结束。\是转义符,

因为分号在命令中还有它用途,所以就用一个\来限定表示这是一个分号而不是表示其它意思。

-ok: 和 -exec 的作用相同,格式也一样,只不过以一种更为安全的模式来执行该参数

所给出的shell给出的这个命令之前,都会给出提示,让用户来确定是否执行。

xargs将参数一次传给echo,即执行:echo begin ./xargs.txt ./args.txt

find . -name '*.txt' -type f | xargs echo begin

exec一次传递一个参数,即执行:echo begin ./xargs.txt;echo begin ./args.txt

find . -name '*.txt' -type f -exec echo begin {} \;

xargs 要结合管道来完成

格式:find [option] express |xargs command

很明显,exec是对每个找到的文件执行一次命令,除非这单个的文件名超过了几k,否则不会出现命令行超长出报错的问题。

而xargs是把所有找到的文件名一股脑的转给命令。当文件很多时,这些文件名组合成的命令行参数很容易超长,导致命令出错。

另外, find | xargs

这种组合在处理有空格字符的文件名时也会出错,因为这时执行的命令已经不知道哪些是分割符、哪些是文件名中的空格!而用exec则不会有这个问题。

总结

相比之下,也不难看出各自的缺点

1、exec 每处理一个文件或者目录,它都需要启动一次命令,效率不好;

2、exec 格式麻烦,必须用 {} 做文件的代位符,必须用 \; 作为命令的结束符,书写不便。

3、xargs 不能操作文件名有空格的文件;

4、exec参数是一个一个传递的,传递一个参数执行一次命令;xargs一次将参数传给命令,可以使用-n控制参数个数。

5、exec文件名有空格等特殊字符也能处理;xargs不能处理特殊文件名,如果想处理特殊文件名需要特殊处理

以上就是小编今天为大家分享的关于Linux系统中shell各命令的区别有什么?希望本篇文章能够对Linux系统感兴趣的小伙伴们有所帮助。想要了解更多Linux相关知识记得关注达内Linux培训官网。最后祝愿小伙伴们工作顺利哦~

*声明:内容与图片均来源于网络(部分内容有修改),版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

linux系统下的shell是什么,Linux系统中shell各命令的区别有什么?相关推荐

  1. 远程桌面使用linux,在Windows 系统下使用远程桌面连接Linux 系统主机的方法

    在使用此方法前请判断需要连接的Linux 系统主机拥有公网IP地址或在同一局域网内 本实例采用Raspberry(基于Debian)和Putty 1.使用SSH连接LInux 主机: 1.1启动Lin ...

  2. C#net6实现Linux系统下修改IP地址、修改系统时间、获取内存信息、获取磁盘信息、重启系统

    C#net6实现Linux系统下修改IP地址.修改系统时间.获取内存信息.获取磁盘信息.重启系统 背景 项目背景 实现思路 代码实现 背景 随着微软.net core的出现,C#程序实现跨平台不在困难 ...

  3. 如何查看linux系统下的各种日志文件 linux 系统日志的分析大全

    如何查看linux系统下的各种日志文件 linux 系统日志的分析大全 日志分类: 1. 连接时间的日志 连接时间日志一般由/var/log/wtmp和/var/run/utmp这两个文件记录,不过这 ...

  4. Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行——怎么将Unix/Mac系统下的文件转换到Windows系统下

    先交代一下遇到的问题: 本人用的是Windows系统.在学习Triangle Mesh时,想将bunny.ply等经典的PLY文件导入程序中. 但是,文件被读入程序后,所有的内容变成了一行.从而,现成 ...

  5. Macbook windows 10系统下录屏软件无法录制系统声音的问题

    Macbook Windows 10系统下录屏软件无法录制系统声音的问题 问题原因 Virtual Audio Cable 下载与安装 以Obs-Studio为例进行测试 录屏完成 参考教程链接 问题 ...

  6. android系统自动休眠代码流程,一种基于Android系统下的可控休眠方法及系统与流程...

    本发明涉及一种手机应用,尤其涉及一种基于android系统下的可控休眠方法及系统. 背景技术: android设备的休眠指的是当长时间不用手机时手机会自动进入一个省电模式,调低或者关闭一部分电压的输出 ...

  7. 戴尔Vostro 3670 win10系统下安装Ubuntu18.04.3双系统

    戴尔Vostro 3670 win10系统下安装Ubuntu18.04.3双系统 参考博文1:https://blog.csdn.net/ly_222222/article/details/83591 ...

  8. linux操作系统下建用户,如何用Linux操作系统批量建立用户的shell

    如何用Linux操作系统批量建立用户的shell 最近,笔者在校园网应用平台建设中采用了Linux操作系统,为校园网用户提供DNS.Apache.POP3.SMTP.FTP等服务.由于我校学生用户数在 ...

  9. linux系统下的oracle数据库,在Linux系统下安装Oracle数据库

    在Linux系统下安装Oracle数据库:1.约定:linux系统为Linux.5.4-server-x86_64,数据库为linux.x64_11gR1_database_1013 linux 在L ...

  10. awstats linux日志分析,Linux环境下安装部署AWStats日志分析系统实例

    AWStats是使用Perl语言开发的一款开放性日志分析系统,可分析Apache网站服务器的访问日志,还可以用来分析Samba.Vsftpd.IIS等日志信息. 此文章主要讲解如何在linux系统下安 ...

最新文章

  1. GPRS流量计算方法(TCP/IP)
  2. phoneGap+jquery mobile项目经验
  3. golang go-restful RESTful框架 简介
  4. 【Java 泛型】使用上下边界通配符解决泛型擦除问题
  5. 解决WebStrom、PhpStorm等JetBrains软件最新版的中文打字法问题
  6. python多线程编程: 条件变量同步
  7. javaweb基础知识点记录2
  8. ios 发送请求时按home_iPhone 是否能够升级至指定的 iOS 系统版本?
  9. iis ajax访问html,为什么Ajax脚本不在IIS 7.5 Win 2008 R2服务器上运行?
  10. Silverlight Quick Starts翻译(二):第一章 创建一个Silverlight工程
  11. SQL Server 环境搭建
  12. 《ROS2机器人建模URDF》8.2RVIZ2可视化移动机器人模型
  13. 独上高楼望尽天涯路;为伊得人憔悴、衣带渐宽终不悔;几处早莺争暖树,乱花渐欲迷人眼;梅先菊后何须较、好似人生各有时;
  14. Unity网格编程篇(三) 温度图、热力图
  15. 高端化自欺欺人,国产手机又一块遮羞布被扯下,事实是被苹果碾压
  16. ButterKnife onclick点击事件没反应
  17. java IO流之一 IO流介绍
  18. 热用图片怎么表示简笔画,网络简笔画图片大全
  19. 淘宝(SpringBoot自动装配原理)
  20. GOT表和PLT表知识详解

热门文章

  1. 基于Hadoop豆瓣电影数据分析(综合实验)
  2. ffmpeg源码精读1,音视频处理概述
  3. Unity中使用QQ邮箱发送验证码
  4. 牛顿(Newton)方法
  5. Kaggle比赛整理
  6. 解决中文名单按拼音排序的问题
  7. 数据库中文字段按拼音排序
  8. HTML播放华为云视频流,华为云点播服务视频管理功能强大,上云就是省心
  9. HMAC-MD5签名的Java实现
  10. Linux用命令修改dpi,linux下高分辨率屏幕设置