第1章 安装CentOS7
1-1 企业高级IT运维技术需要学习的技能
1-2 课程介绍
Windows server 学起来比较容易 需要花钱购买正版软件
linux 自定义操作系统 ,开源的
- Linux系统管理
- 安装Linux、基本应用、用户和组、文件管理、磁盘管理、系统网络管理、监控系统性能、系统进程管理、系统安全加固、系统启动初始化,系统运行级别、远程访问系统
- Linux网络基础服务
- 配置DHCP服务、配置DNS服务、FTP服务、NFS服务、Samba服务、将Linux配置成路由器、Linux防火墙和NAT、搭建Web服务器、安装和配置MySQL服务、将Linux配置成VPN服务器、搭建邮件服务器、配置Squid服务器最为Web代理服务器、系统间的时间同步
1-3 Linux发行版本
- Linux发行版本构成
- Linux内核 + 各种自由软件 = 完整的操作系统
- 厂商提供的辅助安装、软件包管理等程序
- 发行版的名称、版本由发行厂商决定
- Red Hat Enterprise Linux ,由Red Hat公司发布
- CentOS (Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一
- Suse Linux 11,由Novell公司发布
- Debian Linux 5.0,由Debian社区发布
- ……
Linux在企业中的应用
- Internet网络服务器的应用
- 网站、域名解析、FTP、邮件系统 ……
- 中小企业内部服务器的应用
- 代理上网、网络防火墙、企业网关
- DHCP动态地址分配、Samba文件共享 ……
- 软件开发环境的应用
- 支持C/C++、Perl、PHP、Java、Python …… 语言
- 桌面环境的应用
- OpenOffice办公软件、Firefox浏览器
- QQ/MSN即时通讯、RealPlayer、Mplayer播放器
- ……
文件系统类型
- Linux中默认使用的文件系统类型
- EXT3, 第3代扩展(Extended)文件系统
- SWAP,交换文件系统
- Linux支持的其它文件系统类型
- FAT16、FAT32、NTFS
- XFS、JFS
- ……
1-4 最小化安装CentOS7
1-5 Linux虚拟终端和模拟终端
多用户,允许多个终端同时接入
Linux终端
- 虚拟终端 mingetty程序产生
- w可以查看登录虚拟终端的用户
- 切换终端 ctrl+alt+fn n=1-6
- 输入tty 显示当前是那个终端
1-6 关机 重启 注销
- shutdown –r now 现在重启
- reboot 重启系统
- shutdown now 现在关机
- poweroff 关机
- shutdown +5 过5分钟关机
- shutdown –c 取消关机命令执行
- shutdown –h 02:23 & 在2点23分关机
- shutdown –r 02:25 & 在2点25分重启
- 注销 logout
1-7 安装图形界面GNOME
- 先安装X Window
- Yum groupinstall “X Window System” –y
- 查看安装的软件
- Yum grouplist
- 安装图形界面GNOME
- Yum groupinstall “GNOME Desktop” “Graphical Administration Tools
- 输入startx进入图形界面(不能在虚拟终端执行此命令进入图形界面)
- [root@webServer ~]# systemctl get-default
- multi-user.target
- [root@webServer ~]# systemctl set-default graphical.target
1-8 GNOME图形界面基本操作
第2章 SHELL
2-1 介绍Linux下的SHELL
这里的shell就是指命令行,区分大小写
Linux 系统区分大小写
- GUI 图形界面
- Gnome C语言开发
- KDE C++开发
- Xface 轻量级图形界面
- CLI 命令行
- bsh Unix提供的shell 功能弱
- sh 安全稳定
- csh Bill joy研发Csh 语法接近C语言 功能比sh强
- ksh 商业版的ksh改进了csh GNU组织开发了免费的ksh 比商业版的ksh功能少
- bash GNU组织融合和ksh csh和sh特性重新开发 能够操作Linux和unix
- zsh
- tcsh
2-2 Bash命令行编辑
- 光标快速移动
- Ctrl+a 快速跳转到行首
- Ctrl+e 快速跳转到行尾
- 删除命令行中内容
- Ctrl+w 删除光标前一个单词
- Ctrl+u 删除光标到行首的字符
- Ctrl+k 删除光标到行尾的字符
- 清屏幕
- Ctrl+l或clear Windows命令提示符 cls
- 取消不执行的命令
- Ctrl+c
2-3 Bash的内部命令和外部命令
- 内部命令 shell程序自带的命令
- type + 查询的的命令 查看命令是内部还是外部命令
- 查看内部命令:[root@webServer ~]# man type
- 外部命令 在系统的某个路径下的可执行程序
- 外部命令查找 依赖于 PATH变量
- 查看外部命令搜索路径 查看PATH变量
- echo $PATH
- type pwd查看pwd是内部命令还是外部命令
- which命令查看命令所在的目录
- [root@WebServer home]# which ping
- [root@WebServer home]# which ifconfig
- 安装外部命令
- [root@webServer etc]# yum install -y net-tools
2-4 命令补全和路径补全
- 命令补全 连按tab键 列出所有可能的命令
- hash表缓存命令所在位置(就是把命令存在这个位置,再使用此命令时不用使用PATH变量来查找了)
- hash –d wc 删除wc命令的缓存(删除某一条命令的缓存)
- hash –r 清空缓存表
- 路径补全
2-5 命令历史
默认存1000条命令历史,可以改
- [root@WebServer ~]# echo $HISTSIZE 缓存多少条命令
- [root@WebServer ~]# echo $HISTFILESIZE 命令历史文件能够保存多少条命令
- [root@WebServer ~]# echo $HISTFILE 查看命令历史文件
- /root/.bash_history
- [root@WebServer ~]#cat /root/.bash_history 查看保存命令历史
- history查看命令历史
- History命令参数
- -c 清空命令历史
- -w 保存命令历史到历史文件
- -a 附加命令历史 到历史文件
- -d 4 删除命令历史的第4条命
- [root@WebServer ~]# history –a 将缓存的新命令 追加到历史文件
- 查看$HISTCONTROL变量的值
- [root@WebServer ~]# echo $HISTCONTROL
- Ignoredups 不记录后面重复的命令 只记录第一个
- Ignorespace 不记录以空格开始的命令
- Ignoreboth 不记录以空格开始命令 也不记录后面重复的命令
- 设置变量
- export HISTCONTROL= Ignorespace
执行以前的命令
- !!执行上一条命令
- history查看命令历史
- !6 可以执行命令历史中第6行命令
- !-1 可以执行命令历史中的倒数第一个命令
- 上下键可以翻命令历史
- Ctrl+P 向上翻
- Ctrl+N 向下翻
当前命令 调用上一条命令的最后一个参数
- 第一种方法
- ESC松开 再按 .
- 第二种方法 输入!$
- [root@WebServer ~]# tail -1 !$
- tail -1 /etc/passwd
- sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
2-6 文件名通配符
- 通配符 特殊的字符 不表示字符的表面意义 而是能够匹配符合指定特征的字符
- * 代表任意长度的字符
- ? 代表任意单个字符
- [] 代表指定范围的单个字符
- [root@WebServer tmp]# touch a ab aab cab adb ayb a91xueitb
- [root@webServer ~]# ls a[ad]b
- aab adb
- [root@webServer ~]# ls a[a-w]b
- aab adb
- [root@webServer ~]# ls a[0-9]*
- a91xueitb
- [root@webServer ~]# ls a[^0-9]*
使用专门的方法标识特定字符
- [[:space:]] 空格
- [[:digit:]] [0-9]
- [[:lower:]] [a-z]
- [[:upper:]] [A-Z]
- [[:alpha:]] [a-Z]
2-7 命令别名
比如ipconfig,在linux是ifconfig,可以通过alias别名·
命令别名
- alias cmdalias=’command [option] [argument]’
- [root@WebServer ~]# type alias
- 查看定义的别名
- [root@WebServer ~]# alias
- 定义命令别名
- [root@WebServer ~]# alias if1='ifconfig eth0'
- [root@WebServer ~]# alias ifconfig='ifconfig eth0' (这里的别名改后,一旦用户注销这个别名将不再起作用)
- 调用命令本身
- [root@WebServer ~]# \ifconfig
- 将命令别名添加到用户环境配置文件(在配置文件里修改的别名是永久生效)
- [root@WebServer ~]# ls -a
- [root@WebServer ~]# vi .bashrc
- 编辑/etc/bashrc 添加命令别名 对所有用户生效
- [root@WebServer ~]# vi /etc/bashrc
- 删除别名
- [root@WebServer ~]# unalias cdnet
2-8 命令替换
- 使用命令执行的结果替换该命令
- $(命令)
- [root@WebServer tmp]# echo "The current directory is $(pwd)"
- [root@WebServer ~]# date --help
- date +"%Y-%m-%d %H:%M:%S"
- [root@WebServer tmp]# touch file-$(date +"%Y-%m-%d %H:%M:%S" )
- 使用反引号实现命令替换 echo `pwd`(ESC下面这个按键,反引号)
- bash 中 “ ” 弱引用 能够实现命令替换
- ‘ ’ 强引用 不能够实现命令替换
2-9 路径展开
[root@centos ~]# mkdir /tmp/a /tmp/b等于[root@centos ~]# mkdir /tmp/{a,b}
mkdir /tmp/zz/a/b /tmp/yy/a/b
mkdir /tmp/{zz,yy}/a/b
[root@WebServer ~]# mkdir /tmp/{a,b}{c,d} -v(-v显示细节)
mkdir: 已创建目录 "/tmp/ac"
mkdir: 已创建目录 "/tmp/ad"
mkdir: 已创建目录 "/tmp/bc"
mkdir: 已创建目录 "/tmp/bd"
- [root@WebServer ~]# mkdir /tmp/{zz,yy}/a/b -pv
- mkdir: 已创建目录 "/tmp/zz"
- mkdir: 已创建目录 "/tmp/zz/a"
- mkdir: 已创建目录 "/tmp/zz/a/b"
- mkdir: 已创建目录 "/tmp/yy"
- mkdir: 已创建目录 "/tmp/yy/a"
- mkdir: 已创建目录 "/tmp/yy/a/b"
2-10 输入输出重定向和管道技术
Windows和linux都有重定向和管道技术
重定向
标准错误输出
管道
- 重定向 标准输出
- Ifconfig eth0 1>abc
- 重定向 标准错误输出
- Ifconfig eth1 2>123
第3章 文件管理类命令
3-1 介绍Linux目录结构
- / 根目录 文件的最顶端,/etc /bin /dev /lib /sbin 应该和根目录放到一个分区中
- /bin 二进制,为所有用户使用的可执行程序
- /sbin system binaries 系统二进制程序 为管理所用
- /dev 设备文件的存放位置
- /lib 基本共享库和内核模块 Essential
- /etc Host-specific system configuration 主机相关的系统配置
- /boot Linux启动内核以及引导系统程序所需的核心文件,内核文件和grub系统引导管理器都位于此目录
- /etc/X11 X Windows专门为图形界面存放配置的文件的目录
- /home 用户主目录(可选的) 在home中存放用户名同名的目录
- /media Mount Point for removeable media 为移动设备提供挂载点 光盘和U盘默认挂载点
- /mnt 挂载点 第二个硬盘一般挂载到mnt
- /opt add-on application software package 可选的软件安装路径 Oracle默认安装到此
- /root 管理员的主目录
- /srv data for service provided by this system 服务使用的数据
- /tem 临时文件 公共场所
- /usr 应用程序存放目录,如命令、帮助文件等,建议单独分区,指定较大的磁盘空间。
3-2 命令参数和帮助的使用
- command [options] [arguments]
- 短选项 -h -l -s 选项之间使用空格隔开
- 短选项命令可以组合 -l -h 或者 -lh
- 有些命令的短选项可以不带- 通常称作BSD风格的选项 ps aux ,tar xf
- 有些短选项需要带参数 -L 512M
- ls -lh
- ls -l -h
- ls --help 可以看到长参数和段参数
- 长选项 --help , --list
- 长选项不能组合
- 如果需要参数 长选项的参数通常需要=号 --size=1G
- 参数:命令的作用对象
- ls /root
- -L 512M
如何获取命令帮助信息:
- 内部命令
- help COMMAND
- 外部命令
- COMMAND --help
- 绝大多数命令都有实验手册
3-3 文件路径
- 绝对路径
- 相对路径
- 工作目录 当前目录
- pwd 显示当前目录 print working directory
3-4 目录切换命令cd
- Linux文件名称 命名方式 除了回车都可以 不建议使用空白 / ? * 不要超过255个字符
- 不靠扩展名区分类型
- 文件和文件夹不能重名
- 路径
- 严格区分大小写
- 可以使用任意字符 除了回车和/
- .开头 隐藏文件
- 最长255字符
文件夹有颜色,文件没有颜色
- change directory
- ls
- 直接输入cd或cd ~,回到用户的home目录
- cd ~student 可以切换到其他用户的home目录
- 相对目录
- . 当前路径
- ..
- cd ../.. 上级目录的上级目录
- cd student/相对路径
- cd /student 绝对路径
- cd –
- 当前路径和上一路经 来回切换
- Echo $PWD两个环境变量 会保存上一个路径和当前路径
3-5 查看文件夹内容ls
- ls:list
- Linux所有.开始的文件为隐藏文件
- -a 显示隐藏文件
- -l 长格式
- -r 逆序
- -R 递归显示
- -I 节点号
- 文件类型 权限 文件硬链接的个数 文件的属主 属组 文件大小 文件最后一次被修改的时间 文件名
- 文件夹 不大于4K 和文件夹中文件数量和目录数量有关系
- 想查看目录本身属性
- ls –dl /dev
- 显示子目录中的内容
- ls –lR /dev 递归显示
3-6 创建目录mkdir和删除目录rmdir
- mkdir
- mkdir /tmp/media
- mkdir –p /tmp/m/n 先创建m再在m中创建n 参数可以放到前 也可以放到后
- mkdir /tmp/m1/n1 –pv 显示创建详细过程
- rmdir
- 只能用于删除空目录
- rmdir –p /tmp/m/n/p/q 先删除q 再删除p 再删除n
3-7 Linux文件类型
- 1.普通文件 标识为- f
- 2.目录文件 标识为 d
- 3.链接文件
- 软连接 符号连接 快捷方式 标识为l
- 硬链接 标识为-
- 4.特殊文件 用于作为硬件设备访问的文件
- 块设备 随机 按块进行存取 标识为 b
- 字符设备 有前后顺序的 线性的按字符逐个存取的字符设备 标识为c
- 5.套接字文件 socket 让两个进程进行通信 使用软件模拟的设备 标识为s
- 6.命名管道 pipe 标识为p
3-8 拷贝文件cp
- cp a b c d 将a b c拷贝到d目录
- cp /etc/passwd /tmp/abc
- 如果abc不存在 则将文件passwd拷贝成abc abc父路径存在
- 如果abc是文件 现有abc被覆盖
- 如果abc是目录 将passwd文件将被复制到abc文件夹 保留原来的文件名
- cp –r /etc/sysconfig /tmp/ 复制目录
- -r -R 递归复制目录
- -p拷贝文件 保留文件的原有的权限 属主和时间戳 只有管理员可以 普通用户不能保留
- -d 保留文件链接属性
- -a 保留所有属性 相当于-dr
3-9 删除rm和移动mv文件
- rm 只能删除文件 remove
- rm /tmp/a.txt
- rm –r /tmp/d/* 删除d目录下的全部文件和文件夹 不删除d目录
- rm –r /tmp/d 删除d文件夹和里面的文件
- Rm –rf /tmp/* 强制删除tmp目录下的全部文件 不提示
- \rm –r /tmp/* 直接删除不需确认
- mv /tmp/abc /tmp/abc3
- 将多个文件移动到一个目录下
- 目录不能覆盖文件
3-10 更改文件访问时间和修改时间touch
- 每一个文件都有三个时间
- 最近一次访问时间
- 最近一次修改时间 modify 文件内容变化 内容变了 属性肯定变
- 最近一次改变时间 元数据 文件属性的改变
- 文件数据
- 数据
- 元数据 文件名 大小 权限 属主属组 时间戳
- 查看文件的元数据 touch一下所有时间戳 都跟着变化
- Stat查看文件的元数据
应用场景:备份数据时,备份昨天最近的文件,其他应用场景
3-11显示文件类型file和查找文件find
- 用来显示文件类型
- 字符文件
- 二进制文件
Find按名称和文件类型查找
- 默认查找当前目录
- [root@WebServer ~]# find -name 'tea*'
- [root@WebServer ~]# find -name "tea*"
- 查找指定路径的文件
- [root@webServer ~]# find /dev -name 'st*'
- 查找满足两个条件的文件 都满足
- [root@webServer ~]# find /root -name "han*" -type f (type f是代表文件,此命令是查找以han开头的文件)
- 查找满足两个条件的文件 或者
- [root@WebServer ~]# find /tmp -name "tea*" -o -name "a*"
- 除了某个条件的文件
- [root@webServer ~]# find /root -name "han*" ! -type f
- 把查找结果保存到一个文件
- find -name april* -fprint file
find 文件时间查找
- -amin n 查找系统中最后n分钟访问的文件
- -atime n 查找系统中最后n*24小时访问的文件
- -cmin n 查找系统中最后n分钟被改变文件状态的文件
- -ctime n 查找系统中最后n*24小时被改变文件状态的文件
- -mmin n 查找系统中最后n分钟被改变文件数据的文件
- -mtime n 查找系统中最后n*24小时被改变文件数据的文件
- +n 代表n时间以前
- –n 代表n时间以内
按文件属主和属组查找
- 按属主查找
- [root@WebServer ~]# find /home -user hanlihui
- 按属组查找
- [root@WebServer ~]# find /home -group hanlihui
- 查看当前用户的id
- [root@WebServer ~]# id
- uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
- 查看指定用户的id
- [root@WebServer ~]# id hanlihui
- 使用uid和gid查找文件
- [root@WebServer ~]# find /home -uid 503
- [root@WebServer ~]# find /home -gid 503
find 按大小查找
- [root@WebServer ~]# find . –empty
- find /home -empty
- 查找小于512k的文件
- [root@WebServer ~]# find /root/ -size -512k
- 查找大于512K的文件
- [root@WebServer ~]# find /root/ -size +512k
find 按文件类型
- find /dev -name ‘st*’ -type l 连接
- find /home -links +2 连接数大于2个
3-12 查看文件内容cat tac more less head tail
Cat
- -n 显示行号
- -b 给非空行编号
- 可以显示文本文件的内容 可以同时显示多个文本文件的内容
- [root@WebServer ~]# cat -n teacher.txt abc
Tac显示文本内容
- 按行号逆向显示文本内容
Tac+文本名
more分页显示
- 分屏显示文本文件内容 从前往后翻
- b键往前翻一行 翻到文件的尾部 显示结束 不能往前翻了
- 回车 往下翻一行
- 空格 往下翻一屏
- more /etc/passwd
less 分屏显示 less+文本文件
- 向下翻一行 向下键 回车
- 向上翻一行 向上键
- 向下翻一屏 pgdn 空格键
- 向上翻一屏 pgup
- /vir (在less页面找vir)
- ?vir(在less页面找vir)
- :q退出less命令
Head
- 显示文本文件的前几行 默认显示前10行
- [root@WebServer ~]# head -n 2 /etc/passwd
- [root@WebServer ~]# head -2 /etc/passwd
Tail
- 显示文本文件的后几行 默认显示后10行
- [root@WebServer ~]# tail -n 2 /etc/passwd
- [root@WebServer ~]# tail -2 /etc/passwd
- -f follow 一直跟踪 不再退出 ctrl+c结束
3-13 文本编辑器Vi、nano和winSCP
nano命令默认没有,要安装。
Vi
- 可以打开文件进行编辑 创建文件进行编辑
- [root@WebServer ~]# vi test1
- 输入i 变为插入模式 编辑内容
- 删除光标所在的行 dd
- Ctrl+f往下翻页
- Ctrl+b往上翻页
- esc 退出插入模式
- :set number 显示行号
- :wq 写入退出
- :w 保存
- :q! 不保存退出
- 查找
- :/字符串 从上往下找 按n查找下一个
- :?字符串 从下往上找 按n查找上一个
Nano
- 安装nano
- [root@WebServer ~]# mkdir /mnt/cdrom
- [root@WebServer ~]# mount /dev/cdrom /mnt/cdrom/
- [root@WebServer ~]# cd /mnt/cdrom/Packages/
- [root@WebServer Packages]# find -name 'nano*'
- ./nano-2.0.9-7.el6.x86_64.rpm
- [root@WebServer Packages]# rpm -i nano-2.0.9-7.el6.x86_64.rpm
- 使用nano创建并编辑文件test
- [root@WebServer ~]# nano test
Ctrl+字符
WinSCP
- WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端。同时支持SCP协议。它的主要功能就是在本地与远程计算机间安全的复制文件。
3-14 文本操作命令cut和tr
- 按照我们想要的格式显示文件内容 可以对文件内容进行过滤 改变样式输出
3-15 wc和sort、uniq
Wc :word count,字符统计,可以统计1文件的行数,单词数,字符数量
Sort:对文本中的行进行排序
uniq:针对文本中连续的重复行进行操作
3-16 Grep命令参数
grep:Global RE Printing,全局搜索正则表达式,并将搜索到的行打印出来。
RE:Regular Expression 正则表达式,由一些元字符和其他组成的表达式,元字符是由特定意义的字符,并不代表这个字符本身
文本过滤工具,能够指定的正则表达式,逐行扫描文件的内容,只要行中有满足正则表达式的内容,则正行被显示
RE:Basic RE 基本正则表达式,Extended RE扩展正则表达式
3-17 正则表达式
3-18 分组匹配
3-19 锚定符
3-20 在正则表达式中使用字符类
3-21 正则表达式练习题
3-22 扩展正则表达式
第4章 管理Linux用户和组
4-1 Linux用户和组的ID
用户登录身份和权限
- 创建用户
- [root@WebServer ~]# useradd zhangql
- 添加组
- [root@WebServer ~]# groupadd teachers
- 将用户添加到组
- [root@WebServer ~]# usermod –a –G teachers zhangql
- 查看当前用户的身份
- [root@WebServer ~]#id
- 查看zhang用户的id
- [root@WebServer ~]#id zhangql
Linux中用户和组管理
- 用户类别
- 管理员 root UID 0
- 普通用户 UID 取值范围1—65535
- 系统用户 UID取值范围 201-999 专门用来运行服务的账户 不需要登陆系统
- 普通用户 UID取值 1000-60000 可以用来登陆Linux
- 用户UID定义的文件
- [root@WebServer ~]# cat /etc/login.defs | grep -v '^#'
4-2 存放账户和密码的文件passwd和shadow
Passwd文件结构
- [root@WebServer ~]# tail -1 /etc/passwd
- zhangql:x:500:500::/home/zhangql:/bin/bash
- account 用户登录名
- password 密码
- UID 用户的ID
- GID 用户的基本组ID
- Comment 注释
- HOME 用户主目录
- Shell 分配给用户的shell
Shadow文件结构
- [root@WebServer ~]# tail -1 /etc/shadow
- zhangql:$6$PDZ2U4mg$fIc836Mlj2cuc6zBxW7YiVtNEL/7M/F.EpYX0XVmkdkGCjWUf4N89wtWFSdC1nFfCYFB.:16312:2:15:7:5:16600:
- 用户登录名
- 加密后的密码
- 从1970年到最近一次更改密码时间之间过了多少天
- 密码最少使用几天
- 密码最长使用多少天
- 密码到期前几天提醒用户更改密码
- 密码过期时间
- 用户过期时间
4-3 更改用户密码过期时间 最长使用时间
Chage
- -d 设置最近一次更改密码时间
- -E 设置账户过期时间
- -I 设置密码过期时间
- -l --list 列出用户账户密码信息
- -m 设置用户最短密码使用时间
- -M 设置用户最常密码使用时间
- -W 设置密码更改警告时间
- [root@WebServer ~]# chage -l zhangql
- [root@WebServer ~]# chage -W 7 zhangql
- [root@WebServer ~]# chage -I 5 zhangql
- [root@WebServer ~]# chage -m 2 zhangql
- [root@WebServer ~]# chage -M 15 zhangql
- [root@WebServer ~]# chage -d "2014-08-31" zhangql
4-4 创建用户useradd
- adduser-->useradd
- -u 指定用户的UID 大于1000 并且不能和现有用户UID重
- -g 指定用户的基本组
- -G 可以为用户指定多个附加组 用逗号隔开多个附加组
- -c 为用户添加注释信息
- -d 为用户指定家目录
- -s 指定shell的路径 最好是/etc下的shells 安全shell
- -m 如果家目录不存在 强制创建
- -M 不给用创建家目录
- -r 创建系统账户 id 201-999之间
- [root@webServer ~]# useradd zhaosheng -u 1202 -G teachers -c "sales user" -d /home/zhaosheng
4-5 更改用户usermod
- user modify
- -u 修改用户的UID
- -g 修改用户所属的基本组GID
- -G 修改用户附加 使用逗号隔开多个附加组
- -a –G 将用户添加到新的附加组
- -c 修改用户的注释信息
- -md 移动用户的家目录 到新的位置
- -d 指定用户的家目录到新位置
- -s 更改用户使用的shell
- -l 更改用户登录名
- -L 锁定用户 禁用
- -U 解锁用户
- 用户只能属于一个基本组 默认组
- 用户可以属于多个附加组
chsh
- 更改用户shell
- [root@WebServer ~]# chsh niux
- Changing shell for niux.
- New shell [/bin/sh]: /bin/bash
- Shell changed.
Finger
- [root@webServer ~]# yum install finger* -y
- 查询用户信息 以及 登录信息
- [root@WebServer ~]# finger niux
Chfn
- 更改用户描述信息
- [root@WebServer ~]# chfn niux
- Changing finger information for niux.
- Name [The 2013 new student]: my Student
- Office []: 502
- Office Phone []: 86697088
- Home Phone []: 13803367991
4-6 更改或重设用户密码passwd
- 普通用户只能更改的密码
- Passwd 更改当前用户密码 需要输入旧密码
- 管理员root能够更改任何人的密码
- [root@WebServer ~]# passwd niux 重设用户密码
- 使用脚本更改用户密码
- [root@webServer ~]# echo "centOS" | passwd --stdin zhaosheng
- 锁定用户
- [root@WebServer ~]# passwd -l niux
- 解锁用户
- [root@WebServer ~]# passwd -u niux
- 清除用户密码
- [root@WebServer ~]# passwd -d pangz
- 查看当前登录的用户
- [root@WebServer ~]# whoami
- root
who
- 查看那些用户登录了Linux
- [root@WebServer ~]# who
- niux tty1 2014-08-30 06:31
- root pts/0 2014-08-30 04:39 (192.168.80.111)
- root pts/1 2014-08-30 06:10 (192.168.80.111)
- root pts/2 2014-08-30 06:12 (192.168.80.111)
- niux pts/3 2014-08-30 06:31 (192.168.80.111)
- niux pts/4 2014-08-30 06:54 (192.168.80.111)
userdel
- -r 删除用户家目录
- [root@WebServer ~]# userdel -r zhangql
4-7 管理Linux组
- groupadd
- [root@WebServer ~]# groupadd -g 555 master
- [root@WebServer ~]# groupadd -r sus
- groupmod
- [root@WebServer ~]# groupmod -g 556 master
- [root@WebServer ~]# groupmod -n masters master
- groupdel
- [root@WebServer ~]# groupdel masters
4-8 登录shell和非登录shell
- 交互式shell 等待用户输入 执行提交的命令 exit
- 非交互式shell 执行shell脚本 脚本执行结束shell退出
- 登录shell 需要输入用户名和密码才能进入的shell -login
- [root@WebServer ~]# su --login zhangql
- 非登录shell 不需要输入用户名和密码就能进入的shell
- [root@WebServer ~]# sh
- [root@WebServer ~]# bash
- [root@webServer ~]# yum install -y psmisc 安装pstree
- [root@WebServer ~]# su zhangql
- 图形界面的Linux登录后打开命令行终端
4-9 bash用户配置文件初始化用户工作环境
- Bash的配置文件保存用户的工作环境
- [root@webServer ~]# echo $PATH
- export PS1='[\h@\u \t]'
- 个人配置文件
- ~/.bash_profile ~/.bashrc
- 全局配置文件
- /etc/profile /etc/profile.d/*.sh /etc/bashrc
- profile类的文件 设定环境变量 登录前运行的脚本和命令
- bashrc 类的文件 设定本地变量 定义命令别名
- 全局配置和个人配置设置冲突 以个人设置为准
登录式shell配置文件应用顺序
- 首先读取/etc/profile-->/etc/profile.d/*.sh-->~/.bash_profile-->~/.bashrc-->/etc/bashrc
- 优先级 如果设置不一致 以后应用为准
4-10 文件和文件夹权限
- 文件权限
- r 可读 用户可以使用cat查看文件的内容
- w 可写 可以编辑或删除此文件
- x 可执行 executable 针对命令文件可以授予用户可执行权限
- 文件夹权限
- r 用户可以列出该文件夹内部所有文件 ls
- w 用户可以在此文件夹中创建文件和文件夹
- x 用户可以使用cd进入该文件夹 ls –l st.txt 查看内部文件的详细信息
- 100 r
- 010 w
- 001 x
- 000 --- 无权限 0
- 001 --x 可执行 1
- 010 -w- 可写 2
- 011 -wx 写和执行 3
- 100 r-- 可读 4
- 101 r-x 读和执行 5
- 110 rw- 读和写 6
- 111 rwx 读写执行 7
访问文件和文件夹的三类用户
- u 属主
- g 属组
- o 其他账户
4-11 更改文件夹属主属组以及更改权限
chown
- 同时更改文件夹的属主属组
- [root@WebServer ~]# chown niux:teachers /homeWork/
- 同时更改文件夹以及文件夹内部文件和文件夹的属主和属组
- [root@WebServer ~]# chown niux:teachers -R /homeWork/
- 更改文件夹的属主
- [root@WebServer ~]# chown zhangql /ppt
- 更改文件夹属组
- [root@WebServer ~]# chown :teachers /ppt
- [root@WebServer ~]# chown .teachers /ppt
- 参照ppt文件夹的属主属组设置wang和zhang文件的属主属组
- [root@WebServer ~]# chown --reference=/ppt /ppt/wang /ppt/zhang
修改文件和文件夹权限chmod
- 三类用户
- u 属主
- g 属组
- o 其他用户
- a 所有人
- 三类权限
- r
- w
- x
修改权限chmod
- 修改文件属主的访问权限
- [root@WebServer ~]# chmod u=rwx /ppt/wang
- [root@WebServer ~]# chmod u+x /ppt/wang
- [root@WebServer ~]# chmod u-x /ppt/wang
- 修改属组的访问权限
- [root@WebServer ~]# chmod g=rwx /ppt/wang
- [root@WebServer ~]# chmod g-x /ppt/wang
- 修改其他用户的访问权限
- [root@WebServer ~]# chmod o=rwx /ppt/wang
- [root@WebServer ~]# chmod o-w /ppt/wang
- [webServer@root 15:07:43]chmod u=rwx,g=r,o= /test
同时修改属主 属组 其他账户权限
- [root@WebServer ~]# chmod u=r,g=rw,o=x /ppt/wang
- [root@WebServer ~]# chmod a=r /ppt/wang
- [root@WebServer ~]# chmod a=rwx /ppt/wang
- [root@WebServer ~]# chmod a-x /ppt/wang
- [root@WebServer ~]# chmod ug=rw,o=x /ppt/wang
同时修改属主 属组 其他账户权限
- [root@WebServer ~]# chmod u=r,g=rw,o=x /ppt/wang
- [root@WebServer ~]# chmod a=r /ppt/wang
- [root@WebServer ~]# chmod a=rwx /ppt/wang
- [root@WebServer ~]# chmod a-x /ppt/wang
- [root@WebServer ~]# chmod ug=rw,o=x /ppt/wang
- 修改/ppt文件夹以内部文件和文件夹的权限
- [root@WebServer ~]# chmod go-x -R /ppt
- 使用八进制方式设置权限
- [root@WebServer ~]# chmod 700 /ppt/wang
- [root@WebServer ~]# chmod 711 /ppt/wang
- 参照现有文件或文件夹权限设置文件和文件夹权限
- [root@WebServer ~]# chmod --reference=/ppt /ppt/wang /ppt/zhang
4-12 权限遮罩码umask
设置文件和文件夹的默认权限
- umask 控制用户创建文件和文件夹的默认安全设置
- 文件默认权限
- 666-umask
- 文件夹默认权限
- 777-umask
- 管理员root umask=022 文件默认权限666-022=644 文件夹777-022=755
- 普通用户 umask=002 文件默认权限666-002=664 文件夹777-002=775
- 管理员root umask=022 文件默认权限666-022=644 文件夹777-022=755
- 普通用户 umask=002 文件默认权限666-002=664 文件夹777-002=775
- [zhangql@WebServer ~]$ umask 007
- [zhangql@WebServer ~]$ umask
- 0007
- 文件的默认权限不允许有执行 如果和umask计算的结果有执行权限 将其计算结果+1
- umask=023 用户文件的权限 666-023=643 rw-r---wx 644 rw-r--r--
4-13设置用户命令提示符
- PS1=”[\u@\h \w]#”
- 以下代表的意义
- \d :代表日期,格式为weekday month date,例如:"Mon Aug 1"
- \H :完整的主机名称。
- \h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略
- \t :显示时间为24小时格式,如:HH:MM:SS
- \T :显示时间为12小时格式
- \A :显示时间为24小时格式:HH:MM
- \u :当前用户的账号名称
- \v :BASH的版本信息
- \w :完整的工作目录名称,家目录会以 ~代替
- \W :利用basename取得工作目录名称,所以只会列出最后一个目录
4-14图形界面更改文件和文件夹权限
第5章 管理CentOS网络
5-1 ifconfig查看地址 更改IP地址
- 查看网络连接的设置
- 查看所有工作的网络连接
- [root@WebServer ~]# ifconfig
- 查看ens33网卡的设置
- [root@WebServer ~]# ifconfig ens33
- 禁用ens33网卡
- [root@WebServer ~]# ifdown ens33
- 能够看到所有网卡 包括禁用的和启用的
- [root@WebServer ~]# ifconfig –a
- 启用网卡
- [root@WebServer ~]# ifup ens33
- 设置Linux服务器名称
- [root@webServer ~]# vi /etc/hostname
更改IP地址
- [root@Web1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
- 更改后重启network服务配置生效
- Service network restart
5-2 更改使用的DNS服务器
- [root@Web1 ~]# vi /etc/resolv.conf
- # Generated by NetworkManager
- nameserver 202.99.160.68
- nameserver 222.222.222.222
更改hosts
- [root@Web1 ~]# vi /etc/hosts
- 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
- ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
- 222.3.2.3 www.91xueit.com www.51xueit.com
- 33.2.3.2 www.51cto.com
5-3 测试网络是否畅通 域名解析是否正常
- Ping 使用ICMP协议
- Ping 8.8.8.8
- -c 指定发送几个数据包
- -i 指定等几秒钟 发一个ping包
- -w 指定ping命令执行多长时间 秒
- -t 指定数据包ttl
- -s 指定发送数据包大小
- [root@Web1 ~]# ping 222.222.222.222 -w 10
- Traceroute
- 安装traceroute
- [root@webServer ~]# yum install traceroute -y
- Nslookup
- Yum install bind-utils -y
- [root@FTPServer ~]# nslookup www.baidu.com
- [root@FTPServer ~]# nslookup
- > www.baidu.com
- Server: 8.8.8.8
- Address: 8.8.8.8#53
查看TCP建立的连接 Netstat
- 查看Linux路由表 查看侦听的端口 建立的连接 查看各种协议的统计信息
- 查看路由表
- [root@WebServer ~]# netstat –r
- 查看侦听的端口
- [root@WebServer ~]# netstat –ln
- 什么服务侦听的什么端口
- [root@WebServer ~]# netstat -lnp | grep "tcp"
- 查看建立的连接
- [root@WebServer ~]# netstat -n | grep "tcp"
- 查看所有协议统计信息
- [root@WebServer ~]# netstat -s
- 查看TCP协议统计信息
- [root@WebServer ~]# netstat -s | grep -A 10 "Tcp:"
5-4 给网卡绑定多个IP地址
- ens33 192.168.80.200
- Ens33:0 192.168.80.201
复制原有的网卡内容到一个新的网卡,然后修改网卡里的IP地址和网卡名字,重启网络服务后生效
5-5 将多个网卡绑定为一个实现负载均衡和容错
linux聚合有6种模式
- broadcast 传输来自所有端口的包
- roundrobin 以轮循的方式传输所有端口的包
- activebakup 这是一个故障迁移程序,监控链接更改并选择活动的端口进行传输
- loadbalance 监控流量并使用哈希函数以尝试在选择传输端口的时候达到完美均衡
- lacp 实施802.3ad 链路聚合协议,可以使用与 loadbalance 运行程序相同的传输端口选择的可能性
查看连接
[root@webServer ~]# nmcli con show
1.创建bond0口,其mode为lacp4
nmcli connection add type bond con-name bond1 ifname bond1 mode 4
2.将2个万兆口enp5s0f0、enp5s0f1加到bond1里去
nmcli connection add type bond-slave ifname enp33 master bond1
nmcli connection add type bond-slave ifname enp36 master bond1
3.静态配置team0口地址、网关。 注意不要漏掉网关
nmcli connection modify bond1 ipv4.addresses '192.168.7.110/24' ipv4.gateway '192.168.7.254'
nmcli connection modify bond1 ipv4.method manual
nmcli connection up bond1
4.查看配置
[root@webServer ~]# ip addr show bond1
虚拟机添加两块网卡进行实验
第6章 管理Linux软件
6-1 介绍Linux软件包
- 软件包分类
- 源码包 修改源代码 编译 安装 运行效率更高更 加稳定
- 二进制包 优点 管理简单 缺点 不能修改源代码 依赖性
- Redhat centOS rpm
- Debain Ubuntu deb
- name-version-release.arch.rp2 m src.rpm 源码包
- version
- 主版本号 软件有了重大改进
- 次版本号 某个子功能发生重大变化
- 修订号 修复了软件的一些bug 调整了部分功能
- Release
- 发行版本号 是源程序配置完成后 编译 制作rpm包的版本
- Arch
- 运行的平台
- OS
- el7 RHEL 7.x(Red Hat Enterprise Linux)/CentOS 7.x
- fc20 Fedora
- 硬件平台CPU
- 硬件平台包括了:i386、i486、i586、i686、x86_64、ppc、sparc、alpha
- 主包
- bind-9.7.1-i586.el5.rpm
- 子包
- bind-libs-9.7.1-i586.el5.rpm
- bind-utils-9.7.1-i586.el5.rpm
6-2 使用RPM管理软件
- Redhat Package Manager(RPM)
- rpm 选项
- -i (install) 安装
- -U (update) 升级软件
- -e (erase) 删除软件
- -q (query)查询安装的软件
- -h 显示安装的进度
- -v 显示安装详细信息
- -vv 显示更加详细的安装信息
安装软件
- 安装软件包 需要软件包的位置
- [root@WebServer ~]# rpm -ivh /mnt/cdrom/Packages/zsh-4.3.10-5.el6.x86_64.rpm
- [root@WebServer ~]# rpm -ivh /mnt/cdrom/Packages/nano-2.0.9-7.el6.x86_64.rpm
- 在软件包所在目录下可以不指定路径
- [root@WebServer ~]# cd /mnt/cdrom/Packages/
- [root@WebServer Packages]# rpm -ivh traceroute-2.0.14-2.el6.x86_64.rpm
- --test 测试是否能够安装成功
- --force 如果软件包冲突 也强制安装
- --nodeps 不检测是否依赖其他软件
- --noscripts 不执行任何安装脚本
- --nopre 不执行安装前的脚本
查询软件
- rpm -q
- rpm –q pkgname
- rpm –qa
- rpm –qi 查看软件详细信息
- rpm -ql 查看软件生成的文件
- rpm –qc 查看配置文件位置
- rpm –qf /bin/sh 可以查看文件是由哪个程序生成的
- rpm -q --scripts bash 查询软件包相关的脚本
查询未安装的软件包会产生哪些文件
- 查询未安装的软件包会产生哪些文件
- rpm -qlp /mnt/cdrom/Packages/samba-3.6.9-151.el6.x86_64.rpm
- 查看软件包详细信息
- rpm -qip /mnt/cdrom/Packages/samba-3.6.9-151.el6.x86_64.rpm
- 粗略查询软件包名称包含ftp的软件
- [root@WebServer ~]# rpm -qa | grep "ftp"
升级
- -U upgrade 如果不存在老版本 就是全新安装
- -f freshen 老版本必须存在
- [root@WebServer ~]# umount /dev/cdrom
- [root@WebServer ~]# mount /dev/cdrom /mnt/cdrom/
- [root@WebServer ~]# rpm -Uvh /mnt/cdrom/Packages/zsh-4.3.10-7.el6.x86_64.rpm
- [root@WebServer ~]# rpm -q zsh
- zsh-4.3.10-5.el6.x86_64
- zsh-4.3.10-7.el6.x86_64.rpm
- zsh-5.0.2-7.el7.x86_64.rpm
- 软件升级不要跨操作系统主版本号
删除软件
- -e erase 删除
- [root@WebServer ~]# rpm -e zsh
6-3 使用YUM管理软件
YUM比RPM好用,使用yum要确保计算机能访问互联网
Yum命令介绍
- yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
- 定义共性配置信息
- [root@WebServer ~]# cat /etc/yum.conf
- [main]
- cachedir=/var/cache/yum/$basearch/$releasever 缓存目录
- keepcache=0 升级或者安装后,会删除下载的rpm包,keepcache=1,升级或者安装后,保留rpm包。
- debuglevel=2 调试级别
- logfile=/var/log/yum.log 记录到日志
- exactarch=1 检查平台是否兼容
- obsoletes=1 检查包是否废弃
- gpgcheck=1 检查来源是否合法 需要有制作者的公钥信息
- plugins=1 是否允许使用插件
- installonly_limit=3 允许保留多少个内核包
配置多个yum源
- 网络
- ftp
- http
- 本地yum源
- Linux上一个文件夹
- /etc/yum.repos.d/
- 在该目录中所有的*.repo文件都是一个yum仓库
- 一个文件可以有多个yum仓库
6-4 使用yum安装 升级 卸载和查询软件
- XML扩展标记语言 标记包的依赖关系
- Repomd.xml 记录下面三个文件的时间戳和校验和
- Primary.xml.gz 仓库所有rpm包和依赖关系都在这个文件
- Filelists.xml.gz 所有rpm包所包含的文件列表 加入rpm包查询
- Other.xml.gz rpm包的额外信息 如change.log修改日志等
- Comps*.xml 包组定义 组的名称 那些包时必须安装 那些包可选
- Primary.xml.gz, Filelists.xml.gz, Other.xml.gz 需要下载到本地
- base就是基本
extras就是扩充的
update是更新,升级
Yum命令管理软件包
Repolist
- [root@WebServer ~]# yum repolist 列出可用的软件仓库 yum源
- [root@WebServer ~]# yum repolist all 列出全部yum源 可用和禁用
- 查看缓存的xml文件
- [root@WebServer ~]# ls /var/cache/yum/x86_64/6Server/rhel-ftp-source
- 查看缓存的软件包
- [root@WebServer ~]# ls /var/cache/yum/x86_64/6Server/rhel-ftp-source/packages/
- 清除缓存的xml文件和软件包
- [root@WebServer ~]# yum clean all
- 只清除缓存的软件包
- [root@WebServer ~]# yum clean packages
缓存元数据
- Makecache
- 缓存软件仓库也就是yum源 元数据文件也就是xml文件.
- [root@WebServer ~]# yum makecache
- 清除缓存的xml文件和软件包
- [root@WebServer ~]# yum clean all
列出软件仓库中可用的软件
- List
- [root@WebServer ~]#
- 进行模糊查找
- [root@WebServer ~]# yum list | grep yum
Check-update(对比linux已安装的软件和软件仓库中的软件 有哪些需要升级)
Yum + check-update
Update
Yum update + 软件名
Erase删除软件
Reinstall(重新安装)
6-5 安装软件组
Grouplist(列出已安装的和所有可使用的软件组)
Yum + grouplist
Groupinfo
Groupdate
Groupremove
6-6 使用CentOS安装光盘作为本地yum源
先把原有的yum源删除,把下列内容加入进去
[CentOS7-Local-Source]
name=CentOS7-Local
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
6-7 搭建FTP作为yum源
当有多个服务器时,使用光盘便不再方便,
- [ftp-source]
- name=ftp-Server-source
- baseurl=ftp://192.168.80.66(ftp服务器的地址)
- enabled=1
- gpgcheck=1
- gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
先把光盘内容全部复制到ftp某个分区下,搭建ftp站点,确保其他设备能访问ftp、然后再把上面内容放到一个后缀为repo的文件里面,yum clean all ,yum makecache, yum repolist , 注意:要把光驱挂载到某个目录下。
6-8 配置Web服务作为yum源
搭建web站点时,目录浏览要启用。
- [web-source]
- name=Web-Server-source
- baseurl=http://192.168.80.100(web服务器的地址)
- enabled=1
- gpgcheck=1
- gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
6-9 使用国内网页 阿里云yum源
- 阿里云
- 阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区
- 网易yum源
- http://mirrors.163.com/.help/centos.html
这部分要能上网,去他们官方镜像网站下载镜像(.repo结尾的),复制其内容到/etc/yum.repos.d/(新建文件夹或其他)
第7章 磁盘管理
7-1 使用自定义分区方案安装CentOS7
7-2 硬盘的物理结构
7-3 硬盘的逻辑结构(分区)
7-4 文件系统
7-5 文件和文件夹
- 硬链接
- 只能针对文件 不能用于目录
- 不能跨分区
- 能更改增加文件被连接的次数
- 软连接 符号连接
- 可以给目录和文件创建软连接
- 可以跨文件系统
- 不会增加被连接的次数
- 其大小是指向路径所包含的字符个数
7-6 硬链接和符号链接
- 硬链接
- ln han hanlg
- ll han
- ll -i han
- ll -i hanlg
- 软连接
- ln -s /etc/sysconfig/network-scripts/ifcfg-ens33 ens33
- [root@ftpServer syconfig]# ln -s /etc/sysconfig/network-scripts/ syconfig
- 删除文件夹的软连接
- [root@ftpServer ~]# ln -sf syconfig/
- [root@ftpServer ~]# rm -rf syconfig
7-7 创建磁盘分区
- 存储设备类型
- U盘 光盘 软盘 硬盘 磁带
- IDE ATA hd
- SATA sd
- SCSI sd
- USB sd
- 使用a b c来区分同一类型下的不同设备
- fdisk –l 查看所有硬盘的所有分区
- fdisk –l /dev/sda
- p 打印现在分区表
- n 创建的新的分区
- e 扩展分区
- p 主分区
- d 删除分区
- w 保存退出
- q 不保存退出
- fdisk命令 删除前面的字符ctrl+backspace
- fdisk /dev/sda
- p
- n
- e 扩展分区
- p 主分区
- d
- w 保存退出
- q
- t
- l
- Cat /proc/partitions
- 新的分区表变更同步至操作系统
- partprobe
Linux主流的文件系统
- Ext2 ext3 ext4 cifs reiserFS NFS xfs fat32 vfat
- 日志文件系统
- 非日志文件系统
- Linux支持的文件系统
- [root@ftpServer ~]# ll /lib/modules/3.10.0-957.el7.x86_64/kernel/fs/
7-8 创建文件系统-格式化磁盘分区
- -t 指定文件系统类型 mkfs.ext2 mkfs.ext3 mkfs.ext4
- -b 指定磁盘块大小
- -L 指定卷标
- [root@WebServer ~]# mkfs -t ext3 -b 1024 -L "test" /dev/sdb6
- [root@WebServer ~]# mkfs. ext3 -b 1024 -L "test" /dev/sdb6
查看文件系统类型
- blkid 卷标 设备UUID 文件类型
- [root@WebServer ~]# blkid
- /dev/sda2: UUID="73518824-c4c0-47bd-9b7f-6199d2d5598d" TYPE="ext4"
- /dev/sda1: UUID="8265e380-fca1-45c5-b7ce-84b7eb90d7f8" TYPE="ext4"
- /dev/sda3: UUID="29cb1e41-849a-431b-b215-ef291f434c6c" TYPE="ext4"
- /dev/sda5: UUID="cb398d8c-0129-4723-a9be-372f34b53a5e" TYPE="ext4"
- /dev/sda6: UUID="637cde68-a34e-4073-ac5f-b97b254c82dd" TYPE="swap"
- /dev/sdb1: LABEL="backup" UUID="9b801ca0-821d-4828-a3b0-7ee46680caab" SEC_TYPE="ext2" TYPE="ext3"
- /dev/sdb5: UUID="53a01889-c323-4b23-97bc-69fa2dd6ca2b" TYPE="ext4"
- /dev/sdb2: UUID="9b6285d5-40dd-4d6a-bd83-c475914efbd2" TYPE="swap"
更改和查看卷标
- e2lable
- 设置卷标
- [root@WebServer ~]# e2label /dev/sdb1 "backup"
- 查看卷标
- [root@WebServer ~]# e2label /dev/sdb1
7-9 挂载文件系统mount
- 挂在磁盘分区
- mount –t ext2 /dev/sdb1 /mnt/media
- umount /dev/sdb1
- umount /mnt/media
- mount 选项
- -o ro 以只读模式加载。
- -o rw 以可读写模式加载。
- -o remount
- -o noexec
- mount -o remount,rw /dev/sdb1 /mnt/media/
- 使用卷标进行挂载
- [root@WebServer ~]# mount LABEL=test /mnt/test/
7-10 挂载Windows共享文件夹
挂载网络共享的文件夹
- [root@ftpServer ~]# mount -t cifs -o username=win7,password=a1! //192.168.80.112/share /mnt/windows/
df查看挂载的文件系统
- linux中df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息
- -a 全部文件系统列表
- -h 方便阅读方式显示
- -H 等于“-h”,但是计算式,1K=1000,而不是1K=1024
- -i 显示inode信息
- -k 区块为1024字节
- -l 只显示本地文件系统
- -m 区块为1048576字节
- --no-sync 忽略 sync 命令
- -P 输出格式为POSIX
- --sync 在取得磁盘信息前,先执行sync命令
- -T 文件系统类型
卸载文件挂载点失败如何解决(当有人在访问时可能会卸载失败)
- yum install -y psmisc
- 查看谁正在访问
- [root@WebServer ~]# fuser -cu /mnt/test/
- /mnt/test/: 2068c(root)
- Kill掉访问进程
- [root@WebServer ~]# fuser -k /mnt/test/
- /mnt/test/: 2068c
- [root@WebServer ~]# fuser -cu /mnt/test/
- [root@WebServer ~]# umount /mnt/test/
7-11 自动挂载磁盘分区fstab
自动挂载文件系统(在fstab文件里挂载的永久生效,其他的挂载关机重启自动失效)
- vi /etc/fstab
- async 以非同步的方式执行文件系统的输入输出动作。
- sync 以同步方式执行文件系统的输入输出动作。
- atime 每次存取都更新inode的存取时间,默认设置。
- noatime 每次存取时不更新inode的存取时间。
- auto 必须在/etc/fstab文件中指定此选项。执行-a参数时,会加载设置为auto的设备,取消选取为noauto。
- noauto 无法使用-a参数来加载。
- exec 可执行二进制文件,取消选项为noexec。
- noexec 无法执行二进制文件。
- dev 可读文件系统上的字符或块设备,取消选项为nodev。
- nodev 不读文件系统上的字符或块设备。
- ro 以只读模式加载。
- rw 以可读写模式加载。
- defaults 使用默认的选项。默认选项为rw、suid、dev、exec、anto nouser与async。
- mount -a 参照fstab挂载分区
7-12 创建swap分区
第8章 高级磁盘管理
8-1 逻辑卷
安装逻辑卷管理工具
- yum install -y lvm2
8-2 创建物理卷 卷组 逻辑卷
第一步:先在硬盘上创建分区,选择合适的分区内存大小,将分区类型改为8e,并按w保存。
fdisk /dev/sdb
- t
- 创建磁盘分区 将分区类型更改为8e
第二步:
- 创建物理卷
- [root@WebServer ~]# pvcreate /dev/sdb3
- [root@WebServer ~]# pvcreate /dev/sdc1
- 显示物理卷
- [root@WebServer ~]# pvdisplay
第三步:
- 创建卷组
- [root@WebServer ~]# vgcreate vlmdisk(卷组名) /dev/sdb3 /dev/sdc1
- 显示创建的卷组
- [root@WebServer ~]# vgdisplay
第四步:在卷组上创建逻辑卷
- [root@WebServer ~]# lvcreate -L 120G -n OracleDB vlmdisk
- [root@WebServer ~]# lvcreate -L 20G -n OracleLog vlmdisk
- 显示创建的逻辑卷
- [root@WebServer ~]# lvdisplay
第五步:
- 格式化逻辑卷
- [root@WebServer ~]# mkfs -t ext4 /dev/vlmdisk/OracleDB
- [root@WebServer ~]# mkfs -t ext4 /dev/vlmdisk/OracleLog
第六步:
- 挂载逻辑卷
- [root@WebServer ~]# mount /dev/vlmdisk/OracleDB /mnt/DB/
- [root@WebServer ~]# mount /dev/vlmdisk/OracleLog /mnt/Log/
8-3 扩展卷组 扩展逻辑卷
- 创建新的磁盘分区(参考上面创建分区步骤)
- 使用这个命令将新的磁盘分区读入操作系统内核
- [root@WebServer ~]# partx -a /dev/sdc
- 创建物理卷
- [root@WebServer ~]# pvcreate /dev/sdc2
- 向卷组中添加物理卷
- [root@WebServer ~]# vgextend vlmdisk /dev/sdc2
8-4 减少逻辑卷大小 从卷组中删除物理卷
- 将物理卷数据移动到另外一个物理卷
- [root@WebServer ~]# pvmove /dev/sdb2 /dev/sdb1
- 将物理卷从卷组中删除
- [root@WebServer ~]# vgreduce vlmdisk /dev/sdc2
- 查看物理卷
- [root@WebServer ~]# pvs
管理逻辑卷
- 扩展物理边界 添加到40G
- [root@WebServer ~]# lvextend -L 40G /dev/vlmdisk/OracleLog
- 扩展物理边界 增加20G
- [root@WebServer ~]# lvextend -L +20G /dev/vlmdisk/OracleLog
- 查看逻辑卷大小
- [root@WebServer ~]#lvdisplay
- 扩展文件系统逻辑边界
- [root@WebServer ~]# resize2fs /dev/mapper/vlmdisk-OracleLog
- 查看文件系统大小
- [root@WebServer ~]#df -h
缩减逻辑卷
- 不能在线缩减,先卸载文件系统
- 确保缩减后的空间大小能够存储原来数据
- 强制进行文件系统检查
- 使用resize2fs 先缩减文件系统空间
- 再缩减逻辑卷物理空间
- 查看文件系统可用空间
- [root@WebServer ~]# df –h
- 卸载文件系统
- [root@WebServer ~]# umount /mnt/DB/
- 强制进行文件系统检查
- [root@WebServer ~]# e2fsck -f /dev/mapper/vlmdisk-OracleDB
- 缩减文件系统空间
- [root@WebServer ~]# resize2fs /dev/mapper/vlmdisk-OracleDB 60G
- [root@WebServer ~]# lvdisplay
- 减少逻辑卷的物理空间
- [root@WebServer ~]# lvreduce -L 60G /dev/mapper/vlmdisk-OracleDB
- [root@WebServer ~]# lvdisplay
- 挂载文件系统
- [root@WebServer ~]# mount /dev/mapper/vlmdisk-OracleDB /mnt/DB
8-5 快照卷
- 1.快照卷生命周期 在这段时间 数据增长不能超出快照卷大小
- 最保险的快照卷和快照卷大小一致最保险
- 2.快照卷是只读的
- 3.快照卷和原卷在一个卷组
- Lvcreate –s 指定快照卷
- -p r 指定权限是只读
- 下面给OracleDB卷 创建快照卷
- [root@WebServer ~]# lvcreate -L 1000M -n testlv_snap -s -p r /dev/vlmdisk/OracleDB
- 删除快照卷
- [root@WebServer ~]# umount /mnt/testlv/
- [root@WebServer ~]# lvremove /dev/vlmdisk/testlv_snap
8-6 磁盘阵列技术RAID
- 磁盘阵列(Redundant Arrays of Independent Disks,RAID)
- RAID-0 条带卷 又很好的读写性能 不容错
- RAID-1 镜像卷 写入性能一般 读快 容错 50%浪费
- RAID-5 至少3块盘 只允许坏一块盘 1/3 读写性能好 坏掉一个盘 读慢
- 高级磁盘阵列
- RAID-50
- RAID-10
- RAID-01
- 硬RAID (是有设备SCSI卡)
- 软RAID
- Multi Disk
- mdadm
- 模式化命令
- 创建阵列 –C
- 专用选项
- -l 级别 0 1 5(raid的级别)
- -n 设备个数(用几个硬盘来组合)
- -a 自动为其创建设备文件
- -c 指定数据块大小 64K
- -x 指定备用磁盘
- 管理模式 --add 添加一块硬盘--remove从阵列中删除一块硬盘 --fail 模拟磁盘失败
- 监控模式 –F
- 增长模式 –G
- 装配模式 –A
8-7 创建RAID-0
- fdisk /dev/sdb (输入后此命令后,p参数是查看分区,n是创建分区,d是删除分区,)
- t
- fd
- wq
- 安装yum install mdadm
- 创建RAID0
- [root@WebServer ~]# mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sd{b,c}1
- mkfs -t ext3 /dev/md0(更改文件系统)
- mkdir /mnt/md0
- mount /dev/md0 /mnt/md0
- 查看状态
- cat /proc/mdstat
- mdadm -D /dev/md0
- mdadm --detail /dev/md0
- 停止阵列
- Umount /dev/md0(先取消挂载)
- mdadm -S /dev/md0(后删除)
删除阵列
- mdadm -S /dev/md0
- 重新装配阵列
- mdadm -A /dev/md0 /dev/sdb1 /dev/sdc1
8-8 创建镜像磁盘阵列RAID-1
- 创建RAID-1
- [root@WebServer ~]# mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sdb1 /dev/sdc1
- (都要进行挂载)
- 查看状态
- cat /proc/mdstat
- mdadm -D /dev/md1
- mdadm --detail /dev/md1
- 模拟损坏
- [root@WebServer ~]# mdadm /dev/md1 --fail /dev/sdb1
- [root@WebServer ~]# cat /mnt/md1/mirro.txt
- 移除损害的磁盘
- [root@WebServer ~]# mdadm /dev/md1 -r /dev/sdb1
- 添加一个新盘 大小和以前的一定要一样 实现数据同步
- [root@WebServer ~]# mdadm /dev/md1 -a /dev/sdd1
- 创建RAID1时 指定备用分区
- [root@ftpServer ~]# mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sdb1 /dev/sdc1 -x 1 /dev/sdd1
- 在RAID-1中添加备用分区
- [root@ftpServer ~]# mdadm /dev/md1 -a /dev/sdd1
将RAID-1的配置保存到配置文件
- mdadm -D --scan >/etc/mdadm.conf
- 以后就可以使用配置文件装配磁盘阵列
- mdadm -A /dev/md0
8-9 创建RAID-5
- 让操作系统重新读取磁盘分区表
- [root@WebServer ~]# partx -a /dev/sdb
- [root@WebServer ~]# partx -a /dev/sdc
- 创建RAID5
- [root@WebServer ~]# mdadm -C /dev/md5 -a yes -l 5 -n 3 /dev/sd{c,b,d}2 -x 1 /dev/sde1(指定一个备份)
- 模拟损害
- [root@WebServer ~]# mdadm /dev/md5 --fail /dev/sdb1
- 查看状态
- [root@WebServer ~]# mdadm -D --detail /dev/md5
- 移除
- [root@WebServer ~]# mdadm /dev/md5 -r /dev/sdb1
- 添加
- [root@WebServer ~]# mdadm /dev/md5 -a /dev/sdb1
- 扫描阵列配置 将阵列配置进行保存到配置文件
- [root@WebServer ~]# mdadm -D --scan
- [root@WebServer ~]# mdadm -D --scan > /etc/mdadm.conf
8-10 将Linux安装在RAID-5磁盘阵列上
上面8-1 – 8-9都是在linux安装完成后再进行操作的,此部分讲的是在安装linux时,就配置好磁盘阵列,分区。
查看磁盘阵列:mdadm -D /dev/md/pv00
8-11 存储区域网SAN
DAS(Direct Attached Storage—直接连接存储)
NAS(Network Attached Storage)—网络连接存储,使用CIFS和NFS文件系统
存储区域网络(Storage Area Network,简称SAN)通过光纤通道连接到一群计算机上,使用独立的网络连接网络层存储 FS 或 iSCSI
配置SAN
- [root@WebServer ~]# yum list | grep scsi-target
- scsi-target-utils.x86_64 1.0.24-2.el6 rhel-source
- [root@WebServer ~]# yum install scsi-target-utils
- [root@WebServer ~]# service tgtd start
- [root@WebServer ~]# netstat -an | grep 3260