众所周知,在Linux使用 echo 并配合命令重定向是实现向文件中写入信息的快捷方式。本文介绍如何将 echo 命令与 sudo 命令配合使用,实现向那些只有系统管理员才有权限操作的文件中写入信息。

比如要向 test.asc 文件中随便写入点内容,可以:

$ echo "信息" > test.asc

# 或者

$ echo "信息" >> test.asc

下面,如果将 test.asc 权限设置为只有 root 用户才有权限进行写操作:

$ sudo chown root.root test.asc

然后,我们使用 sudo 并配合 echo 命令再次向修改权限之后的 test.asc 文件中写入信息:

$ sudo echo "又一行信息" >> test.asc

-bash: test.asc: Permission denied

这时,可以看到 bash 拒绝这么做,说是权限不够。这是因为重定向符号 “>” 和 ">>" 也是 bash 的命令。我们使用 sudo 只是让 echo 命令具有了 root 权限,但是没有让 “>” 和 ">>" 命令也具有 root 权限,所以 bash 会认为这两个命令都没有像 test.asc 文件写入信息的权限。

解决这一问题的途径有两种。第一种是利用 "sh -c" 命令,它可以让 bash 将一个字串作为完整的命令来执行,这样就可以将 sudo 的影响范围扩展到整条命令。具体用法如下:

$ sudo sh -c 'echo "又一行信息" >> test.asc'

另一种方法是利用管道和 tee 命令,该命令可以从标准输入中读入信息并将其写入标准输出或文件中,具体用法如下:

$ echo "第三条信息" | sudo tee -a test.asc

注意,tee 命令的 "-a" 选项的作用等同于 ">>" 命令,如果去除该选项,那么 tee 命令的作用就等同于 ">" 命令。

linux管道命令sudo,Linux命令echo 与 sudo配合使用相关推荐

  1. 如何查看linux管道的内容,linux 查看资料和管道命令

    cat.tail.head.tee.这些命令的语法基本上相同的:命令名 [选项] [文件],而且您可以在管道中使用这些命令.这些命令的功能都是根据特定的条件选择文件内容进行打印. cat 工具会将文件 ...

  2. linux 管道来删除,Linux入门基础(五):Linux管道,重定向,文本处理

    多命令协作:管道及重定向 在Linux中,大多数命令都很简单,每个命令往往只实现一个或几个很简单功能. 我们可以通过将不同功能的命令组合起来一起使用,达到完成某个复杂功能的目的 CLI下几乎所有的命令 ...

  3. Linux管道和重定向 ---多命令协作

    管道及重定向就是Linux多命令协作的基础机制 Linux的Shell对数据流进行以下分类定义: stdin     标准输入  编号为:0   默认:键盘 stdout   标准输出  编号为:1  ...

  4. linux 管道使用方法,Linux 管道命令

    cut 在一行中取出部分数据,以行为单位 cut -d '分隔符 ' -f fields $ pwd /home/users/chenzhaoqun $ pwd | cut -d '/' -f 1 $ ...

  5. linux 管道非阻塞,linux – 管道上的非阻塞读取

    可以在管道上进行非阻塞I / O吗? fcntl无法设置O_NONBLOCK. Linux编程接口的页面918包括一个表'从管道读取n个字节或FIFO(p)'的语义.此表列出了管道和FIFO的行为,其 ...

  6. linux管道阻塞代码,linux中的管道

    管道是一种最基本的IPC机制,由pipe函数创建:#include int pipe(int filedes[2]); 调用pipe函数就是在内核区开辟一块缓冲区(称为管道).filedes[0]指向 ...

  7. linux 界面自动输入密码,Linux中shell脚本如何自动输入密码

    shell脚本在处理自动循环或大的任务方面可节省大量的时间,通过创建一个处理任务的命令清单,使用变量.条件.算术和循环等方法快速创建脚本以完成相应工作,这比在命令行下一个个敲入命令要省时省力得多. 但 ...

  8. linux+echo+权限不够,解决linux echo命令以及linux echo命令提示权限不够的方法

    linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的, 因此有必要了解下echo的用法.下面通过本文给大家介绍linux echo命令以及linux ...

  9. linux下执行php命令echo不输出,linux echo命令以及linux echo命令提示权限不够的方法...

    linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的, 因此有必要了解下echo的用法.下面通过本文给大家介绍linux echo命令以及linux ...

最新文章

  1. 【跟着我们学Golang】之异常处理
  2. bzoj2961 共点圆 (CDQ分治, 凸包)
  3. adv7842自定义方式
  4. 分布式缓存技术memcached学习(一)——linux环境下编译memcahed
  5. javascript引用类型
  6. 【Android开发】用户界面设计-开发自定义的View
  7. 使用 Exceptionless 作为 Log Server 搭配 NLog 记录系统日志
  8. IDEA中提示JAVA字符串常量过长
  9. 【李宏毅2020 ML/DL】P35-42 Attack ML Models
  10. 服务器虚拟化的毕业设计,云桌面技术研究与应用毕业设计论文+开题报告+翻译+源码...
  11. mysql连接外部数据库名字错误_数据库连接出错! 可能出错原因:数据库位置或名称不对、数据库损坏!...
  12. zabbix安装 监控mysql
  13. 笨方法学Python3 习题 0
  14. ISIS协议与Quagga ISIS配置
  15. <EDEM 基础案例02>Rock Box
  16. 测试技术-兼容性测试
  17. APK的几种安装方式
  18. 资本为什么爱“吃面”?
  19. 小白也能看懂的手机配置攻略
  20. 双软企业税收优惠政策

热门文章

  1. ramos一键处理多合一_PrimoCache驱RAMOS一键制作工具四合一 V2.99版
  2. 基于NLP的COVID-19虚假新闻检测
  3. unity 3d实现各种粒子效果
  4. siki学院API补充的笔记
  5. 绿色爆炸技术:高功率脉冲爆破-------新一轮市场革命
  6. VSCode中Vue插件使用整理_Vue2开发插件
  7. 【得心应手_Typora】Typora安装教程
  8. Java Spring-AOP动态代理-JDK和CGlib实现
  9. springboot 怎么 回滚事务
  10. Graph-les-miserables 可视化关系图