您的位置:首页 > 移动开发 > Android开发

【【【常用的ubuntu第三方工具及android命令(自存档)】】】

2012-07-09 12:38 597 查看
top

watch -n1 "date"

watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,watch可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行。在Linux下,watch是周期性的执行下个程序,并全屏显示执行结果。你可以拿他来监测你想要的一切命令的结果变化,比如 tail 一个 log 文件,ls 监测某个文件的大小变化,看你的想象力了!

1.命令格式:

watch[参数][命令]

2.命令功能:

可以将命令的输出结果输出到标准输出设备,多用于周期性执行命令/定时执行命令

3.命令参数:

-n或--intervalwatch缺省每2秒运行一下程序,可以用-n或-interval来指定间隔的时间。

-d或--differences用-d或--differences 选项watch 会高亮显示变化的区域。 而-d=cumulative选项会把变动过的地方(不管最近的那次有没有变动)都高亮显示出来。

-t 或-no-title会关闭watch命令在顶部的时间间隔,命令,当前时间的输出。


-h, --help 查看帮助文档

4.使用实例:

实例1:

命令:每隔一秒高亮显示网络链接数的变化情况

watch -n 1 -d netstat -ant

说明:

其它操作:

切换终端: Ctrl+x

退出watch:Ctrl+g

实例2:每隔一秒高亮显示http链接数的变化情况

命令:

watch -n 1 -d 'pstree|grep http'

说明:

每隔一秒高亮显示http链接数的变化情况。 后面接的命令若带有管道符,需要加''将命令区域归整。

实例3:实时查看模拟攻击客户机建立起来的连接数

命令:

watch 'netstat -an | grep:21 | \ grep<模拟攻击客户机的IP>| wc -l'

说明:

实例4:监测当前目录中 scf' 的文件的变化

命令:

watch -d 'ls -l|grep scf'

实例5:10秒一次输出系统的平均负载

命令:

watch -n 10 'cat /proc/loadavg'

1、ubuntu远程工具(xdrp xmanager xshell putty)前2个是可视化的,后2个是命令行

java -jar 与javaw -jar的运行区别:

跟java命令相对的,运行java命令时,会出现并保持一个console窗口, 程序中的信息可以通过System.out在console内输出,而运行javaw,
开始时会出现console,当主程序调用之后,console就会消失; javaw 大多用来运行GUI程序
在linux中发现 只要加一个 java -jar **.jar &后即使关闭shell也没有影响后台还在运行,但是在windows上就不行了,必须javaw运行才可以

D:\test_jar>javaw -jar crackpasswd.jar 2>err.log(输出重定向将ERR输出到err.log上,如果是java -jar **.jar>1.txt2>&1这样就可以将正常的OUT以及ERR都定位到1.txt上)

改进:在linux远程命令行任务,nohup java[b] -jar **.jar>1.txt2>&1 是最为推荐的后台操作方式。[/b]


安装包:

sudo apt-get install nautilus-open-terminal 文件夹菜单中增加快捷命令行

sudo apt-get install meld 比较工具

sudo apt-get install shutter 截图工具

sudo apt-get install wine 该工具据说可以运行EXE,还未测试使用

sudo apt-get install wireshark 是个很好用的抓包工具,物理网口和localhost回环的包都可以进行抓取(windows版本的wireshark不可以抓取localhost回环很遗憾)



4*((size+3)/4) 四字节对齐

linux etc/rc.local中是启动脚本

cometed bayeux是push服务器开源的比较好的一种

命令

1、netstat -lnp|grep :80,看看哪一个进程占用了80的端口,然后使用“kill -9 进程号”杀掉该进程;

2、ps -aux | grep ***,***代表进程名字,该命令可以查看 是否有该进程;(有的时候要用-A参数)

3、通常修改linux hosts(/etc/hosts)文件的时候是不需要重启服务的,如果不放心可以使用sudo /etc/init.d/networking restart重启进程服务;

4、如果知道服务名字,可以使用sudo /etc/init.d/*** restart/stop/start ,来进行重启、停止、开启,如常用的apache2\xrdp\networking等等;

(更新ubuntu 12.04以后建议使用 service *** start/stop等等了)

5、ifconfig eth0 查看第一块网卡的IP信息;

6、通常通过包压缩包安装文件,需要先解压缩,然后将文件夹放入 /usr/lib中,然后使用ln命令快捷连接到/usr/bin中

以firefox的安装为例:

先cd /usr/bin

如果之前有老版本的firefox则执行rm -rffirefox

紧接着sudo ln -s /usr/lib/firefox-16.0a1/firefox firefox安装完毕,可以直接在控制台中firefox命令启动浏览器;

7、cd ~返回根目录,cd -返回上一次cd 之前的目录

8、写bash脚本文件的时候记得要加上x执行权限(echo -e "zte\nzte" 这样的写法是可以识别换行的)

9、echo "" > txt 与>>一个是覆盖还有一个是追加

10、find ./data -type f -printf "/data/%P\n" >> v1_sys_attr.txt 罗列出当前data文件夹下面的所有文件,注意不同的参数表示不同的意思 -type d 表示文件夹-type l表示是链接文件

11、修改ubuntu上的GCC版本,安装gcc4.4和g++4.4

sudo apt-get install gcc-4.4
sudo apt-get isntall g++-4.4

修改默认gcc和g++为4.4的版本

sudo update-alternatives --remove-all gcc

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 40

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.4 40

配置默认的gcc和g++

sudo update-alternatives --config gcc

sudo update-alternatives --config g++

12、查看cpu个数
查看当前的CPU情况:

cat /proc/cpuinfo


或者直接显示逻辑CPU的个数:

cat /proc/cpuinfo |grep "processor"|wc -l

 
13、查看某一端口,哪个进程占用

ps -ef|grep 8009查看端口

 
14、cat /proc/version 查看linux版本

 
15、该规则针对redhat

iptables -nL查看当前的IP规则配置

iptables -I INPUT -p tcp --dport 80 -j ACCEPT 打开本机的80端口接受权限

service iptables save

 
16 cp -r /xx/xx/ /yy/ 将/xx/xx/连其本身文件夹以及内所有文件拷贝到 /yy下面

而 cp -r /xx/xx/* /yy/ 将/xx/xx/内所有文件拷贝到 /yy下面

 
17 scp -r /xx/xx/* 
loginaccount@remoteip:path 本地拷贝至远程

 scp -r loginaccount@remoteip:path/* /xx/xx/ 远程拷贝本地


参见:Linux SCP 远程拷贝



18 Linux检查是否安装一个软件的方法:rpm -qa | grep glib

测试libevent是否安装成功:ls -al /usr/lib | grep libevent(或 ls -al /usr/local/lib | grep libevent)

出现类似下图结果则表示安装成功:

# ls -al /usr/lib | grep libevent

# ls -al /usr/local/bin/mem*



19 find * -type d|sort -r >> find.txt 输出当前目录下的文件夹目录,并从高到低排序输出到find.txt (-type f是所有文件)

http://forum.linuxfans.org/redirect.php?fid=24&tid=44043&goto=nextoldset

20 grep

它是通用规则表达式分析程序(General Regular Expression Parser)的缩写。

grep命令可以在它的输入中搜索指定的字符串模式(Pattern)。输入中所有包含指定字符串模式的行组成grep命令的输出。

例如,要找出carey用户是否在系统中登录,只要在passwd文件中搜索这一用户名称的字符串:

$ grep carey /etc/passwd

carey:……



21 sudo

  在shell脚本中需要用root用的来执行指令:

  sudo 自动输入密码

  echo "password" | sudo -S netstat -tlnp

  -S

  The -S (stdin) option causes sudo to read the password from the standard input instead of the terminal device.

22tar -cvf ./xx.tar * 当前目录下打包

tar -zcvf ./xx.tar.gz* 当前目录下压缩打包

tar -tvf *.tar 查看压缩包内文件列表



23 tail -f 是实时的查看LOG的最新流输出

24在linux系统中/var/log中大量的系统日志

25 getconf PAGESIZE 查看当前的系统的页大小

26 df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力(df -hl)。du可以查看文件及文件夹的大小。
http://www.yayu.org/look.php?id=162
[root@**]# du -h --max-depth=1 work/testing

27M work/testing/logs

35M work/testing

du -sm * 查看每个文件的大小

如果有一个进程在打开一个大文件的时候,这个大文件直接被rm 或者mv掉,则du会更新统计数值,df不会更新统计数值,还是认为空间没有释放。直到这个打开大文件的进程被Kill掉。(使用fuser
-u /var/spool/clientmqueue 可以看到这个文件是哪个文件占用的)

27 定期删除文件

# cd /etc/cron.daily
# vi logcron
输入如下内容
#!/bin/sh
find /logs -type f -ctime +30 | xargs rm -rf (这里实现了删除30天之前文件的命令,当然还可以加入-name 模糊匹配名字查询)

-mtime 7 是只保留尽7天
然后保存该文件,最后执行如下命令给该文件服务可执行权限
# chmod +x /etc/cron.daily/logcron
哈哈,任务完成,如果你想实验下效果可以把该文拷贝到/etc/cron.hourly目录下,然后把系统时间改成整点,你就能够看到30天之前的文件已经自动被删除了。


28 find -atime -ctime -mtime区别

access time, atime在读取文件或执行文件时会修改

create time, ctime在文件写入,更改所有者,权限。链接时文件的ctime会随之改变

modified time ,mtime 在文件写入时会改变。

ls -lu或者 ls -l --time=atime 显示文件的atime

ls -lc 或者ls -l --time=ctime 显示文件的ctime

ls -l显示文件的mtime

stat **.log 可以看到这个文件的所有属性时间



29 split -b 200M catalina.out -- 每个文件200M

30 关掉特定的进程的方法 ps -ef | grep firefox | awk '{print $2}' | xargs kill -9

或者 是一样的 kill -9 `ps -ef | grep firefox | awk '{print $2}'`

进阶:kill -9 `ps -ef | grep firefox | grep -v grep | awk '{print $2}'`

windows上网络

1、arp -a 查看的是路由器的MAC信息(本例192.168.1.2),如果要看自己的电脑所有网卡的信息的话用 ipconfig /all



2、route print当前路由信息



192.168.1.103就是环回路由了吧



192.168.42.*是PC上连接的手机网卡,系统自动为其配置了三条路由。







android命令

1、cat /proc/mtd

2、flash_image recovery /sdcard/**.img (flash_image boot /sdcard/**.img)

3、cat /dev/mtd/mtd8 > /sdcard/**.img

4、busybox hexdump -c -n 512 mtd8

5、修改ip 以及默认网关

busybox ifconfig usb0 192.168.42.231 netmask 255.255.255.0(usb0 为上网卡,可以替换成本地的任何设备名)

busybox route delete default

iptables -F

iptables -F -t nat

busybox route add default gw 192.168.42.230

setprop net.dns1 8.8.8.8

6、找到一个可以把log保存下来的方法,这样如果不接USB线时操作手机发生问题就能看见log了,简单实验可行

执行adb shell登到手机

logcat -v time -f /sdcard/locker.log *:W & (补充可以去查一下logcat 的参数协议,如果是希望所有类型的参数全部打出的话用"*"替换"*:W")

然后就可以拔掉USB线正常测试,发生问题后再连接USB把log抓出来,最好记下问题发生的大致时间,以便事后查找
7、busybox route 查看路由;
8、busybox arp 查看当前网络的网关(路由);
9、ping -c 10 -i 2 **.**.**.** -c 表示次数 -i表示间隔;
10、busybox traceroute**.**.**.** 查看ping 某IP的全路由过程在window上是(traceRT)







android刷机包

1、google服务原生刷包 gapps-gb-20110613-signed.zip



android开发问题汇总:

1、如果考虑做一个全功能的版本至少兼容到2.2,但是有些函数是没有的在2.2

java.lang.NoSuchMethodError: java.lang.String.isEmpty

java.lang.NoSuchMethodError: java.io.File.getTotalSpace

2、关于图像处理的函数最好 使用缓存机制

3、工具监控模式的使用:

monkey 测试 adb shell monkey -p com.xx.xx-v --throttle 100 5000

strictmode的使用

memorymonitor的内存监控工具使用

base/kernel/drivers一般放的是片外驱动

/drivers/media/video/zc301/zc301_core.c

1、V4L2驱动注册、注销函数

Video核心层(drivers/media/video/videodev.c)提供了注册函数

java

StringTokenizer 的使用。

git使用

1、安装 apt-get install git-core

另外配置一下各自git的用户名和email,以便上传代码时方便识别。

可以用命令如下命令进行配置(双引号中的部分请替换):

git config –global user.name “myname”

git config –global user.email “myname@server”

2、克隆一个库git clone ssh://git@10.42.217.219:22/xx.git master

操作:

1、增加文件 在那个目录下 git add .

2、删除文件 git rm 文件 git rm -r 文件夹

3、提交到本地库git commit -m "说明"

4、提交到远程 git push ssh://git@10.42.217.219:22/xx.git master

5、从服务器拉变化git pull ssh://git@10.42.217.219:22/xx.git master

使用git remote add origin ssh://git@10.42.217.219:22/xx.git 进行origin url设置

之后,可以

git pull origin master

git push origin master

6、把修改回退到pull push状态git reset默认是软恢复,git reset --hard是硬恢复

-------------------------------------------------------------------------------------------------------------

在Windows电脑上使用git可以参考以下方法:

1. 安装windows版的git软件(Git-1.8.1.2-preview20130201.exe),建议安装在C:\Git目录下,以免路径中出现空格导致bash中操作的问题。

2. 将 C:\Git\bin 和 C:\Git\libexec\git-core 加入系统的环境变量path中。

3. 如果想使用类似TortoiseSvn的图形化界面,可以安装TortoiseGit(安装TortoiseGit-1.8.3.0-32bit.msi时如果提示windows installer版本过低,请先安装WindowServer2003-KB942288-v4-x86.exe然后重新安装TortoiseGit)。

4. 利用命令行或右键TortoiseGit菜单使用git即可。

私钥,并将其改名为id_rsa。linux机器请将私钥放置在 ~/.ssh/ 下;windows机器请放置在类似 C:\Documents and settings\XXX\.ssh\ 的目录下,同时添加环境变量HOME = C:\Documents and settings\XXX 。

常用git控制使用:

1、查看某个文件某次的修改很简单,这样就可以了

git show 某次的提交哈希值 文件名

git show 12e49a7720fe92d5c19a8015fbc40a410e52370d .../src/com/android/mms/ui/ManageSimMessages.java

2、git log是查看修改的历史记录

如想看某次提交的统计信息(在git
log的基础上进行了变化文件的总体对比),git log --stat,

可以通过git
log --help找到所有的子项帮助

3、git log -p -- packages/apps/Mms/src/com/android/mms/ui/ManageSimMessages.java

会显示所有的这个文件的提交细节对比

git log
packages/apps/Mms/src/com/android/mms/ui/ManageSimMessages.java

查看这个文件的粗略修改记录

4、git diff 两次的commit
具体文件

可以查看到具体2个commit的差异,在文件提交的时候可以使用git
diff看看

5、git
log --pretty=short --graph 查看历史记录的彩色路线合并图

6、在服务器侧进行仓储的版本恢复的时候,直接git
reset --soft xxx就可以了(注意服务器端是没有hard节点的,这个只有客户端git才有);

7、git当在本地commit以后,pull
(fetch+merge)如果有merge失败,如果需要merge的这些文件不关心的话,可以git reset --hard进行复位(可以将这些有问题的,也不需要合入的文件给删除了),然后pull最新的文件,最后push 本地的commit变化。

8、使用
git
 pull
冲突了,并且之前本地有未提交的修改。问题变得比较复杂,因为涉及4方面:

工作目录的修改

暂存区的修改

merge来的修改

Merge前的修改

解决方法:使用
git merge --abort
中止merge。merge manual中说,这条命令会尽力恢复到Merge之前的状态(可能失败!)。

HTTP网络开发模拟(GET POST DELETE CREATE等等)

1、用chrome浏览器上的postman插件

编码转换

editplus进行批量转换好东西
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: