《linux shell 脚本编程入门》读后记录

说明:这本书是[韩] 金泰龙 著 金香 译,2014年10月第一版,人民邮电出版社。

这本书仅仅记录了一些命令的用法,本文仅仅记录我个人不懂的命令和内容,请知悉。

第一张 linux shell 和基本命令

[root@localhost ~]# du -h * | sort -nr > $HOME/script.txt

[root@localhost ~]# ls

anacoda-ks.cfg install.log install.log script.txt scsrun.log

[root@localhost ~]#cat script.txt

40K install.log

12K install.log.syslog

8.0K scsrun.log

8.0K anaconda-ks.cfg

0 script.txt

[root@localhost ~]#

sort命令的-n(--numeric-sort) 选项根据数值进行升序排列,-r选项具有逆向排序功能(--reserve),用于降序排列。因为同时使用了以上2个选项,所以得出以数值为准的降序运行结果。

表1-2 /dev 目录设备

设备名用途
/dev/tty正在运行程序的终端窗口或控制台
/dev/dsp 在声卡上执行AU声音文件的界面
/dev/fd0第一个软驱
/dev/had1IDE硬盘的第一个分区
/dev/sda1SCSI、S-ATA硬盘的第一个分区

 
1.shell脚本构成要素

  • if~else和for、while等shell循环(loop)指令
  • grep、awk、cut等文本处理实用工具
  • w、who、free等二进制可执行程序
2.shell脚本使用目的
  • 接收用户或文件传来的指令并在屏幕上显示数据
  • 可自动重复执行相同操作
  • 节约时间
  • 创建自己的powerTool和power实用工具
  • 管理员工作个性化(Customizing)
  • 减少设置服务环境和添加用户等操作中产生的错误(Error)
  • shell脚本实际用途如下
Linux系统监控
数据备份和创建快照(snapshot)
针对Oracle、Mysql数据库备份的转储(dump)工作
接收系统警告提示邮件
搜索耗费系统资源的进程
查询闲置内存和用量
查询已登录的所有用户和当前操作内容
查询网络服务是否正常。例如,Web服务器操作有误就给管理员发送邮件或短信
查询所有登录失败信息。例如,从相同IP地址反复登录时,防火墙就自动阻止IP连接。
根据安全策略管理用户
BIND(DNS服务器)服务器环境下添加zone项
如果需要高级编程操作,就使用gcc(c/c++)或Python语言代替shell脚本
3.禁止使用shell脚本(必须使用c/c++/Python等编程语言)
  • 资源占用较大的操作,特别是对速度要求高的操作(排序、散列等)
  • 高级算数运算操作,特别是任意精度运算(arbitrary precision)或需要使用复数的情况(请使用C++)
  • 平台间需要可移植性(请使用C语言)
  • 需要结构化编程的复杂的应用程序(需要检查变量类型或函数原型(prototype)时)
  • 确实非常重要或能决定公司未来的应用程序
  • 为高度保证安全及系统完整性,需要防止外部入侵或破解、破坏等时
  • 具有紧密关系的众多组件组成的项目
  • 需要运算大量文件时(Bash Shell 允许访问受限的串联文件,特别是允许访问不方便的、不充分的行单位)
  • 需要多维数组时
  • 需要链表或树等数据结构时
  • 需要制作并修改图形图像或GUI时
  • 需要直接访问系统硬盘时
  • 需要端口或套接字I/O时
  • 必须使用利用已写代码的目录或界面时
  • 必须开发独一无二、不公开源代码的应用程序时(shell脚本的源代码是公开的)
1.3.6. 使用多重指令(;、&&、||)
在一行中想要连续执行多个命令时,使用分隔符(;)标识一个命令的结束。记住,即使第一个命令执行失败,也会依旧执行第二个命令。
如果在指令之间输入&&,那就只能在第一个命令正常执行的情况下才执行第二个命令。也就是说,第一个命令执行失败时无法执行下一个命令。
使用“||”标识当第一个命令执行失败时,才执行后一个命令。
1.3.7 临时命令( history、!)
使用感叹号(!)重新执行最近执行的命令。在“!”后面输入需要查询命令的首字符或字符串,技能搜寻出符合该字符(串)的最近执行的命令。
1.5.2 标准输入
大部分linux指令都通过标准输入(standard input)执行输入工作。
标准输入是指通过键盘输入数据。也可以不适用键盘,而通过文件输入,此时需要使用“<”字符(小于号或左尖括号)。它的文件描述符的数值是0
格式sort  < 【要输入的文件名】
样例 [root@localhost  ~]#sort < ls.txt
 [root@localhost  ~]#sort < ls.txt >sorted_ls.txt
1.8.3 watch
使用watch命令在指定的时间单位内重新执行指定命令,并全屏显示结果值。按ctrl+c快捷键退出watch页面。
执行以下命令,每5秒显示1次/var/log/messages 文件的内容
 [root@localhost  ~]#wath -n 5 tail /varlog/messages
执行以下命令,每60秒查看一次邮件
 [root@localhost  ~]#watch -n 60 from
执行以下命令,监控目录内修改的文件
 [root@localhost  ~]#watch -d ls -l

本文参考:《《linux shell 脚本编程入门》》
文章生成时间:2017年2月3日

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值