Independent的技术小经验

来源:互联网 发布:java基础入门怎么样 编辑:程序博客网 时间:2024/06/04 19:27

不错的东东,这个得mark收藏

原文:http://keyvalue.net/2010/10/11/%E6%8A%80%E6%9C%AF%E5%B0%8F%E7%BB%8F%E9%AA%8C/


Find
find ./ -type d -name “CVS” -exec rm -r {} \;
find . -type f -perm 644 -group root -exec ls -l { } \;
find logs -type f -mtime +5 -exec rm { } \;
find . -name “admin.log[0-9][0-9][0-9]” -atime -7 -ok
find . -perm -7 -print | xargs chmod o-w
find ./ -name “*.html” -exec sed -i ‘s/law.baidu.com/tc-test-aos00.tc.baidu.com:8080\/mis/’ {} \;
find ./ -name “*.html” |xargs sed -i ‘s/law.baidu.com/tc-test-aos00.tc.baidu.com:8080\/mis/’

du
du -s /usr/* | sort -rn 字节排序
du -sh /usr/* | sort -rn M排序
du -s /usr/* | sort -rn | head
du -s /usr/* | sort -rn | tail

netstat
netstat -an | grep :80 |wc –l
netstat -nlp | grep 80

awk
找出第一列重复的行 awk -F’\t’ ‘{a[$1]++;if(a[$1] > 1){print $0};}’ pm.txt
`awk -F\”\\t\” ‘{ if (NF> 0 && \$12 != “-”) {print \$12\”\\t\”\$11} }’ $cookie_sort_file_path/cookie_sort*.log > url.log`;

每行的第一个子都是url,第二个字段是ruleid,找出每个ruleid影响的url数目。
awk ‘{a[$2]++}END{for (j in a) if(a[j] > 10000 ){print j,a[j]}}’ mask_url_hadoop.1

Sed
每行插入一行代码 echo “\n”; sed a’echo “\\n”;’ str.php > str2.php
将文件中的非打印字符用ASCII码打出:sed l str.php
打印出含有LC的行: sed -n -e ‘/.*LC.*/p’ str.php
将str.php含有LC的行,中的TIME替换成tttttttt: sed -e ‘/LC/s/TIME/tttttttttttttttt/’ str.php

Shell
for i in 09 10 11 12 13 14 15 16 ;do mkdir 201003$i ;done
sh -x filename

vim
一个文件的每一行复制到本行下面一行:%s/\(^.*$\)/\1\r\1/g
隔行删除 :%normal jdd
* # g* g# : 查找当前光标下的单词(单个单词) () (向前/向后)
. : 重复上次操作
@: : 重复上次的命令
: 插入模式下自动完成填词
: 行自动完成(超级有用)
:h regexp : 按ctrl+d得到包含regexp的列表
换行 %s/;/;\r/g
打开文件时指定编码 :e ++enc=utf-8 myfile.txt

Cut
cut -d ‘,’ -f 1 使用逗号分隔输入,并打印出第一列

stat
stat filename

date
前一天的日期 date -d ‘-1 day’ +%Y-%m-%d
显示file的最后修改时间 date -d file

Sudo
追加sudo :w !sudo tee %

Ssh
搭桥 ssh -t reachable_host ssh unreachable_host
比较文件ssh user@host cat /path/to/remotefile | diff /path/to/localfile -

Tcpdump
tcpdump -i eth1 src host 123.125.64.8 -nnxx and tcp[13]=24 -s 1500

strace
strace -f -o configure-strace.txt -e execve ./configure

enca
enca -L zh_CN file 检查文件的编码
enca -L zh_CN -x UTF-8 file 将文件编码转换为”UTF-8″编码
enca -L zh_CN -x UTF-8 < file1 > file2 如果不想覆盖原文件可以这样

sort
`sort result.log | uniq -c | sort -gr > result_sort.log`;

Grep
Grep -E http://[^/]*$
在命令提示符下无法直接按TAB键输入制表符,你是怎么输出来的?
先按 CTRL+V,再按 Tab 键

Vimdiff
-O 垂直显示 -o 水平上下显示

Mail
cat sql |mail -s “请验证” yanlichun@baidu.com

perl
查看已经安装的perl包,140行的代码
安装NET::SSH
perl -MCPAN -e shell
cpan> install NET::SSH
i /NET::SSH/

ssh
远程执行grep时,正则表达式要经过转义。(是否是所有命令都要对参数转义,不止是grep?)
Ssh host Grep –E \\\burllist filename

Grep
OK: grep -E “\b以下输fdf ” /home/mis/mis/urlmask/file/sensitive_government_exact
NO: grep -E “\b斤斤计较斤斤计较斤斤计较斤斤计较 ” /home/mis/mis/urlmask/file/sensitive_government_exact

任务的并发执行

命令写法执行方式;cmd1 ; cmd2  不管cmd1执行的结果如何,都执行cmd2&&cmd1 && cmd2 只有cmd1执行返回的结果是成功的,才执行cmd2||cmd1 || cmd2  表示 cmd1 返回结果为假时就执行 cmd2例子cmd1 && cmd2; cmd3

cmd1 is executed, if it succeeds, then cmd2. and then cmd3 (regardless of cmd2 )

cmd1 is executed, if it fails, then cmd3 (cmd2 won’t be executed)

查看机器的外网和bignat情况

命令查看方法/sbin/route –nDestination:路由表条目使用的网络范围。如果一个IP数据包的目的地址是route输出中某一行的网络的某个部分,那么将会使用这个条目来路由这个数据包。在配置网络时,要为机器指定接纳数据包时该包要阅历的途径。route为ifconfig命令配置的网卡配置静态路由。Gateway:指的是一台主机,接受发给指定Destination的数据包。因为这个输出是发自一台主机的(而不是一个作为专门路由器的计算机的), 所以路由字段可以是星号(*)或是默认网关;星号表示Destination是在主机所属的网络(因此不需要路由),默认网关指的是将所有非本地的流量都 发送到的一个指定IP。 Genmask表示路由的网络掩码。在把它与路由的目标地址执行比拟之前,内核议决Genmask和数据包的IP地址执行按位”与”操作来配置路由。 Flags:9个单字母的标志位,表示路由表条目的信息。U表示路由启动;G表示路由指向网关、大多数其他标志(都可以通过输入manroute在route命令的在线帮助手册中找到)只用于专门的路由器,而不是一台单机,表示路由是如何通过路由守护进程来创建和更新。 Metric:到达指定网络所需的中转数(路由器的数目),在Linux内核中没有用。 Ref:对这个路由的引用次数,在Linux内核中没有用。 Use:这个路由器被路由软件查寻的次数,可以粗略估计通向指定网络地址的网络流量。 Iface:表示目的地址,指定网络的数据包应该发往哪个网络借口/sbin/ifconfig 什么是LO接口?作用是什么?在LINUX系统中,除了网络接口eth0,还可以有别的接口,比如lo(本地环路接口)。

假如包是由一个本地进程为另一个本地进程产生的, 它们将通过外出链的’lo’接口,然后返回进入链的’lo’接口.具体参考包过滤器的相关内容。

cvs

HEAD版本库中最新的(或者是“最年轻的”)版本。

BASE工作拷贝中一个条目的修订版本号,如果这个版本在本地修改了,则“BASE版本”就是这个条目在本地未修改的版本。

COMMITTED项目最近修改的修订版本,与BASE相同或更早。

PREV一个项目最后修改版本之前的那个版本,技术上可以认为是COMMITTED -1。

库依赖

命令: ldd ldconfig

/etc/ld.so.conf; /etc/ld.so.cache  /etc/ld.so.preload

变量:LD_LIBRARY_PATH    LD_PRELOAD

顺序:

权限

t:如果文件设置了t权限则只有属主和root有删除文件的权限,通过chmod +t filename 来设置t权限。

i:不可修改权限  例:chattr u+i filename 则filename文件就不可修改,无论任何人,如果需要修改需要先删除i权限,用chattr -i filename就可以了。

a:只追加权限, 对于日志系统很好用,这个权限让目标文件只能追加,不能删除,而且不能通过编辑器追加。可以使用chattr +a设置追加权限。

进程

The OS keeps the zombie around in case the parent process eventually decides to retrieve the child’s exit status information.

xargs

说白了,xargs就是把很多行变为一行!

fgrep -f file url_list_outside    等同于   cat file |xargs -i grep {} url_list_outside

xargs cat的区别:find . -name “install.log” -print | cat 和  find . -name “install.log” -print

multipart/form-data编码:

multipart/form-data基本思想是用分割符来分割各个字段,

application/x-www-form-urlencoded编码方式,编码后形式:name=value1&age =11&…

表单中enctype=”multipart/form-data”的意思,是设置表单的MIME编码。默认情况,
这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;
只有使用了multipart/form-data,才能完整的传递文件数据

application/x-www-form-urlencoded:窗体数据被编码为名称/值对。这是标准的编码格式。
multipart/form-data:窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分。
text/plain:窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符


原创粉丝点击