tftp:简单的文件传输协议 默认端口:69 http:超文本传输协议 默认端口:80 https:安全的超文本传输协议 默认端口:443 DNS:域名解析协议 默认端口:53 telnet:远程管理协议 默认端口:23 明文传输 ssh:远程管理协议 默认端口:22 加密传输 FTP:文件传输协议 默认端口:21 snmp:简单的网络管理协议 默认端口:161 smtp:邮件协议(用户发邮件) 默认端口:25 pop3:邮件协议(用户收邮件) 默认端口:110
###########################################
cd . //当前不变 cd … //返回上一层目录 cd …/… //返回上一层的上一层 cd - //返回上/proc 虚拟目录 /tmp 临时目录,默认数据存放10天不做任何操作系统直接删除 /etc 配置文件存放目录 /mnt 系统提供的挂载点一次工作目录 cd ~ = cd //进入当前用户家目录 绝对路径:以/开始的路径 相对路径:不以/开始的路径
#vim //文本编辑器 i //在当前字符前插入文本 a //在当前字符后插入文本 A //在行尾添加文本
---------------------------
#mount //挂载 #umount //卸载 #alias //设置别名 #unalias //取消已设置的别名 #^word //以字符串word开头 #word$ //以字符串word结尾 #rm //rm 删除 #mv //移动/改名
#>> //追加重定向
#useradd //创建用户 -u //指定用户id -d //指定家目录路径 -s //登录解释器 $ /sbin/nologin:禁止用户登录系统 -G //附加组 #passwd //修改密码 $ echo ‘密码’ | passwd --stdin 用户名 #usermod //修改用户属性 -u //指定用户id -d //指定家目录路径 -s //登录解释器 -G //附加组 #userdel //删除用户 -r //递归删除,连同用户的家目录一并删除
#groupadd //创建组 -g //指定组ID #groupdel //删除组 #gpasswd -a //添加用户到组中 #gpasswd -d //将组从用户中删除
#tar //备份与恢复 格式:tar 选项 /路径/压缩包的名 被压缩的源数据 -c 创建归档 -x //释放归档 -f //指定归档文件名称,必须放在所有选项的最后 -z、-j、-J //调用 .gz、.bz2、.xz 格式的工具进行处理 -t //显示归档中的文件清单 -C //(大写):指定释放路径 Linux平台压缩格式: gzip ----> .gz -s //登录解释器 bzip2 ----> .bz2 xz ----> .xz #crontab //cr工作模式中可以实现保存退出的操on计划任务 编辑:crontab -e [-u 用户名] #调用vim文本编辑器 查看:crontab -l [-u 用户名] 清除:crontab -r [-u 用户名]
#chmod //设置权限 chmod [-R] //递归设置权限 #chown //设置文档归属 chown [-R] 属主 文档… chown [-R] :属
组 文档gelin01:tarena"… chown [-R] 属主:属组 文档… acl访问控制列表 • 使用 getfacl、setfacl 命令 getfacl 文档… setfacl [-R] -m u:用户名:权限类别 文档… setfacl [-R] -m g:组名:权限类别 文档… setfacl [-R] -x u:用户名 文档… #删除指定的ACL setfacl [-R] -b 文档… #删除所有的ACL 附加权限(特殊权限) Set GID用于目录,Set GID可以使目录下新增的文档自动设置与父目录相同的属组 例:chmod g+s /nsd08/
Set UID适用于可执行文件,Set UID可以让使用者具有文件属主的身份及部分权限 例:chmod u+s /usr/bin/hahadir
Sticky Bit适用于开放w权限的目录,可以阻止用户滥用w写入权限(禁止操作别人的文档) 例:chmod o+t /home/public/
使用wget下载工具 wget 软件包的URL网址 -O(大写) /目录路径/新文件名 • RPM Package Manager,RPM包管理器 – rpm -q 软件名 #查询当前系统是否安装该软件 – rpm -ivh 软件名-版本信息.rpm #安装软件包 – rpm -e 软件名 #卸载软件
yum仓库 配置文件:/etc/yum.repos.d/*.repo 错误的配置文件会影响正确的配置文件 [xixi] #仓库标识 name=RHEL7.0 #仓库描述信息 *baseurl=http #指定服务端网络路径 enabled=1 #是否启用本文件 gpgcheck=0 #是否检测红帽签名信息
#yum repolist #列出仓库信息 #yum clean all #清空缓存
总结: #lsblk //显示当前系统识别的所有硬 #fdisk //分区工具 #partprobe //刷新分区表
格式化文件系统 mkfs.ext4 mkfs.xfs blkid(查看文件系统类型) 挂载使用 mount(手动)–>/etc/fstab(开机自动挂载) #mount -a //检测开机自动挂载配置文件,格式是否正确,书写完成,但当前没有挂载的设备,进行挂载 #df -h //(查看正在挂载的设备使用情况)
LVM管理工具 功能 物理卷管理 卷组管理 逻辑卷管理 Scan扫描 pvscan vgscan lvscan Create创建 pvcreate vgcreate lvcreate Display显示 pvdisplay vgdisplay lvdisplay Remove删除 pvremove vgremove lvremove Extend扩展 / vgextend lvextend
创建卷组 格式:vgcreate 卷组名 设备路径...... 扩大卷组 格式:vgextend 卷组名 设备路径...... 删除卷组 格式:vgremove 卷组名 创建逻辑卷 格式:lvcreate -n 逻辑卷名 -L 大小G 基于的卷组名 扩大逻辑卷 格式:lvextend -L 大小G 逻辑卷位置 删除逻辑卷 格式:lvremove 逻辑卷路径 文件系统的扩大(刷新文件系统) resize2fs:专用于ext4文件系统的刷新 例:resize2fs /dev/systemvg/vo xfs_growfs:专用于xfs文件系统的刷新 例:xfs_growfs /dev/systemvg/vo#lvs #查看逻辑卷基本信息 #vgs #查看卷组基本信息 #Vgchange -s 1M systemvg #修改PE的大小 #vgdisplay systemvg #查看卷组详细信息
------------------------------------------------- find高级使用,递归式查找[上级目录]
find [目录] [条件1] [-a|-o] [条件2] … – 常用条件表示: -type 类型(f文本文件、d目录、l快捷方式) -name “文档名称” -size +|-文件大小(k、M、G) -user 用户名 -mtime 根据文件修改时间 例: find /boot/ -type d #查找是目录 find /boot/ -type l #查找是快捷方式 find /boot/ -type f #查找是文件
1.命令 目标文件 选项 文件名称 find /etc/ -name "passwd" #按文档名称查找 2.命令 目标文件 选项 用户名称 find /home/ -user student #按照所有者进行查找 find / -user student #查找整个系统 3.命令 目标文件 选项 查询文件天数 find /root/ -mtime +1000 #按时间查找 4.处理find查找的数据 -exec 额外操作的开始 {} find每一个查询结果 \; 额外操作的结束 例:find /etc/ -name "*tab" -exec cp -r {} /opt \;#############################################################################################
shell 脚本
1.规范Shell脚本的一般组成 • #! 环境声明,下面所有代码由那个程序进行翻译 • # 注释文本 • 可执行代码 2.重定向输出 >: 只收集前面命令的正确输出 2>: 只收集前面命令的错误输出 &>: 收集前面命令的正确与错误输出 3.单引号 ‘’:取消所有字符的特殊意义,原样输出 4./dev/null:黑洞设备,专用于收集不要的输出信息 5.$( )或 反撇号: 将命令的输出,直接作为参数,参与运行 6.read -p ‘屏幕的提示信息’ 1.产生交互 2.记录用户在键盘上的输入 3.将记录的所有内容,最终赋值给一个变量储存 7.变量的种类 1.定义/赋值变量 2.查看/引用变量 3.变量的种类 //变量名一般为大写字母,由系统定义并且赋值完成 4.位置变量 //由系统定义并且赋值完成 5.预定义变量 //由系统定义并且赋值完成 $# 已加载的位置变量的个数,专用于用户是否输入参数 $? 程序退出后的状态值,0表示正常,其他值异常 8.常用的测试选项 • 检查文件状态 -e:存在为真 -d:存在,且必须为目录才为真 -f:存在,且必须为文件才为真[rhel_dvd] gpgcheck = 0 enabled = 1 baseurl = http://content.example.com/rhel7.0/x86_64/dvd name = Remote classroom copy of dvd
• 比较整数大小 -gt:大于 -ge:大于等于 -eq:等于 -ne:不等于 -lt:小于 -le:小于等于 9.(1) if双分支处理
if [条件测试];then 命令序列xx else 命令序列yy fi(2) if多分支处理 if [条件测试1];then 命令序列xx elif [条件测试2];thenserver0.example.com 命令序列yy elif [条件测试3];then 命令序列aa
else 命令序列zz fi(3)for循环处理 • 遍历/列表式循环 – 根据变量的不同取值,重复执行xx处理 for 变量名 in 值列表 do done --------------------------- SELinux安全机制 • SELinux的运行模式 - enforcing(强制) - permissive(宽松) - disabled(彻底禁用) - 临时切换:setenforce 1|0 #只影响当前系统此次开机 - 任何模式切换到disabled都要经历重起系统 - 固定配置:/etc/selinux/config 文件 #永久配置文件,每次开机默认的状态 server0.example.com • 影响指定用户的 bash 解释环境 – ~/.bashrc,每次开启 bash 终端时生效
• 影响所有用户的 bash 解释环境 – /etc/bashrc,每次开启 bash 终端时生效
防火墙策略管理 作用:隔离 严格过滤入站,允许出站
*预设安全区域 – public:仅允许访问本机的ssh dhcp ping少数几个服务 – trusted:允许任何访问 – block:阻塞任何来访请求(明确拒绝,给出客户端回应) – drop:丢弃任何来访的数据包(不给出客户端回应,节省服务器资源) 添加永久的规则:永久( --permanent) #firewall-cmd --reload #重新加载防火墙所有配置规则
--------------------------- #mkswap /dev/vdb1 #格式化交换文件系统 #swapon -s #查看交换空间组成 #swapon /dev/vdb1 #启用交换分区 #swapoff /dev/vdb2 #停用交换分区 #swapon -a #专用于检测交换分区
使用LDAP认证,实现网络用户认证,达到用户的集中管理 --------------------------- iSCSI网络磁盘 iSCSI磁盘的工作模式 • Internet SCSI,网际SCSI接口(默认端口:3260) • ISCSI Qualified Name 名称规范 iqn.yyyy-mm.倒序域名:自定义标识
服务端 •backstore,后端存储 /> backstores/block create name=nsd dev=/dev/vdb1 目录 命令 名字 磁盘名称 • target,磁盘组 /> iscsi/ create iqn.2019-08.com.example:server 目录 命令 磁盘组的名称 • lun,逻辑单元 /> iscsi/iqn.2019-08.com.example:server/tpg1/luns create /backstores/block/nsd 磁盘组位置 逻辑单元位置目录 命令 逻辑单元位置 名称 • 设置访问控制:设置客户端声称的名字 /> iscsi/iqn.2019-08.com.example:server/tpg1/acls create iqn.2019-08.com.example:desktop 磁盘组位置 设置客户端声称目录 命令 设置客户端名称 • 设置服务端在那个IP地址上提供服务,以及开放端口 /> iscsi/iqn.2019-08.com.example:server/tpg1/portals create ip_address=172.25.0.11 磁盘组位置 设置ip地址目录 命令 ip地址
客户端 •安装iscsi-initiator-utils软件包iSCSI磁盘的工作模式 ]#yum -y install iscsi-initiator-utils •设置客户端声称的名字 ]# vim /etc/iscsi/initiatorname.iscsi •客户端刷新声称名字的服务 systemctl restart iscsid ]# systemctl daemon-reload ]# systemctl restart iscsid
1.权限的数值表示
• 权限的数值化 – 基本权限:r = 4,w = 2,x = 1 – 附加权限:SUID = 4,SGID = 2,Sticky Bit = 1
2.历史命令 • 管理/调用曾经执行过的命令 – history:查看历史命令列表 – history -c:清空历史命令 – !n:执行命令历史中的第n条命令 – !str:执行最近一次以str开头的历史命令 • 调整历史命令的数量 [root@svr7 ~]# vim /etc/profile
3.实用小命令工具 • du,统计文件的占用空间 – du [选项]… [目录或文件]… – -s:只统计每个参数所占用的总空间大小 – -h:提供易读容量单位(K、M等)
4.制作快捷方式:软连接 格式: ln -s /路径/源数据 /路径/快捷方式名称 特点: 原文件被删除,不能使用 制作快捷方式:硬连接 ln /路径/源数据 /路径/快捷方式名称 特点: 原文件被删除,正常使用
5.获取命令帮助 方式:利用 --help 选项 方式:利用 man 命令 • man,格式化手册阅读工具 – 按上、下 、 PgUp 、PgDn 键滚动及翻页 – 按 q 键退出 – 按 / 键向后查找关键词(n、N切换) #数字5表示的帮助类型,配置文件类型帮助信息
6.zip归档工具(跨平台的压缩工具,Windows与Linux) 制作.zip压缩包 – zip [-r] 备份文件.zip 被归档的文档… • 释放归档+解压操作 – unzip 备份文件.zip [-d 目标文件夹]
7.vim编辑技巧
命令模式操作 [root@svr7 ~]# cp /etc/passwd /opt/p.txt [root@svr7 ~]# vim /opt/p.txt 光标跳转 Home 键 或 ^或数字 0 跳转到行首 End 键 或“KaTeX parse error: Expected 'EOF', got '#' at position 96: …制/粘贴/删除 复制 yy、#̲yy 复制光标处的一行、#…或D(大写) 从光标处删除到行尾 u 撤销 C(大写) 从光标处删除到行尾,进入插入模式 查找/撤销/保存 /word 向后查找字符串“word” n、N 跳至后/前一个结果 u 撤销最近的一次操作 U 撤销对光标所在的当前行所有修改 Ctrl + r 取消前一次撤销操作(反撤销) ZZ(大写) 保存修改并退出 末行模式操作 r /etc/filesystems 读入其他文件内容 :r /opt/b.txt #读入/opt/b.txt文件内容到当前文件中 :r /etc/passwd #读入/etc/passwd文件内容到当前文件中 字符串替换 😒/old/new 替换当前行第一个“old” 😒/old/new/g 替换当前行所有的“old” :n,m s/old/new/g 替换第n-m行所有的“old” :% s/old/new/g 替换文件内所有的“old” 开关参数的控制 :set nu或nonu 显示/不显示行号 :set ai或noai 启用/关闭自动缩进
8.源码编译安装 rpm包: yum rpm -ivh 源码包:-----gcc make-----》可以执行程序--------》运行安装 • 主要优点 – 获得软件的最新版,及时修复bug – 软件功能可按需选择/定制,有更多软件可供选择 – 源码包适用各种平台 步骤1:安装gcc与make两个开发工具 步骤2: tar解包,释放源代码至指定目录 步骤3: ./configure 配置,指定安装目录/功能模块等选项 作用:检测当前系统是否安装gcc --prefix=指定安装位置 步骤4: make 编译,生成可执行的二进制程序文件 步骤5: make install 安装,将编译好的文件复制到安装目录 --------------------------- 安装虚拟化服务器平台 • 主要软件包 – qemu-kvm:为 kvm 提供底层仿真支持 – libvirt-daemon:libvirtd 守护进程,管理虚拟机 – libvirt-client:用户端软件,提供客户端管理命令 – libvirt-daemon-driver-qemu:libvirtd 连接 qemu 的驱动 – virt-manager:图形管理工具
虚拟机化服务:libvirtd #默认服务开机自启动 virsh命令工具介绍 • 提供管理各虚拟机的命令接口 – 支持交互模式,查看/创建/停止/关闭 … …
– 格式:virsh 控制指令 [虚拟机名称] [参数]
查看虚拟化信息 • 查看KVM节点(服务器)信息 – virsh nodeinfo • 列出虚拟机 – virsh list [–all] • 查看指定虚拟机的信息 – virsh dominfo 虚拟机名称 • 将指定的虚拟机设为开机自动运行 – virsh autostart [–disable] 虚拟机名称 • 将指定的虚拟机设置开机不自启 – virsh autostart --disable nsd01 • 运行|重启|关闭指定的虚拟机 – virsh start|reboot|shutdown 虚拟机名称 • 强制关闭指定的虚拟机 – virsh destroy 虚拟机名称 一台KVM虚拟机的构成 – xml配置文件(虚拟机描述文件):定义虚拟机的名称、UUID、CPU、内存、虚拟磁盘、网卡等各种参数设置 - virsh dumpxml nsd01 #查看虚拟机xml文件内容 – 磁盘镜像文件:保存虚拟机的操作系统及文档数据,镜像路径取决于xml配置文件中的定义 - ls /var/lib/libvirt/images/
COW技术原理:可以快速产生虚拟机磁盘镜像文件 • Copy On Write,写时复制 – 直接映射原始盘的数据内容 – 当原始盘的旧数据有修改时,在修改之前自动将旧数据存入前端盘 – 对前端盘的修改不回写到原始盘 – 原始盘内容不能修改
快速创建qcow前端盘 • qemu-img 通过 -b 选项复用指定原始盘 – qemu-img create -f qcow2 -b 原始盘 前端盘 大小 -qemu-img create -f qcow2 -b .node_base.qcow2 abc01.img 5G #依据原始盘生成前端盘 -qemu-img info abc01.img #查看前端盘信息 file format: qcow2 #文件格式 virtual size: 5.0G (5368709120 bytes) #虚拟空间大小 disk size: 196K #实际占用空间大小 cluster_size: 65536 backing file: .node_base.qcow2 #原始盘名称 • 导入虚拟机信息 -virsh define /home/student/nsdfile/abc01.xml
