一、Linux概述
1.1 Linux系统是一个多任务多用户开源的网络操作系统。
1.2共有七种运行级别(对应配置文件:/etc/inittab),分别是:
0:关机
1:单用户模式,仅root登录,用于系统维护,禁止远程登陆
2:字符界面的多用户模式,但不能使用NFS
3:字符界面的完全多用户模式,标准运行级别
4:保留,一般不用
5:X Window图形用户界面多用户模式
6:重启(若设置成改级别,系统将一直重启
1.3改变运行级别命令:
init < n > (n代表七种运行级别的一种)
1.4用户注销退出登录命令(仅字符界面能用)
logout
1.5关机命令
shutdown [选项] time
选项:
-h:关机
-H:停机(halt)
-r:重启(同 reboot 命令)
-P:关闭电源(同 poweroff 命令)
halt -p 关机时同时关闭电源
1.6 什么是Linux终端:
Linux终端也称为虚拟控制台,一台计算机的输入输出设备就是一个物理的控制台。Linux默认启动6个终端。
进入其它控制台字符界面:ctrl + alt + (f2~f6)
ctrl + alt + f1返回登陆时的图形用户界面
1.7什么是shell:
shell一个命令解释器,是系统提供给用户与内核交互的一种接口。
1.8 shell命令的基本格式:
shell命令解释程序包含一些内置命令,由shell自身执行;另一部分由程序实现的命令称为外置命令。
查看命令是内置命令还是外置命令:type < command >
shell命令格式:
命令 [选项] <参数1> <参数2> ……
1.9 shell提示符
登录到Linux系统时,默认的提示符显示:
[ 登录用户名@主机名 当前所在目录 ]
实例截图:
1.10 Linux文件系统初体会
Linux系统中,一切皆文件!
Linux系统中三种基本文件类型:普通文件、目录文件、设备文件。在Linux系统中,采用树形结构组织管理文件。
Linux系统常见目录:
/usr:存放用户安装的软件
/home:存放系统用户自身的数据
/bin:存放shell命令等可执行文件
/dev:存放系统设备的信息
/etc:存放系统配置信息
/var:存放系统可变信息的内容
注:在Linux系统中,每添加一个系统用户,默认会在/home目录下为创建一个与该系统用户同名的一个目录作为该用户的用户主目录,用该用户登录到系统中时,就是进入该目录下。
二、Linux常用命令
2.1查看文件内容命令
2.1.1 cat命令
**功能:**显示文件内容
**命令格式:**cat [选项] <文件名>
选项:
-n:为文件每一行进行编号再输出
-b:对文件编号再输出,但不对空行编号
-v:显示不可打印字符
2.1.2 more命令
**功能:**分屏显示文件内容,每次只显示一页,按空格键显示下一页,q键退出,h键获取帮助信息
**命令格式:**more [选项] <文件名>
选项:
-< num >:指定显示文件的前num行
-d:在屏幕下方显示提示信息(用户按错键时,显示提示信息而不是响铃)
-f:计算实际行数
-p:不以卷动的形式显示每一页,而是先清屏再显示文件内容
-s:当遇到两行以上的空行时,替换为一个空行
-u:不显示下划线
+/< string >:显示字符串string所在页的内容
+< num >:从第num行开始显示
2.1.3 less命令
功能:按页显示文件内容,允许往回卷动浏览已经浏览过的内容,且并不是一开始就读入文件所有内容
命令格式:less [选项] < 文件名 >
选项:-i:在查找时忽略大小写
-p< string >:搜索字符串并在第一个符合条件的地方开始显示
-<显示列数>:改变页面的显示列数
2.1.4 head命令
功能:显示文件开头n行内容,默认显示前10行
命令格式:head [选项] <文件名>
选项:-n<行数>:显示文件前 n 行内容
-c<字节数>:显示文件前n个字节内容
-v:显示文件名
-q:不显示文件名
例如:
head -n 5 ./test.c #显示test.c的前5行内容
head -c 10 ./test.c #显示test.c的前10个字节内容
2.1.5 tail命令
功能:显示文件末n行内容,默认显示末10行
命令格式:tail [选项] <文件名>
选项:-n:显示文件末n行内容
-c<字节数>:显示文件末n个字节
-v:显示文件名
-q:不显示文件名
-f:循环读取
例如:
tail -n 20 ./test.c #显示文件末20行内容
tail -c 20 ./test.c #显示文件末20个字节内容
2.2复制、移动、删除命令
2.2.1 cp命令
功能:将一个文件拷贝成另一个文件,或拷贝到另一个目录(可实现文件复制并更名)
命令格式:cp [选项] <源文件> <目的文件或目录>
选项:
-r:若源文件中含有目录,递归将目录下的文件也拷贝至目的地
-f:若目的地有同名文件,复制前先删除原来的文件再进行复制
-a:将文件详细信息一并复制且递归复制子目录中的文件
2.2.2 rm命令
功能:删除指定的文件或者是目录,删除目录时必须指定-d参数
命令格式:rm [选项] <文件或者是目录>
选项:-d <目录名>:删除指定目录
-i:删除前逐一询问
-f:强制删除无需确认(force)
-r:递归删除目录下的内容
2.2.3 mv命令
功能:移动文件或者重命名文件
命令格式:mv [选项] <源文件> <目的地或者目的文件名>
选项:-i:若目的地有同名文件,询问是否覆盖原文件
-f:强制移动,若目的地有同名文件,则覆盖原文件
2.3文件和目录相关命令
2.3.1 mkdir命令
功能:创建一个空目录
命令格式:mkdir [-p] <目录名>
选项:-p:若想要建立的目录的上级目录未创建,则一并创建
2.3.2 rmdir目录
功能:删除空目录
命令格式:rmdir [-p] <目录名>
选项:-p:若要删除的目录的上级目录在删除了该目录后成为空目录,将该目录的上级目录一并删除
2.3.3 touch命令
功能:修改文件的访问时间和修改时间记录,若文件不存在则创建该文件
命令格式:touch [选项] < file1 > < file2 >……
选项:-a:只改变文件的访问时间记录
-m:只改变文件的修改时间记录
-c:若文件不存在,不建立新文件
2.3.4 ls命令
功能:列出文件或目录信息
命令格式:ls [选项] [<文件名或目录名>]
选项:
-a:列出目录下所有文件,包括隐藏文件
-l:列出目录下文件的详细信息
-R:若目录下还有文件,则递归列出目录下的文件
2.3.5 cd命令
功能:切换目录
命令格式:cd <目录名>
切换到上级目录:cd …
2.3.6 pwd命令
功能:显示用户当前所在目录的路径
命令格式:pwd
2.3.7 diff 和 diff3 命令
功能:diff 找出两个文件之间的不同,diff3 找出三个文件之间的不同
命令格式:diff file1 file2
diff3 file1 file2 file3
2.3.8 patch命令
功能:打补丁
命令格式:patch [选项] [原文件A [补丁文件B]]
为文件A打上B补丁
选项:-p数字:指定目录级别
-p0:使用完整路径,-p1:去除前导斜杠,-p3:去除前导斜杠和前两个目录
2.3.9 sort命令
功能:对输入数据或文本文件按一定顺序进行排序
命令格式:sort [选项] [文件名]
选项:-b:忽略前置的空白符
-d:仅考虑字母、数字和空格字符,按字典顺序进行排序
-f:忽略字符大小写
2.3.10重定向
输入重定向:<
输出重定向:>(覆盖原有文件的所有内容,即先将文件原来内容删除,再将现有内容存放进去)
输出重定向:>>(以追加的方式,若文件原本有内容,将新的内容添加进原有文件内容末尾)
2.3.11 cut命令
功能:按照指定格式从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段输出
命令格式:cut [选项] <文件名>
选项:-d:指定分隔符(默认是以制表符(Tab)作为分隔符)。
-f:显示指定字段内容
-c:以字符为单位进行分割
-b:以字节为单位进行分割
例如:
cut -d ’ ’ -f 3 ./antelope_1605.txt #以空格为分隔符,输出第三个字段的内容
2.4查找和文件筛选命令
2.4.1 find命令
功能:按用户指定的要求从指定目录下查找指定的文件
命令格式:find [path] [expression]
expression:
-name< name >:文件名符合name的文件
-amin< n >:在过去n分钟被访问过
-anewer< file >:比file更晚被访问的文件
-atime< n >:在过去n天被访问过的文件
-empty:内容为空的文件
例如:
find ./study/ -name test.c
2.4.2 grep命令
功能:过滤或检索文件内容
命令格式:grep [选项] < string > < file >
选项:-i:在进行比较时忽略大小写
-n:输出检索结果之前给出文本行在文件中的行号
-v:检索不包含给定字符串或模式的所有文本行
2.5链接命令
2.5.1 ln命令
软连接和硬链接的区别:软连接是一个特殊文件,它的内容不是文件的真实数据,而是指向另一个文件的路径名,可以理解为快捷方式。硬链接是指一个文件是另一个文件的别名,是以文件副本的方式存在,实际操作的是同一个文件,也可理解为是对源文件的一个备份,同时它不占用内存空间,ls -l查看文件详细信息,第二个字段(硬链接数)将会增加。
命令格式:ln [选项] <源文件> <目的链接文件>
注意:
1、ln不加参数默认创建硬链接,若要创建软链接,需要指定 -s 参数;
2、源文件最好是绝对路径,否则移动软链接文件到别处将无法使用;
3、软连接可以对目录进行创建软连接,但硬链接不行;
例如:
ln -s /home/chang/lab5/chang.sh lookup #创建软连接
2.6备份和压缩命令
2.6.1 tar命令
功能:打包
命令格式:tar <选项> <文件或目录>
选项:-c:创建新的备份文件
-x:从备份文件中释放文件
-z:用gzip来压缩或者解压文件
-j:用bzip2压缩或解压文件
-v:详细报告tar处理的文件信息
-t:显示压缩文件的内容
-f:指定备份文件或设备
常用组合:-czvf 打包并压缩
-xzvf 解包并解压
例如:
tar -czvf shellstudy.tar.gz ./shellstudy/
tar -xzvf shellstudy.tar.gz
2.6.2 gzip命令
功能:压缩
命令格式:gzip [选项] [压缩后的文件名] <要压缩的文件>
选项:-c:将输出写到标准输出上,并保留原文件
-r:递归地压缩指定目录下及子目录下的所有文件(gzip不能压缩整个目录)
-d:将压缩文件解压(gzip -d 等价于gunzip命令)
-v:列出压缩文件或解压文件的详细信息
-t:测试、检查文件的完整性
例如:
gzip ./test.c.gz
2.6.3 gunzip命令
功能:用于解压 .gz 格式的压缩包
命令格式:gunzip [选项] filename.gz
选项:-c:将解压后的文件输出到标准输出设备上
-l:列出压缩文件的相关信息
-q:不显示警告信息
-r:递归处理,将目录及子目录下的压缩文件一并解压
-V:显示版本信息
例如:
gunzip -cl ./test.c.gz
2.6.4 zip命令
功能:压缩文件
命令格式:zip [选项] [压缩文件名] <要压缩的文件>
选项:-r:将指定目录下及其子目录下的所有文件一起压缩
-m:文件压缩后,将源文件删除
-q:安静模式,压缩时不显示命令执行过程
例如:
zip ./test.c
2.6.5 unzip命令
功能:解压缩
命令格式:unzip [选项] <压缩文件名>
选项:-d<目录>:将压缩文件解压到指定目录下
-n:不覆盖已经存在的文件
-o:覆盖已经存在的文件且不要求用户确认
-v:查看压缩文件但不解压
-t:测试文件是否完整但不解压
-q:安静模式,压缩时不显示命令执行过程
例如:
unzip -d ./study/ harry.zip
2.6.6 bzip2命令
功能:压缩指定文件
命令格式:bzip2 [选项] <要压缩的文件>
选项:-c:将压缩与解压结果送到标准输出
-d:执行解压缩
-v:压缩或解压缩时显示详细信息
-t:测试 .bz2 文件的完整性
-z:强制压缩
例如:
bzip2 ./test.c
2.6.7 bunzip2命令
功能:对 .bz2文件进行解压缩
命令格式:bunzip2 [选项] filename.bz2
选项:-k:解压后保留源文件
-v:显示详细信息
例如:
bunzip2 -vk ./harry.bz2
2.6.6 xz命令
功能:压缩指定文件
命令格式:xz [选项] <要压缩的文件>
选项:-z:强制压缩
-d:执行解压缩
-k:压缩时保留源文件
例如:
xz -z test.c
2.6.7 unxz命令
功能:对 .xz 压缩文件进行解压缩
命令格式:xz filename.xz
例如:
unxz test.c.xz
2.7其他常用命令
2.7.1显示文字命令echo
功能:在屏幕上显示一段文字且自带换行功能
命令格式:echo [-n] <字符串>
-n:输出字符串后不换行,默认输出换行
2.7.2日期时间命令date
功能:显示或设置系统时间
命令格式:date [选项] [+formatstring]
2.7.3清屏命令clear
clear
2.7.4帮助命令man info help
命令功能:列出所要查询的命令的所有使用方法
man命令格式:man < command >
info命令格式:info < command >
help命令格式:help [command]
三、Linux文件系统
3.1 Linux文件系统概述
Linux系统有一个一切皆文件的概念。键盘、鼠标、摄像头等硬件设备该系统下是通过文件的形式组织管理,操作这类设备可用文件I/O来进行。
Linux系统下三个基本文件类型:普通文件、目录文件、设备文件。
Linux系统下的文件类型:普通文件(-)、目录文件(d)、链接文件(l)、套接字文件(s)、管道文件§、字符设备文件©、块设备文件(b)。
文件详细信息详解:
ls -l /etc/shadow //列出文件的详细信息
文件信息显示如下:
- rw-rw-r-- 1 root root 2360 5月 19 16:42 /etc/passwd
第一个字段 :表示文件类型,- 表示普通文件,d 表示目录文件, l 表示软链接文件,c 表示字符设备文件,b 表示块设备文件,s 表示套接字文件,p 表示命名 管道文件
第二个字段:表示文件的权限,分别是文件所拥有者权限(user)、文件所属组权限(group)、其它用户权限(other),r—可读,w—可写,x—可写
第三个字段:硬链接数
第四个字段:文件拥有者
第五个字段:文件所属组
第六个字段:文件大小(单位是bit)
第七~九个字段:文件的最后修改时间
第十个字段:文件名(包含了文件的绝对路径)
3.2文件权限
文件或目录的访问权限有三种:可读、可写、可执行。Linux文件系统将用户分为三个层次,分别是拥有者、所属组、其他用户,这三者分别对文件具有各自的访问权限。
3.2.1文件普通权限表示
文件权限的8进制表示:
文件权限:r w x r w - r - -
binary: 1 1 1 1 1 0 1 0 0
8进制: 7 6 4
文件所拥有者拥有对该文件的可读可写可执行权限,文件所属组的用户拥有对该文件的可读可写权限,其他用户拥有对该文件的可读权限
文件权限相关命令—chmod命令:
功能:改变文件权限
命令格式:chmod <文件权限> <文件名>
文件权限:a.用八进制表示,如:chmod 755 /home/chang/test.c
b.字母表示:如:chmod (u|g|o|a) (+|-) (r|w|x) /home/chang/test.c
u表示所拥有者,g表示所属组,o表示其它用户,a表示所有用户
**+表示增加权限,-**表示去掉权限
r表示可读权限,w表示可写权限,x表示可执行权限
3.2.2文件特殊权限表示
文件除了可读、可写、可执行权限外,还具有两种特殊权限,分别是 s 权限和 t 权限,s 权限可出现在文件拥有者和文件所属组的 x 权限位上,即SUID和SGID,t 权限可出现在其他用户的x权限位上,即SBIT。
s 权限仅用于可执行文件,表示临时拥有文件拥有者或文件所属组的权限,t 权限仅用于目录,表示该目录只能是目录拥有者和root用户可以删除。
对应权限掩码:
文件权限:SUID SGID SBIT r w x r w - r - -
binary: 1 1 1 1 1 1 1 1 0 1 0 0
八进制: 7 7 6 4
例如:passwd命令的所拥有者和所属组都是root,但每一个普通系统用户都可以使用该命令为自己修改密码,即用的 s 权限。
3.3文件管理常用命令
3.3.1 chown命令
功能:更改文件的拥有者
命令格式:chown [选项] user[:group] file
user:新的文件拥有者
group:新的文件拥有者的组
chown chang test.c
3.3.2 chgrp命令
功能:更改文件所属组
命令格式:chgrp [选项] [用户组] file
用户组:新的文件所属用户组
3.3.3 chmod命令
功能:更改文件访问权限
命令格式:chmod <文件权限> <文件名>
文件权限:a.用八进制表示,如:chmod 755 /home/chang/test.c
b.字母表示:如:chmod (u|g|o|a) (+|-) (r|w|x) /home/chang/test.c
u表示所拥有者,g表示所属组,o表示其它用户,a表示所有用户
**+表示增加权限,-**表示去掉权限
r表示可读权限,w表示可写权限,x表示可执行权限
3.4磁盘分区挂载
3.4.1 Linux文件系统概述
文件系统是指完成文件管理的软件和被管理的文件的总和,Linux文件系统是一个树形结构,一个文件系统不能跨越两个磁盘分区。Linux中常见的文件系统有:
ext2、ext3、ext4、swap、vfat、NFS、ISO9660。
在Linux中,每一个硬盘设备最多能有4个主分区(包括扩展分区)构成。
3.4.2 fdisk命令
功能:fdisk是Linux的磁盘分区表操作工具,可利用它对硬盘进行分区,同时可以创建文件系统
命令格式:fdisk [选项] 设备名
选项:-l:输出相关设备的所有分区内容。
3.4.3 mkfs命令
功能:在特定分区上建立文件系统
命令格式:mkfs [选项] 设备名
选项:-t:指定文件系统(如:ext2、ext3、ext4)
3.4.4 mount命令
功能:在磁盘上建立好文件系统后,将新建立的文件系统挂载到系统中
命令格式:mount [选项] [设备] [挂载点]
选项:-r:以只读方式挂载文件系统
-w:以可写方式挂载文件系统
-o:指定文件系统
3.4.5 umount命令
功能:卸载已挂载的文件系统
命令格式:umount 设备 挂载点
3.5 Linux逻辑卷
3.5.1逻辑卷的概念
LVM(Logical Volume Management)就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。
使用逻辑卷,将不会受限于物理磁盘的大小,另外,和硬件相关的存储设置被其隐藏,可以不停止应用或卸载文件系统来调整卷大小或数据迁移。这样能减少操作成本,LVM最大的特点就是可以对磁盘进行动态管理。逻辑卷的大小可以动态调整,且不会丢失现有的数据。逻辑卷大大提高了磁盘管理的灵活性。
物理卷PV:即物理磁盘分区,如/dev/sdb1;
卷组:物理卷的集合;
逻辑卷:物理卷中划出来的一块逻辑磁盘。
四、Linux用户和用户组
4.1用户和用户组的概念
4.1.1用户类型
Linux系统中,有三类用户类型,分别是:系统管理员用户,系统用户,普通用户。
系统管理员用户:即root用户,拥有对系统的最高访问权限,UID为0
系统用户:这类用户不能用于登录系统,其UID是1499,或**1999**之间(不同发行版的Linux系统不同)
普通用户:由root用户创建,供用户登陆到系统进行操作使用的账户,UID在500或1000及以上。
4.1.2用户帐号文件
Linux系统中,所有的用户账号信息都存放在配置文件/etc/passwd文件中,用户密码信息经过MD5算法加密都存放在/etc/shadow文件中。
/etc/passwd文件结构:
用户名:密码:UID:GID:用户全称:用户主目录:登录shell
/etc/shadow文件结构:
4.1.3用户组文件
Linux系统将具有相同特征的用户划分为一个用户组来进行权限管理,Linux中每个用户至少属于一个用户组,可以加入多个用户组。
用户组的信息存放在/etc/group文件中,用户组密码经过加密存放在/etc/gshadow文件中。
/etc/group文件结构:
用户组名:密码:组ID:组成员列表
4.2常用用户和用户组管理命令
4.2.1 useradd命令(只能root用户使用)
功能:创建或添加一个新用户
命令格式:useradd [选项] username
选项:-d:指定用户的用户主目录,若不使用该参数,默认用户主目录为:/home/username/
-u:指定用户默认的UID
-g:指定一个已经存在的初始用户组
-G:指定一个或多个扩展用户组
-s:指定该用户使用的shell解释器
4.2.2 passwd命令
功能:为用户修改密码
命令格式:passwd [选项] [username]
选项:-e:强制用户下次登陆时修改密码
-l:锁定用户
-u:解锁用户
4.2.3 usermod命令(只能root用户使用)
功能:设置和修改用户账号的属性
命令格式:usermod [选项] username
选项:-u:修改用户id,即uid
-g:修改用户组
-d:更改用户主目录
-a:将用户追加到指定用户组中,与-G参数连用
-G:将用户添加到指定用户组中,与-a参数连用
-l:指定用户的新用户名
-L:锁定用户账户
-U:解除锁定
例子:将student用户改名为jack用户:
usermod -l jack student
4.2.4 userdel命令(只能root用户使用)
功能:删除用户账户
命令格式:userdel [选项] username
选项:-r:删除用户的同时,删除对应的用户主目录
-f:强制删除用户
4.2.5 su命令
功能:用户账户切换
命令格式:su [-] [username]
- :切换新用户的同时使用新用户的环境变量
不指定username则表示切换到root用户。
su - lulu
4.2.6 groupadd命令
功能:创建一个新的用户组
命令格式:groupadd [选项] groupname
选项:-g:指定GID
4.2.7 groupmod命令
功能:修改用户组的属性
命令格式:groupmod [选项] groupname
选项:-n:修改用户组名
-g:修改用户组ID
4.2.8 groupdel命令
功能:删除用户组
命令格式:groupdel groupname
五、Linux网络相关
5.1Linux网络相关命令
5.1.1 ifconfig命令
功能1:查看网卡信息
命令格式:ifconfig [设备名]
功能2:对网络接口进行配置
命令格式:ifconfig <设备名> <IP地址> netmask <子网掩码>
功能3:停用或启用网络接口设备
命令格式:ifconfig <设备名> [up|down]
实例:查看本机ip地址:ifconfig
为接口配置IP地址:ifconfig ens33 IP netmask 子网掩码
注意:使用命令配置的网络信息,重启系统后,设置会失效
5.1.2 ifup/ifdown命令
功能:ifup用于启动网络接口,ifdown用于停用网络接口
命令格式:ifup/ifdown 网络接口设备名
5.1.3 ping命令
功能:测试网络是否连通和测试主机是否在线
命令格式:ping [选项] <目的主机名或IP地址>
选项:-c:指定ping的次数,即发送数据包的个数
-i:指定ping包的发送间隔
-w:若ping未响应,则在超时后退出
5.1.4 traceroute命令
功能:向目的地址发送数据包每经过一个网关或路由器,回馈一行信息,即路由跟踪
命令格式:traceroute <目的主机的IP地址或域名地址>
5.1.5 route命令
功能:管理路由表,配置信息需要修改配置文件才能长期有效,否则重启系统后会失效
命令格式:route
5.1.6 telnet命令
功能:实现远程登录,要求远程主机必须安装并启动telnet服务
命令格式:telnet <主机名或IP>
5.2网络相关配置文件
5.2.1主机名配置文件
主机名配置文件:/etc/hosts,用于配置IP地址和其对应主机名的文件,记录本机或其它主机的IP地址及其对应的主机名。
文件内容:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
5.2.2网络接口配置文件(网卡配置文件)
网卡配置文件:/etc/sysconfig/network-scripts/ifcfg-ens33,网卡逻辑名称可能因为系统不同有差异,通过ifconfig命令可查看。通过修改网卡配置文件配置的 网络将长期有效。
网卡配置文件内容:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static//设置采用什么模式
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=6cec36f2-0a54-48b9-bfe7-a1a4b2306654
DEVICE=ens33//网卡设备名
ONBOOT=yes//是否开机启动网卡
HWADDR=00:0c:29:68:74:83//hardware address
BROADCAST=192.168.159.255//广播地址
IPADDR=192.168.159.7//IP地址
NETMASK=255.255.255.0//子网掩码
NETWORK=192.168.159.0//子网IP地址
GATEWAY=192.168.159.2//网关IP地址
5.2.3域名解析服务配置文件
Linux作本地域名解析服务的配置文件:/etc/resolv.conf,一台主机可以最多设置3个DNS服务器,该文件保存了DNS服务器的IP地址,以及查询这些服务器的 顺序。
文件主要配置项:
nameserver <DNS服务器IP>
定义DNS服务器,在查询域名时系统会按照顺序进行查询
domain <域名>
定义了缺省(默认)域,缺省域用于建立域搜索清单
search <域名列表>
定义搜索清单
文件内容:
# Generated by NetworkManager
nameserver 114.114.114.114
注意:search和domain不能同时使用
5.2.4主机名解析配置文件
主机名解析配置文件:/etc/host.conf,指定如何解析主机名,解析方法有hosts和bind。
5.2.5网络服务列表文件
网络协议列表文件:/etc/services,网络服务列表,其中列出了系统支持的服务名称、服务使用的端口和协议类型、服务别名、功能注释。
5.3 Samba服务器
5.3.1 Samba服务器概述
Samba服务器可以使用户在异构网络操作系统之间实现文件系统共享。
5.3.2 Samba服务器组成
Samba服务器由smbd和nmbd两个守护进程组成。
smbd:主要功能是为Windows用户提供文件和打印共享服务
nmbd:主要功能是进行NetBIOS名解析,能够把Windows SMB请求信息中的NetBIOS名映射为Linux系统中使用的IP地址
5.3.3 Samba服务器配置文件解析
samba服务器配置文件:/etc/samba/smb.conf,在该配置文件中,[global]部分是用于配置samba服务器的全局配置变量,作用于samba服务器提供的所有共 享资源。
[global]常用字段:
workgroup = <工作组> //设置samba服务器的工作组
server string = <说明信息> //samba服务器注释
hosts allow = <IP地址> //限制允许连接到samba服务器的机器,可以是单个ip,也可以是一个网段
security = <等级> //share user server domain
自定义共享服务字段:
comment = <解释说明> //对自定义共享的描述
path = <共享目录的绝对路径> //共享目录的绝对路径(必须是已存在)
read only = <yes|no> //是否只读
writeable = <yes|no> //是否可写
browseable = <yes|no> //是否可浏览
valid user = <user|usergroup> //允许访问的用户,可以是单个用户,也可以是一个用户组
public = <yes|no> //是否允许匿名访问
guest ok = <yes|no> //是否允许来宾用户访问
5.4 NFS服务器
5.4.1 NFS服务器概述
NFS(Network File System)即网络文件系统,它允许网络中的不同计算机相互之间共享资源。NFS客户端可以透明的读写远程NFS服务器上的文件。NFS客户端和NFS服务器需要借助RPC远程过程调用协议实现数据传输。
5.4.2 NFS服务器配置文件解析
NFS服务器配置文件:/etc/export,若etc目录下没有该文件,需要手动添加。文件内的每一行记录都代表一个共享资源及访问权限设置。
文件格式:
#vim /etc/export
共享目录 [客户端1 (参数)] [客户端2 (参数)]
共享目录:NFS服务器需要共享目录的绝对路径
客户端:可以访问NFS服务器的共享目录的计算机,可以是单个主机IP,可以是一个网段,可以是一个域名的主机,可以是所有主机
参数:对可访问NFS服务器共享目录的客户端的权限限制
权限:rw---共享目录可读可写 ro---共享目录只读
用户映射参数:all_squash---将远程访问的所有普通用户及所属组都映射为匿名用户或用户组
no_all_squash---不将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(默认)
root_squash---将root用户及所属用户组都映射成匿名用户或用户组(默认)
no_root_squash---不将root用户及所属用户组都映射成匿名用户或用户组
其它参数:secure---限制客户端只能从小于1024的TCP/IP端口连接NFS服务器(默认)
insecure---限制客户端从大于1024的TCP/IP端口连接NFS服务器
sync---将数据同步写入内存缓冲区和磁盘中
async---先将数据写入内存缓冲区中,必要时再写入磁盘
5.5 DNS服务器
5.5.1 DNS概述
Domain Name System是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人们更方便的访问互联网。DNS主要用于管理域名和IP地址的对应关系,承担DNS解析的网络主机被称为
服务器。
5.5.2 DNS的两种查询方式
**递归查询:**DNS服务器将代替提出请求的客户机进行域名查询,若域名服务器不能直接回答,则域名服务器会在域中各分支的上下进行查询,最终返回查询结果给客户机。
**迭代查询:**当DNS收到客户机查询请求后,若DNS服务器没有查到所需要的数据,该DNS服务器会通知客户机另一台DNS服务器的IP地址,然后由客户机向此DNS服务器提出查询请求,以此类推。
5.5.3 DNS服务器的三个配置文件
DNS服务安装:
yum install bind
DNS的4个配置文件:全局配置文件----/etc/named.conf,主配置文件----/etc/named.rfc1912.zones,区域配置文件----/var/named/named.localhost和/var/named/named.loopback
全局配置文件:/etc/named.conf
options {
listen-on port 53 { 127.0.0.1; };//指定bind监听的DNS服务器IPV4的IP地址和端口号
listen-on-v6 port 53 { ::1; };//指定bind监听的DNS服务器IPV6的IP地址和端口号
directory "/var/named";//指定DNS的区域文件存放路径
dump-file "/var/named/data/cache_dump.db";//设置DNS数据存放数据库的路径
statistics-file "/var/named/data/named_stats.txt";//服务器统计信息访问文件路径
memstatistics-file "/var/named/data/named_mem_stats.txt";//内存记录使用情况
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { localhost; };//指定接收DNS查询的主机地址段
recursion yes;//允许递归查询
dnssec-enable yes;
dnssec-validation yes;
bindkeys-file "/etc/named.root.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
//include "/etc/named.rfc1912.zones";//主配置文件路径,可根据需要更改
//cp named.rfc1912.zones chang.zones
include "/etc/chang.zones";//主配置文件路径,可根据需要更改
include "/etc/named.root.key";
主配置文件:/etc/named.rfc1912.zones
//指定正向解析区域
//cp named.localhost dew.files
zone "dew.com" IN {
type master;
file "named.localhost";//正向解析的区域文件
//file "dew.files";//正向解析的区域文件
allow-update { none; };
};
zone "localhost" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
//指定反向解析区域
//cp named.loopback 192.168.143.files
zone "43.143.168.192.in-addr.arpa" IN {
type master;
file "named.loopback";//反向解析的区域文件
file "192.168.143.files";//反向解析的区域文件
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.empty";
allow-update { none; };
};
正向解析区域文件:/var/named/named.localhost
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
@ IN NS dns.dew.com.
ftp IN A 192.168.143.43
反向解析区域文件:/var/named/named.loopback
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
PTR localhost.
@ IN NS dns.chang.com.
43 IN PTR ftp.chang.com.
注意:正向解析区域文件和反向解析区域文件的所有记录都要顶头写,关键字用TAB键分隔。
5.5.4 DNS实例
根据要求搭建一个DNS服务器,要求如下:设网络的网络号是192.168.159.0,域名为:chang.com。域中有主机提供DNS、WWW、FTP服务、NFS服务,其IP地址分别为192.168.159.11、192.168.159.12、192.168.159.13、192.168.159.14。DNS服务器安装在192.168.159.11机器上。
修改DNS的全局配置文件:vim /etc/named.conf
这里只需要修改 listen on port 字段和 allow query 字段
options {
listen-on port 53 { any; };//监听的端口号为53,监听的IP地址为any
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; };//允许查询的IP地址为any
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.root.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";//指定主配置文件
include "/etc/named.root.key";
修改主配置文件:vim /etc/named.rfc1912.zones
这里需要将指定正向解析区域和反向解析区域的内容复制并粘贴到文件最后一行,可以先在vim的命令行模式下使用 :set nu 显示行号,将光标定位到第13行,先按5,再按两次y,即5yy,然后将光标定位到最后一行,按p,这样就把正向解析的相关内容粘贴到最后来进行更改,反向解析也是一样。
zone "localhost.localdomain" IN {
14 type master;
15 file "named.localhost";
16 allow-update { none; };
17 };
18
19 zone "localhost" IN {
20 type master;
21 file "named.localhost";
22 allow-update { none; };
23 };
24
25 zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
26 type master;
27 file "named.loopback";
28 allow-update { none; };
29 };
30
31 zone "1.0.0.127.in-addr.arpa" IN {
32 type master;
33 file "named.loopback";
34 allow-update { none; };
35 };
36
37 zone "0.in-addr.arpa" IN {
38 type master;
39 file "named.empty";
40 allow-update { none; };
41 };
42 //正向解析区域
43 zone "dew.com" IN {
44 type master;
45 file "chang.com.file";//指定正向解析的区域文件名
46 allow-update { none; };
47 };
48 //反向解析区域
49 zone "159.168.192.in-addr.arpa" IN {
50 type master;
51 file "192.168.159.file";//指定反向解析的区域文件名
52 allow-update { none; };
53 };
修改正向解析区域文件(这两个文件在/var/named/目录下),首先将正向解析区域文件的模板文件复制出来并更名,即 cp -a named.localhost chang.com.file
$TTL 1D
@ IN SOA @ chang.com. (//这里要改成自己的域名
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
//添加一些记录
@ IN NS dns.chang.com.
dns IN A 192.168.159.11
www IN A 192.168.159.12
ftp IN A 192.168.159.13
nfs IN A 192.168.159.14
修改反向解析区域文件(这两个文件在/var/named/目录下),首先将反向解析区域文件的模板文件复制出来并更名,即 cp -a named.loopback 192.168.159.file
$TTL 1D
@ IN SOA @ chang.com. (//这里要改成自己的域名
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
PTR localhost.
//添加一些记录
@ IN NS dns.chang.com.
11 IN PTR dns.chang.com.
12 IN PTR www.chang.com.
13 IN PTR ftp.chang.com.
14 IN PTR nfs.chang.com.
关闭防火墙和SELinux,启动DNS服务
systemctl stop firewalld.service
setenforce 0
systemctl start named.service
客户机测试:vim /etc/resolv.conf,添加作为搭建DNS的主机的IP
# Generated by NetworkManager
nameserver 192.168.159.11
客户机安装nslookup工具
yum install bind-utils
输入要解析的域名或IP
nslookup 192.168.159.12
nslookup www.chang.com
5.6电子邮件服务器
5.6.1电子邮件服务器概述
电子邮件系统采用客户/服务端模式,主要由用户代理MUA、邮件传输代理MTA和邮件投递代理MDA三部分组成。
用户代理MUA:主要功能是撰写、显示和处理邮件三个功能。
邮件传输代理MTA:主要功能是负责电子邮件的传送、存储和转发。实现的是应用层的协议:SMTP和POP3(实现读邮件协议),常用实现邮件系统的软件: sendmail、Postfix。
邮件投递代理MDA:主要功能是通过分析由MTA所收到信件表头或内容等数据,决定邮件将投送到哪个邮件服务器。
5.7 FTP服务器
5.7.1 FTP服务器概述
FTP协议有两种工作模式,即主动模式(PORT模式)和被动模式(PASV模式)。
主动模式(PORT模式)工作过程:
客户端开启一个大于1024的端口X向FTP服务器的21端口发送连接请求,同时客户端开放一个X+1号端口进行监听;FTP服务器接受连接并建立一个连接会话;当需要传递数据时,FTP服务器从自身的20端口向客户机的X+1号端口发送连接请求,建立一条数据链路用于传送数据;数据传送完毕后断开数据连接,客户端释放X+1号端口,客户端X号端口断开与FTP服务器的21端口之间的连接,客户端释放X号端口。
被动模式(PASV)工作过程:
客户端开启一个大于1024的端口X向FTP服务器的21端口发送连接请求,同时客户端开放一个X+1号端口进行监听,客户端向FTP服务器发送PASV命令,表明客户端是处于被动模式,FTP服务器收到客户端的PASV命令后,开放一个大于1024的端口Y进行监听,同时FTP服务器向客户端发送PORT命令告诉客户端此时用于数据传输端口是Y端口,客户端收到PORT命令后通过X+1号端口与服务器的Y端口建立数据连接,并传输数据,数据传输完毕后断开数据连接,客户端先释放X+1号端口,然后FTP服务器释放Y端口,与21端口的连接并释放X端口。
5.7.2 FTP用户分类
**匿名用户:**即anonymous用户,在没有服务器的账户名和密码的情况下,使用匿名用户访问FTP服务器的共享资源。
**实体用户:**即FTP服务器的本地用户。此类用户登录FTP服务器时默认的工作主目录是它的用户主目录,此类用户不仅可以访问FTP服务器的共享资源还可以访问 该系统下用户的资源。
**虚拟用户:**即FTP建立专有的用户。虚拟用户只能访问FTP的共享资源而不能访问其他资源。
5.7.3 FTP的配置文件
FTP配置文件:/etc/vsftpd/vsftpd.conf
设置匿名用户:
anonymous_enable=yes|no //设置是否允许匿名登录FTP服务器
anon_root=/opt/ftp //设置匿名用户在FTP服务器上的工作路径
no_anon_password=yes|no //设置匿名用户登录FTP服务器时是否提示输入密码
write_enable=yes|no //设置是否对工作目录可写
anon_mkdir_write_enable=yes|no //设置是否允许匿名用户创建新的子目录
anon_upload_file=yes|no //设置是否允许匿名用户上传文件
设置本地用户:
local_enable=yes|no //设置允许本地用户登录
local_root=/home //设置本地用户的工作目录
local_umask=022 //指定文件掩码
chroot_local_user=yes|no //设置是否将所有用户限制在工作目录中
chroot_list_enble=yes|no //是否启动限制用户名单(这个名单里的用户是例外)
chroot_list_file=/etc/vsftpd/chroot_list //限制用户名单
设置虚拟用户:
guest_enable=yes //设置所有非匿名用户都映射为一个特定的本地用户
guest_name=ftp //设置虚拟用户映射到本地用户,默认是ftp
5.7.4 FTP实例
**题目:**利用vsftpd配置一台支持匿名用户和本地用户ftp1登录,禁止匿名用户上传。注:用户ftp1的密码设置与用户名相同。
vsftp.conf应做对应修改项:
#匿名用户相关设置
anonymous_enable=yes
anon_root=/mnt/ftp
anon_upload_file=no
#本地用户相关设置
local_enable=yes
local_root=/home
chroot_local_user=yes
chroot_list_enable=yes
chroot_list_file=/etc/vsftpd/chroot_list
write_enable=yes
5.8 Apache服务器
5.8.1 Apache服务器的概念
Apache是一个开放源代码的Web服务器软件,具有良好的跨平台性和安全性,具有简单、速度快、性能稳定、可配置,静态与动态内容支持,支持虚拟主机和 SSL,支持用户认证和采用模块化设计等特点,是当前主流的Web服务器。
六、Linux软件安装
6.1 RPM工具
6.1.1 rpm工具简介
RPM是RedHat Package Manager的简写,是有RedHat公司设计开发的软件包管理工具。
RPM可以安装、卸载、升级和管理软件,还可以完成如组件查询和验证、软件数字签名的导入、验证和发布、软件包依赖处理和网络远程安装等众多功能。
6.1.2 rpm命令
功能:安装或卸载软件
命令格式:rpm [选项] 软件名
常用选项:-i:用于安装软件
-e:用于删除软件包
-v:用于显示详细信息
-p:用于显示安装进度
常用组合选项:-ivh:用于安装并显示安装进度
6.2 DPKG工具
6.2.1 dpkg工具简介
Deb包是由DPKG(Debian Package)对软件的一种封装形式。
DPKG命令的一般格式:
dpkg [<选项> …] <命令>