1,$ who命令可以查看当前系统谁在登录

2,$ who | wc -l      该命令是计算用户个数,不返回谁在登陆了,只返回几个用户在登录

3,| 是管道符号,可以在两程序间建立管道(pipeline),上面的命令是who的输出,成了wc命令的输入,wc所列出的结果就是已登录用户的个数

4,如何将上面管道转变成一个独立的命令。方法是把这条命令输入一个一般的文件中,然后使用chmod为该文件设置执行的权限,如下所示:

$ cat > nusers    建立文件,使用cat复制终端的输入

who | wc -l       程序的内容

按Ctrl+D可以退出输入命令状态,也就是表示end of file

$ chmod +x nusers    让文件有执行的权限

$ ./nusers       执行测试,你会发现结果和直接执行 who | wc l一样。 然后你也可以查看文件nusers的内容

5,自给自足的脚本:位于第一行的#!

当shell执行一个程序时,会要求UNIX内核启动一个新的进程(process),以便在该进程里执行所指定的程序。内核知道如何为编译型程序做这件事。但是我们写的nuers这个shell脚本是解释型程序。当shell要求内核执行它时,内核无法做,并回应”not executable format file"错误信息。shell收到此错误信息时,就会说“啊,这不是编译型程序,那么一定是shell脚本”,接着会启动一个新的/bin/sh(标准shell)副本来执行该程序。

当系统只有一个shell时,退回到/bin/sh很方便,但现在UNIX系统通常有好几个shell,所以需要脚本文件中第一行的开头处使用#!这两个字符。 当一个文件中开头的两个字符是#!时,内核会扫描该行其余的部分,查看是否存在可用来执行程序的解释器的完整路径。shell脚本通常一开始都是 #!  /bin/sh

6,shell世界里,变量值可以是(而且通常是)空值,也就是不含任何字符。空值就是null

7,shell变量名称的开头是一个字母或下划线符号,后面接任意长度的字母,数字或下划线符号。变量长度无限制

$ my_var=this_is_a_long_string_that_does_not_mean_much              分配变量值

$ echo $my_var                                                                                       打印变量值

Shell脚本学习指南相关推荐

  1. Shell脚本学习指南(三)——文本处理工具

    文章目录 排序文本 行的排序 以字段的排序 文本块排序 sort的效率 sort的稳定性 sort小结 删除重复 重新格式化段落 计算行数.字数以及字符数 打印 打印技术的演化 其他打印软件 提取开头 ...

  2. 《Shell脚本学习指南》读书笔记

    P30-31 软件工具的原则 1.一次做好一件事 2.处理文本行,不要处理二进制数据 3.使用正则表达式 4.默认使用标准输入/输出 5.避免喋喋不休 6.输出格式必须与可接受的输入格式一致 7.让工 ...

  3. Shell脚本学习指南(七)——产生脚本

    文章目录 前言 路径查找 软件构建自动化 前言 本篇,我们将进一步处理更复杂的工作.我们认为这里举出的例子都是一般用得到的工具,它们每一个都截然不同,且在大多数UNIX工具集里也没有. 在篇中的程序, ...

  4. linux shell脚本学习指南,shell脚本学习指南[二](Arnold Robbins Nelson H.F. Beebe著)

    该进入第四章了,刚才看到一个帖子标题:我空有一身泡妞的好本领,但可惜自己是个妞.汗-这个...音乐无国界嘛,这个不应该也没性别界么? 第四章文本处理工具 书中先说明了以下排序的规则,数值的就不用说了, ...

  5. Shell脚本学习指南 - 第二章入门篇

    shell脚本的第一行#! #! /bin/awk -f 内核会扫描文件开头的#!后面内容,跳过所有空白符号,寻求可以用来执行程序的解释器的full path和option(option后面的空格会识 ...

  6. Shell脚本学习指南-查找与替换篇

    一.查找与替换 编写 Shell脚本时经常用到的两个基本操作: 1.文本查找 (searching) - 寻找含有特定文本的行 2.文本替换(substitution)- 更换找到的文本 可以使用固定 ...

  7. Shell脚本学习指南(六)——输入/输出、文件与命令执行

    文章目录 前言 标准输入.标准输出与标准错误输出 使用read读取行 关于重定向 额外的重定向运算符 文件描述符处理 printf的完整介绍 波浪号展开与通配符 波浪号展开 使用通配符 命令替换 为h ...

  8. Shell脚本学习指南(二)——查找与替换

    文章目录 前言 查找文本 简单的grep 正则表达式 什么是正则表达式 POSIX方括号表达式 基本正则表达式 匹配单个字符 后向引用 单个表达式匹配多字符 文本匹配锚点 BRE运算符优先级 匹配单个 ...

  9. Shell脚本学习指南(五)——变量、判断、重复动作

    文章目录 前言 变量与算术 变量赋值与环境 参数展开 展开运算符 位置参数 特殊变量 算术展开 退出状态 退出状态值 if-else-else-fi语句 逻辑的NOT.AND与OR test命令 ca ...

  10. 《Shell脚本学习指南》第一章 背景知识

    1.1 Unix简史 Unix第一版诞生于1970年,也就是贝尔实验室退出Multics项目不久. 在Unix广受欢迎的功能中,有许多是来自Multics操作系统. 其中最著名的有:将设备视为文件,以 ...

最新文章

  1. Opera浏览器无法观看土豆 优酷 新浪视频的解决办法!
  2. jQuery插件—获取URL参数
  3. 移动端为何不使用click而模拟tap事件及解决方案
  4. clickhouse 新增列_ClickHouse入门记录
  5. append 换行_代码风格:答应我,让括号换行吧!!
  6. 本地方法(JNI)——从java 程序中调用C函数
  7. python内核死亡的原因_Python的内核由于DLL而死亡
  8. python爬虫学习之页面登陆
  9. HTML 基础语言
  10. 网易丁磊:创造中国特色文化精品,助力实现中国文化大时代
  11. Beetl学习总结(1)——新一代java模板引擎典范 Beetl入门
  12. html5 canvas 获取当前坐标,html5 canvas fillRect坐标和大小的问题解决方法
  13. 浙江省二级计算机试题,2015浙江省计算机等级考试试题 二级ACCESS考试题库
  14. cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client libr....
  15. java maven是做什么的_maven是干什么用的
  16. 为什么我的计算机不能更新系统,为什么我的电脑重新安装系统建设银行网银不能......
  17. 企业如何做好员工关怀,减少人才流失
  18. ora-12505错误
  19. git学习——上传项目代码到github
  20. 特色英文短语[转帖]

热门文章

  1. 明华RD读卡器校验密码问题
  2. 2019最新麦子学院web前端开发工程师(全套)
  3. 读JavaScript高级程序设计感受
  4. CS231n 课程笔记翻译
  5. apkg格式怎么打开_天正软件如何导成CAD识别格式
  6. 计算机教室配套,中小学标准音乐教室建设及设备配套方案
  7. 2020年三非上岸北邮计算机院考研经验贴(励志)
  8. SoapUI接口测试-基本操作
  9. Zuul 上传大文件服务报错的问题
  10. 区块链零知识证明:Zcash 基础知识普及帖,Zcash 技术分析