云计算学院2022年课程全阶段软件:
链接:https://pan.baidu.com/s/1H9BCY_dgnmgVKgpQceDKDQ
提取码:Va2M
正课课堂笔记:码云
https://gitee.com/niubenlinux/nsd2204

昨日习题:
案例:复制、删除、移动

  1. 在目录/opt下创建一个子目录 nsd

[root@localhost ~]# mkdir /opt/nsd
[root@localhost ~]# ls /opt/

  1. 在目录/opt/nsd/创建文件readme.txt,利用vim写入内容 I Love Linux

[root@localhost ~]# vim /opt/nsd/readme.txt
I Love Linux
[root@localhost ~]# cat /opt/nsd/readme.txt

  1. 将/etc/passwd 和 /etc/resolv.conf同时拷贝到/opt/nsd目录下

[root@A ~]# cp /etc/passwd /etc/resolv.conf /opt/nsd
[root@A ~]# ls /opt/nsd
passwd readme.txt resolv.conf

  1. 将文件 /etc/redhat-release复制到 /root/ 下,同时 改名为 version.txt

[root@A ~]# cp /etc/redhat-release /root/version.txt
[root@A ~]# ls /root

  1. 将文件 /root/version.txt 移动到/opt/nsd/目录下

[root@A ~]# mv /root/version.txt /opt/nsd/
[root@A ~]# ls /opt/nsd/

  1. 将/home目录复制到/opt/nsd/目录下
    [root@A ~]# cp -r /home /opt/nsd/
    [root@A ~]# ls /opt/nsd

案例:ls命令练习

  1. 查看根目录下内容

[root@A ~]#ls /

  1. 显示根目录本身详细属性

[root@A ~]#ls -ld /

  1. 切换到/boot目录,显示当前目录内容的详细属性,并加上易读的容量单位

[root@A boot]# cd /boot/
[root@A boot]# ls -lh

  1. 显示/root的全部内容,包括隐藏文档

[root@A boot]# ls -A /root

  1. 显示/bin/bash程序,详细属性

[root@A boot]# ls -l /bin/bash

  1. 显示/dev/cdrom光驱设备,详细属性
    [root@A boot]# ls -l /dev/cdrom

案例:mount挂载

  1. 在根目录下创建目录结构/CentOS7/dvd

[root@A boot]# mkdir -p /CentOS7/dvd
2. 利用图形将光盘镜像文件放入光驱设备中
3. 将光驱设备挂载到/CentOS7/dvd目录,以/CentOS7/dvd目录作为其访问点
[root@A boot]# mount /dev/cdrom /CentOS7/dvd
mount: /dev/sr0 写保护,将以只读方式挂载
[root@A boot]# ls /CentOS7/dvd

  1. 查看/CentOS7/dvd/Packages目录内容
    [root@A boot]# ls /CentOS7/dvd/Packages/

  2. 将/CentOS7/dvd/Packages目录中以vsftpd开头的软件包,拷贝到/opt下
    ]# cp /CentOS7/dvd/Packages/vsftpd* /opt

案例:别名与vim的使用

  1. 为虚拟机定义一个别名,执行byebye可以实现关闭系统

[root@A /]# alias byebye=’poweroff’
2. 利用vim 修改文件/etc/hostname将其原有内容全部删除,写入新的内容为student.tmooc.cn
[root@A /]# vim /etc/hostname
student.tmooc.cn

归档及压缩

作用:1.减小占用空间大小 2.整合分散的数据

  • 归档的含义
    1. 将许多零散的文件整理为一个文件
    2. 文件总的大小基本不变
  • 压缩的含义
    1. 按某种算法减小文件所占用空间的大小
    2. 恢复时按对应的逆向算法解压
  • 常见的压缩格式及命令工具:

.gz 🡪 gzip
.bz2 🡪 bzip2
.xz 🡪 xz

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

tar 制作压缩包(tar打包)

格式:tar 选项 /路径/压缩包名字 /源数据…….
-c:创建 -f:指定压缩包名字(必须在最后)
-z、-j、-J:调用 .gz、.bz2、.xz 格式工具进行处理
]# tar -zcf /root/xixi.tar.gz /etc/passwd /home
]# ls /root/

]# tar -jcf /root/haha.tar.bz2 /etc/passwd /home
]# ls /root/

]#tar -Jcf /root/hehe.tar.xz /etc/passwd /home
]# ls /root/

tar 释放压缩包(tar解包)

tar 选项 /路径/压缩包名字 选项 /释放的位置
-x:释放归档
-f:指定归档文件名称,必须在所有选项的最后
-C:指定释放路径
]# mkdir /nsd01
]# tar -xf /root/haha.tar.bz2 -C /nsd01
]# ls /nsd01
]# ls /nsd01/etc
]# ls /nsd01/home

案例1:创建一个备份包
使用 tar 工具完成以下备份任务:

  • 创建一个名为 /root/backup.tar.bz2 的归档文件
  • 其中包含 /usr/local 目录中的内容
  • tar 归档必须使用 bzip2 进行压缩

]# tar -jcf /root/backup.tar.bz2 /usr/local/
]# ls /root/
]# tar -tf /root/backup.tar.bz2 #查看tar包内容

重定向(重新定向命令的输出)

将前面命令的输出,作为内容,写入到后面的文件
>:覆盖重定向
>>:追加重定向
[root@A /]# head -5 /etc/passwd > /opt/p.txt
[root@A /]# cat /opt/p.txt

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

]# echo 123456
]# echo 123456 > /opt/p.txt
]# cat /opt/p.txt

]# cat /etc/hostname
]# echo nb.tedu.cn > /etc/hostname
]# cat /etc/hostname

]# > /opt/p3.txt #清空文件内容
]# cat /opt/p3.txt

管道(操作符号 | )

作用:将前面命令的输出,传递给后面命令,作为后面命令的参数
]# head -4 /etc/passwd | tail -1
]# head -8 /etc/passwd | tail -1
]# cat -n /etc/passwd | head -8 | tail -1
]# ifconfig | head -2

显示8~12行内容
]# head -12 /etc/passwd | tail -5
]# head -12 /etc/passwd | tail -5 | cat -n

]# cat -n /etc/passwd | head -12
]# cat -n /etc/passwd | head -12 | tail -5

]# cat -n /etc/passwd | head -12 | tail -5 > /opt/pa.txt
]# cat /opt/pa.txt

grep高级使用

作用:从文本文件内容中,过滤关键字符串
]# grep root /etc/passwd
]# grep -v root /etc/passwd #取反匹配
]# grep ^root /etc/passwd #以root开头
]# grep bash$ /etc/passwd #以bash结尾

^$:表示空行
]# cat /etc/default/useradd
]# grep -v ^$ /etc/default/useradd

Linux中大多数配置文件内容,以#开头的行为注释行
显示配置文件有效信息(去除以#开头的注释行和去除空行)

]# grep -v ^# /etc/login.defs
]# grep -v ^# /etc/login.defs | grep -v ^$
]# grep -v ^# /etc/login.defs | grep -v ^$ > /opt/log.txt
]# cat /opt/log.txt

过滤命令的输出
[root@svr1 ~]# ifconfig | grep inet

find精确查找

格式:find [目录] [条件1]

  • 常用条件表示:

-type 类型(f、d、l)
-name “文档名称”
-size +|-文件大小(k、M、G)
-user 用户名
-mtime 修改时间

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

[root@A /]# find /boot -type d
[root@A /]# find /opt -type d
[root@A /]# find /etc -type l
[root@A /]# find /boot -type f

-name “文档名称”

]# find /etc/ -name “passwd”
]# find /etc/ -name “tab”
]# find /etc/ -name “
.conf”

]# find /etc/ -name “tab” | wc -l
]# find /etc/ -name “
.conf” | wc -l
]# find /etc/ -name “*.conf” | cat -n

]# mkdir /mnt/nsd01
]# mkdir /mnt/nsd02
]# touch /mnt/nsd03.txt
]# find /mnt/ -name “nsd*”
]# find /mnt/ -name “nsd*” -type d
]# find /mnt/ -name “nsd*” -type f

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

]# find /boot/ -size +300k
]# find /boot/ -size +10M
]# find /boot/ -size +1M

]# find /boot/ -size +10M -size -50M

-user 用户名 (按照数据的所有者)

[root@A /]# useradd natasha #创建用户
[root@A /]# find /home/ -user natasha
[root@A /]# find / -user natasha

/proc:内存的数据,不占用硬盘空间

-mtime 修改时间 (所有的时间都是过去时间)

  1. -mtime +90 #90天之前的数据<br /> -mtime -90 #最近90天之内的数据

三个月之前的数据:
[root@A /]# find /root -mtime +90
[root@A /]# find /root -mtime -10

find高级使用

处理find找到的数据,每查找的一个就传递一次

  • find [范围] [条件] -exec 处理命令 {} \;

-exec额外操作的开始
{} 永远表示前面find查找的结果
\; 额外操作的结束
]# find /boot -size +10M
]# find /boot -size +10M -exec cp {} /mnt \;
]# ls /mnt/

]# mkdir /root/mytab
]# find /etc -name “*tab”

]# find /etc -name “*tab” -exec cp -r {} /root/mytab \;

]# ls /root/mytab/

案例2:查找并处理文件

  1. 利用find查找数据的所有者为 student并且必须是文件,把它们拷贝到 /root/findfiles/ 文件夹中

]# useradd student
]# mkdir /root/findfiles

]# find / -user student -type f
]# find / -user student -type f -exec cp {} /root/findfiles \;
]# ls -A /root/findfiles/

vim编辑技巧

当文件不存在,则自动新建,vim不能新建目录
三个模式:命令模式 插入模式(输入模式) 末行模式
[root@localhost ~]# vim /opt/nsd.txt
命———-i键 或 o键————-》插入模式(按Esc键回到命令模式)


式———输入英文的冒号 “:”——-》末行模式(按Esc键回到命令模式)

末行模式 输入 :wq #保存并退出
末行模式 输入 :q! #强制不保存退出

  • 命令模式操作
  • 光标跳转

]# cp /etc/passwd /opt/pass.txt
]# vim /opt/pass.txt

操作类型 按键指令 用 途
移动光标 🡩、🡫、🡨、🡪 上、下、左、右
光标行内跳转 Home 键 或 ^、数字 0 跳转到行首
End 键 或 $ 键 跳转到行尾
全文翻页 PgUp 键、PgDn 键 向上翻页、向下翻页
光标行间跳转 1G 或 gg 跳转到文件的首行
G 跳转到文件的末尾行
  • 复制/粘贴/删除 | 操作类型 | 按键指令 | 用 途 | | —- | —- | —- | | 复制 | yy、3yy | 复制光标处的一行、3行 | | 粘贴 | p、P | 粘贴到光标处之后、之前 | | 删除 | x 或 Delete键 | 删除光标处的单个字符 | | | dd、3dd | 删除光标处的一行、3行 | | | d^ | 从光标处之前删除至行首 | | | d$或D(大写) | 从光标处删除到行尾 |

小写的u为 撤销

  • 查找/撤销/保存 | 操作类型 | 按键指令 | 用 途 | | —- | —- | —- | | 文本查找 | /a | 向后查找字符串“a” | | | n、N | 跳至后/前一个结果 | | 撤销编辑 | u | 撤销最近的一次操作 | | | U | 撤销对当前行的所有修改 | | | Ctrl + r | 取消前一次撤销操作 | | 保存退出 | ZZ(大写) | 保存修改并退出 |
  • 末行模式操作 | :r /etc/filesystems | 读入其他文件内容 | | —- | —- |

]# echo 123456 > /opt/aa.txt
]# echo hahaxixi > /opt/cc.txt
]# vim /opt/cc.txt
末行模式下 :r /opt/aa.txt
末行模式下 :r /etc/passwd
末行模式下 :r /etc/shells

  • 字符串替换 | 操作类型 | 设置指令 | | 用 途 | | —- | —- | —- | —- | | 行内替换 | | :s/root/new | 替换光标所在行第一个“root” | | | :s/root/new/g | 替换光标所在行所有的“root” | | 区域内替换 | | :1,10s/root/new/g | 替换第1-10行所有的“root” | | | :%s/root/new/g | 替换文件内所有的“root” |

]# cp /etc/passwd /opt/s.txt
]# vim /opt/s.txt

  • 开关参数的控制 | 操作类型 | 设置指令 | 用 途 | | —- | —- | —- | | 编辑器设置 | :set nu或nonu | 显示/不显示行号 | | | :set ai或noai | 启用/关闭自动缩进 |
  • vim常见故障:删除交换文件

[root@svr1 ~]# echo hahaxixi > /opt/dd.txt
[root@svr1 ~]# vim /opt/dd.txt
归档及压缩、重定向与管道操作、find精确查找、vim高级使用 - 图1
[root@svr1 ~]# rm -rf /opt/.dd.txt.swp
[root@svr1 ~]# vim /opt/dd.txt

课后习题:
案例1:数据的整理
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目录下(建议利用find命令)
9. 将/home目录复制到/mnt/public/test/目录下

案例2:虚拟机上操作:复制、删除、移动及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:虚拟机上操作:ls与cat、head
1. 显示根目录下所有内容
2. 显示/etc目录下所有以tab结尾的文件
3. 显示/etc/resolv.conf文件的详细属性并加上易读的单位
4. 显示/etc/passwd文件的详细属性并加上易读的单位
5. 显示/etc/passwd文件的头4行内容

案例4:tar制作/释放归档压缩包
首先创建/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:虚拟机上操作,查找并处理文件
–创建用户student,创建目录/root/findfiles
– 利用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 中设置显示行号