文件操作命令
vi/vim文件编辑命令
1.一般格式如下:
vi/vim 文件名 //如果该文件已经存在,则打开文件,否则创建并打开文件
2.三种模式介绍与切换
插入模式(编辑模式):可以进行代码的编写
命令行模式:使用vim打开默认就是该模式
末行模式:对文本的操作
文件查看命令
1.more 文件名 :每次显示一个屏幕,回车下一行,q退出,在终端显示
2.less 文件名 :和more类似,但是不在终端显示
3.head -n 文件名:显示前n行内容
4.tail -n 文件名:显示后n行的内容
5.cat 文件名:显示一屏幕的内容,如果内容过多,只显示最后占满屏幕的内容,需要向前翻
find文件查找命令
一般格式为:
find + 目录名称 + 参数
按文件名查找
find /etc/ -name man.c //查找目录/etc中名为man.c的文件
find /etc/ -name *.c //查找目录/etc中文件名以.c结尾的文件
grep 文本搜索命令
grep是一个强大的文本搜索工具,它用正则表达式搜索文本,并把匹配的行打印出来。
一般格式为:
grep 参数 '搜索字符串' 文件名
1.主要参数:
-a :将 binary 文件以 text 文件的方式搜寻数据
-c :计算找到 '搜寻字符串' 的行数
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
--color=auto :可以将找到的关键词部分加上颜色的显示喔!
2.示例
打开并编辑c.c普通文件,文件内容如下
部分语句验证如下:
awk文本分析工具
awk对数据分析并生成报告.awk是以文件的一行为处理单位的。awk每接收文件的一行,然后执行相应的命令,来处理文本。
1.格式:
awk 'pattern + action' 文件名
//pattern 是指awk在数据中查找的内容
//action是指找到匹配内容所执行的一系列操作
2.内置变量
ARGC 命令行参数个数
ARGV 命令行参数排列
ENVIRON 支持队列中系统环境变量的使用
FILENAME awk浏览的文件名
FNR 浏览文件的记录数
FS 设置输入域分隔符,等价于命令行 -F选项
NF 浏览记录的域的个数
NR 已读的记录数
OFS 输出域分隔符
ORS 输出记录分隔符
RS 控制记录分隔符
$0 变量是指整条记录
$1 表示当前行的第一个域
$2 表示当前行的第二个域
3.示例:
统计/etc/passwd:文件名,每行的行号,每行的列数,对应的完整行内容:
#awk -F ':' '{print "filename:" FILENAME ",linenumber:" NR ",columns:" NF ",linecontent:"$0}' /etc/passwd
filename:/etc/passwd,linenumber:1,columns:7,linecontent:root:x:0:0:root:/root:/bin/bash
filename:/etc/passwd,linenumber:2,columns:7,linecontent:daemon:x:1:1:daemon:/usr/sbin:/bin/sh
filename:/etc/passwd,linenumber:3,columns:7,linecontent:bin:x:2:2:bin:/bin:/bin/sh
filename:/etc/passwd,linenumber:4,columns:7,linecontent:sys:x:3:3:sys:/dev:/bin/sh
以:作为分隔符
sed对文件操作
sed一次处理一行,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
sed [选项] [脚本命令] 文件名
1.sed选项
选项 | 含义 |
-n | 只打印模式匹配的行 |
-e | 直接在命令模式上进行sed的动作编辑 |
-f | 直接将sed的动作写在一个文件内 |
-r | 支持扩展表达式 |
-i | 修改读取文件的内容 |
2.sed脚本命令
p | 打印匹配行(和-n选项一起合用) |
= | 显示文件行号 |
a\ | 在定位行号后附加新文本信息 |
i\ | 在定位行号后插入新文本信息 |
d | 删除定位行 |
c\ | 用新文本替换定位文本 |
w filename | 写文本到一个文件,类似输出重定向 > |
r filename | 从另一个文件中读文本,类似输入重定向 < |
s | 使用替换模式替换相应模式 |
q | 第一个模式匹配完成后退出或立即退出 |
l | 显示与八进制ACSII代码等价的控制符 |
{} | 在定位行执行的命令组,用分号隔开 |
n | 从另一个文件中读文本下一行,并从下一条命令而不是第一条命令开始对其的处理 |
N | 在数据流中添加下一行以创建用于处理的多行组 |
g | 将模式2粘贴到/pattern n/ |
y | 传送字符,替换单个字符 |
3.示例(打印具体匹配的行)
只打印匹配的行:
打印匹配区间的行
打印文件中含有匹配字符的那一行
进程相关
ps:只是显示进程的状态,如果想对进程进行实时监控,应该用top。
ps相关的常用命令:
ps -ef //显示所有进程
ps -L //显示线程
ps -eLf //显示所有线程
top:实时的监控系统状态信息和进程所使用的资源。显示进程的数据包括 PID、进程属主、优先级、%CPU、%memory等。可以使用这些显示指示出资源使用量。
网络相关
netstat命令
1.概念:netstat用于显示IP、ICMP、TCP、UDP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
2.参数列表
参数 | 含义 |
-a | 显示详细的网络状况 |
-nu | 显示当前户籍UDP连接状况 |
| 显示UDP端口号的使用情况 |
| 显示网卡列表 |
| 显示组播组的关系 |
| 显示网络统计信息 |
| 显示监听的套接口 |
lsof
概念:列出当前系统打开的文件(以root身份运行)
格式:lsof [常用参数] 文件名
常见实例: