Linux制作之10个工具让你的shell剧本更壮大仓酷云
如果你让他去用linux搭建一个web服务器,做一个linux网关,他就什么都不会了.他们把时间都浪费在了版本的转换上了.良多人误觉得shell剧本只能在命令行下利用。实在shell也能够挪用一些GUI组件,比方菜单,告诫框,进度条等等。你能够把持终极的输入,光标地位另有各类输入效果。上面我将先容一些工具,匡助你创立壮大的,互动的,用户友爱的Unix/Linuxshell剧本。我在FreeBSD和Linux下测试过这些工具,不外其他UNIX系列的操纵体系应当都撑持的。
1.notify-send命令
这个命令可让你经由过程关照历程发送一个桌面关照给用户。这能够用来向用户发送提醒,大概显现一些信息而不必打断用户事情。你必要安装以下软件包:
$sudoapt-getinstalllibnotify-bin上面这个例子展现了怎样从命令行向桌面发送一个复杂的动静:
notify-send"rsnapshotdone:)"输入:
<br>
上面是一个庞大一点的例子:
....alert=18000live=$(lynx--dumphttp://money.rediff.com/|grepBSELIVE|awk{print$5}|seds/,//g;s/.*//g)[$notify_counter-eq0]&&[$live-ge$alert]&&{notify-send-t5000-ulow-i"BSESensextouched18k";notify_counter=1;}...输入:
<br>
这里的参数注释以下:
[*]-t5000:指定超时的工夫,毫秒
[*]-ulow:设置是不是告急
[*]-igtk-dialog-info:关照图标,你能够指定图标-i/path/to/your-icon.png
2.tput命令
这个命令是用来设置终端特征的:
[*]挪动光标
[*]取得终端信息
[*]设置远景和背景致
[*]设置粗体形式
[*]设置反形式等等
举例:
#!/bin/bash#clearthescreentputclear#MovecursortoscreenlocationX,Y(topleftis0,0)tputcup315#SetaforegroundcolourusingANSIescapetputsetaf3echo"XYXCorpLTD."tputsgr0tputcup517#Setreversevideomodetputrevecho"MAIN-MENU"tputsgr0tputcup715echo"1.UserManagement"tputcup815echo"2.ServiceManagement"tputcup915echo"3.ProcessManagement"tputcup1015echo"4.Backup"#Setboldmodetputboldtputcup1215read-p"Enteryourchoice"choicetputcleartputsgr0tputrc输入:
<br>
3.setleds命令
这个命令可让你把持键盘灯,比方翻开数字键盘灯:
setleds-D+num封闭数字键盘灯:
setleds-D-num
[*]-caps:扫除年夜写灯
[*]+caps:翻开年夜写灯
[*]-scroll:扫除转动锁
[*]+scroll:翻开转动锁
4.zenity命令
这个命令能够显现GTK+的对话框,然后前往用户的输出。你能够用这个命令在剧本中显现信息,并请求用户输出信息。上面这段代码就是域名的whois查询:
#!/bin/bash#Getdomainname_zenity="/usr/bin/zenity"_out="/tmp/whois.output.$$"domain=$(${_zenity}--title"Enterdomain"--entry--text"Enterthedomainyouwouldliketoseewhoisinfo")if[$?-eq0]then#Displayaprogressdialogwhilesearchingwhoisdatabasewhois$domain|tee>(${_zenity}--width=200--height=100--title="whois"--progress--pulsate--text="Searchingdomaininfo..."--auto-kill--auto-close--percentage=10)>${_out}#Displaybackoutput${_zenity}--width=800--height=600--title"Whoisinfofor$domain"--text-info--filename="${_out}"else${_zenity}--error--text="Noinputprovided"fi输入:
<br>
5.kdialog命令
这个命令和zenity很想,只不外它是为KDE/QT使用筹办的。利用办法以下:
kdialog--dontagainmyscript:nofilemsg--msgbox"File:~/.backup/confignotfound."输入
<br>
你能够检察shellscriptionwithKDEDialogs来猎取更多信息
6.Dialog
这个命令能够在shell剧本中显现文本组件。它利用了curses和ncurses类库。示例代码:
>#!/bin/bashdialog--title"Deletefile"--backtitle"LinuxShellScriptTutorialExample"--yesno"Areyousureyouwanttopermanentlydelete"/tmp/foo.txt"?"760#Getexitstatus#0meansuserhitbutton.#1meansuserhitbutton.#255meansuserhitkey.response=$?case$responsein0)echo"Filedeleted.";;1)echo"Filenotdeleted.";;255)echo"keypressed.";;esac7.logger命令
这个命令可让你写进体系日记比方/var/log/messages:
logger"MySQLdatabasebackupfailed."tail-f/var/log/messageslogger-tmysqld-pdaemon.error"DatabaseServerfailed"tail-f/var/log/syslog输入:
Apr2000:11:45vivek-desktopkernel:CPU0:Temperature/speednormal
Apr2000:12:20vivek-desktopmysqld:DatabaseServerfailed
8.setterm命令
这个命令能够设置中止的属性。上面的例子是强迫屏幕全黑15分钟,而且60分钟后把显现器设为待机形态:
notify-send"rsnapshotdone:)"0上面这段命令能够在中止显现加下划线的笔墨:
notify-send"rsnapshotdone:)"1大概你能够封闭光标:
notify-send"rsnapshotdone:)"29.smbclient:向MS-Windows体系发送动静
smbclient能够和SMB/CIFS服务器通讯。它能够向MS-Windows体系的指定用户发送动静:
notify-send"rsnapshotdone:)"3大概
notify-send"rsnapshotdone:)"410.BashSocket编程
你能够在bash中开启一个socket链接,而且传输数据。Bash有两个特别的设备文件:
当你经过一段时间的学习后就应该扩充自己的知识,多学习linux命令,但是不要在初学阶段就系统的学习linux命令。 熟悉并掌握安装Linux,安装是学习的前提。目前较常见的安装方法有二种: 这种补充有助于他人在邮件列表/新闻组/论坛中搜索对你有过帮助的完整解决方案,这可能对他们也很有用。 上课传授的不仅仅是知识,更重要的是一些道理,包括一些做人的道理,讲课时也抓住重点,循序渐进,让同学理解很快;更可贵的是不以你过去的成绩看问题. 通过一条缓慢的调制解调器线路,它也能操纵几千公里以外的远程系统。 Linux的成功就在于用最少的资源最短的时间实现了所有功能,这也是符合人类进化的,相信以后节能问题会日益突出。 任何人都可以根据自己的喜好来定制适合自己的操作系统,Linux?是抢占式多任务多用户操作系统. 如果上面的措施没有解决问题,此时你就需要Linux社区的帮助了。 Linux的使用者一般都是专业人士,他们有着很好的电脑背景且愿意协助他人。 Linux简单,占内存少,特别是对于程序开发人员来说很方便,如果说windows的成功在于其方便用户的窗口管理界面。 永中office 2004增强版安装只需要默认安装即可使用并操作大多与win系统雷同,打印机的配置和管理,记录光盘等。 为了更好的学习这门课程,我不仅课上认真听讲,课下也努力学习,为此还在自己的电脑上安装了Ubuntu系统。 Linux简单,占内存少,特别是对于程序开发人员来说很方便,如果说windows的成功在于其方便用户的窗口管理界面。
页:
[1]