文件控制

cat:将文件的#所有内容#都在命令行中显示出来。例如要查看/etc/selinux/config文件内容
cat /etc/selinux/config

more/less:提供一个浏览器,将文件内容在浏览器用分页显示。
less /etc/httpd/conf/httpd.conf
“q”退出浏览器

head:从文件最上面往下显示n行
tail:从文件最下面往上显示n行

例如查看/etc/httpd/conf/httpd.conf的前15行
head -15 /etc/httpd/conf/httpd.conf

高级用法显示文件的11~15行
head -15 /root/test/ | tail -5
tail -10 /root/test/ | head -5

请显示/etc/httpd/conf/httpd.conf文件的第199行是什么
head -199 /etc/httpd/conf/httpd.conf | tail -1

grep:通过某种条件,检索显示文件内容(看你想看的,屏蔽你不想看的)
例句
grep haha /root/test——显示test文件中所有带haha的行
grep ^haha /root/test——显示以haha开头的行
grep haha$ /root/test——显示以haha结尾的行
在条件前加-v意为不显示符合条件的行
高级用法
配合管道符用来检索过滤管道符右侧命令的输出结果
例如
df -hT | grep boot$
显示boot结尾那行的磁盘占用信息
ls -lh | grep ^d
显示目录中所有文件夹的详细信息

实际案例
现在需要显示httpd.conf中的有效行(去掉#开头的注释行,去掉空格行)
grep -v ^# /etc/httpd/conf/httpd.conf | grep -v ^$

现在需要显示httpd.conf中的有效行(去掉#开头的注释行,去掉空格行)中包含Server的行中以host结尾的行
grep -v ^# /etc/httpd/conf/httpd.conf | grep -v ^$ | grep Server | grep host$

wc:统计文件内容
wc -l 文件:统计文件一共多少行
高级用法
通过管道符统计管道符左侧命令的输出结果有多少行
grep -v ^# /etc/httpd/conf/httpd.conf | grep -v ^$ | wc -l
显示去掉注释去掉空行还剩多少有效行

find / -name ".*" -a -type d | wc -l

★★★★★tar归档工具
打包
tar cfz 包的存放位置 被打包1 被打包2 被打包3。。。。
tar cfj 包的存放位置 被打包1 被打包2 被打包3。。。。
例句
tar cfz /root/etc.tar.gz /etc/ /bin/ /sbin/
tar cfj /root/etc.tar.bz /etc/ /bin/ /sbin/
tar cf /root/etc.tar /etc/ /bin/ /sbin/
ls -lh /root/查看压缩后的文件信息
解包
tar xfz 包的存放位置 -C 解压缩的目的地
tar xfj 包的存放位置 -C 解压缩的目的地
例句
tar zxf /root/etc.tar.gz -C /tmp

查看包内容
tar tfz /root/etc.tar.gz
tar tfj /root/etc.tar.bz

vi(vim)在字符端的文本编辑器
3种工作模式
刚进去vim编辑器的时候会在命令模式
命令模式:在命令模式下所有的案件均为快捷键
在命令下按a,i,o会进入(插入)输入模式,a光标后一格插入信息,i光标所在位置插入信息,o另起一行插入信息
在(插入)输入模式:下所有的按键都成为(插入)输入信息
在(插入)输入模式下按esc退回命令模式

vim /root/tang.txt(如果文件已存在则为打开文件进行编辑,如果文件不存在,则为新建文件且进行编辑)

在命令模式下按下“:”会进入末行模式(查找,替换,保存,置入等高级搞错需要在末行模式使用特殊命令完成)
末行模式下按esc回到命令模式

命令模式下常用命令
gg:跳转到文件首行
G:跳转到文件尾行
xG或者xgg:跳转到x行(x为数字)
:set nu(在末行模式中输入显示行号的命令)
x和del:删除光标所在位置的字符
dd:删除光标所在行
xdd:从光标所在位置向下删除x行(x为数字)
yy:复制光标所在行
xyy:从光标所在位置向下复制x行(x为数字)
p:光标所在行往下粘贴(粘贴一次使用)
P:光标所在行往上粘贴(连续粘贴多次使用)
/关键字:从光标所在位置向下文查找
?关键字:从光标所在位置向上文查找
在激活查找功能以后,n跳转到下一个目标,N跳转到上一个目标
u:全文撤销一次操作(类似windows中的ctrl+z)
U:只撤销光标所在行一次
ZZ:保存退出,等同于末行模式:wq

末行模式常见命令
:w——保存当前内容
:w 文件路径——当前另存为其他文件
:q——退出不保存
:q!——强制退出不保存
:wq或者:wq!
:e——用当前vi编辑器打开另外一个文件(当前文件就退出了)
:r——将另外一个文件的内容置入到当前文件光标所在行往下
例: :w /root/newfile
将把当前编辑的文件另存到/root目录下,文件名为newfile

   :e  ~/install.log
 将直接打开当前用户宿主目录中的install.log文件进行编辑

   :r  /etc/filesystems

  将把系统文件/ec/filesystems中的内容复制到当前文件中
 
   :r /root/test
   就会将/root/test文件的内容置入当前文件中


:sp——分屏编辑多个文件
按住ctrl再按一下w,放开左手,用↑↓箭头切换多个文件
例如
:sp /root/test

查找替换常见命令
:50,90 s/Server/fuwuqi/g——替换50行到90行中所有的Server为fuwuqi
g的作用:如果一行中有3处可替换,在没有g的情况下,只替换第一处,就开始查找下一行了,有g的话3处都会替换
:% s/Server/fuwuqi/g——替换全文的Server为fuwuqi
补充:可以选择在g的后面加个c,意为交互式替换。

例: :% sub /initdefault/bootdefault/g
将会把当前文件中的所有的initdefault字符串替换为bootdefault

     :5,15  sub /initdefalt/default/g
    将文档中的第5-15行中的initdefault字符串换成default  

vi编辑器实验
使用vim编辑器在/root/下创建你自己名字的文件例如tangrui.txt
在文件中输入你的班级和名字,然后在文件中复制你的班级和名字行5次
将/root/install.log文件的内容置入到你的文件中,并且从第50行开始向下删除9999行
使用查找替换将s2t117替换为benet
最后保存退出

原文地址:https://www.cnblogs.com/guarderming/p/7604187.html