一、cat工作原理
cat命令只想文件,把文件打开后,将文件中所有内容一次性读到内存中,从内存里一次性输出到屏幕上,此时可能存在内存装不下的情况,因此cat命令只能查看小文件内容,不能读取大文件,对于大文件来说是禁用的
二、sed工作原理
将处理好的文件一条一条的输出,不会占用大量内存,适用于处理大数据时
=====================================================================
三、sed命令=====增删改查、备份
sed -i.bak 's///' 先备份再修改
sed '5i xxxxxx' test 在第5行上面增加一行
sed '5a xxxxx' test 在第5行下面增加一行
sed '5s#^#xxxxxxxxxx#' test 在第5行行首增加xxxxxxxx
sed '5s#$#xxxxxxxxx#' test 在第5行行尾增加xxxxxxxx
sed '5,10s#^#xxxxxxxx#' test 多行行首增加xxxxxx
sed '5,$s#$#xxxxxxxx#' test 多行行尾增加xxxxxxx
1、删除
sed -n 'd' test 所有删除
sed -n '2d' test 第二行删除
sed -n '$d' test 最后一行删除
sed -n '2,5d' test 二到五行删除
sed -n '2d;5d' test 第二行和第五行删除
2、替换
sed 's#a#b#' test 每行第一个a替换成b
sed 's#a#b#g' test 所有的a替换成b
sed -i 's#a#b#g' test -i代表对原文件进行修改
sed -i.bak 's#a#b#g' test 先本分再修改
3、查找
sed -n '' test 显示所有
sed -n '/ /' test 输出包含的字符的行
sed -n '20,30p' test 显示20到30行
sed -n '20p;30p' test 显示第20行和第30行
sed -n '$p' test 显示最后一行
sed -n '2/a/p' test 显示第二行包含P的
sed -n '/a/,/b/p' test 查看包含a和b的
sed -n '/a|yy/p' test 查看包含a或yy的
4、备份
sed -i.bak 's///' 先备份再修改
四、显示行号、换行,每行两个元素
1、/n换行用法
sed -n '3,5{p;=}' test | xargs -n2 ####‘=’显示行号,然后进行换行,
每行两个元素####
1、两行合并成一行
-L 2
=============================================================
2、换行
sed '2a 1234\n2345' test 1234后面进行换行
#####sed的反向引用##################################################
五、查看程序开机自启动 chkconfig命令
1、批量关闭3模式下的开机自启动
开启与关闭服务的命令:
chkconfig 服务名 on chkconfig 服务名 off
=============================================
2、五个服务必须开启
network 网络服务
crond 定时任务
sshd 远程连接服务
sysstat 系统工具包(检测系统用的)
rsyslog 日志服务
六、Linux启动的7个程序目录
/etc/inittab设置开机模式配置文件
0 关机
1 单用户模式
2 没NFC(没网络服务)多用户模式
3 多用户模式,命令模式
4 保留模式
5 桌面模式
6 重启模式
最后一行是开机自启动的模式
七、sed命令高级用法
1、用sed命令抓ip地址
-r代表支持扩展正则 ()反向引用
ifconfig eth0 | sed -n '2p' | sed -r 's#.*addr:(.*)Bcast.*#\1#'
2、sed批量关闭服务
chkconfig | egrep -v "sshd|crond|network|sysstat|rsyslog" | grep "3:on" | sed -r 's#(.*)0:.*#chkconfig \1 off#' | bash
命令************** |bash代表执行每条命令
3、批量命名文件
find -type f -name "*_finished.jpg" | sed -r 's#^(.*)_finished(.*)#mv \0 \1\2#' | bash
************************************************************************
###
find . -type f -name "*jpg" | sed -r 's/(.*)_(.*).jpg/mv _\2.jpg baoma_\2zzz.jpg/' | bash
=====================================================================
=============================================
seq命令
格式:seq 起始值 公差 结束值
=============================================