仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 817|回复: 11
打印 上一主题 下一主题

[其他Linux] Linux制作之10个工具让你的shell剧本更壮大仓酷云

[复制链接]
兰色精灵 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:26:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果你让他去用linux搭建一个web服务器,做一个linux网关,他就什么都不会了.他们把时间都浪费在了版本的转换上了.
良多人误觉得shell剧本只能在命令行下利用。实在shell也能够挪用一些GUI组件,比方菜单,告诫框,进度条等等。你能够把持终极的输入,光标地位另有各类输入效果。上面我将先容一些工具,匡助你创立壮大的,互动的,用户友爱的Unix/Linuxshell剧本。我在FreeBSD和Linux下测试过这些工具,不外其他UNIX系列的操纵体系应当都撑持的。

1.notify-send命令
这个命令可让你经由过程关照历程发送一个桌面关照给用户。这能够用来向用户发送提醒,大概显现一些信息而不必打断用户事情。你必要安装以下软件包:
  1. $sudoapt-getinstalllibnotify-bin
复制代码
上面这个例子展现了怎样从命令行向桌面发送一个复杂的动静:
  1. notify-send"rsnapshotdone:)"
复制代码
输入:

<br>

上面是一个庞大一点的例子:
  1. ....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命令
这个命令是用来设置终端特征的:



  • 挪动光标
  • 取得终端信息
  • 设置远景和背景致
  • 设置粗体形式
  • 设置反形式等等
举例:
  1. #!/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命令
这个命令可让你把持键盘灯,比方翻开数字键盘灯:
  1. setleds-D+num
复制代码
封闭数字键盘灯:
  1. setleds-D-num
复制代码

  • -caps:扫除年夜写灯
  • +caps:翻开年夜写灯
  • -scroll:扫除转动锁
  • +scroll:翻开转动锁

4.zenity命令
这个命令能够显现GTK+的对话框,然后前往用户的输出。你能够用这个命令在剧本中显现信息,并请求用户输出信息。上面这段代码就是域名的whois查询:
  1. #!/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使用筹办的。利用办法以下:
  1. kdialog--dontagainmyscript:nofilemsg--msgbox"File:~/.backup/confignotfound."
复制代码
输入

<br>

你能够检察shellscriptionwithKDEDialogs来猎取更多信息

6.Dialog
这个命令能够在shell剧本中显现文本组件。它利用了curses和ncurses类库。示例代码:
  1. >#!/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:
  1. 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分钟后把显现器设为待机形态:
  1. notify-send"rsnapshotdone:)"0
复制代码
上面这段命令能够在中止显现加下划线的笔墨:
  1. notify-send"rsnapshotdone:)"1
复制代码
大概你能够封闭光标:
  1. notify-send"rsnapshotdone:)"2
复制代码
9.smbclient:向MS-Windows体系发送动静
smbclient能够和SMB/CIFS服务器通讯。它能够向MS-Windows体系的指定用户发送动静:
  1. notify-send"rsnapshotdone:)"3
复制代码
大概
  1. notify-send"rsnapshotdone:)"4
复制代码
10.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 | 只看该作者
上课传授的不仅仅是知识,更重要的是一些道理,包括一些做人的道理,讲课时也抓住重点,循序渐进,让同学理解很快;更可贵的是不以你过去的成绩看问题.
简单生活 该用户已被删除
5#
发表于 2015-2-7 02:22:32 | 只看该作者
通过一条缓慢的调制解调器线路,它也能操纵几千公里以外的远程系统。
蒙在股里 该用户已被删除
6#
发表于 2015-2-17 18:41:10 | 只看该作者
Linux的成功就在于用最少的资源最短的时间实现了所有功能,这也是符合人类进化的,相信以后节能问题会日益突出。
金色的骷髅 该用户已被删除
7#
发表于 2015-3-2 22:16:19 | 只看该作者
任何人都可以根据自己的喜好来定制适合自己的操作系统,Linux?是抢占式多任务多用户操作系统.
不帅 该用户已被删除
8#
发表于 2015-3-4 04:22:43 | 只看该作者
如果上面的措施没有解决问题,此时你就需要Linux社区的帮助了。 Linux的使用者一般都是专业人士,他们有着很好的电脑背景且愿意协助他人。
山那边是海 该用户已被删除
9#
发表于 2015-3-6 11:14:56 | 只看该作者
Linux简单,占内存少,特别是对于程序开发人员来说很方便,如果说windows的成功在于其方便用户的窗口管理界面。
10#
发表于 2015-3-6 19:06:50 | 只看该作者
永中office 2004增强版安装只需要默认安装即可使用并操作大多与win系统雷同,打印机的配置和管理,记录光盘等。
若天明 该用户已被删除
11#
发表于 2015-3-13 06:09:23 | 只看该作者
为了更好的学习这门课程,我不仅课上认真听讲,课下也努力学习,为此还在自己的电脑上安装了Ubuntu系统。
小妖女 该用户已被删除
12#
发表于 2015-3-20 14:24:40 | 只看该作者
Linux简单,占内存少,特别是对于程序开发人员来说很方便,如果说windows的成功在于其方便用户的窗口管理界面。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 23:10

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表