[网站注入] 本博客被注入,本想关闭Bo-blog评论及留言部分的地址和邮箱栏。应该是PHP的SQL注入攻击的技术实现注入,后预防措施是打上补丁,修改了bo-blog的密码。
Php/Js/Shell/Go jack 2014-1-14 16:38
背景:是哪个高人,给我sql注入了,我看了下面这篇文章,但没看明白,请在留言里指出,Thanks。
http://blog.csdn.net/phpfenghuo/article/details/18178519
_____________________________________________________________________________
一、我试着想关闭bo-blog里的评论功能(以防止注入):
如何关闭Bo-blog评论及留言部分的地址和邮箱栏
修改当前模板的elements.php文件,推荐用editplus。
1、查找并删除以下两处。
{replieremail}
{replierhomepage}
2、查找到
{$lnc[170]} <input name="v_repurl" id="v_repurl" type="text" size="12" class="text" value="{repurl}" />
{$lnc[248]} {if_neednopsw_end}{additional}<input name="v_repemail" id="v_repemail" type="text" size="12" class="text" value="{repemail}" />
将其中两处type=”text”改为type=”hidden”,并去掉{$lnc[170]}和{$lnc[248]}{repurl},{repemail},及{if_neednopsw_end}{additiona }。
附:去掉密码栏的方法
修改当前模板的elements.php文件,查找到
{$lnc[133]} <input name="v_password" id="v_password" type="password" size="12" class="text" value="{ password}" {disable_password}/> {$lnc[247]}
去掉:{$lnc[133]} 和 {$lnc[247]}还有{password},将type=”password”改为type=”hidden”
参考资料:http://www.18hao.net/archives/611
_____________________________________________________________________________
二、但是想了一下,有可能是通过[ubb]注入的,于是先打一下补丁,暂不关评论:
http://www.bo-blog.com/weblog/security--notice-20110312/
2.1.1正式版用户请下载附件中的补丁程序,解压后上传、覆盖原先的文件。打完补丁后,请检查后台页脚的版本号是否为2.1.1.3626.3。
三、修改登录密码:
后台->用户管理->用户管理->搜索自己的用户名->找到后再修改一下密码混入数字字母大小写符号等即可。
Bo-Blog SQL注入漏洞
Bo-Blog是一套基于PHP和MySQL的免费博客系统软件,该软件包括留言本、表情、天气等。本周,该产品被披露存在一个综合评级为“高危”的SQL注入漏洞。由于程序未能正确过滤用户提交的输入,攻击者利用漏洞可控制应用程序,访问或修改数据。目前,互联网上已经出现了针对该漏洞的攻击代码,厂商尚未发布该漏洞的修补程序。CNVD提醒广大用户随时关注厂商主页以获取最新版本。
参考链接:http://www.cnvd.org.cn/flaw/show/CNVD-2013-12867
http://www.cnvd.org.cn/webinfo/show/3289
http://blog.csdn.net/phpfenghuo/article/details/18178519
_____________________________________________________________________________
一、我试着想关闭bo-blog里的评论功能(以防止注入):
如何关闭Bo-blog评论及留言部分的地址和邮箱栏
修改当前模板的elements.php文件,推荐用editplus。
1、查找并删除以下两处。
{replieremail}
{replierhomepage}
2、查找到
{$lnc[170]} <input name="v_repurl" id="v_repurl" type="text" size="12" class="text" value="{repurl}" />
{$lnc[248]} {if_neednopsw_end}{additional}<input name="v_repemail" id="v_repemail" type="text" size="12" class="text" value="{repemail}" />
将其中两处type=”text”改为type=”hidden”,并去掉{$lnc[170]}和{$lnc[248]}{repurl},{repemail},及{if_neednopsw_end}{additiona }。
附:去掉密码栏的方法
修改当前模板的elements.php文件,查找到
{$lnc[133]} <input name="v_password" id="v_password" type="password" size="12" class="text" value="{ password}" {disable_password}/> {$lnc[247]}
去掉:{$lnc[133]} 和 {$lnc[247]}还有{password},将type=”password”改为type=”hidden”
参考资料:http://www.18hao.net/archives/611
_____________________________________________________________________________
二、但是想了一下,有可能是通过[ubb]注入的,于是先打一下补丁,暂不关评论:
http://www.bo-blog.com/weblog/security--notice-20110312/
2.1.1正式版用户请下载附件中的补丁程序,解压后上传、覆盖原先的文件。打完补丁后,请检查后台页脚的版本号是否为2.1.1.3626.3。
三、修改登录密码:
后台->用户管理->用户管理->搜索自己的用户名->找到后再修改一下密码混入数字字母大小写符号等即可。
Bo-Blog SQL注入漏洞
Bo-Blog是一套基于PHP和MySQL的免费博客系统软件,该软件包括留言本、表情、天气等。本周,该产品被披露存在一个综合评级为“高危”的SQL注入漏洞。由于程序未能正确过滤用户提交的输入,攻击者利用漏洞可控制应用程序,访问或修改数据。目前,互联网上已经出现了针对该漏洞的攻击代码,厂商尚未发布该漏洞的修补程序。CNVD提醒广大用户随时关注厂商主页以获取最新版本。
参考链接:http://www.cnvd.org.cn/flaw/show/CNVD-2013-12867
http://www.cnvd.org.cn/webinfo/show/3289
背景:常常很多人对http协议不是很清楚,都干了很多年了,这块早期原始的BBS什么的都是输入命令看帖子,开发后台程序必须掌握http协议。
备注:输入“GET / HTTP/1.1”,表示向该域名索要首页根文件,使用的协议是HTTP的1.1版本。
当然也可更直接这样telnet:
阅读全文
备注:输入“GET / HTTP/1.1”,表示向该域名索要首页根文件,使用的协议是HTTP的1.1版本。
当然也可更直接这样telnet:
阅读全文
Windows7系统如何调节屏幕亮度
方法一:
1、开始-控制面板
2、点击 系统和安全
3、点击 电源选项
4、拖动滚动条调节屏幕亮度
方法二:
也可以按Win+X组合键,显示器亮度:拖动滚动条调节屏幕亮度。
方法一:
1、开始-控制面板
2、点击 系统和安全
3、点击 电源选项
4、拖动滚动条调节屏幕亮度
方法二:
也可以按Win+X组合键,显示器亮度:拖动滚动条调节屏幕亮度。
Linux下telnet 如何退出
Php/Js/Shell/Go jack 2014-1-1 21:24
背景:在Linux进行socket等编程,或对某些应用telnet时会出现直接quit退出无反应的情况,折腾了半天还没有退出telnet,于是有一个退出回话的键至关重要。
很简单:ctrl+],然后再输入q就可以退出了。.
root@192.168.137.128:~# telnet localhost 1987
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
你好
。。。//无反应
quit //也无法退出
^] //此时的退出方法:ctrl + ] 回车
telnet>
quit //退出会话了,再quit即可退出,也可直接输入q简写。
telnet> quit
Connection closed.
来自:http://www.cnblogs.com/hnrainll/archive/2012/02/04/2337928.html
参考:
http://blog.csdn.net/wei801004/article/details/4531664
http://www.baidu.com/link?url=qvpA6iPv82k_sInhXaU6hSCj45rQAQDfhmnNqZXhOduSeGwtk2yRu4H_Ee0zXMWT
很简单:ctrl+],然后再输入q就可以退出了。.
root@192.168.137.128:~# telnet localhost 1987
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
你好
。。。//无反应
quit //也无法退出
^] //此时的退出方法:ctrl + ] 回车
telnet>
quit //退出会话了,再quit即可退出,也可直接输入q简写。
telnet> quit
Connection closed.
来自:http://www.cnblogs.com/hnrainll/archive/2012/02/04/2337928.html
参考:
http://blog.csdn.net/wei801004/article/details/4531664
http://www.baidu.com/link?url=qvpA6iPv82k_sInhXaU6hSCj45rQAQDfhmnNqZXhOduSeGwtk2yRu4H_Ee0zXMWT
使用dmesg查看Linux IO占用较高的程序,它就是tail -f /var/log/messages。
Unix/LinuxC技术 jack 2013-12-29 20:35
tail -f /var/log/messages
环境: Ubuntu
1. 开启IO监控
sudo sysctl vm.block_dump=1
2. IO监控开启后,系统将记录程序对所有硬盘块的访问,通过dmesg查看
dmesg
[442825.284270] mysqld(11600): READ block 6676888 on xvdb2 (8 sectors)
[442825.289893] mysqld(11600): READ block 11543240 on xvdb2 (8 sectors)
[442825.291317] mysqld(11600): READ block 11543248 on xvdb2 (24 sectors)
3. 使用awk汇总,得到占用磁盘最多的进程
dmesg |awk -F " " '{print $2}'|sort|uniq -c|sort -rn|head -n 100
1564 mysqld(11600):
994 python(11474):
302 nginx(6171):
136 mysqld(29743):
126 mysqld(15528):
71 ntpd(772):
62 mysqld(16837):
4. 调试完毕后,别忘了关闭IO监控。
sudo sysctl vm.block_dump=1
摘自:http://www.luochunhui.com/linux-io-dmesg/
参考:http://blog.slogra.com/post-317.html
实践:
[root@my htdocs]# vi /proc/sys/vm/block_dump
[root@my htdocs]# sysctl vm.block_dump=1
vm.block_dump = 1
[root@my htdocs]# dmesg |awk -F: '{print $1}'|sort|uniq -c|sort -rn|head -n 10
195 ACPI
194 pci 0000
63 alloc kstat_irqs on node 0
53 pnp 00
48 ioatdma 0000
34 igb 0000
34 EDAC sbridge
29 flush-253
26 SRAT
24 pci_bus 0000
[root@my htdocs]# sysctl vm.block_dump=0
vm.block_dump = 0
环境: Ubuntu
1. 开启IO监控
sudo sysctl vm.block_dump=1
2. IO监控开启后,系统将记录程序对所有硬盘块的访问,通过dmesg查看
dmesg
[442825.284270] mysqld(11600): READ block 6676888 on xvdb2 (8 sectors)
[442825.289893] mysqld(11600): READ block 11543240 on xvdb2 (8 sectors)
[442825.291317] mysqld(11600): READ block 11543248 on xvdb2 (24 sectors)
3. 使用awk汇总,得到占用磁盘最多的进程
dmesg |awk -F " " '{print $2}'|sort|uniq -c|sort -rn|head -n 100
1564 mysqld(11600):
994 python(11474):
302 nginx(6171):
136 mysqld(29743):
126 mysqld(15528):
71 ntpd(772):
62 mysqld(16837):
4. 调试完毕后,别忘了关闭IO监控。
sudo sysctl vm.block_dump=1
摘自:http://www.luochunhui.com/linux-io-dmesg/
参考:http://blog.slogra.com/post-317.html
实践:
[root@my htdocs]# vi /proc/sys/vm/block_dump
[root@my htdocs]# sysctl vm.block_dump=1
vm.block_dump = 1
[root@my htdocs]# dmesg |awk -F: '{print $1}'|sort|uniq -c|sort -rn|head -n 10
195 ACPI
194 pci 0000
63 alloc kstat_irqs on node 0
53 pnp 00
48 ioatdma 0000
34 igb 0000
34 EDAC sbridge
29 flush-253
26 SRAT
24 pci_bus 0000
[root@my htdocs]# sysctl vm.block_dump=0
vm.block_dump = 0
背景:今天房东家的电脑出现:Error: Cannot Load file (Code: 5555H),通过N年前的Ghost光盘进行DH4(是一键划分成4个分区所用的Ghost 文件)进行分区也卡住了,时而出现文字输入都有问题。
出现错误提示error:cannot load file (code:5555h)。
1.在网上找了作为记录,输入 fdisk/MBR也不行:
出错原因:普通的Ghost 系统安装盘无法重建磁盘MBR(主引导记录),使得Ghost安装盘在一些带有隐藏分区的硬盘上无法加载文件!
解决方法:
用纯净的WindowsXP 原版安装光盘来分区并重装系统,该过程中会建立新的硬盘MBR。
2.进入xp PE后,也看不到硬盘。
最后,只能认定硬盘坏了,但是出现过一次在dos下可以看到内容,但是相当不稳定,听房东说其儿子时常在开机时断电源的情况,估计这样折腾多了,出了毛病罢。
出现错误提示error:cannot load file (code:5555h)。
1.在网上找了作为记录,输入 fdisk/MBR也不行:
出错原因:普通的Ghost 系统安装盘无法重建磁盘MBR(主引导记录),使得Ghost安装盘在一些带有隐藏分区的硬盘上无法加载文件!
解决方法:
用纯净的WindowsXP 原版安装光盘来分区并重装系统,该过程中会建立新的硬盘MBR。
2.进入xp PE后,也看不到硬盘。
最后,只能认定硬盘坏了,但是出现过一次在dos下可以看到内容,但是相当不稳定,听房东说其儿子时常在开机时断电源的情况,估计这样折腾多了,出了毛病罢。
PHP的Session数据同步问题
Php/Js/Shell/Go jack 2013-12-27 14:21
近来公司某个域名流量大涨,发现一个外部QQ登录的接口经常失败,用户登录总是不成功。经过排查发现是登录的第一步需要保存一个token_secret。当时的程序员编写此代码时直接用了$_SESSION来保存token_secret。这里在并发量小时问题不大,并发大了之后极有可能会出问题。
假设A,B两个请求同时出发,A,B同时session_start,读取到了一个$_SESSION的值。当A完成请求写入$_SESSION,但B还没有完成请求,B完成请求后再写$_SESSION,就会覆盖A所设置的值。
类似的数据同步问题其实很多的,比如file_put_contents写PHP的Cache文件,如果不加LOCK_EX就可能会存在同步问题,当一个进程写file时,只写到一半有另外的进程去require此文件,这时就会因为文件不完整,导致PHP语法错误。所以涉及到同时读写同一个文件或数据时一定要加锁,否则在高并发的情况下会产生严重错误。
来自韩天峰兄弟的博客:http://rango.swoole.com/archives/74
假设A,B两个请求同时出发,A,B同时session_start,读取到了一个$_SESSION的值。当A完成请求写入$_SESSION,但B还没有完成请求,B完成请求后再写$_SESSION,就会覆盖A所设置的值。
类似的数据同步问题其实很多的,比如file_put_contents写PHP的Cache文件,如果不加LOCK_EX就可能会存在同步问题,当一个进程写file时,只写到一半有另外的进程去require此文件,这时就会因为文件不完整,导致PHP语法错误。所以涉及到同时读写同一个文件或数据时一定要加锁,否则在高并发的情况下会产生严重错误。
来自韩天峰兄弟的博客:http://rango.swoole.com/archives/74
Kiss - 用Php扩展实现的简单框架
Php/Js/Shell/Go jack 2013-12-27 14:20
http://blog.chinaunix.net/uid-380521-id-2412387.html
http://www.wumii.com/item/A0g3IA7a
实践改写了一下:
http_status.sh
sites.txt
http://127.0.0.1/mytv/
http://127.0.0.1/mytv/
http://127.0.0.1/mytv/
http://127.0.0.1/mytv/
http://127.0.0.1/mytv/
http://127.0.0.1/mytv/
http://127.0.0.1/mytv/
http://127.0.0.1/mytv/
http://127.0.0.1/mytv/
crontab:
#Add mytv's Log forbbiden PHP must be writeable error Test
59 23 * * * /bin/bash /home/xiangdong/crontab/mkdirMytvLogFolder.sh
0 0 * * * /bin/bash /home/xiangdong/curl_test_mytv/http_status.sh
___________________________________________________________________________________
在shell中使用curl命令,取得网站的http状态码。
例子:
调用示例:
附, Shell下curl的使用。
curl是一个访问url的工具,可以用他构造http request报文,且可以解析服务器返回的http response,额外还支持cookie特性,可以用curl完成web浏览器的基本功能。
当然curl还支持HTTPS/FTP/FTPS/TELNET/LDAP等协议。
本文只介绍下curl强大的HTTP功能。
通用语法:
curl [option] [URL...]
在处理URL时其支持类型于SHELL的名称扩展功能,如http://www.jbxue.com/archive[1996-1999]/vol[1-4]/part{a,b,c}.html可以生成多个期望的URL
curl的选项功能:
不带任何参数时 curl 将返回指定url中的数据并打印在屏幕上
-o out 将指定curl返回保存为out文件,内容从html/jpg到各种MIME类型文件
-O 按服务器上的名称保存下载的文件
-r/--range from-to 下载指定range内的数据
-C 在保存文件时进行续传
-A/--user-agent <ua> 指定发送请求的用户代理,例如:curl -A My-Agent/1.0.0 www.jbxue.com
-x ip:port 指定使用的http代理,例如:curl -x 192.168.1.1:8080 www.jbxue.com
-D head.txt 将服务器的返回的header保存为文件,头部的cookie也可被保存,例如:curl -D header.txt www.jbxue.com
-c <file> 保存服务器的cookie文件
-b/--cookie <name=data> 向服务器提交cookie,若无=则name视为文件名,例如:curl -b cookie.txt www.jbxue.com
-e url 设置引用头的值
-T localfile 向服务器PUT文件 例如:curl -T 1.mp3 www.jbxue.com/upload.php
-d <key=value> 向服务器POST表单数据 例如:curl -d "order=111&count=2" http://www.jbxue.com/buy
-F <key=value> 向服务器POST表单,例如:curl -F "web=@index.html;type=text/html" url.com
如果希望从本地文件中获取表单数据,则在文件名前加@ ,例如:curl -d @data.xml http://www.jbxue.com
若希望从标准输入获取则用curl -d - http://www.jbxue.com
-E cert.pem 指定本地证书
-H <header:value> 为HTTP请求设置任意header及值。如curl -H "Connection:keep-alive" http://www.jbxue.com
-I 构造一个HEAD请求
-X/--request method 用户定义的HTTP请求方法名如 curl -X GET www.baidu.com
--compressed 采用压缩方式接收返回数据
--connect-timeout <s> 设置超时时间
-v 详细输出,包含请求和响应的首部
--retry num
--retry timeo 指定重试的次数和间隔
--tcp-nodelay 打开TCP_NODELAY选项 不进行捎带确认
环境 变量:http_proxy [protocol://]<host>[:port]
来自:http://www.jbxue.com/article/curl_http_M1hclL89Ps3f.html
http_status.sh
sites.txt
http://127.0.0.1/mytv/
http://127.0.0.1/mytv/
http://127.0.0.1/mytv/
http://127.0.0.1/mytv/
http://127.0.0.1/mytv/
http://127.0.0.1/mytv/
http://127.0.0.1/mytv/
http://127.0.0.1/mytv/
http://127.0.0.1/mytv/
crontab:
#Add mytv's Log forbbiden PHP must be writeable error Test
59 23 * * * /bin/bash /home/xiangdong/crontab/mkdirMytvLogFolder.sh
0 0 * * * /bin/bash /home/xiangdong/curl_test_mytv/http_status.sh
___________________________________________________________________________________
在shell中使用curl命令,取得网站的http状态码。
例子:
调用示例:
附, Shell下curl的使用。
curl是一个访问url的工具,可以用他构造http request报文,且可以解析服务器返回的http response,额外还支持cookie特性,可以用curl完成web浏览器的基本功能。
当然curl还支持HTTPS/FTP/FTPS/TELNET/LDAP等协议。
本文只介绍下curl强大的HTTP功能。
通用语法:
curl [option] [URL...]
在处理URL时其支持类型于SHELL的名称扩展功能,如http://www.jbxue.com/archive[1996-1999]/vol[1-4]/part{a,b,c}.html可以生成多个期望的URL
curl的选项功能:
不带任何参数时 curl 将返回指定url中的数据并打印在屏幕上
-o out 将指定curl返回保存为out文件,内容从html/jpg到各种MIME类型文件
-O 按服务器上的名称保存下载的文件
-r/--range from-to 下载指定range内的数据
-C 在保存文件时进行续传
-A/--user-agent <ua> 指定发送请求的用户代理,例如:curl -A My-Agent/1.0.0 www.jbxue.com
-x ip:port 指定使用的http代理,例如:curl -x 192.168.1.1:8080 www.jbxue.com
-D head.txt 将服务器的返回的header保存为文件,头部的cookie也可被保存,例如:curl -D header.txt www.jbxue.com
-c <file> 保存服务器的cookie文件
-b/--cookie <name=data> 向服务器提交cookie,若无=则name视为文件名,例如:curl -b cookie.txt www.jbxue.com
-e url 设置引用头的值
-T localfile 向服务器PUT文件 例如:curl -T 1.mp3 www.jbxue.com/upload.php
-d <key=value> 向服务器POST表单数据 例如:curl -d "order=111&count=2" http://www.jbxue.com/buy
-F <key=value> 向服务器POST表单,例如:curl -F "web=@index.html;type=text/html" url.com
如果希望从本地文件中获取表单数据,则在文件名前加@ ,例如:curl -d @data.xml http://www.jbxue.com
若希望从标准输入获取则用curl -d - http://www.jbxue.com
-E cert.pem 指定本地证书
-H <header:value> 为HTTP请求设置任意header及值。如curl -H "Connection:keep-alive" http://www.jbxue.com
-I 构造一个HEAD请求
-X/--request method 用户定义的HTTP请求方法名如 curl -X GET www.baidu.com
--compressed 采用压缩方式接收返回数据
--connect-timeout <s> 设置超时时间
-v 详细输出,包含请求和响应的首部
--retry num
--retry timeo 指定重试的次数和间隔
--tcp-nodelay 打开TCP_NODELAY选项 不进行捎带确认
环境 变量:http_proxy [protocol://]<host>[:port]
来自:http://www.jbxue.com/article/curl_http_M1hclL89Ps3f.html
最近更新了腾讯qq,在连接手机进行adb调试的时候adb无法启动。原因就是qq有个安卓手机连接。打开任务管理器,找到tadb.exe。然后关掉。一切ok。
PHP实现Cookie共享及负载均衡的探讨。---From:PHP低级码农群
Php/Js/Shell/Go jack 2013-12-19 16:43
[实践OK]expr计算器,简单好用的计算器: linux下的bc,Linux命令之bc - 浮点计算器、进制转换。
Unix/LinuxC技术 jack 2013-12-18 21:55
expr 2 \* \( 3 + 4 \)
14
在Linux中,您可以使用`expr`命令执行数学表达式的计算,但是要注意Shell中的一些特殊字符可能需要转义。对于您提供的表达式`(3+2)*2`,可以按照以下方式计算:
```bash
expr \( 3 + 2 \) \* 2
```
在这个命令中,我们使用反斜杠字符`\`来转义括号和乘号,以确保它们被正确地解释为数学运算符而不是Shell的特殊字符。这将计算 `(3 + 2) * 2`,并输出结果 `10`。
另外,还可以使用更现代的数学计算工具,如`bc`,来执行更复杂的数学运算,这通常更易于使用和阅读。例如,使用`bc`可以这样计算:
```bash
echo "(3+2)*2" | bc
```
这将输出结果 `10`。
简单好用的计算器: bc
如果我想要使用简单的计算器呢?很容易呀!就使用 bc 即可!在输入 bc 之后, 显示出版本信息之后,就进入到等待指示的阶段。如下:
[root@linux ~]# bc bc 1.06 Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'. _<==这个时候,光标会停留在这里等待您的输入
事实上,我们是『进入到 bc 这个指令的工作环境当中』了! 就好象我们在 Windows 里面使用calc一样!所以,我们底下尝试输入的资料, 都是在 bc 程序当中在进行运算的动作。所以,您输入的资料当然就得要符合 bc 的要求才行! 在基本的 bc 计算器操作之前,先告知几个使用的运算子好了:
+ 加法
- 减法
* 乘法
/ 除法
^ 指数
% 余数 好!让我们来使用 bc 计算一些咚咚吧!
[root@linux ~]# bc bc 1.06 Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'. 1+2+3+4 <==只有加法时 10 7-8+3+2 4 100*52 5200 10%3 <==计算『余数』 1 10^2 100 10/100 <==这个最奇怪!不是应该是 0.1 吗? 0 quit <==离开 bc 这个计算器
在上表当中,粗体字表示输入的资料,而在每个粗体字的底下就是输出的结果。 咦!每个计算都还算正确,怎么 10/100 会变成 0 呢?这是 因为 bc 预设仅输出整数,如果要输出小数点下位数,那么就必须要执行 scale=number ,那个 number 就是小数点位数,例如:
[root@linux ~]# bc bc 1.06 Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'. scale=3 <==没错!就这! 1/3 .333 340/2349 .144 quit
#Linux
来自:http://hi.baidu.com/huazhixu_127/item/f962c3d7f728cd2a38f6f7d5
Linux下的bc计算器移植到windows下:http://download.csdn.net/download/u012795832/6532695
阅读全文
14
在Linux中,您可以使用`expr`命令执行数学表达式的计算,但是要注意Shell中的一些特殊字符可能需要转义。对于您提供的表达式`(3+2)*2`,可以按照以下方式计算:
```bash
expr \( 3 + 2 \) \* 2
```
在这个命令中,我们使用反斜杠字符`\`来转义括号和乘号,以确保它们被正确地解释为数学运算符而不是Shell的特殊字符。这将计算 `(3 + 2) * 2`,并输出结果 `10`。
另外,还可以使用更现代的数学计算工具,如`bc`,来执行更复杂的数学运算,这通常更易于使用和阅读。例如,使用`bc`可以这样计算:
```bash
echo "(3+2)*2" | bc
```
这将输出结果 `10`。
简单好用的计算器: bc
如果我想要使用简单的计算器呢?很容易呀!就使用 bc 即可!在输入 bc 之后, 显示出版本信息之后,就进入到等待指示的阶段。如下:
[root@linux ~]# bc bc 1.06 Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'. _<==这个时候,光标会停留在这里等待您的输入
事实上,我们是『进入到 bc 这个指令的工作环境当中』了! 就好象我们在 Windows 里面使用calc一样!所以,我们底下尝试输入的资料, 都是在 bc 程序当中在进行运算的动作。所以,您输入的资料当然就得要符合 bc 的要求才行! 在基本的 bc 计算器操作之前,先告知几个使用的运算子好了:
+ 加法
- 减法
* 乘法
/ 除法
^ 指数
% 余数 好!让我们来使用 bc 计算一些咚咚吧!
[root@linux ~]# bc bc 1.06 Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'. 1+2+3+4 <==只有加法时 10 7-8+3+2 4 100*52 5200 10%3 <==计算『余数』 1 10^2 100 10/100 <==这个最奇怪!不是应该是 0.1 吗? 0 quit <==离开 bc 这个计算器
在上表当中,粗体字表示输入的资料,而在每个粗体字的底下就是输出的结果。 咦!每个计算都还算正确,怎么 10/100 会变成 0 呢?这是 因为 bc 预设仅输出整数,如果要输出小数点下位数,那么就必须要执行 scale=number ,那个 number 就是小数点位数,例如:
[root@linux ~]# bc bc 1.06 Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'. scale=3 <==没错!就这! 1/3 .333 340/2349 .144 quit
#Linux
来自:http://hi.baidu.com/huazhixu_127/item/f962c3d7f728cd2a38f6f7d5
Linux下的bc计算器移植到windows下:http://download.csdn.net/download/u012795832/6532695
阅读全文
http://www.linuxidc.com/Linux/2013-02/79561.htm
mysql_get_host_info
mysql_get_host_info
(PHP 4 >= 4.0.5, PHP 5)
mysql_get_host_info -- 取得 MySQL 主机信息
1说明
string mysql_get_host_info ( [resource link_identifier] )
mysql_get_host_info() 返回一个字符串说明了连接 link_identifier 所使用的连接方式,包括服务器的主机名。如果省略 link_identifier,则使用上一个打开的连接。
2例子:
[codes=php]
<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());
printf ("MySQL host info: %s\n", mysql_get_host_info());
?>
[/code]
以上例子将产生如下输出:
MySQL host info: Localhost via UNIX socket
来自:http://baike.baidu.com/link?url=-PyG2pRJ0GvzZAaMq7OYAoxSg5R-BvGkVz6s6_3FC1PxwJzziga80uKOesZXmZDA4n0_nzEAIuAj5DeUngNmdq
mysql_get_host_info
mysql_get_host_info
(PHP 4 >= 4.0.5, PHP 5)
mysql_get_host_info -- 取得 MySQL 主机信息
1说明
string mysql_get_host_info ( [resource link_identifier] )
mysql_get_host_info() 返回一个字符串说明了连接 link_identifier 所使用的连接方式,包括服务器的主机名。如果省略 link_identifier,则使用上一个打开的连接。
2例子:
[codes=php]
<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());
printf ("MySQL host info: %s\n", mysql_get_host_info());
?>
[/code]
以上例子将产生如下输出:
MySQL host info: Localhost via UNIX socket
来自:http://baike.baidu.com/link?url=-PyG2pRJ0GvzZAaMq7OYAoxSg5R-BvGkVz6s6_3FC1PxwJzziga80uKOesZXmZDA4n0_nzEAIuAj5DeUngNmdq




