常用命令 编辑

TMOUT=0

 

vi

:set nu 显示行号

:set ignorecase 忽略大小写 :set ic

:set showmatch  设置匹配模式

:set hlsearch 高亮显示搜索结果

/ 向后搜索

?向前搜索

 

cp 

-f force

-p 保留原文件的属性(作者,权限,时间)

-r 递归复制

 

scp

scp 文件名 用户名@目标IP:目标路径

 

ls

-h  human readable

-l long list format

-r  reverse order

-S sort by size

-t sort by time

-R list subdirectories recursively

常用 ls-lrt 

 

tar -zcvf 压缩包名 待压缩文件目录

 

stat 查看文件详情

lsblk 显示存储设备信息

 

du

-a 显示全部目录和子目录下的每个档案占用的磁盘空间

-h  human readable

-s 只显示各档案大小的综合

--exclude= 略过制定文件夹或目录

示例

du -ahx /home |awk '$1 ~/(^.G|..G)/'

说明 ^ 匹配输入字符串的开始位置

        . 匹配除换行符之外的任意单个字符

       选择,用圆括号将所有选择项括起来,相邻选项用 | 分割

df -h 目录 显示目录对应的文件系统及大小

 

find 

find 目录 -选项 动作[-print -exec]

-L 注意:find遇到软连接不会递归进入,加上-L 选下即可(不能跟type混用)

-i 忽略大小

-size 根据文件大小搜索

-atime 访问时间 -7查找7天内访问的文件

-mtime 修改时间 +7查找7天前被修改的

-type 文件类型: l 软连接

-a 且

-o 或

-exec 对匹配的文件执行命令,格式

-exec command {} \; 为每个找到的结果执行命令。

  注意{} 和 \ 之间的空格

  注意,  {} 是占位符,代表find找到的每个文件,    \;代表结束-exec命令,告知find命令参数已结束,这里的分号不能少,反斜杠类似于转义字符。

还有一种语法,格式如下,

-exec command {} + 表示对所有结果参数执行命令一次,注意command只执行一次

 

例 find /tmp -mtime +30 -exec rm -rf {} \;

这种方式文件名有空格等特殊字符也可以处理。

find . -name '*.gz' -exec zgrep -H 'test' {} \;

说明,-H 显示每个匹配的文件名

find . -name '*.gz'|xargs zgrep 'test'

 

xargs

-I  指定参数的占位符,默认占位符是{}

find -mtime -1 |xargs -I {} rm -rf {} 

注意:要删除带有空格的文件名,必须要指定 -I {}

 

grep

-i 忽略大小写

-r 递归目录

-H 显示文件名

-v 反转匹配

-n 显示行号

-E 正则表达式 例如 grep -E "word1|word2|word3"   file.txt

-A # 显示匹配结果之后的#行
-B # 显示匹配结果之前的#行
-C # 显示匹配结果前#行和后#行

 

sort

-t 分隔符

-r 反向排序

-u 去重

-k 以哪个字段排序,默认第一个字段,

-n 排序类型数字

举例

sort -k3nr k3按第三个字段倒序排序

 

uniq 经常和sort合用,为了uniq起作用,必须先排序。

 

head -10 file

打印文件的开头10行

 

tail 文件名

默认打印文件的最后10行

-f 循环读取

-n 20 显示最后20行

-n +5 从第五行开始显示

 

查看前100行

cat test.log |head -n 100

查看后100行

cat test.log |tail -n 100

 

crontab

格式: min hour day month week command

通配符

* 代表所有可能的值,如果min 是星号,表示满足其他字段条件后每分钟都执行

- 指定一个范围,如5-9 表示5,6,7,8,9

/ 指定时间的间隔频率,如分钟是 */10 ,表示每10分钟执行一次

 

 

lu 软连接

lu -s /dev/test /app/testdir 创建软连接

 

sed 非交互式编辑器

sed选项

-i 直接修改,不在屏幕上输出

-n 使用安静模式,

sed定位

sed /REGEXP/ 通过//之间的正则来匹配

\cREGEXPc 当匹配的内容力有/时,通过 \c 和 c之间的正则来匹配,c可以是任意字符

操作命令

p 打印匹配行

sed -n '/aaa/p' test.txt

d 删除匹配行

sed -i '/yao/d' 

sed -i '/3d' 删除第三行

s 替换匹配内容

sed -i 's/aaa/xxx/g'

c 替换整行

a 在当前行后添加一行

sed -i '/yao/a tired' 

i 在当前刚之前插入

sed -i '/yao/i tired'

n 指的是从匹配的下一行开始处理,n 2 从匹配的第二行

sed -i '/aaa/{n;s/bbb/ccc/}' test.txt

 

sed单引号和双引号的区别

双引号可以使用shell变量,单引号不行

 

 

awk

主要用来格式化

是一个强大的文本分析工具,把文件逐行读入,默认以空格切片并处理

awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file

awk '/pattern/ {action}' filename

pattern 表示正则,用//括起来,action 用{} 括起来

省略pattern表示对所有行执行action,省略action表示对符合条件的行执行默认print动作

action 可以有多个语句,以;号隔开

-F 分隔符,默认空格

内置变量

$0 当前记录

$1 ~ $n 当前记录的第n个字段

NF 统计总字段数

 

/pattern/ 匹配代码块

/pattern/ 纯字符匹配      

awk '/mysql/{print $0}' /etc/passwd                   

!/pattern/ 纯字符不匹配   

awk '!/mysql/{print $0}' /etc/passwd                  //输出不匹配mysql的行

~/pattern/  字段值匹配

awk -F: '$1~/mail/{print $1}' /etc/passwd           //第一个字段$1匹配指定内容才显示

 !~/pattern/  字段值不匹配

awk -F: '$1!~/mail/{print $1}' /etc/passwd          //不匹配

 

cat /etc/passwd |awk -F ':' '{print $1}'

cat /etc/passwd |awk -F ':' '{print $1"\t"$7}'

cat /etc/passwd |awk -F ':' 'BEGIN {print "name,shell"} {print $1","$7} END {print "blue,/bin/nosh"}'

awk工作流程是这样的:先执行BEGING,然后读取文件,读入有/n换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域,随后开始执行模式所对应的动作action。接着开始读入第二条记录······直到所有的记录都读完,最后执行END操作。

 

tr命令

transform 用于字符转换 替换和删除,其功能类似于sed命令,但只能对stdin操作,不能直接对文件操作

tr set1 set2 用set2中的字符替换set1中字符

tr _d set1 删除字符串

 

 

将十进制线程号转换为16进制格式

printf '%x\n' tid

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值