本博客是针对《实战Linux Shell编程与服务器管理》卧龙小三出的算是读书笔记吧,但是其中牵扯到其它内容,所以也有很多参考其它资料。
本人实践系统ubuntu12.4,bash是自带的4.2.25(1)-release
先来点概念(基于维基):Unix shell也叫做命令行界面,它是Unix操作系统下传统的用户和计算机的交互界面。用户直接输入命令来执行各种各样的任务。当然微软的Windows操作系统也提供了这样的功能,它们是Windows 95/98下的command.com、和基于Windows NT的各种系统下的cmd.exe。
普通意义上的shell就是可以接受用户输入命令的程序。它之所以被称作shell是因为它隐藏了操作系统低层的细节。同样的Unix下的图形用户界面GNOME和KDE,有时也被叫做“虚拟shell”或“图形shell”。
Unix操作系统下的shell既是用户交互的界面,也是控制系统的脚本语言。当然在这点也有别于Windows下的命令行,虽然也提供了很简单的控制语句。在Windows操作系统下,可能有些用户从来都不会直接的使用shell,然而在Unix系列操作系统下,shell仍然是控制系统启动、X Window启动和很多其他实用工具的脚本解释程序。
我觉得这张图,可以说明一切了,我现在就只是学shell。打开终端Ctrl+Alt+T
运行我们第一个例子查看版本号:
再来个简单的程序hello.sh
#! /bin/bash
#这是我们的第一个程序hello.sh
echo '哈啰!Bash Shell !'
保存为hello.sh。执行之前,要先予以设定执行权限:
chmod +x hello.sh
Terminal在hello.sh目录下 执行如下命令
./hello.sh
第一个有用的Bash Shell
hello.sh 仅是显示一句信息,没啥实际功用,这里先来一个有用一点的
clearlog.sh
1 #! /bin/bash
2
3 # 这是我们的第一个有用的Bash shell
4
5 cp /dev/null /home/hill/Desktop/documents/shell/linux\ shell/Test.log
第5行,利用特殊文件 /dev/null(只写文件),清空我自己建的Test.log,这里用绝对路径,这样平时用户和root用户都可以执行,其实其它扩展名也可以的(文件大小变成0,但文件仍然存在)。
chmod +x cleanlog.sh
sudo crontab -u root -e
选择 "/usr/bin/vim.gnome" 就是vim(万一选错了, 输入sudo select-editor 进行重选),接着在vim中填入
0 9 * * * /home/hill/Desktop/documents/shell/linux\ /shell/clearlog.sh
这么一来,每日早上9点就会执行clearlog.sh,自动清理Test.log文件,你可以在9点之前,加点东西,看看现象的。
怎么样,还算简单吧。
但是有点不知道为什么吧,比如chmod 命令是什么(⊙o⊙)?,#是什么?#!是什么?我会在下面一一解释的。
要了解crontab命令
可参考
http://blog.youkuaiyun.com/tianlesoftware/article/details/5315039
输入命令行 man crontab or info crontan