- 论坛徽章:
- 2
|
1.如何在文件的第一行添加内容
sed '1i djijijiijddd' ufile
或
awk 'BEGIN{print "新行内容"} {print $0}' urfile
2.显示当前目录下除子目录/aaa外的所有文件及文件夹,find,
find . \( -path "./aaa" -prune \) -o \( -name "*.txt" -print \)
3.例如我现在在目录prod下,而prod下有a,b,c,d,e.....等目录,我想找a,b,c,d,e下所有的ZIP文件,并且只是在a,b,c,d,e的目录下
如果用find . -name *.zip的话,则会搜索到任意深度,我现在只想找a,b,c,d,e一级 ...
[/url]
CODE:
find prod/ -regex 'prod/[abcd]*/[^/]*.zip'
4.查找近一个小时更新的文件
find . -cmin -60 -print
5.查看java进程的内存情况
jmap -heap pid
6.让VI显示行号
进入vi然后敲 :set number
7.替换IP地址
sed -ri 's/([0-9]{1,3}\.){3}[0-9]{1,3}/localhost/g'
8.
[url=http://www.cnitblog.com/201/archive/2006/08/03/14632.html]如何得到Linux 系统是32位还是64位?
我在 RHEL4 update1 x86_64上运行,得到的却是32.
比较准确的是: getconf LONG_BIT, 就可以在32/64位平台上得到正确的值。
也可以参考如下系统信息。
cd /proc
ls
cat version
cat cpuinfo
9./etc/ethers排序
/etc/ethers:
192.168.0.1 MAC
192.168.0.11 MAC
192.168.0.111 MAC
192.168.0.25 MAC
192.168.0.253 MAC
192.168.0.179 MAC
192.168.1.1 MAC
192.168.1.11 MAC
192.168.1.111 MAC
192.168.1.21 MAC
192.168.1.2 MAC
192.168.1.178 MAC
192.168.1.234 MAC
使用sort排序,使之成为:
192.168.0.1 MAC
192.168.0.11 MAC
192.168.0.25 MAC
192.168.0.111 MAC
192.168.0.179 MAC
192.168.0.253 MAC
192.168.1.1 MAC
192.168.1.2 MAC
192.168.1.11 MAC
192.168.1.21 MAC
192.168.1.111 MAC
192.168.1.178 MAC
192.168.1.234 MAC
192.168.0.* 192.168.1.*是作为一个字符在此出现的吗?
sort -t. +2 -3 +3n /etc/ethers
-t 域分隔符;用非空格或tab键分隔域;
-n 指定分类是域上的数字分类.
后面的+2 -3 +3n是什么意思啊?
+2 -3 表示以第3列作为关键字排序
+3n 表示以第三列以后的列作为第二个关键字以数字形式排序
2月4日 238.9
3月4日 1,327.80
2月20日 442.00
2月8日 298.00
3月8日 98.00
10.awk中的substr的使用
awk '{print substr($5,1,15)}' data.txt
11.VIM技巧
(1).w跳到下面一个单词(word)
(2).b跳到上面一个单词
(3).e跳到下面一个单词的最合一个字符
(4).ge跳到上面一个单词的最后一个字符
移动光标
h 左移动
j 下移动
k 上移动
l 右移动
打开显示模式的开关 ::set showmode
a 增加模式
i插入字符
x删除一个字符
dd删除一行
J删除换行符
u撤销最后一次
U撤销游标所在行的变动
CTRL-R(重做)来反撤销
o 另起一行在下面
O 另起一行在上面
A 在行的末尾增加
I 在行的开始插入
( 跳到上一个句子
)跳到下一个句子
{ 跳到上一个段落
} 跳到下一个段落
数字计数法如向上移动9行可以使用9k
$ 移动到当前行的行尾
^ 移动到当前行非空白的行首
0(零)把光标移动到行首(不管是不是空白)
$可以接受计数,如1$光标移动到当前行的行尾,2$则会移动到下一行的行尾
f单字符搜索命令 如“fx"在当前行搜索第一个"d",同时可以带计数功能,如"3fl"表示搜索当前行的第3个"l"
F命令是向左方向进行搜索
t命令与f命令相似但是他不是光标做在搜索到的字符,而是落在搜索到的字符的前一个字符上
T命令是向左方向进行搜索
%命令匹配2个括号
G跳转到哪一个行24G,跳转到24行 ,G跳转到最后一行,gg跳转到第一行,G跳转到最后一行
22j 向下22行
H 命令跳转到当前屏幕的最上面
M 命令跳转到当前屏幕的最中间
L 命令跳转到当前屏幕的最下面
50% 表示到文件的50%地方
CTRL+G 告知当前所在的位置
:set number 显示行号 :set nonumber关闭行号
:set ruler 屏幕右下角显示光标的位置
CTRL-U 文本向下滚动半屏
CTRL-D 窗口向上移动半屏,相当于文本向上移动了半屏
CTRL_E 向上滚动一行
CTRL-Y 向下滚动一行
CTRL-F 向前滚动一整屏
CTRL_B 向后滚动一整屏
zz 把当前行置于屏幕正中央
zt 把当前行置于屏幕顶端
zb 把当前行置于屏幕低端
/138 简单搜索如果有.*[]^%/?~$ 这些字符需要用\进行转译,查找下一个按n键,如果需要查找第3个就键入3n
?与/使用方法相同,只不过搜索的方向是相反的。
N命令是反方向进行搜索的
:set ignorecase 忽略大小写
:set noignorecase 取消忽略大小写
搜索命令历史,直接输入/然后按上下键 如果输入/o,然后再输入上下键,则是看到o开头的搜索结果
* 选中当前单词进行查找
# 是*的反向搜索版
/the\> 查找the开头的单词
/\ 查找单词the
:set hlsearch 高亮显示搜索结果
:set nohlsearch 关闭高亮显示搜索结果
:set incsearch 键入搜索后开始搜索
:set nowrapscan 键入回车后才开始搜索
:set list 显示换行符,制表符
/^a匹配开头是a的
/3333$ 匹配结尾是333的
/ee.dd .匹配单字符
''两个引号可以跳回原来的位置,当使用G跳转的时候
:jumps 会列出曾经跳转过的列表
使用ms做标记 ,然后使用's跳转到标记的位置
dw删除一个单词
d4w删除4个单词
d$删除当然光标到行尾的字符
D从光标删除到行尾
输入P或p 就可以粘贴,可以贴上修改,复制,删除的如果是一行的话
p 会贴在游标的下面一行
P 会贴在游标的上面一行
dtc删除游标与字母C之间的内容
rc 替换一个字母用C来替换
x 删除一个字母
5dd 删除5行
5yy 复制5行
5x 删除5个字母
R 替换字母用字母直到按ESC
10.--的意义
rm -- -b 可以删除-b
--是什么意思呢?
-- 的意思是 end of option
所以-b就不会当成参数了
11.请问如何在指定的范围内进行字符串查找?
我想指定在m行和n行之间查找指定字符串str,该怎么写命令呢?
sed -n 'm,n{/str/p}' urfile
12.AWK另类方法分割文件
Q:
hp unix,ksh环境
由于系统限制awk只能同时处理1024个文件。
一个文件134340000行.
shell怎样分成10000行,名为abc[1].txt ... abc[n].txt
的多个文件。
A:
awk 'NR%10000==1{file="abc["++i"].txt"}{print>file}' urfile
13.find查找文件
查找当前目录,包括所有子目录里,除了 .sh结尾的所有其他文件。
如果用find,该怎么写
find -type f ! -name "*.sh"
find . -type f -not -name "*.sh"
14.查找字符串中的数字
#a=abc:12,99
#echo $a
abc:12,99
如果我想用一个命令,只输出12,要怎么办?
echo $a | awk -F '[:;]' '{print $2}'
注意[:;]是正则表达式,分隔符可以使用:或;都可以
使用grep 的方法
echo ${a#*:} | grep -Eo '^[0-9]+'
echo ${a#*:} 截掉变量$a中:及前面的字符
15.wc -L的含义
-L, --max-line-length print the length of the longest line
打印最长的一行的行数
16man信息直接转成pdf
man -t sort | ps2pdf - > man_sort.pdf
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/61619/showart_1830981.html |
|