top
watch -n1 "date"
watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,watch可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行。在Linux下,watch是周期性的执行下个程序,并全屏显示执行结果。你可以拿他来监测你想要的一切命令的结果变化,比如 tail 一个 log 文件,ls 监测某个文件的大小变化,看你的想象力了!
1.命令格式:
watch[参数][命令]
2.命令功能:
可以将命令的输出结果输出到标准输出设备,多用于周期性执行命令/定时执行命令
3.命令参数:
-n或--interval watch缺省每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的运行区别:
安装包:
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 -rf firefox
紧接着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
- 修改默认gcc和g++为4.4的版本
- 配置默认的gcc和g++
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/ 远程拷贝本地
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.
22 tar -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线时操
执行adb shell登到手机
logcat -v time -f /sdcard/locker.log *:W & (补充可以去查一下logcat 的参数协议,如果是希望所有类型的参数全部打出的话用"*"替换"*:W")
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
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进行批量转换好东西