`
javaG
  • 浏览: 549880 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

linux常用命令&java调用shell

阅读更多

curl

测试域名绑定

我常需要在开发环境中,测试某台服务器上的Web Server是否正确绑定了域名。比如,我希望在服务器192.168.1.10 上绑定www.kuqin.com 。但需要修改hosts才能看到效果,这活儿很累人。

所谓“域名绑定”,就是把host映射到对应的目录。如果手头有cURL,可以使用 -H 参数,在请求头信息中多写一个 Host 字段。就可以测试是否配置正确了。

# curl -H "Host: www.kuqin.com" http://192.168.1.

场景二:查看头信息

响应头信息中包含了很多东西。除了HTTP版本和响应代码,还有Server、Content-Type、Content-Length等信息,如果有写入Cookie的操作,也会体现在头信息中。

使用cURL的 -I 参数,就可以看到这些头信息。比如淘宝的:

# curl -I http://www.taobao.com/

场景三:跟踪URL跳转

如果遇到了一个多次跳转的URL,可以先用curl的 -L 参数看看,这个URL最终跳转到了什么地方。-L 参数最好配合 -I 使用,不然cURL会把最后一次请求获得的数据输出到控制台。

没有合适的URL拿来做例子,意会一下吧

场景四:发送压缩的请求

cURL提供了一个 –compress 参数,可以用来发送支持压缩的请求。但使用了–compress之后,虽然传输过程是压缩的,cURL的输出还是解压之后的,难以看到效果。

我一般用 -H 参数,自己写一个 Accept-Encoding 字段在头信息中。

curl -H "Accept-Encoding: gzip" http://www.kuqin.com/

如果直接运行上面的命令,会得到一堆乱码,因为cURL输出的内容,是压缩后的数据。不妨在后面接一个gunzip试试。

curl -H "Accept-Encoding: gzip" http://www.kuqin.com/ | gunzip

使用gunzip解压之后,信息又被还原了。

场景五:忽略证书错误

平日上网,遇到证书错误一定要小心。但我在工作中,经常需要用自签的假证书搭建开发环境。cURL在遇到证书错误时无法使用,使用 -k 参数就可以让它不做证书校验。

 

netstat -apln (这个n很重要,曾经有一次要看一个端口有没有起来,没有带n参数,实际上端口是起来了,但是就是grep不到)

tail  -f(从尾部监听)   -n (后面跟数字,表示从尾部向上多少行)

 

awk出处文件到指定路径

 awk XXX -F"exp=|,count" '{print $2","$4,total > "lsd.data"}'

 

java调用shell脚本

/*
例如.test.sh内容为
echo "hello world" >> lsd.txt
lsd.txt的输出目录为workPath
*/
    Runtime rt = Runtime.getRuntime();
	String workPath = "/data/log";//子进程工作目录
	String shellPath = "/data/log/test.sh";
    File dir = new File(workPath);
    String params = "a b";//参数a b传入shell
    String str[] =
    { "sh", "-c", "/bin/sh "+shellPath + " " +params };

    Process pcs = rt.exec(str, null, dir);
    BufferedReader br = new BufferedReader(new InputStreamReader(pcs.getInputStream()));
    StringBuffer lines = new StringBuffer();

    String line = new String();
    while ((line = br.readLine()) != null)
    {
        lines.append(line).append("\n");
    }
    try
    {
        pcs.waitFor();
    }
    catch (InterruptedException e)
    {
        lines.append("processes was interrupted").append("\n");
    }
    br.close();
    int ret = pcs.exitValue();
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics