首页 > 代码库 > linux文件的编辑、压缩、归档、操作
linux文件的编辑、压缩、归档、操作
一、文件内容操作(/etc/passwd)
1. cat 查看文件内容比较少的
2. more 可以分页显示
3. less 比more更全面
4. head 默认显示文件头10行
-n 数字 显示头n行
5. tail 默认显示文件尾10行
-n 数字 显示尾n行
-f 实时查看
6. wc 统计
7. grep 输出包含指定字符串的行
-i 忽略大小写
-v 取反
^root 以root开头
root$ 以root结尾
^$ 匹配空行
-E 查找多个关键字,匹配其中任意一个都输出
8. dmesg 查看启动信息
补充:
| 管道 将前一个命令的输出结果交给后一个命令作为输入
> 写入(清空之前文件内容,写入新内容)
>> 追加
# echo xxxxxx 原样在终端输出
二、压缩和归档
1. gzip
gzip 文件名 压缩
gzip -d 文件名.gz 解压缩
2. bzip2
bzip2 文件名 压缩
bzip2 -d 文件名.bz2 解压缩
3. zip
zip 文件名.zip 文件名 压缩
unzip 文件名.zip 解压缩
-d 指定解压位置
4. tar 打包
-c 创建tar包
-z 调用gzip
-j 调用bzip2
-x 解包
-t 查看
-C 指定解压位置
-f 使用归档文件
--remove 打完包后删除原文件
tar -zcf xxx.tar.gz xxx 调用gzip压缩
tar -jcf xxx.tar.bz2 xxx 调用bzip2压缩
tar -ztf xxx.tar.gz 查看xxx.tar.gz里面文件
tar -jtf xxx.tar.bz2 查看xxx.tar.bz2里面文件
tar -zxf xxx.tar.gz 解压xxx.tar.gz
tar -jxf xxx.tar.bz2 解压xxx.tar.bz2
三、使用Vim文本编辑器
1. 三种模式
shell
命令模式
输入模式 末行模式
从命令模式到输入模式:
i 从当前光标前插入一个空字符
o 在当前光标下新加一空行
从命令模式到末行模式:
:
?
/
从输入模式和末行模式返回命令模式:
esc键
2. vim的打开与退出
(1),vim file 若file存在则打开file
若file不存在则新建file
(2),翻页
PgUp 向上翻动一整页内容 = Ctrl + b
PgDn 向下翻动一整页内容 = Ctrl + f
(3),行内的跳转
^ 将光标跳转到本行的行首字符 = Home键和数字0
$ 将光标跳转到本行的行尾字符 = End键
(4),文件行与行之间的跳转
1G=gg 跳转到文件的首行
G 跳转到文件的尾行
#G 跳转到文件的#行(命令模式)
:# 跳转到文件的#行(末行模式)
(5),复制粘贴
yy 复制当前光标所在行
#yy 复制当前光标向下#行
p 粘贴
在末行模式中复制 :1,3y 复制1-3行
(6),删除操作(在命令模式中)
x 删除光标处的单个字符 = Del
dd 删除光标所在行
#dd 删除#行
d^ 从光标处之前删除至行首
d$ 从光标处删除到行尾
(7),字符串的查找(末行模式)
/world 向下查找world
?world 向上查找world
n 定位下一个匹配的字串
N 定位上一个匹配的字串
(8),撤销编辑
u 取消最近一次的操作,能多次使用
U 取消最后修改行所有的操作
ctrl +r 对使用u命令撤销操作进行恢复
J 合并当前行和下一行
(9),存盘及退出(在末行模式中按)
:q 退出
:w 保存
:wq 保存退出 = ZZ = :x
:X 加密
:wq! 强制保存退出
:! 命令 在vim中执行外面命令
:w file 另存为file
:r file 读入file
(10),字符串的替换(末行模式)
:s/old/new 将当前行中查找到的第一个字符“old” 串替换为“new”
:s/old/new/g 将当前行中查找到的所有字符串“old” 替换为“new”
:#,#s/old/new/g 在行号“#,#”范围内替换所有的字符串“old”为“new”
:%s/old/new/gc 在整个文件范围内替换所有的字符串“old”为“new并对每个替换动作提醒
(11),末行模式基本操作
:set nu|nonu 显示/不显示行号
:syntax on|off 启用/关闭语法高亮
:set hls|nohls 开启/关闭查询结果高亮显示
:set ai|noai 启用/关闭自动缩进
:set tabstop=4 表示把tab键的宽度设为4个空格
(12)其他相关文件
在vim ~/.vimrc文件中
.filename.swp 编辑过程中的缓存文件
一、文件内容操作
1,使用cat命令查看/etc/resolv.conf 答:cat /etc/resolv.conf
2,使用more命令查看/etc/mail/sendmail.cf 答:more /etc/mail/sendmail.cf
3,使用less命令查看/etc/mail/sendmail.cf 答:less /etc/mail/sendmail.cf
4,对比cat more less区别和特点 答:cat查看文件内容较少时适用,more和less可以分屏显示文件内容,但more向前翻页不方便。
5,查看/etc/passwd前5行 答:head -n 5 /etc/passwd
6,查看/etc/passwd尾5行 答:tail -n 5 /etc/passwd
7,查看/etc/passwd的第8-12行 答: head -n 12 /etc/passwd |tail -n 8
8,统计系统中有多少个账户 答:wc -l /etc/passwd
9,计算/etc目录下.conf配置文件的个数 答:find /etc/ -name "*.conf" -exec -type f | wc -l
10,显示/etc/hosts中127.0.0.1的内容 答:grep "127.0.0.1" /etc/hosts
11,显示/etc/passwd中以root开头的内容 答:grep "^root" /etc/passwd
12,显示/etc/passwd中以bash结尾的内容 答:grep "bash$" /etc/passwd
13,去除/etc/hosts.allow中的空行,把结果显示出来 答:grep -v "^$" /etc/hosts.allow
14,查找Linux识别的eth接口的信息 答:dmesg |grep eth
15,显示/etc/hosts里面不以#号开头的内容 答:grep -v “^#” /etc/hosts
16,计算以/bin/bash作登陆shell的用户个数 答: grep "bash$" /etc/passwd
17,查找/etc/hosts中包含127.0.0.1或者localhost的内容 答:grep -E "127.0.0.1|localhost" /etc/hosts
二、压缩和归档
1,以易读的属性并长格式显示/root下的内容将结果重定向到/root/gztest.txt里面 答:ls -lh > /root/gztest.txt
2,分别使用gzip和bzip2和zip对/root/gztest.txt进行压缩和解压 答:gzip gztest.txt bzip2 gztest.txt
3,把/etc/mail打包并压缩到/root/mail.tar.gz 答:tar -zcf /etc/mail -C /root/mail.tar.gz
4,把/etc/mail打包并压缩到/root/mail.tar.bz2 答:tar -jcf /etc/mail -C /root/mail.tar.bz2
5,将mail.tar.gz解压到/tmp下,递归查看/tmp/etc下的内容,然后删除/tmp/etc目录
答:tar -zxf mail.tar.gz -C /tmp ls -R /tmp/etc rm -rf /tmp/etc
6,将mail.tar.bz2解压到/tmp下,递归查看/tmp/etc下的内容,然后删除/tmp/etc目录
答:tar -jxf mail.tar.bz2 -C /tmp ls -R /tmp/etc rm -rf /tmp/etc
7,分别查看mail.tar.gz与mail.tar.bz2文件里面内容
答:tar -zxf mail.tar.gz | more tar -zxf mail.tar.bz2 | more
三、使用vim
1,请在 /tmp 这个目录下建立一个名为 vimtest 的目录 答:mkdir -p /tmp/vimtesrt
2,进入vimtest 这个目录当中 答:cd /tmp/vimtest
3,将 /etc/man.config 复制到本目录底下 cp /etc/man.config /tmp/vimtest
4,使用 vim 打开本目录下的 man.config 答:vim man.config
5,在 vim 中设定一下行号 答:末行模式:set nu
6,移动到第 58 行,向右移动 40 个字元,请问你看到的双引号内是什么目录? 答:命令模式 58G /dir/bin/foo
7,移动到第一行,并且向下搜寻一下‘ bzip2 ’这个字串,请问他在第几行? 答:gg /bzip2 118行
8,我要将 50 到 100 行之间的‘小写 man 字串’改为‘大写 MAN 字串’,并且一个一个挑选是否需要修改,如何下达指令?如果在挑选过程中一直按‘y’, 结果会在最后一行出现改变了几个 man 呢? 答:末行模式 50,100/s/man/MAN 23个
9,修改完之后,突然反悔了,要全部复原,有哪些方法? 答:一直按u
10,我要复制 65 到 73 这九行的内容(含有MANPATH_MAP),并且贴到最后一行之后
答:命令模式 65G 9yy G p
11,21 到 42 行之间的开头为 # 符号的注解资料我不要了,要如何删除?
答:命令模式 21G 23dd
12,将这个档案另存成一个 man.test.config 的档名
答:末行模式:w man.test.config
13,去到第 27 行,并且删除 15 个字元,结果出现的第一个单字是什么? 答:o
14,在第一行新增一行,该行内容输入‘I am a student...’ 答:命令模式 1G a 输入 I am a student...
15,储存后离开吧 答:末行模式 :wq