LINUX从零开始——ADMIN(云计算系统管理)——Day4 [归档及压缩、重定向与管道操作、find精确查找、vim高级使用、命令补充]

一、环境准备
1.开启CentOS7虚拟机,以root用户登录
课前回顾:
1.Linux中命令的执行依赖于解释器,默认的解释器是哪个程序?
/bin/bash

2.如何结束当前正在运行的命令,快捷键是?
Ctrl+c

3.切换上一级目录的操作命令?去往用户root的家目录?
cd … cd ~root 或 cd /root

4.ls常用选项有哪些?不用写作用
-l -h -d -R -A

5.常见的通配符都有哪些?不用写作用

  • ? [] {}

6.如何定义一个别名?如何查看所有的别名?如何删除一个别名?
alias 别名=‘实际执行的命令’ alias unalias 别名

7.移动的命令是?
mv

8.强制删除一个文件夹以及其内容的命令是?
rm -rf

9.cp命令在使用时,源是一个目录时需要加什么选项?
-r

10.vim编辑器有几种工作模式?分别是什么?
3 命令模式 插入模式 末行模式

11.在vim末行模式中,输入什么可以不保存退出?
q!

12.使用 ls 命令完成以下任务,找出/etc/目录下以re开头.conf结尾的文件
ls /etc/re*.conf
##########################################################################################################
二、归档及压缩
•归档的含义
–将许多零散的文件整理为一个文件
–文件总的大小基本不变
•压缩的含义
–按某种算法减小文件所占用空间的大小
–恢复时按对应的逆向算法解压

Linux常见的压缩格式及命令工具:
.gz —> gzip压缩格式
.bz2 —> bzip2压缩格式
.xz —> xz压缩格式

压缩包:红色

•tar 集成备份工具
–-c:创建归档
–-x:释放归档
–-f:指定归档文件名称,必须放在所有选项的最后
–-z、-j、-J:调用 .gz、.bz2、.xz 格式的工具进行处理
–-t:显示归档中的文件清单
–-C:指定释放的位置

tar打包:制作压缩包
格式:tar 选项 /路径/压缩包名字 /路径/源数据1 /路径/源数据2 …
[root@A ~]# tar -zcf /opt/nb01.tar.gz /home/ /etc/passwd
tar: 从成员名中删除开头的“/”
[root@A ~]# ls /opt/

[root@A ~]# tar -jcf /opt/nsd.tar.bz2 /home/ /etc/passwd
tar: 从成员名中删除开头的“/”
[root@A ~]# ls /opt/

[root@A ~]# tar -Jcf /opt/file.tar.xz /home/ /etc/passwd
tar: 从成员名中删除开头的“/”
[root@A ~]# ls /opt/

-z:表示gzip压缩格式 -j:表示bzip2压缩格式 -J:表示xz压缩格式
-c:创建归档 -f:指定tar包名称

查看包里面的内容
[root@A ~]# tar -tf /opt/nb01.tar.gz
[root@A ~]# tar -tf /opt/nsd.tar.bz2

–-x:释放归档 -C(大写):指定释放的位置
[root@A ~]# mkdir /mydir01 /mydir02 /mydir03
[root@A ~]# tar -xf /opt/nb01.tar.gz -C /mydir01/

[root@A ~]# ls /mydir01/
[root@A ~]# ls /mydir01/home/
[root@A ~]# ls /mydir01/etc/
[root@A ~]# tar -xf /opt/nsd.tar.bz2 -C /mydir02

[root@A ~]# tar -xf /opt/file.tar.xz -C /mydir03

案例1:创建一个备份包
使用 tar 工具完成以下备份任务:
–创建一个名为 /root/backup.tar.bz2 的归档文件
–其中包含 /usr/local 目录中的内容
–tar 归档必须使用 bzip2 进行压缩

[root@A ~]# tar -jcf /root/backup.tar.bz2 /usr/local/
tar: 从成员名中删除开头的“/”
[root@A ~]# ls /root/

[root@A ~]# tar -tf /root/backup.tar.bz2 #查看包里面内容

[root@A ~]# mkdir /nsddir01
[root@A ~]# tar -xf /root/backup.tar.bz2 -C /nsddir01
[root@A ~]# ls /nsddir01
[root@A ~]# ls /nsddir01/usr/
[root@A ~]# ls /nsddir01/usr/local/

##########################################################################################################
三、重定向与管道
重新定向命令的输出:将前面命令的输出,写入到后面文本文件中

:覆盖重定向

:追加重定向
[root@A ~]# ls --help > /opt/ls.txt
[root@A ~]# ls /opt/
[root@A ~]# less /opt/ls.txt

[root@A ~]# hostname
[root@A ~]# hostname > /opt/ls.txt
[root@A ~]# cat /opt/ls.txt

[root@A ~]# hostname >> /opt/ls.txt
[root@A ~]# cat /opt/ls.txt

[root@A ~]# head -1 /etc/passwd
[root@A ~]# head -1 /etc/passwd > /opt/p.txt
[root@A ~]# cat /opt/p.txt

[root@A ~]# echo 123456
[root@A ~]# echo 123456 >> /opt/p.txt
[root@A ~]# cat /opt/p.txt

[root@A ~]# cat /etc/hostname
[root@A ~]# echo B.tedu.cn > /etc/hostname
[root@A ~]# cat /etc/hostname

[root@A ~]# echo A.tarena.com > /etc/hostname
[root@A ~]# cat /etc/hostname

管道 | :将前面命令的输出,传递到后面命令,作为后面命令的参数
[root@A ~]# head -12 /etc/passwd | tail -5
[root@A ~]# head -12 /etc/passwd | tail -5 | cat -n

[root@A ~]# cat -n /etc/passwd | head -12
[root@A ~]# cat -n /etc/passwd | head -12 | tail -5

[root@A ~]# ifconfig | head -2
[root@A ~]# ifconfig | less

[root@A ~]# cat -n /etc/passwd | head -12 | tail -5 > /opt/a.txt
[root@A ~]# cat /opt/a.txt

[root@A ~]# ifconfig | grep 127
[root@A ~]# grep root /etc/passwd | grep bash

^$ :在grep命令中,代表空行
在Linux大多数配置文件中,以#开头的行为注释行

[root@A ~]# cat /etc/default/useradd
[root@A ~]# grep ^$ /etc/default/useradd
[root@A ~]# grep -v ^$ /etc/default/useradd
[root@A ~]# grep -v ^# /etc/default/useradd | grep -v ^$

[root@A ~]# cat /etc/login.defs
[root@A ~]# grep -v ^# /etc/login.defs
[root@A ~]# grep -v ^# /etc/login.defs | grep -v ^$ #显示文件的有效信息,去除空行再去除注释行

[root@A ~]# grep -v ^# /etc/login.defs | grep -v ^$ > /opt/log.txt
[root@A ~]# cat /opt/log.txt

##########################################################################################################
四、find精确查找,递归式查找

•根据预设的条件递归查找对应的文件
–find [目录] [条件1]
–常用条件表示:
– -type 类型(f、d、l)
– -name “文档名称”
– -size +|-文件大小(k、M、G)
– -user 用户名
– -mtime 修改时间

-type 类型(f文件、d目录、l快捷方式)

[root@A ~]# find /etc/ -type l
[root@A ~]# ls -l /etc/rc.local
[root@A ~]# find /boot -type d
[root@A ~]# find /boot -type f

-name “文档名称”
[root@A ~]# find /root/ -name “a*”
[root@A ~]# find /etc/ -name “passwd”
[root@A ~]# find /etc/ -name “*.conf”

[root@A ~]# mkdir /root/nsd01
[root@A ~]# mkdir /root/nsd02
[root@A ~]# touch /root/nsd03.txt
[root@A ~]# find /root/ -name “nsd*”
[root@A ~]# find /root/ -name “nsd*” -type f #查找以nsd开头的数据,还必须是一个文本文件
[root@A ~]# find /root/ -name “nsd*” -type d #两个条件都要满足

[root@A ~]# find /root/ -name “nsd*” -o -type d #两个条件满足其中一个即可(了解)

-size +或-文件大小(k、M、G)

[root@A ~]# find /boot/ -size +300k #查找大于300k的
[root@A ~]# find /boot/ -size +10M #查找大于10M的
[root@A ~]# ls -lh /boot/initramfs-3.10.0-862.el7.x86_64kdump.img

[root@A ~]# find /boot/ -size -10M #查找小于10M
[root@A ~]# find /boot/ -size -1024k #查找小于1024k

-user 用户名 #按照数据的所有者进行查找
/proc:反映内存的数据,不占用磁盘空间
[root@A ~]# useradd harry
[root@A ~]# find /home/ -user harry
[root@A ~]# find /home/ -user harry -type f
[root@A ~]# find /home/ -user harry -type d

[root@A ~]# find / -user harry -type f

-mtime 修改时间 #都是过去时间

-mtime +10 #查找10天之前的数据
-mtime -10 #查找最近10天之内的数据
[root@A ~]# date
[root@A ~]# find /root -mtime +1000
[root@A ~]# find /root -mtime -2 #最近2天之内
[root@A ~]# find /root -mtime +90 #90天之前的数据,三个月之前
[root@A ~]# find /var/log -mtime +90 #/var/log专门存放日志数据的路径

•find 高级使用(处理find查找的结果)
-exec 额外操作的开始
; 表示额外操作的结束
{} 前面find命令每一个查询的结果
[root@A ~]# mkdir /root/tabdir
[root@A ~]# find /etc/ -name “*tab”
[root@A ~]# find /etc/ -name “*tab” -exec cp -r {} /root/tabdir ;
[root@A ~]# ls /root/tabdir/
[root@A ~]# mkdir /root/bodir
[root@A ~]# find /boot -size +10M
[root@A ~]# find /boot -size +10M -exec cp -r {} /root/bodir ;
[root@A ~]# ls /root/bodir
管道后面命令:1.至少需要多参数命令 2.命令没有参数就可以运行 #不支持管道操作

案例3:查找并处理文件
1.利用find查找所有用户 student 拥有的必须是文件,把它们拷贝到 /root/findfiles/ 文件夹中
[root@A /]# useradd student
[root@A /]# mkdir /root/findfiles
[root@A /]# find / -user student -type f
[root@A /]# find / -user student -type f -exec cp {} /root/findfiles/ ;

[root@A /]# ls -A /root/findfiles/ #-A显示隐藏的数据

##########################################################################################################
五、vim编辑技巧
三个模式:命令模式 插入模式 末行模式

•命令模式操作

光标跳转
操作类型 按键指令 用  途
移动光标 上、下、左、右 上、下、左、右
光标行内跳转 Home 键 或 ^、数字 0 跳转到行首
End 键 或“$”键 跳转到行尾
全文翻页 PgUp 键、PgDn 键 向上翻页、向下翻页
光标行间跳转 1G 或 gg 跳转到文件的首行
G 跳转到文件的末尾行
[root@A /]# cp /etc/passwd /opt/test.txt
[root@A /]# vim /opt/test.txt

复制/粘贴/删除
操作类型 按键指令 用  途
复制 yy、#yy 复制光标处的一行、#行
粘贴 p、P 粘贴到光标处之后、之前
删除 x 或 Delete键 删除光标处的单个字符
dd、#dd 删除光标处的一行、#行
d^ 从光标处之前删除至行首
d$ 从光标处删除到行尾
补充 命令模式下大写C:删除光标处到行尾所有内容,并且进入插入模式
命令模式下小写u:可以撤销

查找/撤销/保存
操作类型 按键指令 用  途
文本查找 /root 向后查找字符串“root”
n、N 跳至后/前一个结果
撤销编辑 u 撤销最近的一次操作
U 撤销对当前行的所有修改
Ctrl + r 取消前一次撤销操作
保存退出 ZZ(大写) 保存修改并退出
[root@A /]# cp /etc/passwd /opt/test.txt
[root@A /]# vim /opt/test.txt

•末行模式操作

保存/退出/文件操作
操作类型 设置指令 用  途
存盘及退出 :w 保存当前文件
:q! 放弃已有更改后强制退出
:wq 或 :x 保存已有修改后退出
文件操作 :w  /root/newfile 另存为其它文件
:r  /etc/filesystems 读入其他文件内容

[root@A /]# echo 123456 > /opt/1.txt
[root@A /]# echo hahaxixi > /opt/2.txt
[root@A /]# vim /opt/1.txt
:r /opt/2.txt #末行模式读入2.txt文本文件内容,到当前文件中
:r /etc/passwd #末行模式读入 /etc/passwd文本文件内容,到当前文件中

字符串替换
操作类型 设置指令 用  途
行内替换 😒/root/xixi 替换当前行第一个“root”
😒/root/xixi/g 替换当前行所有的“root”
区域内替换 :1,8  s/root/xixi/g 替换第1-8行所有的“root”
:%  s/root/xixi/g 替换文件内所有的“root"

[root@A /]# cp /etc/passwd /opt/haha.txt
[root@A /]# vim /opt/haha.txt

开关参数的控制

操作类型 设置指令 用  途
编辑器设置 :set nu或nonu 显示/不显示行号
:set ai或noai 启用/关闭自动缩进

##########################################################################################################

课后习题:
案例1:虚拟机Server上操作:复制、删除、移动及vim文本编辑器

  1. 在目录/mnt下创建一个子目录public
  2. 在目录/mnt/public 创建文件linux.txt,利用vim写入内容 Study Linux
  3. 将/mnt/public/linux.txt文件复制到/root目录下,同时 改名为 study.txt
  4. 利用vim 修改文件/etc/hostname将其原有内容全部删除,写入新的内容为www.qq.com
  5. 将/etc/passwd 、/etc/resolv.conf、/etc/hostname 同时拷贝到/mnt/public/目录下
  6. 将文件 /mnt/public/hostname 重改名为 stu.txt
  7. 创建目录结构/mnt/public/test/vm
  8. 将目录 /boot内容中以 vm 开头的 复制到/mnt/public/test/vm目录下
  9. 将/home目录复制到/mnt/public/test/目录下

案例2:虚拟机Server上操作:复制、删除、移动及vim文本编辑器

  1. 创建目录结构/study/nsd01
  2. 在目录/study/nsd01 创建文件abc.txt,利用vim写入内容 abc.tedu.cn
  3. 将/study/nsd01/abc.txt文件复制到/opt目录下,同时 改名为 test.txt
  4. 利用vim 修改文件/etc/hostname将其原有内容全部删除,写入新的内容为www.sina.com
  5. 将/etc/passwd 、/etc/resolv.conf、/etc/hostname 同时拷贝到/study/nsd01/目录下
  6. 将文件 /study/nsd01/hostname 重改名为 haxi.txt
  7. 创建目录结构/root/vm
  8. 将目录 /boot内容中以 vm 开头的 复制到/root/vm目录下
  9. 将/home目录复制到/root/vm目录下

案例3:虚拟机Server上操作:ls与cat、head

  1. 显示根目录下所有内容
  2. 显示/etc目录下所有以tab结尾的文件
  3. 显示/etc/resolv.conf文件的详细属性并加上易读的单位
  4. 显示/etc/passwd文件的详细属性并加上易读的单位
  5. 显示/etc/passwd文件的头4行内容

案例4:tar制作/释放归档压缩包(zcf、ztf、zxf、jcf、jtf、jxf、cf、tf)
首先创建/root/boothome/与/root/usrsbin/目录
1)备份/boot、/home这两个文件夹,保存为boothome.tar.gz文件
2)查看boothome.tar.gz文件内包含哪些内容
3)将boothome.tar.gz释放到文件夹/root/boothome/下
4)备份/usr/sbin目录,保存为usrsbin.tar.bz2文件
5)查看usrsbin.tar.bz2文件内包含哪些内容
6)将usrsbin.tar.bz2释放到/root/usrsbin/文件夹下

案例5:虚拟机 server0上操作,查找并处理文件
– 利用find查找所有用户 student 拥有的必须是文件,把它们拷贝到 /root/findfiles/ 文件夹中
– 利用find查找/boot目录下大于10M并且必须是文件,拷贝到/opt
– 利用find查找/boot/ 目录下以 vm 开头且必须是文件,拷贝到/opt
– 利用find查找/boot/ 目录下为快捷方式
– 利用find查找/etc 目录下,以 tab 作为结尾的 必须是文件

案例6:vim效率操作
1)将文件 /etc/passwd 复制为 /opt/nsd.txt
–打开 /opt/nsd.txt 文件
–练习命令模式下的光标切换/复制/删除/查找操作

2)将文件 /etc/man_db.conf 复制到 /opt 目录下
–打开 /opt/man_db.conf 文件
–将第50~100行内的“man”替换为“MAN”
–在 vim 中设置显示行号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值