linux操作系统讲义二.docx
《linux操作系统讲义二.docx》由会员分享,可在线阅读,更多相关《linux操作系统讲义二.docx(24页珍藏版)》请在冰豆网上搜索。
linux操作系统讲义二
第二部分Linux系统管理
第4章用户管理
4.1用户管理
4.1.1Linux下的用户
分为三类:
超级用户root
系统用户:
正常工作所必需的内建用户bin,sbin,admin,lp等
普通用户:
让使用者使用Linux系统资源而建立的。
每个用户都有一个数值,即UID来对应。
Root的UID是0;系统用户的UID是1-499;普通用户的UID是500-60000。
、
4.1.2帐号系统文件
1、/etc/passwd
纯文本文件,每一个用户在该文件中都有一个对应的记录行,这一记录记录了此用户的必要信息,每一行由7个字段组成,字段之间用“:
”来分隔,分别代表:
用户名:
密码:
UID:
GID:
个人资料:
主目录:
默认使用的shell
2、/etc/shadow
存放是/etc/passwd文件中加密后的密码的重定向文件信息。
每行由9个字段组成,由“:
”来进行分隔,分别代表:
用户名:
加密密码:
最后一次修改时间:
最小时间间隔:
最大时间间隔:
警告时间:
不活动时间:
失效时间:
标志(未使用)
注意:
密码字段“*”表示用户被禁止登录;“!
!
”表示未设置密码;“!
”表示用户被锁定。
4.1.3创建新的用户
useradd[选项]用户名
-d设置个人主目录
-u设置用户UID
-g设置用户所属基本组
-G设置用户附加组
-c设置个人信息
-s设置所使用的shell
4.1.4创建和修改密码
passwd用户名
passwd-d用户名删除用户的密码
4.1.5修改用户的属性
usermod[参数]用户名
-d设置个人主目录
-u设置用户UID
-g设置用户所属基本组
-G设置用户附加组
-c设置个人信息
-s设置所使用的shell
4.1.6删除用户
userdel[参数]用户名
-r删除用户时将用户主目录下的所有内容一并删除。
4.1.7帐号管理和查看命令
1、su
切换用户
su[选项]–[用户名]
若没有用户名,默认为超户。
-c命令表示执行完该命令再切换
切换后,要从当前身份退出,可使用exit命令。
2、whoami
显示用户自身的用户名。
3、who
用于查看当前在线的用户情况。
默认显示用户名、用户使用的终端、用户登录时间。
Who-uH
详细信息的显示。
4、w
显示登录到系统的用户情况,不仅显示有哪些用户,还显示用户所进行的工作。
可以说,该命令功能最强。
5、chfn
改变系统存储的用户信息。
Chfn[用户名]
系统会提示录入用户的信息,录入结束,系统会将这些信息保存在/etc/passwd中第5段,并以逗号来分隔信息。
4.2组的管理
4.2.1Linux的组的分类
分为私有组、系统组、标准组
私有组:
建立用户时,未指定帐号所属组时所自动建立一个和用户名相同的组名,这个就是私有组。
只有一个用户。
系统组:
Linux系统正常运行所必需的,即安装或安装软件自动生成的。
标准组:
可容纳多个用户,组内每个用户拥有组内所有权限。
用户所属组分基本组和附加组,基本组即主组,在/etc/passwd中指定,其它组是附加组,在/etc/group中指定。
4.2.2组文件/etc/group
每一行记录了一个组的信息,分别表示:
组名:
组的密码:
GID:
组成员
组内多个成员之间用,分隔
4.2.3组的添加
groupadd[选项]组名
-gGID指定新组的GID。
-r建立一个系统专用组,分配GID在1-499。
4.2.4组密码的建立和修改
gpasswd[参数][用户名]组名
不带参数,即创建、修改组密码。
参数:
-a用户名将用户加入到组中
-d用户名将用户从组中删除
-r取消组密码
4.2.5组属性的修改
groupmod[参数]组名
-gGID指定组的新的GID
-nname指定组的新的名称
4.2.6删除组
groupdel组名
4.3文件的权限管理
4.3.1文件或目录的权限
文件或目录的访问权限分为:
可读、可写和可执行三种。
文件或目录的访问权限分为三级:
文件所有者(拥有者)、拥有者所在组内用户(群组用户)、其它用户。
4.3.2更改文件访问权限命令
chmod[选项]文件
mode权限:
(1)设定字符串。
格式:
[ugoa][+-=][rwx]...,[]
(2)用数字来表示权限。
格式:
abc
分别表示拥有者、组内用户、其它用户对文件的r\w\x三个属性设置值的和。
其中r=4,w=2,x=1.
-v显示变更的详细信息
-R对当前目录下的所有文件及子目录进行相同的变更操作,即递归变更。
4.3.3更改文件的所有者
chown[选项]用户名[:
组名]文件
-v显示变更的详细信息
-R对当前目录下的所有文件及子目录进行相同的变更操作,即递归变更。
4.3.4更改文件或目录的所属组
chgrp组名文件或目录
43.5文件默认权限
文件的默认权限=系统对文件或目录的默认权限-默认权限掩码
1、系统对文件或目录的默认权限
对目录的默认权限是777
对文件的默认权限是666
2、文件或目录的权限掩码
umask查看文件的权限掩码,该掩码存放在/etc/bashrc中
umask值该命令可以临时改变文件或目录的权限掩码
4.3.6特殊权限
一、SUID(setuid位,值是4)
一般针对二进制文件,在执行该文件能够继承所有人的权限。
案例:
1、cp/bin/ls/home/mlj
2、chmodu+s/home/mlj/ls
或chmod4755/home/mlj/ls
3、chmod700/mnt
4.4、su–mlj
5.5、$ls/mnt权限不够
$./ls/mnt可以查看
二、SGID(setgid位,值2)
对可执行文件而言,用户执行该文件时继承文件的所有组权限;对目录而言,拥有SGID权限,则在该目录中新建文件或目录时,这些新建目录和文件的所有组全部递归上层目录的组,即和上层目录的组相同而且建立的子目录递归SGID权限。
案例:
1、mkdir/mnt/test
2、chmodg+s/mnt/test
或chmod2755/mnt/test
3、mkdir/mnt/test/dir
touch/mnt/test/file
4、ls-l
三、stickyid(强制位,T位,值1)
对目录而言,若有T权限,那么在这个目录中的所有文件和子目录,只有所有人有删除的权限,其他人即使可读可写可执行,也不能删除不属于自己的文件。
案例:
1、ls-ld/tmp
2、touch/tmp/file
3、chmod777/tmp/file
4、su–mlj
5、$rm-f/tmp/file失败
设置强制位:
chmodo+tdir
6.或chmod1755dir
4.3.7sudo命令
不切换用户,提升普通用户的权限,使之用root身份执行命令。
$sudo命令
编辑/etc/sudoers配置文件
7.添加普通用户的执行权限
vi/etc/sudoers或visudo
添加mljALL=(ALL)/sbin/ifconfig
第5章设备管理
5.1设备文件
Linux系统通过设备文件实现对设备和设备驱动程序的跟踪。
设备文件主要包括设备权限和设备类型的有关信息,以及两个可供系统内核识别的唯一的设备号。
5.Linux系统使用设备号来区分同种类型的设备,每一个设备都有一个主设备号和子设备号:
主设备号用来确定使用什么样的驱动程序,子设备号是硬件驱动程序用来区分不同的设备和判断如何进行处理。
6.Linux系统把所有的设备文件都存放在/dev目录下。
5.2设备类型
分为两类:
块设备(b)、字符设备(c)
字符设备的通信方式是使用字符,一次发送一个并回送一个字符,例如:
终端、打印机、Modem;块设备用于大批量数据的处理,比字符设备传输更多的数据,例如:
硬盘、磁带。
5.3声卡
系统->管理->声卡检测
5.4显卡
系统->管理->显卡
5.5鼠标
7.系统->首选项->鼠标
8.5.6存储设备
一、确定挂载信息
1、文件系统类型
vfat:
windows常用的fat32文件系统类型
9.ext2/ext3:
unix或linux常用的文件系统类型
iso9660:
光盘常用的文件系统类型
2、挂载设备的名称
fdisk-l
10.3、挂载点
mkdir目录名(挂载点)
二、挂载命令
mount[选项]<挂载设备><挂载点>
-t挂载的文件系统
11.-o[参数=值]
例:
-oiocharset=cp936
-oiocharset=utf-8
三、卸载设备
umount[挂载点或设备名]
四、自动挂载
可以使用配置文件/etc/fstab,每一行为一个分区记录,每一行包含六个域:
设备文件挂载点文件系统类型参数及值转储频率启动时需扫描的顺序
mount-a
可以将/etc/fstab文件中提到的没有使用noauto选项的所有文件系统按照指定的方式挂载。
案例:
将windows磁盘ntfs文件系统的挂载到Linux中:
1、fdisk-l
2、mkdir/mnt/hda
3、mount-tntfs-3g/dev/hda9/mnt/hda
若ntfs格式不存在,须安装ntfs文件系统:
1、cdntfs-3g-2010.10.2
2、配置./configure
3、编译make
4、安装makeinstall
第6章文件系统管理
6.1文件系统概念基础
6.1.1磁盘的分区
6.
(1)使磁盘进行逻辑分区,那样每个分区在逻辑上是独立的,这样我们就可以在每个分区上安装一个操作系统,从而多个操作系统就可以共处在同一个硬盘上。
硬盘分区的信息保存在硬盘在第一个扇区(即第一面第一磁道第一扇区),
这个扇区我们称为MBR(主引导记录),主引导记录包括一个小程序,计算机启动时BIOS会执行这一段程序,小程序会读入分区表,检查哪个分区是活动分区(启动分区),并读入活动分区的第一扇区,启动扇区也包括另外一个程序,这个程序实际上是操作系统的一部分,将负责操作系统的启动。
7.2、bootloader:
启动工具可以引导并且装载操作系统内核。
(512B)
stag1:
MBR或启动扇区.(446B主分区表)
8.stag2:
/boot/grub/grub.conf引导操作系统文件(64B)
2B:
硬盘的有效识别标识55aa
案例:
将硬盘hda的第一扇区512B导出。
(1)ddif=/dev/hdaof=/root/mbrbs=512count=1
(2)hexdump-C/root/mbr
3、一个硬盘分区最多只能有四个基本分区,扩展分区是在基本分区的基础上把分区再细分成多个子分区,每个子分区都是逻辑分区,一般情况下,只允许一个扩展分区,即磁盘可以有三个基本分区和一个扩展分区。
6.1.2文件系统
文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构,即磁盘上组织文件的方法。
Linux支持多种类型的文件系统。
Linux采用虚拟文件系统(VFS)技术来支持多种文件。
每个文件系统提供一个公共接口给VFS,不同文件系统的所有细节由软件进行转换,而从Linux内核和运行程序来看,不同的文件系统之间没有差别。
6.1.3文件
文件是有名字的一组相关信息的集合。
分为四种:
1、普通文件:
分为二进制文件和文本文件
2、目录文件:
包括下一级目录和普通文件
3、链接文件:
分为软链接和硬链接。
4、设备文件:
分为块设备和字符设备文件。
特殊设备文件,我们称为空设备文件/dev/null(黑洞)
软设备/dev/zero
5、管道文件:
用于进程间传递信息。
(p)
6.1.4Linux系统的目录结构
Linux系统中,根是所有目录的起始点,根目录下主要有以下目录:
/bin:
包含二进制文件,即可执行程序。
/sbin:
用于存储二进制文件,只有root可以使用。
/etc:
用于存放系统的配置文件。
/boot:
系统引导时加载使用的文件。
/dev:
存放设备文件。
/lib:
存放根文件系统中的程序运行时所需要的库文件。
9./temp:
存放各种临时文件。
10./mnt:
管理员临时安装文件系统的安装点。
/root:
超级用户的个人主目录。
11./usr:
该目录空间比较大,用于安装应用程序。
12./proc:
是一个虚拟目录,存放当前内存的映像,该文件系统由内核自动产生。
/var:
存放一些会随时改变的文件。
/opt:
是放置额外安装的应用程序包的地方。
6.2文件系统管理命令
1、du[参数]目录名(以块为单位1024B)
统计目录使用磁盘空间的情况。
13.-b以字节为单位显示信息
2、df[参数]
统计未使用的磁盘空间。
-h以块单位来显示磁盘空间信息。
3、dd转换和拷贝文件命令
ddif=输入文件名of=输出文件名bs=块大小count=块数
案例:
文件大数量和容量的创建。
ddif=/dev/zeroof=/root/file1bs=1024count=100
6.3创建文件系统
6.3.1Fdisk的使用
1、fdisk-l
2、fdisk驱动器名
注意:
partprobe命令可以同步更新分区表,而不用重启计算机来更新分区表
n->l
firstcyclist:
回车
lastcyclistor+sizeor+sizeMor+sizeM:
+500M
6.3.2文件系统的建立
1、mkfs[选项]文件系统
-t文件系统类型
-c建立文件系统之前要检查坏块
-V输出建立文件系统的详细信息
2、mkfs.ext3文件系统
mkfs.vfat文件系统
例如:
mkfs.ext3/dev/hda7
6.3.3挂载文件系统
1、手工挂载
mount-text3/dev/hda7/mnt/hda7(挂载点)
2、自动挂载
vi/etc/fstab编辑配置文件
/dev/hda7/mnt/hda7ext3defaults00
注意:
mount-a可重新挂载/etc/fstab中设备
6.3.4卸载文件系统
1、手动卸载
umount/dev/hda7或umount/mnt/hda7
2、自动卸载
删除/etc/fstab中该文件系统所在行
mount-a
第7章进程管理
7.1进程的概念
进程是一个程序的运行。
程序是一个静态的指令集合,不占用系统的运行资源;而进程是一个随时可能产生变化的,动态的,使用系统运行资源的程序。
分为三类:
1、交互进程--由shell启动的进程
2、批处理进程--是一个进程序列。
3、守护进程--在后台持续运行的进程。
7.2启动进程
7.2.1手动启动
1、启动前台进程
shell提示符下启动进程
终止前台进程:
ctrl+c
2、启动后台进程
shell提示符下启动进程&
出现的数字为该进程的编号,即PID(进程ID号)
终止后台进程killPID命令
7.2.2调度启动(自动启动)
一、at命令一次定制
1、at时间
时间:
5:
30pm\17:
30\17:
3011.07.10\now+5minutes
回车后at>提示符下定制任务,ctrl+d结束任务。
任务结果以邮件的形式发送定制的用户。
2、at时间-f脚本文件
3、atq命令查看作业序列
4、atrm命令删除指定的作业
atrm作业号
二、cron命令定制周期性执行的任务
工作原理:
cron命令在系统启动时由一个shell脚本自动启动,进入后台。
cron启动后搜索/var/spool/cron目录,寻找以/etc/passwd文件中用户名命名的crontab文件,找到这种文件后将其载入内存中;如果没有crontab文件,cron就转入休眠状态,每分钟醒过来一次,查看当前是否有需要运行的命令。
如果发现了某个用户设置了crontab文件,它将以用户的身份运行文件中指定的命令。
命令执行结束后,将输出的内容作为邮件发送给crontab文件的所有者。
7.1、crontab-e定制crontab文件
8.2、crontab文件的格式
分钟小时日月星期命令
0-590-231-311-120-6
如果不需要指定某项,用“*”来代替,表示任何时间。
例1:
用户lhy每天23:
59备份自己的主目录下到lhy.tar.gz
5923***tarczvflhy.tar.gz/home/lhy
例2:
每周五和每月13号4:
25执行下脚本/mnt/file.sh文件
25413*5/mnt/file.sh
例3:
每周一、三、五的下午3:
00系统进入维护状态,重启计算机。
015**1,3,5shutdown-r+3
例4:
每5分种显示一次时间
*/5****/bin/date
7.3进程管理命令
1、ps进程查看命令
ps[选项]
-a显示所有终端上的进程,包括其它用户的进程
-u以用户为主的格式来显示进程
-x显示所有进程,不以终端区分
-l采用详细的格式来显示过程
例:
ps-aux
2、kill删除进程命令
kill[-s<信号>]进程号
signal1:
重读进程的配置文件
signal9:
强行关闭进程
signal15:
缓和的停止进程(默认)
signal17:
暂停进程
man7signal显示进程信号
3、系统监控命令top
可以时刻更新进程,同时可以监视系统资源。
Space立即刷新
h显示帮助
k删除进程
m显示/取消内存信息
n改变显示进程数量
q退出
4、free内存的查看命令
-m以MB单位显示
显示系统的物理内存、内核缓冲区、交换分区的总量等
图形方式:
系统->管理->系统监视器
5、日志查看
日志文件是包含系统消息的文件。
内核、服务、在系统上运行的应用程序都可以将消息写入日志。
不同的日志记录不同的信息,管理员可以通过日志了解系统的状态、而且在系统出现问题时可以方便地分析原因。
日志文件位于/var/log目录下
图形方式:
系统->管理->系统日志
第8章shell程序设计
8.1shell的作用
shell是命令解释器,是用户和系统内核之间的程序。
1、linux下的安装的shell
cat/etc/shells查看安装的shell
2、查看用户使用的默认shell
echo$SHELL
3、更改用户使用的shell
(1)永久更改vi/etc/passwd中第7个域
(2)一次性更改
命令提示符/bin/csh直接调用,exit退出
8.2shell程序的创建和运行
shell程序就是把用户输入的shell命令按照控制结构组织到一个文本文件中,批量地交给shell去执行,它不同于高级语言需要生成二进制可执行文件,它是通过shell命令解释器解释执行的,不生成二进制的可执行代码,与DOS的批处理(.bat)特性类似。
1、shell程序的一般结构
shell类型#!
/bin/bash
shell基本命令及按照某种逻辑关系组织在一起的shell结构
8.2、编写、执行过程
(1)vi*.shwq存盘退出
(2)chmod+x*.sh
9.(3)./*.sh执行当前路径下的shell脚本
8.3基于bash的shell程序设计
8.3.1变量
1、分类:
环境变量、系统变量、自定义变量
2、自定义变量不用声明,可直接使用。
3、变量的赋值
变量=值
4、变量的引用:
$变量或${变量名}
10.5、常用的环境变量
HOME用户的主目录
PATH执行命令时所搜索的路径
TZ:
时区
PS1:
在shell命令行的提示符
PS2:
在命令尚未输入完时,shell要求再输入的提示符
MANPATHman指令的搜索路径
TERM终端类型
env命令可以导出用户的环境变量
export命令可以永久更改用户的环境变量
export环境变量=值
例1:
编写shell程序,显示当前系统时间、执行路径、用户帐号及所在目录的位置
注意:
反引号``(同~一个键)可以引出命令的值。
6、系统变量
这些系统变量是在执行shell程序时系统给设置的,并且不能加以修改
$#存储shell程序中命令行参数的个数
$?
存储上一个执行命令的返回值
注意:
正确的命令返回值是0,错误的命令返回值是非0。
$0存储shell程序的程序名
$*和$@存储shell程序的所有参数
$$存储shell程序的PID
$!
存储上一个后台执行命令的PID
$1$2...$n存储shell程序的第n个参数
例2:
编写一个shell程序showarg,显示所有参数及其参数个数。
8.3.2数值表达式
1、命令expr计算一个表达式的值,并将结果写到标准输出设备
exprarg
其中arg代表一个表达式,是一个由运算符和操作数连接起来的序列。
该命令可以根据操作符的类型来判断操作数的类型,操作数和运算符之间要用空格隔开,否则expr计算错误。
注意:
当表达式中含有*、(、)、,必须在前面加上“\”。
例3:
编写shell程序,计算2*(3+4)的值。
2、let命令来指明表达式
letarg1[arg2...]
可以有多个表达式,每个表达式内的运算符和操作数之间不必用空格,但表达式和表达式之间必须用空格分开,与expr相比,更适合多个表达式计算。
8.3.3条件表达式
test表达式或[表达式]
一、数值大小判断
int1-eqint2判断是否相等
int1-geint2判断是否大于等于
int1-gtint2判断是否大于
int1-leint2判断是否小于等于
int1-ltint2判断是否小于
8.int1-neint2判断是否不等于
二、字符串运算符
str1=str2判断是否相等
str1!
=str2判断是否不等
str判断是否为空,不空为真
-nstr判断是否长度大于0
-zstr判断是否长度为0
三、文件运算符
-ffilename判断文件是否为普通文件
-dfilename判断文件是否为目录
-rfilename判断文件是否为可读
-w-xfilename判断文件是否可写、可执行
-efilename判断文件是否存在
-sfilename判断文件和长度是否在于0
-bfilename判断文件是否是块设备文件
四、逻辑表