目录

Day01

1、VMware安装与使用

2、Linux系统简介

3、安装linux操作系统

4、Linux目录结构

5、基础命令的使用

6、命令行基础

Day02

1、查看及切换目录

2、复制/删除/移动

3、复制与通配符

4、管道和重定向

5、find 精确查找

6、find 的高级使用

Day03

1、tar 归档和压缩

2、grep 高级用法

3、vim 文本编辑器

4、mount 挂载操作

5、RPM包管理机制

6、RPM软件包管理

7、课后习题

Day04

1、vim编辑技巧

2、vim的高级使用

3、准备Yum软件仓库

4、Yum仓库构建

5、Yum命令行工具

6、Shell基础与命令补充

7、课后习题

Day05

1、用户与组管理

2、用户账号创建

3、用户密码设置

4、用户删改查

5、用户初始配置文件

6、组账号管理

7、课后习题

Day06

1、权限和归属概述

2、修改权限

3、修改归属

4、Set  GID && Sticky Bit

5、ACL策略简介

6、setfacl 命令解析

7、课后习题


Day01

1、VMware安装与使用

1)vmware基本概念

是一款功能强大的用来虚拟计算机的桌面软件

通常我们的物理机或者真机被称为Host OS

而虚拟机,也就是运行在VM软件内的计算机被称为Guset OS

2)安装vmware软件的步骤

双击事先准备好的vmware安装包和密钥文件 ——》

点下一步 ——》

点我接受许可协议 ——》

点击勾选增强驱动程序 ——》

去掉启动时检查和帮助完善两个勾 ——》

勾选桌面和菜单栏生成快捷方式后,点击下一步 ——》

点击安装 ——》

点击完成——》

打开安装好的软件——》

点击菜单栏的帮助——》

点击输入许可证密钥,确定

3)新建一台虚拟机

点击创建新的虚拟机——》

点击自定义——》

点击下一步——》

点击稍后安装操作系统——》

选择Linux操作系统,CentOS7 64位,点击下一步——》

修改虚拟机名称,更改虚拟机的安装路径——》

处理器和核心数默认1个就可以——》

内存选择2G——》

网络类型默认就可以——》

I/O控制器选择推荐的——》

磁盘类型选择推荐的——》

选择创建新的虚拟磁盘——》

磁盘大小修改为80G,选择将磁盘拆分成多个文件——》

磁盘文件名称默认就可以——》

点击完成

2、Linux系统简介

1)Unix发展史

1969年底开始研发Unix系统,最终诞生于1970年1月1日

由Ken Thompson和Dennis Ritchie两个人研发

2)Linux的诞生

Linux之父:Linus Torvalds(林纳斯)

1991年10月发布第一个公开版内核

标准读音:“哩呐科斯”

官网:www.kernel.org

3)Linux各种发行版本

Red Hat(社区版,免费:CentOS)

Suse

Debian

Ubuntu

3、安装linux操作系统

1)安装虚拟机

双击虚拟机的CD/DVD——》

点击使用ISO镜像文件——》

点击浏览,找到镜像文件放进去——》

点击确定——》

点击开启虚拟机——》

鼠标点击屏幕正中央,选择Install centos 7——》

语言选择中文,简体中文——》

更改软件选择,选择带GUI的服务器——》

点击安装位置,默认就可以,双击完成即可——》

点击开始安装——》

设置root用户密码,连续点击两次完成,创建一个普通用户并设置密码,连续点击两次完成——》

系统安装完后,点击重启——》

点击未接受许可证,点击我同意,然后点击左上角完成——》

点击完成配置——》

点击未列出,使用root用户登陆系统——》

选择汉语,点击前进——》

选择libpinyin,点击前进——》

位置服务默认即可,点击前进——》

点击拒绝和允许访问都可以——》

点击跳过——》

点击开始使用CentOS——》

最后关闭弹窗即可

2)给虚拟机打快照(用来还原到打快照时系统的的状态,然后关机拍摄快照,会让快照小一些)

点击右上角关机按钮,关闭系统——》

选择vmware时钟图标,设置快照——》

给快照设置名称,点击拍摄快照——》

如果想还原到安装完成的状态,直接点击转到就可以变到拍摄快照的时候虚拟机的状态

4、Linux目录结构

1)Windows和Linux系统区别

项目/类别 windows Linux

默认管理员账号 Administrator root

系统分区 C:\ /

数据盘的分区格式 NTFS XFS/ext3,ext4

虚拟内存 swapfile.sys SWAP分区

路径分隔符号 \ /

2)Linux目录结构(倒挂的树形结构)

/bin 存放二进制可执行文件,常用命令一般都在这里

/etc 存放系统管理和配置文件

/home 存放所有普通用户的家目录

/usr 存放系统应用程序

/opt 额外安装的可选应用程序包所放置的位置。比如,我们可以把tomcat等都安装到这里

/proc 虚拟文件系统目录,是系统内存的映射,相当于是存储内存中的信息

/root 管理员的家目录

/sbin 存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等

/dev 用于存放设备文件

/mnt 系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统

/boot 存放用于系统引导时使用的各种文件

/lib 存放跟文件系统中的程序运行所需要的共享库及内核模块

/tmp 用于存放各种临时文件

/var 用于存放各种服务的日志文件、系统启动日志等

3)硬盘设备与分区表示

IDE设备:hd打头,比如/dev/hda(hda,代表IDE设备的第一块磁盘,hdb代表IDE设备的第二块磁盘,以此类推)

SCSI设备:sd打头,比如/dev/sda(sda,代表SCSI设备的第一块磁盘,sdb代表SCSI设备的第二块磁盘,以此类推)

5、基础命令的使用

1)打开系统终端

应用程序——>工具——>终端

或 右键“打开终端”

2)终端命令行提示符含义

[root@localhost ~]#

[] 固定格式,为了好看

root 当前登陆系统的用户

@ 分隔符

localhost 主机名

~ 当前所在路径

3)目录探索三剑客

pwd #显示当前工作路径

cd 目录位置 #改变工作目录

ls 目录位置 #列出目录内容/文档权限

4)cat 命令,查看红帽发行信息(cat命令适用于查看小文件)

cat /etc/redhat-release

5)less 分屏阅读工具(适用于查看大文件)

格式:less 文件名

优势:支持上下键滚动

6)lscpu 查看CPU信息

lscpu

7)查看内存大小、空闲情况

cat /proc/meminfo

8)hostname 查看当前系统的主机名

hostname

hostname 主机名 ##临时修改主机名

9)ifconfig 列出已激活的网卡连接信息

ifconfig [网卡名]

ifconfig 网卡名 ip地址 ##临时修改IP地址

10)mkdir 创建目录

格式:mkdir [/路径/]目录名...

例如:mkdir /opt/student ##在/opt目录下创建了一个目录叫student

11)touch 新建空文件

格式:touch [/路径/]文件名...

12)grep 输出包含指定字符串的行

格式:grep '查找条件' 目标文件

例如:grep '127.0.0.1' /etc/hosts ##只显示/etc/hosts文件中包含127.0.0.1的行

6、命令行基础

1)什么是命令

用来实现某一类功能的指令或程序

命令的执行依赖于解释器(例如:/bin/bash)

2)命令的分类(type命令可以用来区分内部命令和外部命令)

内部命令:属于解释器的一部分

外部命令:解释器之外的其他程序

3)命令行的一般格式

基本用法

命令字 [选项]... [参数1] [参数2]...

例如:

ls -l /root/

ls -lA /root/

ls -ld /root/

4)head 查看文件头部内容、tail命令查看文件尾部内容

head -n 行数 文件

tail -n 行数 文件

5)快捷键

tab自动补全

ctrl + l:清屏

ctrl + c:结束当前运行的命令

esc + . 或 alt + . :粘贴上一个命令的参数

ctrl + shift + = :放大字体和终端

ctrl + - :缩小字体和终端

6)关机、重启

poweroff

reboot

Day02

1、查看及切换目录

1)cd 命令高级用法

格式:cd [目标文件夹路径]

. 代表当前所在目录

.. 代表父目录(上一层目录)

~user 用户user的家目录

绝对路径:以 / 开始的,就是绝对路径

相对路径:以当前路径为参照的,就是相对路径

2)ls 命令的高级用法

格式:ls [选项]... [目录或文件名]

常用选项:-l 以长格式显示

-A 显示所有内容,包括隐藏文件

-d 显示目录本身的属性

-h 提供易读的容量单位(K,M等)

-R 递归显示文件的内容

2、复制/删除/移动

1)alias 定义别名

格式:alias 别名='命令'

例如:alias hn='hostname'

unalias 取消别名

格式:unalias 别名

例如:unalias hn

2)mkdir 的高级用法

格式:mkdir [-p] [/路径/]目录名...

-p 代表创建逐级目录时,连同父目录一同创建

例如:mkdir -p /aa/bb/cc/dd/ee

3)rm 删除

格式:rm [选项]... 文件或目录...

-i 删除时,会先提示是否删除

-r 递归删除整个目录

-f 强制删除,不提示

例如:rm -r /aa/bb/cc/dd/ee

rm -rf /opt/nsd01

4)mv 移动/改名

格式:mv [选项]... 原文件... 目标路径

例如:mv /opt/1.txt /opt/nsd01

mv /opt/nsd01/1.txt /opt/nsd01/2.txt

3、复制与通配符

1)cp 复制操作

格式:cp [选项]... 原文件... 目标路径

常用命令选项:

-r 递归复制整个目录

-f 强制覆盖,不提示

-i 覆盖时,出现提示

-p 保持原文件的属性不变

\cp -rf 源文件 目标文件

\ 只针对这一次命令取消别名

2)常用通配符

* 匹配多个任意字符

? 匹配单个字符

[a-z] 匹配括号内多个字符或连续范围中的一个,若无则忽略

{a,min} 匹配多组不同的字符串

4、管道和重定向

1)重定向输出

覆盖重定向:cmd > file

追加重定向:cmd >> file

2)echo 命令

格式:echo 需输出内容

3)date 命令,查看系统日期时间

查看时间:date

修改时间:date -s '2000-10-1 12:12:10'

4)bc 命令,交互式整数计算器

使用计算器:bc

5)使用 | 管道操作

将前一条命令的输出结果交给后一条命令处理

格式:cmd1 | cmd2 | cmd3...

例如:head -12 /etc/passwd | tail -5

5、find 精确查找

根据预设的条件递归查找对应的文件

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

常用条件表示:

-type 类型(f、d、l)

-name "文档名称"

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

-user 用户名

-mtime 修改时间

例如: find /root -type f ##查找/root目录下的文件

find /root -type d ##查找/root目录下的目录

find /boot -type l ##查找/boot目录下的快捷方式

find /etc -name "*tab" ##查找/etc目录下以tab结尾的文件或目录

find /boot -size +10M ##查找/boot目录下大于10M的文件

find /boot -size -10M ##查找/boot目录下小于10M的文件

find /home -user wg ##查找/home目录下所有者是wg的文件

find / -mtime +300 ##查找 / 目录下300天之前的文件

find / -mtime -300 ##查找 / 目录下300天之内的文件

6、find 的高级使用

1)wc 命令,用于做统计

wc -l 只看行数

cat /etc/passwd | wc -l

2)find 高级用法

可以匹配多个条件

find /etc/ -name "*tab" -a -type d

find /etc/ -name "*tab" -o -type f

-a 代表and,两者条件都满足

-o 代表or,两者条件满足其一即可

3)处理 find 命令找到的文件

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

-exec 代表额外的操作

{ } 替代每一个查找的结果,也就是将find命令查找到的结果都放到大括号中去处理

\; 代表额外操作结束

例如:find /boot -size +10M -exec cp {} \;

Day03

1、tar 归档和压缩

1)归档的含义

将许多零散的文件整理为一个文件

文件总的大小基本不变

2)压缩的含义

按某种算法减小文件所占用空间的大小

恢复时按对应的逆向算法解压

常见的压缩格式及命令工具:

.gz ——》gzip

.bz2 ——》bzip2

.xz ——》xz

3)制作tar备份包

打包格式:tar 选项 /路径/压缩包名称 被压缩的源数据

解包格式:tar 选项 /路径/压缩包名称 -C 释放的路径

常用选项:

-c 创建归档

-x 释放归档

-f 指定归档文件名称

-z、-j、-J 调用.gz、.bz2、.xz格式的工具进行处理

-t 显示归档中的文件清单

-C 指定释放的路径

例如:tar -zcf 压缩包名称.tar.gz 被压缩的源数据

tar -jcf 压缩包名称.tar.bz2 被压缩的源数据

tar -Jcf 压缩包名称.tar.xz 被压缩的源数据

4)从tar备份包恢复文档

解包格式:

tar -xf 压缩包名称.tar.gz [-C 目标文件夹]

案例答案:

mkdir /root/boothome /root/usrsbin

tar -zcf /root/boothome.tar.gz /boot/ /home/

tar -tf boothome.tar.gz

tar -xf boothome.tar.gz -C /root/boothome

tar -jcf usrsbin.tar.bz2 /usr/sbin/

tar -tf usrsbin.tar.bz2

tar -xf usrsbin.tar.bz2 -C /root/usrsbin

2、grep 高级用法

1)grep 工具

用途:输出包含指定字符串的行

格式:grep [选项]... "查找条件" 目标文件

常用选项:

-i 查找是忽略大小写

-v 取反,输出不符合查找条件的行

查找条件:

"" 双引号内指定查找的字符串

^... 表示查找以...开头的行

...$ 表示查找以...结尾的行

^$ 表示查找空行

例如:grep -v ^# /etc/login.defs | grep -v ^$ > /opt/log.txt

案例答案:

uname -r > /root/version.txt

cat /etc/redhat-release >> /root/version.txt

cat /etc/hostname >> /root/version.txt

grep "^UUID" /etc/fstab > /root/fstab.txt

grep "bash$" /etc/passwd > /opt/pass.txt

cp /etc/login.defs init.txt

grep -v ^# init.txt | grep -v ^$ > init2.txt

3、vim 文本编辑器

1)vim文本编辑器

格式:vim 文件名

若目标文件不存在,则新建空文件并编辑

若目标文件已存在,则打开次此文件并编辑

vim +9 文本 ##编辑时,直接跳到第9行

2)常用操作

命令模式下按 i 进入输入模式

命令模式下按 o 另起新的一行进入输入模式

输入模式下按 esc 退回命令模式

命令模式下按 :进入末行模式

末行模式下按 esc 退回命令模式

:wq 末行模式下敲 :wq 代表保存文件并退出

:q! 末行模式下敲 :q! 代表强制不保存退出

yy 命令模式下按 yy 代表复制当前光标所在的行

p 命令模式下按 p 把复制的数据粘贴到光标所在行的下一行

:set nu 末行模式下敲 :set nu 显示文本的行号

:set nonu 末行模式下敲 :set nonu 取消文本的行号显示

/ 末行模式下敲 / 可以查找想要的数据,并以高亮显示,按n可以进行跳转

4、mount 挂载操作

1)什么是挂载:

将光盘/U盘/分区/网络存储等设备装到某个Linux目录

各种命令工具通过访问Linux目录来操作这些设备

2)使用mount命令挂载光盘或者分区

格式:mount 设备路径 挂载点目录

例如:mount /dev/cdrom /mnt #将/mnt目录作为设备的访问点

3)使用umount命令卸载已挂载的光盘或分区

格式:umount 挂载点目录

例如:umount /mnt

注意事项:一个设备可以有多个挂载点

挂载点的目录尽量使用自己创建的

卸载时当前路径不要是挂载点目录,否则会提示正忙

5、RPM包管理机制

1)常见的软件封包类型

封包类型 说明

rpm软件包 扩展名为.rpm,适用于RedHat系列

deb软件包 扩展名为.deb,适用于Debian系列

源代码软件包,通常以.tar.gz、.tar.bz2格式的压缩包提供包含程序的原始代码文件

其他 提供insatll.sh、setup、*.bin、*.pl等安装文件,绿色免安装、提供已编译的程序及相关文件

2)RPM的含义

由红帽公司提出,RedHat、SUSE等系列采用

建立集中数据库,记录软件包安装/卸载等变化信息,分析软件包依赖关系

软件名-版本信息.操作系统.硬件架构.rpm

bash-4.2.46-30.el7.x86_64.rpm

3)常见安装位置

文件类别 默认安装位置

普通执行程序 /usr/bin/、/bin/

服务器程序、管理工具 /usr/sbin/、/sbin/

配置文件 /etc/、/etc/软件名/

日志文件 /var/log/、/var/log/软件名/

程序文档、man手册页 /usr/share/doc/、/usr/share/man

4)查询已安装的软件

格式:rpm -q[子选项] [软件名称]

常用的子选项:

-q 查看一个包是否安装

-i 查看软件的详细信息,版本等等信息

-l 查看软件包的安装清单

-a 列出当前系统安装的所有rpm包

rpm -q firefox

rpm -qi firefox

rpm -ql firefox

rpm -qa | grep firefox

5)查看某个目录/或文件是哪个包带来的

格式:rpm -qf [文件路径]

-f 查看某个目录或文件是哪个包带来的

rpm -qf /etc/hostname

rpm -qf /etc/hosts

6)查看待安装的软件包

格式:rpm -q[子选项] [软件名称]

-p 查看未安装的软件包

-pi 查看未安装软件包的详细信息,版本等等信息

-pl 查看未安装软件包的安装清单

ls /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm

rpm -qpi /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm

rpm -qpl /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm

6、RPM软件包管理

1)安装RPM软件

格式:rpm -i RPM包文件...

辅助选项:

-v 显示细节信息

-h 以#号显示安装进度

例如:

rpm -i /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm

rpm -e vsftpd

rpm -iv /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm

rpm -e vsftpd

rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm

2)导入红帽签名信息

rpm --import /mnt/RPM-GPG-KEY-CentOS-7

3)卸载RPM软件

格式:rpm -e 软件名...

rpm -e vsftpd

4)强制覆盖重新安装RPM包,可用于修复软包

格式:rpm -ivh --force 软件包名称

rm -rf /usr/bin/hostname

rpm -qf /usr/bin/hostname

rpm -ivh --force /mnt/Packages/hostname-3.13-3.el7.x86_64.rpm

5)软件包的依赖关系

解决软件包依赖关系:

先安装/卸载要求的包

如果RPM包齐全但比较多,可以用通配符*

忽略依赖关系(不推荐)

可能会导致软件运行正常

辅助选项 --nodeps

6)体验一下Linux系统依赖包的安装

rpm -ivh /mnt/Packages/bind-chroot-9.9.4-61.el7.x86_64.rpm

rpm -ivh /mnt/Packages/bind-9.9.4-61.el7.x86_64.rpm

rpm -ivh /mnt/Packages/bind-chroot-9.9.4-61.el7.x86_64.rpm

案例题:

1、找出/usr/bin/hostname是由那个软件包产生的?

2、删除/usr/bin/hostname命令程序

3、修复/usr/bin/hostname

4、安装bind-chroot包,体验Linux依赖关系

7、课后习题

1、常见的压缩格式和命令工具有哪些?

tar

gz

bz2

xz

2、归档和压缩的含义分别是什么?

把多个文件放到一起

把文件的大小再进行缩小

3、请写出tar命令的打包格式?

tar 选项 tar包的名称 被打包的目录或文件

4、以下tar命令的选项的作用分别是什么?

-c 创建压缩包

-f 指定压缩包的名称

-x 解开压缩包

-z 以gz的格式进行打包

-j 以bz2的格式进行打包

-J 以xz的格式进行打包

-C 解包时指定释放的路径

-t 查看压缩包的内容

5、使用tar命令打包/etc/passwd和/etc/hosts两个文件,保存到/opt/ph.tar.gz

tar -zcf /opt/ph.tar.gz /etc/passwd /etc/hosts

6、使用tar命令打包/home目录和/boot目录,保存到/opt/hobo.tar.bz2

tar -jcf /opt/hobo.tar.bz2 /home /boot

7、使用tar命令打包/tmp目录和/root目录,保存到/opt/tmro.tar.xz

tar -Jcf /opt/tmro.tar.xz /tmp /root

8、使用tar命令分别查看/opt/ph.tar.gz、/opt/hobo.tar.bz2、/opt/tmro.tar.xz这三个压缩文件的清单列表

tar -tf /opt/ph.tar.gz

tar -tf /opt/hobo.tar.bz2

tar -tf /opt/tmro.tar.xz

9、使用tar命令解压/opt/ph.tar.gz到当前目录

tar -xf /opt/ph.tar.gz

10、使用tar命令解压/opt/hobo.tar.bz2到/tmp目录下

tar -xf /opt/hobo.tar.bz2 -C /tmp

11、在 / 目录下,创建一个abc目录,然后将/opt/tmro.tar.xz解压到/abc目录

mkdir /abc

tar -xf /opt/tmro.tar.xz -C /abc

12、请写出以下grep命令常用选项的作用

-i 不区分大小写

-v 取反

^... 以...开头的行

...$ 以...结尾的行

^$ 匹配空行

13、使用grep查找/etc/passwd文件中以root开头的行

grep "^root" /etc/passwd

14、使用grep查找/etc/passwd文件中以nologin结尾的行

grep "nologin$" /etc/passwd

15、使用grep查找/etc/passwd文件中不以nologin结尾的行

grep -v "nologin$" /etc/passwd

16、使用grep查找/etc/login.defs文件中的有效的数据,并显示其行号,然后保存到/root/log.txt(需要去掉空行和以#开头的注释行,就可以获取真实数据)

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

17、vim编辑器中,如何进入输入模式,如何从输入模式退回命令模式,如何进入末行模式

命令模式下按i或者o

按esc键

按 :

18、如何在vim编辑器中保存文件并退出,以及如何不保存退出

在末行模式下按:wq

在末行模式下按:q!

19、如何在vim编辑器中显示文件内容的行号,以及如何取消行号

在末行模式下按:set nu

在末行模式下按:set nonu

20、如何在vim编辑器中进行复制和粘贴操作

在命令模式下按yy就可以复制当前光标的所在行

移动到想要粘贴的地方,然后命令模式下按p

21、如果要在vim编辑器中查找文本中的所有NB,如何操作

在末行模式下按 /查找的内容,可以按n进行跳转

1、请描述一下什么是挂载,有什么作用?

2、挂载的命令格式是什么?

3、如何卸载挂载点?

4、挂载和卸载的时候有那些注意事项?

5、挂载完光盘镜像之后,哪个目录存放着所有的rpm包?

6、创建/abc目录,然后把/dev/cdrom挂载到/abc目录下,查看一下软件包的数量有多少个?

7、rpm包的版本格式是什么,请写出来?

8、使用rpm命令,判断一个rpm包是否安装,可以用什么选项?

9、使用rpm命令查看firefox的详细信息?

10、使用rpm命令查看已安装软件的清单列表需要用什么选项?

11、使用命令从光盘镜像中查找包含vim字样的所有rpm包,请写出命令?

12、如何查看某个目录/或文件是哪个包带来的,请写出命令格式?

13、查看/etc/hostname、/usr/bin/hostname这两个文件是由那些软件包提供的?

14、如何查看未安装的软件包的详细信息?

15、如何查看未安装的软件包的清单列表?

16、查看vsftpd和httpd两个未安装软件的详细信息和清单列表?

17、使用rpm命令安装软件包时,以下选项的含义是什么?

-i

-v

-h

18、分别使用rpm安装命令的-i、-iv、-ivh安装vsftpd软件包,体验一下加不同选项实现的效果是不一样的

19、如何导入红帽签名信息?

20、私用rpm命令卸载vsftpd软件包?

21、删除/usr/bin/hostname,利用rpm命令进行修复?

22、使用rpm安装bind-chroot软件包,需要解决依赖关系?

Day04

1、vim编辑技巧

1)光标跳转:

上下左右键 上下左右移动光标

pgdn、ctrl+f 向下翻动一整页

pgup、ctrl+b 向上翻动一整页

Home键或^、数字0 跳转至首行

End键或$键 跳转至行尾

1G或gg 跳转至文件的首行

G 跳转至文件的尾行

2)复制粘贴:

yy、#yy 复制光标处的一行、#yy

p、P 粘贴到光标处之后、之前

x或Delete键 删除光标处的单个字符

dd、#dd 删除光标处的一行或多行

d^ 从光标处删除至行首

d$ 从光标处删除到行尾

3)查找、撤销、保存:

/word 向后查找字符"word"

?word 向前查找字符串"word"

n、N 跳转至下一个/上一个字符串

u 撤销最近的一次操作

U 撤销当前行的所有修改

ctrl+r 取消前一次撤销操作

ZZ 保存文件内容并退出vim编辑器

4)存盘、退出、文件操作

:w 保存当前文件

:q! 放弃已有更改后强制退出

:wq或:x 保存已有修改后退出

:w /root/newfile 另存为其他文件

:r /etc/filesystems 读取其他的文件内容

5)字符串替换:

:s /old/new 替换当前行第一个old

:s /old/new/g 替换当前行所有的old

:n,m s/old/new/g 替换n-m行所有的old

:%s /old/new/g 替换文件内所有的old

:%s /old/new/gc 替换是加c,每次需用户确认

6)开关设置:

:set nu|nonu 显示/不显示行号

:syntax on|off 启用/关闭语法高亮

:set hlsearch|nohlsearch 开启/关闭查询结果高亮显示

:set autoindent|noautoindent 启用/关闭缩进

2、vim的高级使用

1)使用.vimrc配置文件

位于用户家目录,可预先设置一些vim参数

vim ~/.vimrc

set nu

set ai

~/.viminfo,记录用户的历史操作

.filename.swp,编辑过程中的缓存文件

2)可视化选择

v 取连续的多个字符

V 取连续的多行

ctrl + v 取连续的多列

gv 重复上次选取

d 选中后按d可以删除

y 选中后按y可以复制

3、准备Yum软件仓库

1)yum概述

基于RPM构建的软件更新机制

自动解决软件包的依赖关系

所有软件包由集中的yum软件仓库提供

2)软件仓库的提供方式

本地目录:file://...

FTP或HTTP服务:ftp://... 、http://...

3)RPM软件包的来源

Red Hat发布的RPM包集合

第三方、用户自定义的RPM包集合

4、Yum仓库构建

1)影响yum使用的主要文件

基本设置:/etc/yum.conf

仓库配置:/etc/yum.repos.d/*.repo

日志文件:/var/log/yum.log

2).repo 基本配置项

[源名称] 自定义名称,具有唯一性

name 本软件源的描述字符

baseurl 指定YUM服务端的URL地址

enabled 是否启动此频道

gpgcheck 是否验证待安装的RPM包

gpgkey 用于RPM软件包验证的密钥文件

vim /etc/yum.repos.d/dvd.repo

[dvd]

name=this is rpm bao

baseurl=file:///mnt

enabled=1

gpgcheck=0

排错思路:

光盘镜像有没有挂载

是否删除/etc/yum.repos.d/目录下的内容

创建的配置文件是否以.repo结尾

配置文件是否写正确

3)生成仓库缓存

yum repolist

5、Yum命令行工具

yum list 列出所有包

yum list [软件名]... 列出指定软件的包

yum search 关键词 查找与关键词相关的软件包

yum info [软件名]... 查看指定软件的描述信息

yum provides 文件路径... 查看哪些软件能提供

yum [-y] 指令 软件名...

常用指令:

install 安装指定的软件包,类似于rpm -i

remove 卸载指定软件包,类似于rpm -e

yum clean all 清除yum仓库缓存,适用于yum缓存存在错误时

6、Shell基础与命令补充

1)根-树形目录结构

man hier 查看一级目录的作用

2)常见一级目录的用途

/boot 存放系统引导必需的文件,包括内核、启动配置

/bin、/sbin 存放各种命令程序

/dev 存放硬盘、键盘、鼠标、光驱等各种设备文件

/etc 存放Linux系统及各种程序的配置文件

/root、/home/用户名 分别是管理员目录、普通用户的默认家目录

/var 存放日志文件、邮箱目录等经常变化的文件

/proc 存放内存中的映射数据,不占用磁盘

/tmp 存放系统运行过程中使用的一些临时文件

3)历史命令

history 查看历史命令列表

history -c 清空历史命令

!n 执行命令历史中的第n条命令

!str 执行最近一次以str开头的历史命令

vim /etc/profile

HISTSIZE=1000 默认记录1000条

4)du 命令,统计文件的占用空间

du [选项]... [目录或文件]...

-s 只统计每个参数所占用的总空间大小

-h 提供易读容量单位(K,M等)

例如:du -sh /boot/ /etc/pki/

5)date,查看/调整系统日期时间

date +%F 只查看年月日

date +%R 查看时和分

date +"%Y-%m-%d %H:%M:%S" 查看年月日时分秒

date -s "yyyy-mm-dd HH:MM:SS"

例如:date -s "2001-12-31 09:30"

hwclock -s 重设系统日期时间

6)ln,创建软连接(若原始文件或目录被删除,连接文件将失效,软连接可存放在不同分区/文件系统)

软连接 --》原始文档 --》文档数据

格式:ln -s 原始文件或目录 软连接文件

7)ln,创建硬连接(若原始文件被删除,连接文件仍可用,硬连接与原始文件必须在同一分区/文件系统)

硬连接 --》文档数据

格式:ln 原始文件 硬连接文件

8)--help 查看外部命令的帮助信息

对于外部命令程序,通常会提供“--help”帮助选项

ls --help

9)man,格式化手册阅读工具

按 “上” 键、“下” 键、PgUp、PgDn 键滚动及翻页

按 q 键退出

按 / 键向后查找关键词(n,N切换)

10)归档+压缩操作,支持跨平台

格式:zip [-r] 备份文件.zip 被归档的文档...

-r 压缩目录必须加上-r,文件不用加-r

例如:zip [-r] /opt/etc_selinux.zip /etc/selinux/

du -sh /opt/etc_selinux.zip /etc/selinux/

11)释放归档+解压操作

格式:unzip 备份文件.zip [-d 目标文件夹]

例如:mv /etc/selinux /etc/selinux.old

unzip /opt/etc_selinux.zip -d /

ls -d /etc/selinux

12)改变标注输入/输出/错误输出的方向

类型 操作符 用途

覆盖重定向输出 > 将命令行的正常执行输出覆盖保存到文件

追加重定向输出 >> 将命令行的正常执行输出追加保存到文件

覆盖重定向错误输出 2> 将命令行的错误执行输出覆盖保存到文件

追加重定向错误输出 2>> 将命令行的错误执行输出追加保存到文件

混合重定向 &> 将错误和正确覆盖到同一个文件

7、课后习题

1、复制/etc/passwd文件至/opt/passwd.txt

2、vim打开/opt/passwd.txt文件,完成以下操作

1)切换到最后一行

2)切换到第30行

3)切换到第一行

4)删除第6行

5)删除1-5行

6)复制第一二行,粘贴到最后一行

7)查找全文的root字符串

8)将全文的a替换成大写的A

9)使用可视化工具给10-20行的行首加上#注释符号

10)在vim中显示行号

3、vim打开/etc/passwd文件,完成以下操作

1)关闭文本的高亮显示后再打开高亮显示

2)关闭文本的查询结果高亮显示后再打开高亮显示

3)启用自动缩进功能

Day05

1、用户与组管理

1)基于账户身份对资源访问进行控制

账户类别:用户账号、组账号

识别方式:UID、GID

2)用户账号

超级用户root、系统用户、普通用户

3)组账号

基本组(私有组)

附加组(公共组、从属组)

4)解析用户账户文件

/etc/passwd,保护用户账号的基本信息

每个用户都会记录一行,以:分割为7个字段

root:x:0:0:root:/root:/bin/bash

用户名:密码或密码占位符x:用户UID号:用户GID号:用户描述信息:家目录:登陆解释器

2、用户账号创建

1)添加用户

格式:useradd   [选项]...    用户名

常用选项:

-u   用户id

-d   家目录路径

-s   登陆解释器程序

-G  附加组

-g  基本组

例如:useradd  -u  1234  nsd01

useradd  -d   /opt/nsd02   nsd02

useradd  -s   /sbin/nologin   nsd03

useradd  -g  nsd01  nsd04

useradd  -G  nsd02  nsd05

2)查看用户是否创建成功

格式1:id   用户名

格式2:grep  "用户名"   /etc/passwd

3)创建组

格式:groupadd   组名

3、用户密码设置

1)设置用户登陆密码

格式1:passwd   [用户名]

格式2:echo   '密码'   |   passwd  --stdin  用户名

2)/etc/shadow,存放密码信息的文件

每个用户记录一行,以:分割为9个字段

root:$6$k97...BdWaDbGBJYn1:18226:0:99999:7:::

用户名

加密后的密码字符串

上次修改密码的时间

密码的最短有效时间,默认0

密码的最长有效天数,默认99999

密码过期前的警告天数,默认7

密码过期够多少天禁用此用户账号

账号失效时间,默认值为空

保留字段(未使用)

4、用户删改查

1)修改用户属性

使用usermod命令

usermod   [选项]...   用户名

常用命令选项

-u   用户id

-d   家目录路径

-s   登陆shell

-G  附加组(重置附加组)

-g   基本组

2)检查用户ID信息

使用id命令

id   用户名

3)删除用户

使用userdel命令

userdel   [-r]   用户名

5、用户初始配置文件

1)配置文件来源

新建用户时,根据 /etc/skel 模板目录复制

2)主要的初始配置文件

~/.bash_profile 每次登陆时执行

~/.bashrc 每次进入新的Bash环境时执行

~/.bash_logout 每次退出登陆时执行

全局配置文件:/etc/bashrc、/etc/profile

/root/.bashrc /home/nsd01/.bashrc /etc/bashrc

6、组账号管理

1)添加组(组基本信息存放在 /etc/group 文件)

使用 groupadd 命令

groupadd   [-g  组ID]   组名

2)管理组成员(组成员信息存放在 /etc/gshadow 文件)

使用gpasswd命令

gpasswd  -a   用户名   组名

gpasswd  -d   用户名   组名

3)删除组

使用 groupdel 命令

groupdel  组名

7、课后习题

1、Linux系统账户中,有哪些账户类别,如何进行识别?

2、/etc/passwd文件中,用户信息被分割成7个字段,每个字段的意思分别是什么

3、创建一个名为admin01的用户账号?

useradd admin01

4、使用id命令查看admin01用户的信息?

id admin01

5、查看admin01的家目录?

ls  /home/admin01

6、新建普通用户admin02,家目录位于/opt/admin02

useradd -d  /opt/admin02  admin02

7、新建普通用户admin03,将其UID设置成4567,将其登陆的shell设置成/sbin/nologin

useradd -u 4567 -s /sbin/nologin admin03

8、新建普通用户admin04,将其基本组设置为admin01,附加组设为admin02、admin03、root

useradd -g admin01 -G admin02,admin03,root admin04

9、创建admin05用户,将其家目录设置成/opt/admin05,将其UID设置成3000,将其登陆的shell修改为/sbin/nologin,将其基本组设置成root,附加组设置成admin03、admin04

useradd  -d  /opt/admin05  -u  3000  -s  /sbin/nologin  -g  root   -G admin03,admin04  admin05

10、给admin01用户设置一个密码:12345679

echo 12345679  |  passwd --stdin  admin01

passwd  admin01

11、过滤/etc/shadow文件中包含admin01的内容

grep  admin01  /etc/group

12、为用户admin02设置登陆的密码,然后注销后测试是否能够登陆

13、交互式的给admin03用户设置密码12345679

passwd  admin03

14、非交互式给admin05设置密码tarena

echo tarena  |  passwd --stdin  admin05

1、以下修改用户属性的选项分别是什么意思?

-u

-G

-g

-d

-s

2、删除用户的时候如何连同用户的家目录一块删除?

3、新建用户时,用户家目录的文件是由那个模板文件产生的?

4、每次用户登录时,会执行哪个文件?

5、每次用户退出登陆时,会执行哪个文件?

6、/root/.bashrc、/home/nsd01/.bashrc、/etc/bashrc这几个文件有什么区别?

7、添加一个组需要用什么命令?

8、组的基本信息存放在那个路径下的文件,文件内容的字段分别有什么含义?

9、组成员信息存放在那个路径下的文件?

10、如何将成员添加进组,如何将成员从组中剔除,请写出命令格式?

11、如何使用命令删除一个组,请写出命令格式?

12、创建用户harry01,把登陆的解释器修改为/sbin/nologin?

13、创建用户harry02,把家目录路径修改为/opt/harry02,然后查看/opt/harry2 ?

14、创建用户harry03,把用户的UID修改成5000 ?

15、创建用户harry04,把用户的基本组修改成root ?

16、创建用户harry05,将harry01、harry02设置成harry05的附加组?

17、创建用户harry06,将用户的解释器修改成/sbin/nologin,家目录修改为/opt/harry06,UID修改成6000,基本组修改成root,将harry03和harry04设置成harry06的附加组?

18、添加一个adminuser组,组ID是3333 ?

19、将用户harry01和harry02加入adminuser组?

20、将harry01和harry02用户从adminuser组中移除?

21、删除adminuser组?

Day06

1、权限和归属概述

1)访问权限

读取:允许查看内容—read(r)

写入:允许修改内容—write(w)

可执行:允许运行和切换—excute(x)

2)归属关系

所有者:拥有此文件/目录的用户—user(u)

所属组:拥有此文件/目录的组—group(g)

其他用户:除所有者、所属组以外的用户—other(o)

3)权限解析,ls -l 命令查看

权限位:硬连接数:属主:属组:大小:最后修改时间:文件/目录名称

2、修改权限

1)设置基本权限

格式:chmod    [ugo]   [+-=]   [rwx]   文件或目录...

常用命令选项

-R:递归修改权限

chmod   ugo=rwx  文件名

chmod   u=rwx,g=rwx,o=rwx  文件名

chmod   u-w,g-x,o-w   文件名

chmod   u+w,g+x,o+w  文件名

2)权限位的8进制数表示方式

r、w、x分别对应4、2、1,最终进行求和

分组 user权限 group权限 other权限

字符 r   w   x r   -   x r   -   x

数字 4   2   1 4  0   1 4  0   1

求和      7     5       5

chmod   777   文件名

chmod   700   文件名

chmod   570   文件名

3、修改归属

1)设置归属关系

格式:chown   属主    文件或目录...

chown   属主:属组    文件或目录...

chown   :属组   文件或目录...

常用命令选项

-R:递归修改归属

2)文件/目录的默认权限(umask默认值)

一般目录的权限是755(rwxr-xr-x)

一般文件的权限是644(rw-r--r--   一般文件默认均不给x执行权限)

查看umask默认值:(新目录755,新文件644)

umask

umask  -S

修改umask默认值:

umask   权限数值

3)创建新文件夹时,直接设置权限

利用mkdir的 -m 选项

格式:mkdir  -m  755  udir2

4、Set  GID && Sticky Bit

1)SGID权限

占用属组(Group)的x位

显示为 s 或 S ,取决于属组是否有 x 权限

对目录有效

在一个具有SGID权限的目录下,新建的文档会自动继承此目录的属组身份

chmod  g+s  目录

2)Sticky Bit概述

占用其他人(Other)的x位

显示为 t 或 T ,取决于其他人是否有 x 权限

适用于目录,用户限制用户滥用写入权

在设置了沾滞位的文件夹下,即使用户有写入权限,也不能删除或改名其他用户文档

chmod  o+t  目录

5、ACL策略简介

1)acl策略的作用

文档归属的局限性

任何人只属于三种角色:属主、属组、其他人

无法实现更精细的控制

acl访问策略

能够对各别用户、个别组设置独立的权限

大多数挂载的ext3/4、XFS文件系统默认已支持

setfacl  -m   u:zhangsan:rwx   /nsddir01

setfacl  -m   g:zhangsan:rwx   /nsddir01

getfacl  /nsddir01s ##查看目录或文件的acl权限

-m 修改权限

u: 给指定的用户设置单独权限

g: 给指定的一个组设置单独的权限

6、setfacl 命令解析

1)设置 acl 访问控制策略

使用 getfacl、setfacl 命令

setfacl   [-R]   -m   u:用户名:权限类别   文档...

setfacl   [-R]   -m   g:组名:权限类别   文档...

setfacl   [-R]   -x    u:用户名   文档...

setfacl   [-R]   -b    文档...

2)Set UID概述

SUID权限

占用属于(User)的 x 位

显示为 s 或 S,取决于属主是否有 x 权限

仅对可执行的程序有意义

当其他用户执行带SUID标记的程序时,具有次程序属主的身份和相应权限

chmod   u+s   可执行程序

·

7、课后习题

1、访问权限中,读写可执行分别用什么字符代替?

r w x

2、归属关系中,所有者、所属组、其他人分别用什么字符代替?

u g o

3、文件或目录的权限 7 个字段分别代表什么意思?

权限位:硬连接数:属主:属组:大小:最后修改时间:文件/目录名称

4、创建 /slisi.txt 文件,完成以下操作?

1)修改所有者为 wangwu 用户

2)修改所属组为 zhangsan 组

3)/slisi.txt 文件的所有者的权限为可读可写可执行?

4)/slisi.txt 文件所属组的的权限位可读可写?

5)/slisi.txt 文件对于其他人没有任何权限?

6)新建一个用户 harry ,让他对/slisi.txt 文件拥有可读可写的权限,测试是否可以可读可写?

5、创建 /nsddir02 目录,完成一下操作?

1)修改所有者为 student 用户

2)修改所属组为 tarena 组

3)让所有者对 /nsddir02 目录没有任何权限,测试student用户对目录是否有权限

4)让所属组对 /nsddir02 目录只有可执行权限

5)让其他人对 /nsddir02 目录拥有完全权限

6)将wangwu用户加入 tarena 组,修改 /nsddir02 目录的所属组权限位可读可执行,测试wangwu用户是否可以读和可执行

7)修改所有者的权限为可读可写可执行,测试 student 用户是否可以可读可写可执行

8)修改 /nsddir02 目录的权限为 450

9)修改 /nsddir02 目录的权限为 r-xrwx--x

10)修改 /nsddir02 目录的权限为 710

6、创建一个 /nsddir03 目录,并指定其默认权限为 r-xr--rwx

7、创建一个 /nsddir04/aa/nb/cc/1.txt

1)给 /nsddir04 目录的权限设置成 rwx--x--x

2)递归修改 /nsddir04 下的所有子文件和子目录的权限为 rw-r--rw-

3)递归修改 /nsddir04 下的所有子文件和子目录的所有者为 student

4)递归修改 /nsddir04 下的所有子文件和子目录的所属组为 zhangsan

01_云计算系统管理01相关推荐

  1. ADMIN云计算系统管理

    云计算系统管理 一.inux简介 Unix/Linux发展史 操作系统 -- UNICS,后改为UNIX Linux版本及应用 Red Hat系列版本 二.Linux系统的安装 三.Linux预备知识 ...

  2. 大数据与云计算学习计划 (一) 云计算系统管理 1 TCP/IP简单概念 (概念性)

    大数据与云计算学习计划 (一) 云计算系统管理 1 TCP/IP简单概念 (概念性) 一.前言 二.服务器架构 典型服务模式 三.TCP/IP协议 1.简介 2.主机对主机通信三要素 IP地址 子网掩 ...

  3. 大数据与云计算学习计划 (一) 云计算系统管理 3 Linux系统命令行基础 (概念与实操)

    大数据与云计算学习计划 (一) 云计算系统管理 3 Linux系统命令行基础 (概念与实操) 一.文件颜色 二.命令 1.概念 命令的执行依赖于解释器(用户->解释器->内核->硬件 ...

  4. 大数据与云计算学习计划 (一) 云计算系统管理 6 Linux中RPM软件包管理操作 、 Yum软件包仓库操作(概念与实操)

    大数据与云计算学习计划 (一) 云计算系统管理 6 Linux中RPM软件包管理操作 . Yum软件包仓库操作(概念与实操) 一.RPM软件包管理 1.常见软件包类型 2.RPM包文件名特征 3.RP ...

  5. 云计算系统管理、 云计算应用管理、系统服务管理进阶

    云计算系统管理. 云计算应用管理.系统&服务管理进阶 云计算系统管理 DAY01 开学典礼.云网络基础 DAY02 Linux系统简介.安装Linux系统.Linux基本操作 DAY03 命令 ...

  6. LINUX从零开始——ADMIN(云计算系统管理)——Day1 [云网络基础]

    NSD小白班正式开课! 零基础学习linux~ 新的征程开始啦~ 一.软件素材 百度云盘: 链接:https://pan.baidu.com/s/1hmepKHxMG_vPnBwWlwAlTA 提取码 ...

  7. 云计算运营—01华为云计算解决方案介绍

    华为云计算解决方案介绍 文章目录 华为云计算解决方案介绍 一.FusionSphere虚拟化解决方案介绍 云操作系统架构 FusionCompute组成 FusionManager FusionSto ...

  8. day01 -云计算简介与华为云计算解决方案01

    第一章:云计算简介 学习方法: 模块化思想:FC(VRM.CNA) 层次化思想:OpenStack(各组件的学习) 虚拟化到具体化:FC是什么,怎么实现?怎么搭建?抽象的封装到底层的实现 云计算简介: ...

  9. Linux系统管理01

    命令: 1.help 帮助 2.man 在线帮助 3.ls(list) 查看目录 4.-R = tree 5.du(disk usage)统计制定目录或文件所占用磁盘空间的大小 6.touch 创建空 ...

最新文章

  1. 理解Kalman滤波的使用
  2. tcpdf html 格式重叠,html - tcpdf(html2pdf)无法正确生成表格边框 - 堆栈内存溢出...
  3. 垃圾邮件过滤 php,垃圾邮件过滤功能
  4. 渗透测试-getshell方法总结
  5. [Android] Git组件化部署
  6. varchar和Nvarchar区别 ----转载
  7. 项目简单实用方式_组合替代继承_算法切换
  8. html中给div设置的属性怎么样才能拿得到_HTML与CSS结合的三种方式:优先级比较...
  9. 只学一门java可行吗,java可以作为第一门编程语言学习吗
  10. 阿里云 linux 找回mysql root密码
  11. c语言标准库assert,C 标准库 - assert.h
  12. UVA10341 Solve It【二分】
  13. 中望cad自定义快捷键命令_中望cad常用快捷键及命令
  14. Android黑白照片上色APP,黑白图片上色工具
  15. Matplotlib风羽自定义
  16. LabVIEW图表之双坐标轴
  17. 珍贵的人生格言81条和诸位分享
  18. iphone11屏比例_介绍iPhone 11和iPhone X屏幕尺寸对比iPhone 11屏幕和i
  19. 达芬奇密码 第七十一章
  20. 【升级华为网络设备及失败修复】

热门文章

  1. 案例分享 | 圆柱锂电池入壳焊后缺陷检测
  2. 成功解决WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after co
  3. 【力扣】953. 验证外星语词典
  4. Android自定义组合控件---教你如何自定义下拉刷新和左滑删除
  5. 老杨说运维 | 农商行数字化转型的误区与破局之道
  6. from mybook
  7. AI 全面商业应用的痛点与前景
  8. 在Ubuntu下如何压缩一个文件夹,如何查看文件夹大小
  9. SAPUI5 (05) - 主题 (Theming)
  10. uniapp开发微信小程序,引用微信物理查询插件