首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
前言-常见的Linux系统分类
红帽系统认证介绍
第一章:安装虚拟机布署Linux系统
准备安装工具
安装配置VM虚拟机
安装Linux系统
重置root管理员密码
RPM(红帽软件包管理器)
Yum软件仓库
systemd初始化进程
第二章:新手必须掌握的Linux命令
强大而好用的shell
执行查看帮助命令
常用系统工作命令
系统状态检测命令
工作目录切换命令
文本文件编辑命令
文件目录管理命令
打包压缩与搜索命令
第三章:管道符、重定向与环境变量
输入输出重定向
管道命令符
命令行的通配符
常用的转义字符
重要的环境变量
第四章:Vim编辑器与Shell命令脚本
Vim文本编辑器
编写简单文档
编写Shell脚本
流程控制语句
计划任务服务程序
第五章:用户身份与文件权限
用户身份与能力
文件权限与归属
文件的特殊权限
文件的隐藏属性
文件访问控制列表
su命令与sudo服务
当前位置:
首页>>
技术小册>>
Linux应该怎么学(上)
小册名称:Linux应该怎么学(上)
细心的读者肯定还记得在2.6节学习tr命令时曾经见到过一个名为管道符的东西。同时按下键盘上的Shift+\键即可输入管道符,其执行格式为“命令A|命令B”。命令符的作用也可以用一句话来概括“把前一个命令原本要输出到屏幕的数据当作是后一个命令的标准输入”。在2.8节讲解grep文本搜索命令时,我们通过匹配关键词/sbin/nologin找出了所有被限制登录系统的用户。在学完本节内容后,完全可以把下面这两条命令合并为一条:找出被限制登录用户的命令是grep "/sbin/nologin" /etc/passwd; 统计文本行数的命令则是wc -l。 现在要做的就是把搜索命令的输出值传递给统计命令,即把原本要输出到屏幕的用户信息列表再交给wc命令作进一步的加工,因此只需要把管道符放到两条命令之间即可,具体如下。这简直是太方便了! [root@linuxprobe ~]# grep "/sbin/nologin" /etc/passwd | wc -l 33 这个管道符就像一个法宝,我们可以将它套用到其他不同的命令上,比如用翻页的形式查看/etc目录中的文件列表及属性信息(这些内容默认会一股脑儿地显示到屏幕上,根本看不清楚): [root@linuxprobe ~]# ls -l /etc/ | more total 1400 drwxr-xr-x. 3 root root 97 Jul 10 17:26 abrt -rw-r--r--. 1 root root 16 Jul 10 17:36 adjtime -rw-r--r--. 1 root root 1518 Jun 7 2013 aliases -rw-r--r--. 1 root root 12288 Jul 10 09:38 aliases.db drwxr-xr-x. 2 root root 49 Jul 10 17:26 alsa drwxr-xr-x. 2 root root 4096 Jul 10 17:31 alternatives 在修改用户密码时,通常都需要输入两次密码以进行确认,这在编写自动化脚本时将成为一个非常致命的缺陷。通过把管道符和passwd命令的--stdin参数相结合,我们可以用一条命令来完成密码重置操作: [root@linuxprobe ~]# echo "linuxprobe" | passwd --stdin root Changing password for user root. passwd: all authentication tokens updated successfully. 大家是不是觉得管道符命令有些相见恨晚?管道符的玩法还有很多,比如,在发送电子邮件时,默认采用交互式的方式来进行,我们完全可以利用一条结合了管道符的命令语句,把编辑好的内容与标题一起“打包”,最终用这一条命令实现邮件的发送。[root@linuxprobe ~]# su - linuxprobe Last login: Fri Jul 10 09:44:07 CST 2017 on :0 [linuxprobe@linuxprobe ~]$ mail Heirloom Mail version 12.5 7/5/10. Type ? for help. "/var/spool/mail/linuxprobe": 1 message 1 new >N 1 root Sun Aug 30 17:33 18/578 "Subject" 如果读者是一名Linux新手,可能会觉得上面的命令组合已经十分复杂了,但是有过运维经验的读者又会感觉如隔靴挠痒般不过瘾,他们希望能将这样方便的命令写得更高级一些,功能更强大一些。比如通过重定向技术能够一次性地把多行信息打包输入或输出,让日常工作更有效率。为了大家对我们这本书的捧场,刘遄老师当然要义不容辞地把技术拱手奉上。 下面这条自造的命令就结合使用了mail邮件命令与输入重定向的分界符,其目的是让用户一直输入内容,直到用户输入了其自定义的分界符时,才结束输入。 [root@linuxprobe ~]# mail -s "Readme" root@linuxprobe.com << over > I think linux is very practical > I hope to learn more > can you teach me ? > over [root@linuxprobe ~]# 当然,大家千万不要误以为管道命令符只能在一个命令组合中使用一次,我们完全可以这样使用:“命令A|命令B|命令C”。为了帮助读者进一步理解管道符的作用,刘遄老师在讲课时经常会把管道符描述成“任意门”。想必大家小时候都看过“哆啦A梦”动画片吧。哆啦A梦(也就是我们常称的机器猫)经常为了取悦大雄而从口袋中掏出一件件宝贝,其中好多次就用到了任意门这个道具。其实,管道符就好像是用于实现数据穿越的任意门,可以帮我们提高工作效率,完成之前不敢想象的复杂工作。 [root@linuxprobe ~]# echo "Content" | mail -s "Subject" linuxprobe
上一篇:
输入输出重定向
下一篇:
命令行的通配符
该分类下的相关小册推荐:
Vim编辑器入门到实战
CentOS入门指南
Linux应该怎么学(中)
Shell编程入门与实战
bash脚本编程实战
Linux应该怎么学(下)
LInux运维零基础入门到实战
Vim实用技巧必知必会