日期:2014-05-16  浏览次数:20845 次

linux常用文本操作命令
---------- vi ----------
vi +n filename:打开文件,并将光标置于n行行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的字符串处

***** 命令模式 *****
ctrl+b:向上翻一页
ctrl+f:向下翻一页
ctrl+d:向上翻半页
ctrl+u:向下翻半页

ctrl+g:显示光标所在行号
行号G:移动到文件指定行

h:光标左移一个字符
l:光标右移一个字符
k:光标上移一行
j:光标下移一行
0:光标移到当前行行首
$:光标移到当前行行尾
G:光标移到最后一行

cw:更改光标所在位置当前字符

i:在光标所在位置前插入字符 
a:在光标所在位置后插入字符
O:在当前行前插入空行
o:在当前行后插入空行

dd:删除光标所在行
X:删除光标所在位置前一个字符
x:删除光标所在位置后一个字符
字符数dw:删除光标所在位置开始及其后的字符数-1个字符
行数dd:删除当前行及其后行数-1行

r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键

yy:复制光标所在行
行数yy:复制从光标所在行向下指定行内容
p:粘贴

u:取消上一次操作

***** 底行模式 *****
/pattern:从光标开始处向文件尾搜索pattern 
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索
N:在反方向上重复上一次搜索

s/p1/p2/g:将当前行中所有p1均用p2替代
n1,n2s/p1/p2/g:将n1至n2行中所有p1均用p2替代
%s/p1/p2/g:将文件中所有p1均用p2替换
n1,n2 co n3:将n1到n2行之间的内容复制到第n3行下
n1,n2 m n3:将n1到n2行之间的内容移至第n3行下
n1,n2 d:将n1到n2行之间的内容删除
(注意: 其中s为substitute,%表示所有行,g表示global)

set nu:显示行号
:行号:移动到文件指定行

w filename:当前编辑的文件另存为filename
n1,n2w filename:将n1到n2行之间的内容另存为filename
wq filename:当前编辑的文件另存为filename并退出vi

---------- grep ----------
grep -i:不区分大小写
grep -n:在匹配行前显示行号
grep -c:显示匹配行的总行数
grep -l:显示包含匹配行的文件名列表
grep -a:将binary文件视为文本文件搜索
grep -r:递归搜索目录下的所有文件
grep -?:同时显示匹配行的上下?行,如:grep -2 pattern filename同时显示匹配行的上下2行。

日志统计:
grep -ic 'WARN\s*\w*.\w*\s-\s【进入服务拦截器】\w*\s\w*.*UserInfoQueryService' /home/log/logs/cif-1-1/cif-service.log.2008-08-28
./gmalipay.sh cifserver 'grep -c 'WARN\s*\w*.\w*\s-\s【进入服务拦截器】\w*\s\w*.*UserInfoQueryService' logs/`hostname`/cif-service.log.2008-08-28'

---------- locate ----------
locate -d:指定所使用的数据库文件(默认位于/var/lib/slocate/slocate.db)

---------- less ----------
less -N:在每行前输出行号
less +n:从第n行开始显示
less -p pattern:搜索pattern

b:向上翻一页
space:向下翻一页
u:向上翻半页
d:向下翻半页
g:移动到第一行
G:移动到最后一行
y:向上移动一行
enter:向下移动一行
v:调用vi编辑器
q:退出

---------- more ----------
more +n:从第n行开始显示

Nenter:向下移动N行
b:向上翻一页
space:向下翻一页
=:显示当前行号
v:调用vi编辑器
q:退出


拷贝文件
scp admin@test.p10.alipay.net:/home/admin/test.sh .

svn回滚版本库
svn log ActivateEmailListener.java
svn up -r 4003 ActivateEmailListener.java
svn info ActivateEmailListener.java
svn commit -m "回滚到XX版本"

查找当前目录和所有子目录中的所有文件(包括隐藏文件)
find . -name commons-codec-1.3.jar

添加可执行权限
chmod +x /home/cif/build/run.sh

-rw-rw-r--
最前面那个 - 代表的是类型
中间那三个 rw- 代表的是所有者(user)
然后那三个 rw- 代表的是组群(group)
最后那三个 r--   代表的是其他人(other)

强制递归删除当前目录下所有文件和子目录
rm -rfvd *

输出第n行到第m行日志内容
sed -n '100,150p' error.log

压缩文件
tar -zcvf aaa.tar.gz /aaa

解压缩文件
tar -zxvf aaa.tar.gz

文件对拷
scp ua20071022.dmp root@60.191.41.54:. 

杀进程
killall -9 java

及时显示tomcat窗口最后100行输出
tail -n 100 -f catalina.out

清空文件内容
echo >catalina.out

查看进程
ps -ef
ps aux

恢复窗口
screen -r

查看网络状态
netstat -na

修改文件所有者
chown oracle:oinstall temp01.dbf

校验文件是否完整
md5sum

下载文件
wget

查看磁盘空间
df -h

拷贝目录
cp -R src des

/etc/profile
//配置java环境
JAVA_HOME=/usr/java/jdk1.5.0_13
CLASSPATH=.:$JAVA_HOME/Lib/tools.jar:$CLASSPATH
PATH=$JAVA_HOME/bin:$PATH:$CATALINA_HOME/bin
export JAVA_HOME CLASSPATH PATH
CATALINA_BASE=/home/tomcat
CATALINA_HOME=/home/tomcat
export CATALINA_BASE CATALINA_HOME


drwxrwxrwx    6 oracle   oinstall     4.0K 11月  6 14:59 database

/etc/bashrc
//配置oracle环境
ORACLE_BASE=/home/oracle;
export ORACLE_BASE;
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1;
export ORACLE_HOME;
ORACLE_SID=freeland;
export ORACLE_SID;
ORACLE_TERM=xterm;
export ORACLE_TERM;
PATH=/usr/sbin:$PATH;
export PATH;
PATH=$ORACLE_HOME/bin:$PATH;
export PATH;
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
export LD_LIBRARY_PATH;
CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;
export CLASSPATH;

if [ $USER = "oracle" ]; then
  if [ $SHELL = "/bin/ksh" ]; then
     ulimit -p 16384
     ulimit -n 65536
  else
     ulimit -u 16384 -n 65536
  fi
fi


windows
netstat -ano
显示所有连接和监听端口
以数字形式显示地址和端口号
显示与每个连接相关的所属进程 ID