一.Linux常用命令(续前节3)
1.文件搜索命令
- find [搜索范围] [ 匹配条件]:文件搜索
–name 文件名(根据文件名)
–size 数值(根据大小查:+ -)(扩展:-a,-o :find /etc -size +16 -a -size -20)
–user 用户名(根据用户查)
-cmin/-amin/-mmin 时间(根据时间)
-cnewner file(查找的比这个文件新的文件)
iname (对大小写不敏感)
find /etc –name inittab -exec [命令] {} \; (固定格式:{}中什么都不写,从前面自动获取,前后有空格)
- grep [指定字串] [文件]:在文件中搜索字串匹配的行并输出
-i 不区分大小写;-v 排除指定字串
2.统计命令
- wc (Tab按照四个空格算)
-c :统计字节数;-l:统计行数;-m:统计字符数;-w:统计字数;-L:打印最长行的长度
3.裁剪命令
- cut
从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出,如果不指定file,将读取标准输入。必须指定-b、-c、-f标志之一。
-b:以字节为单位;
-c:以字符为单位;
-d:自定义分隔符,默认为制表符;
-f:与-d一起使用,指定显示哪个区域
例子如下:
cut -d ":" -f 2 passwd
cut -b 3 passwd
cut -c 3 passwd
- sort
-b:忽略每行前面开始出的空格字符
-n:依照数值的大小排序
-r:以相反的顺序来排序
-t<分隔字符>:指定排序时所用的栏位分隔字符
-k:选择以哪个区间进行排序。
-u:全局去重- uniq(删除文件中的重复行,比较的是相邻的行,故在发出uniq命令之前,请使用sort 命令使所有重复行相邻)
-c:在输出行前面加上每行在输入文件中出现的次数
-d:仅显示重复行
-u:仅显示不重复的行
4.压缩解压命令
- tar 选项 [压缩后文件名] [目录]
- -C 指定解压的路径,例子:tar -zxvf test.tar.gz -C /home/dal/test
举例:tar –zc/xvf test.tar.gz test(c为打包,x为解压缩,.tar.gz格式为固定)
- bzip2 选项 [文件],bunzip2 选项 [压缩文件]
-k:保留原文件
5.网络命令
- wall:发广播信息
- ping 选项 IP地址:测试网络连通性
-c指定发送次数
- ipconfig 网卡名 IP地址:查看和设置网卡信息
- last:列出目前与过去登入系统的用户信息
二.重定向
1.使用场景
屏幕输出的信息需要存下来;背景执行中的程序,不希望他干扰屏幕正常的输出结果;系统的例行命令的执行结果存下来;对于
错误讯息以『2> /dev/null 』将他丢掉时;错误讯息与正确讯息需要分别输出。
2.符号
>覆盖 ;>>追加 ;<输入
0:标准输入;1:标准输出;2:错误输出
举例:Ls 1 2 > 3(=ls 1 2 1>3) :将正确信息输入3;Ls 1 2 &>3 :将正确和错误的都输入3
三.Vim编辑器
过程:i 插入;Esc : 进入命令行模式;w保存 ;q 退出 ;wq 保存并退出 ;q!强制退出
查找:?1 :查找1 ;n/N :下一个(一个从上一个从下)
替换:%s/1/2/g:替换所有1为2;%s/1/2/gc:替换时提醒确认(%代表全局)
常用:0 移动到行首;$ 移动到行尾;G 移动到最后一行;nG 移动到第n行
dd 删除光标所在行;ndd 删除包括所在行的n行文本;
Y 复制到当前行的编辑缓冲区;nY 复制当前行开始的n行至编辑缓冲区;
p 将编辑缓冲区的内容粘贴到光标后的一行; P 将编辑缓冲区的内容粘贴到光标前的一行;
u 撤销
四.正则表达式
1.作用
文本查询和字符串操作,完成数据过滤
2.系统使用(通配符)
* 匹配任意多个字符;
? 匹配任意一个字符;
[...] 匹配括号内出现的任意一个字符;
[!...] 不匹配括号内出现的任意一个字符
3.grep等工具使用(元字符)
- 语法
-a 将binary文件以text文件方式搜寻数据
-c 计算找到‘搜寻字符串’的次数
-i 忽略大小写的不同
-n 顺便输出行号
-v 显示没有‘搜寻字符串’内容的一行
- 字符匹配:
. 匹配任意单个字符
[] 匹配指定范围内任意单个字符
[^] 匹配指定范围外的任意单个字符
- 匹配次数:
* 匹配前面的字符任意次
.* 任意长度任意字符
\{m\} 匹配前面的字符m次
- 位置锚定
^ 行首;$ 行尾;^PATTERN$ 用于匹配整行;^$ 空行
\< 词首;\> 词尾;\<PATTERN\> 匹配整个单词
五.补充
管道(|):|前面的输出送给后面作为参数
使用dd命令产生一个100M的文件:dd if=/dev/zero of=1.txt count=10 bs=10Mxargs命令:通过管道接受字符串,将收到的字符串通过空格分割成许多参数,然后传递给其后的命令