兰色精灵 发表于 2015-1-18 11:26:19

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命令。

只想知道 发表于 2015-1-20 09:31:19

熟悉并掌握安装Linux,安装是学习的前提。目前较常见的安装方法有二种:

因胸联盟 发表于 2015-1-24 12:02:28

这种补充有助于他人在邮件列表/新闻组/论坛中搜索对你有过帮助的完整解决方案,这可能对他们也很有用。

小女巫 发表于 2015-2-1 09:54:18

上课传授的不仅仅是知识,更重要的是一些道理,包括一些做人的道理,讲课时也抓住重点,循序渐进,让同学理解很快;更可贵的是不以你过去的成绩看问题.

简单生活 发表于 2015-2-7 02:22:32

通过一条缓慢的调制解调器线路,它也能操纵几千公里以外的远程系统。

蒙在股里 发表于 2015-2-17 18:41:10

Linux的成功就在于用最少的资源最短的时间实现了所有功能,这也是符合人类进化的,相信以后节能问题会日益突出。

金色的骷髅 发表于 2015-3-2 22:16:19

任何人都可以根据自己的喜好来定制适合自己的操作系统,Linux?是抢占式多任务多用户操作系统.

不帅 发表于 2015-3-4 04:22:43

如果上面的措施没有解决问题,此时你就需要Linux社区的帮助了。 Linux的使用者一般都是专业人士,他们有着很好的电脑背景且愿意协助他人。

山那边是海 发表于 2015-3-6 11:14:56

Linux简单,占内存少,特别是对于程序开发人员来说很方便,如果说windows的成功在于其方便用户的窗口管理界面。

仓酷云 发表于 2015-3-6 19:06:50

永中office 2004增强版安装只需要默认安装即可使用并操作大多与win系统雷同,打印机的配置和管理,记录光盘等。

若天明 发表于 2015-3-13 06:09:23

为了更好的学习这门课程,我不仅课上认真听讲,课下也努力学习,为此还在自己的电脑上安装了Ubuntu系统。

小妖女 发表于 2015-3-20 14:24:40

Linux简单,占内存少,特别是对于程序开发人员来说很方便,如果说windows的成功在于其方便用户的窗口管理界面。
页: [1]
查看完整版本: Linux制作之10个工具让你的shell剧本更壮大仓酷云