涉及到的shell,语法及参数一切以bash为标准!
什么是shell?
一家之言,shell就是一堆命令的集合,所以能顺利写出Shell的基础是,对linux下各个命令要十分熟悉。包括命令的参数,shell只是一个工具,或者可以理解为一个自动执行的checklist,把你要执行的命令逐条放到这个list中,这就是一个最简单的shell脚本!
比如:
我要查看当前服务器的主机名,内核,cpu信息,硬盘信息,然后把这些信息写到一个文件中,并打印出来。
#!/bin/bash
hostname >> ./info.txt
uname -r >> ./info.txt
df -h >> ./info.txt
lscpu >>./info.txt
cat ./info.txt
脚本命名为info.sh
上面就是最简单的一个脚本,就是几条linux命令的堆砌。在此基础上,再增加判断、循环、函数、输入输出等部分,可得到一个功能更完善的脚本!
上面脚本执行后的输出:
localhost.localdomain
2.6.32-642.el6.x86_64
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
18G 1.2G 16G 8% /
tmpfs 491M 0 491M 0% /dev/shm
/dev/sda1 477M 28M 425M 7% /boot
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 1
On-line CPU(s) list: 0
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 78
Model name: Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
Stepping: 3
CPU MHz: 2400.129
BogoMIPS: 4800.25
Hypervisor vendor: VMware
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 3072K
NUMA node0 CPU(s): 0
我要提取的信息都有了,但是比较乱,不易读。在后面以这个脚本为基础增加一些功能,在这个过程中逐步介绍bash进一步的语法和功能。