Bash
Superr爬爬虫
博观而约取,厚积而薄发
展开
-
Ubuntu 显示指定某已行内容
1.显示开头m行文件内容:head -n m filename awk 'FNR<=m{print}' filename awk 'FNR<=m{print}' filename sed -e mq filename sed mq filenamehead -n mfilename2.显示结尾m行文件内容:tail -n m filename3.原创 2012-04-27 19:52:27 · 1150 阅读 · 0 评论 -
调试shell脚本
如下一个简单的脚本#!/bin/sh number=1if [ $number = "1" ]; then echo "Number equals 1"else echo "Number does not equals 1"fi但是,我们经常有这样的经历,提示 “ [: =: unary operator expected” 错误但又原创 2012-11-19 21:50:25 · 1265 阅读 · 0 评论 -
Ubuntu 12.04 Pidgin
开始公司,在公司内部的交流基本上都采用OC(起码我们公司是这个样子),但当用 Ubuntu11.10时,用pidgin链接OC好好的,但是升级到Ubuntu12.04时,突然链接不了OC了,搞了半天,现在终于可以链接了。安装OCStep1: sudo apt-get update sudo apt-get install pidgin pidgin-sipe 当然要安装p原创 2012-12-14 10:58:48 · 1725 阅读 · 0 评论 -
shell 脚本关闭通配符
有时需要输出类似这样的"***************" 特殊字符,但是通过这样下面这样的方式是显示不出来的。tt="**********"echo $tt原因就是因为shell默认开启了通配符,可以在要输出通配符的时候,关闭通配符,如下set -f //关闭通配符tt="*******"echo $ttset +f //显示通配符原创 2013-01-29 15:50:19 · 2910 阅读 · 0 评论 -
shell查找所有文件下的AndroidManifest.xml
find -name AndroidManifest.xml -a ! -path "*/bin/*" -printf "%h\n"查找包名catAndroidManifest.xml | grep 'package="[^"]*"' | sed's/.*package="\([^"]*\)".*/\1/'查找版本号cat AndroidManifest.xml | gre原创 2013-02-22 11:34:41 · 1476 阅读 · 0 评论 -
git安装
环境:Ubuntu 10.101) APT-GETsudo apt-get install git2)通过源码安装由于Ubuntu10.10 上git 版本为1.7.1 觉得版本有点低,换一个高点版本的gita)下载源码包:wget https://git-core.googlecode.com/files/git-1.8.1.2.t原创 2013-05-24 11:47:26 · 741 阅读 · 0 评论 -
vim 列编辑功能
1)插入功能(即在若干行的某一列插入一个字符或几个字符)Step1:光标移动到开始插入的行的指定位置Step2:Ctrl+v,进入visual block模式Step3:将光标移动到最后插入行的指定位置(通过j或者输入行号+G)Step4: shift+i,进入插入模式Step5:输入你想输入的字符,完成后,按两下“Esc”键,就能看到自己想要的结果2)删除功能同上St原创 2013-05-26 00:28:49 · 2206 阅读 · 0 评论 -
bash 变量作用域
bash 里面有两种作用域一种是全局作用域,即默认所声明的变量;另外一种则是局部作用域,用local关键字声明的变量。1)全局变量声明有如下几种情形:#!/bin/bashmm=12 #visible globallyfunc() { mn=34 #visible globally echo "mc=${mc}" #is visible}mc=原创 2013-06-24 20:12:57 · 4451 阅读 · 1 评论 -
bash脚本,自动输入sudo的密码
解决方法: echo + | (管道)开始使用 echo "admin" | sudo service tomcat7 stop始终提示输入密码后来查看了下sudo命令的使用man sudo发现有如下的解释:-S The -S (stdin) option causes sudo to read the password f原创 2013-12-26 11:31:13 · 35851 阅读 · 3 评论 -
Shell && vs || operator
cmd1 && cmd2 如果命令cmd1 的result status 0,则执行cmd2,否则不执行cmd2命令。cmd1 || cmd2 如果命令cmd1 的result status 1,则执行cmd2, 否则不执行cmd2命令。可以用于异常出错处理:i.e: 运行cmd1命令,如果cmd1运行出错,则输出一条提示信息。adb -s "device" logcat || {原创 2012-11-19 21:18:40 · 928 阅读 · 0 评论 -
sed 替换单引号问题
sed 替换单引号'eg:echo "mmm'sss" > testcat test把test内容中单引号替换成双引号sed 's/'"'"/'"''/g' test解析下:'s/' => 要进行替换操作,后紧跟匹配字符"'" => 用双引号包裹着单引号/ =>分割符'"' => 用单引号包裹着双引号'/g' =>分隔符,全局替换原创 2012-12-03 09:28:06 · 17728 阅读 · 0 评论 -
Shell 杀死指定后台运行进程
利用& 符号,产生一个后台运行的进程,但是命令运行完成了,后台进程还在运行,搞得有点恼火,于是写个脚本,把后台进程给干掉#!/bin/shmm="mm">$mmcmd="adb -s 1111 logcat"echo $cmd`$cmd` >>$mm & id=$$echo "Pid:"$idsleep 5sif [[ ! -s $mm ]]; then echo "原创 2012-11-12 20:46:53 · 8426 阅读 · 0 评论 -
Android 批量卸载手机上的apk
Step1:把要卸载的APK包名保存到一个文件中,本文称之为file,保存格式如下ubei.tingshucn.amazon.mShop.androidcn.wps.moffice_engcom.adobe.readercom.android.chromecom.android.packagenamecom.blossomapps.thelioncom.blovestor原创 2012-05-04 20:08:57 · 2646 阅读 · 4 评论 -
Nexus s Android 4.1.1 通过USB共享Ubuntu网络
准备工作:1)检查下手机是否root了,由于在手机上需要执行su命令来修改手机的网关,所以必须root,如果没有root参考(Nexus s 4.1.1)这个地址:http://www.teamandroid.com/2012/07/20/root-nexus-s-on-android-411-jelly-bean-jro03e-official-software-update/2)通过m原创 2012-09-07 19:49:14 · 2943 阅读 · 0 评论 -
Shel 检测合法的IP地址
IP地址的正则表达式为:(([0-9]|[1-9][0-9]|1[0-9]{2\}|2[0-4][0-9]|25[0-5]).){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])'1.利用电脑IP测试下:ifconfig | grep --color -o '\(\([0-9]\|[1-9][0-9]\|1[0-9]\{2\}\|2原创 2012-10-02 21:44:30 · 795 阅读 · 0 评论 -
Shell 计算时间差
1.利用date -u 可以直接输出时间:date -u +%Y%m%d20120920date -u +%Y-%m-%d2012-09-202. 利用date -d 计算时间加减date -d"-1 day" +%Y%m%d20120919date -d"+1 year -3 month +3 day" +%Y-%m-%d原创 2012-09-20 16:49:46 · 1719 阅读 · 0 评论 -
Linux shell脚本的字符串截取
Linux 的字符串截取很有用。有八种方法。假设有变量 var=http://www.hao.com/123.htm一 # 号截取,删除左边字符,保留右边字符。echo ${var#*//}其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符即删除 http://结果是 :www.hao.com/123.转载 2012-10-02 19:20:10 · 1306 阅读 · 0 评论 -
Shell 插入Sqlite数据库
由于项目需要,在Shell中操作sqlite数据库,简单记录下:services_networkkpi 表结构之前已经建立好,所以,直接使用Step1: 拼接插入sql字符串table_sql="insert into services_networkkpi(name, category_id, web_open_time, dns_resolve_time, dns_cache_原创 2012-10-11 22:06:35 · 5028 阅读 · 2 评论 -
bash 常用的基本常识
1. 将Ubuntu 中默认的dash shell 修改为bash shellsudo dpkg-reconfigure dash然后选择no,就OK了。可以在/bin目录下运行ls -al s*检查下sh是否链接到bash。这样就可以防止出现写的有点bash语法,Ubuntu结果提示有问题,或者不认写的语法。2.单引号和双引号都可以防止通配符扩展.eg. ec原创 2012-11-08 18:04:01 · 1871 阅读 · 0 评论 -
设置echo输出字体样式
teminal终端的颜色可以使用“ANSI非常规字符序列”来生成。eg:echo -e "\033[41;32;1m DONE \033[0m"设置了echo 输出的DONE,背景色为红色,前景色为绿色, 样式为粗体,按设置的样式输出完DONE后,重置echo输出样式。“-e”用于激活特殊字符的解析器,其中"\033[”引导非常规字符序列,“m”意味着设置属性然后结束非常规字符原创 2012-11-12 13:52:49 · 5001 阅读 · 0 评论 -
Nexus S Flash Custom Rom
之前一直没有时间折腾这个,最近由于要调试smali,需要源码调试,所以就。。。。操作步骤如下:Step1: repo 下载源码(http://source.android.com/source/downloading.html)Step2: 下载相应的驱动(https://developers.google.com/android/nexus/drivers)如我的需要下载6个原创 2014-03-21 12:02:53 · 1034 阅读 · 0 评论