|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如果你让他去用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/.[0-9]*//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[1-4]"choicetputcleartputsgr0tputrc
复制代码 输入:
<br>
3.setleds命令
这个命令可让你把持键盘灯,比方翻开数字键盘灯:
封闭数字键盘灯:
- -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#0meansuserhit[yes]button.#1meansuserhit[no]button.#255meansuserhit[Esc]key.response=$?case$responsein0)echo"Filedeleted.";;1)echo"Filenotdeleted.";;255)echo"[ESC]keypressed.";;esac
复制代码 7.logger命令
这个命令可让你写进体系日记比方/var/log/messages:
- logger"MySQLdatabasebackupfailed."tail-f/var/log/messageslogger-tmysqld-pdaemon.error"DatabaseServerfailed"tail-f/var/log/syslog
复制代码 输入:
Apr2000:11:45vivek-desktopkernel:[38600.515354]CPU0:Temperature/speednormal
Apr2000:12:20vivek-desktopmysqld:DatabaseServerfailed
8.setterm命令
这个命令能够设置中止的属性。上面的例子是强迫屏幕全黑15分钟,而且60分钟后把显现器设为待机形态:
- notify-send"rsnapshotdone:)"0
复制代码 上面这段命令能够在中止显现加下划线的笔墨:
- notify-send"rsnapshotdone:)"1
复制代码 大概你能够封闭光标:
- notify-send"rsnapshotdone:)"2
复制代码 9.smbclient:向MS-Windows体系发送动静
smbclient能够和SMB/CIFS服务器通讯。它能够向MS-Windows体系的指定用户发送动静:
- notify-send"rsnapshotdone:)"3
复制代码 大概
- notify-send"rsnapshotdone:)"4
复制代码 10.BashSocket编程
你能够在bash中开启一个socket链接,而且传输数据。Bash有两个特别的设备文件:
当你经过一段时间的学习后就应该扩充自己的知识,多学习linux命令,但是不要在初学阶段就系统的学习linux命令。 |
|