您的位置:首页 > 运维架构 > Linux

浙大linux远程教学听课笔记(宋广华讲授)(2)

2007-04-06 08:49 204 查看
第3章 linux系统管理

用户和用户组的管理

用户帐号文件——passswd,用于定义系统的用户帐号,文本文件。在/etc文件下。它包含了一个系统账户列表,以及每个用户的一些信心,如ID、组、主目录、shell等。passwd文件中每一行定义一个用户帐号,用:分隔不同属性,第二字段用于存储加密后的密码或X,表示该用户有密码。

用户口令文件——shadow
shadow看到的是加密的口令。

用户组帐号文件——group
用ls-l可以看到每个文件的属主和组。记录格式为:groupname:passwd:GID:userlist

用户口令文件——gshadow
该文件用于定义组口令和组管理员,只有root用户可以读取。定义格式:groupname:encrypted password:group administrators:group members

增加一个账户
命令 useradd 用户名
该命令执行了以下几件事:
1在etc/passwd文件中增加了一行记录;
2在/home下创建新用户的主目录,然后用passwd为其设置口令。UID和GID自动加1。

选项-g用来增加该用户的私有组,用法如下:
useradd-g 组名 用户名

-D用于显示或设置useradd的默认值,格式如下:
useradd -D[-g group][
-b base][-s shell][-f inactive][-e expire]

修改用户帐号——usermod
该命令可以修改用户帐号的各种属性,格式如下:
usermod[-LU](锁定/解锁)[-c<备注>][-d<登录目录>][-e<有效期限>][-f<缓冲天数>][-个<组群>][-l<帐号名称>][-s][-u][用户帐号]

删除用户——userdel
用于删除指定账号。格式为: userdel [-r][用户帐号]
该命令可以删除帐号和相关文件,若不加参数,仅删除帐号,而不删除文件
-f 删除用户登陆目录及目录中所有文件

组增加命令——groupadd
组帐号的ID必须惟一且不为负。预设最小不得小于500,0~499为系统帐号保留。格式如下:
groupadd [-r] group

组帐号修改——groupmod
格式为:groupmod [-g<组识别码><-o>][-n<新组群名称>][组群名称]

删除组帐号——groupdel
若该组群中仍有某些用户,必须先删除这些用户后,才能删除组群。格式:groupdel [组群名称]

口令维护命令——passwd
格式:passwd [用户名]
超级用户可以修改其他用户口令,普通用户只能用不带参数的passwd命令修改自己的口令

超级用户可用参数
-s 查询指定帐号的状态
-l 锁定帐号口令
-u 解锁帐号口令
-d 删除指定帐号口令

组中用户成员的维护——gpasswd

添加用户到使用:gpasswd -a 用户帐号名 组帐号名

删除组中用户:gpasswd -d 用户帐号名 组帐号名

设置组管理员:gpasswd -A 组管理员用户列表 用户组

用户和组的状态命令

id命令
用于显示用户当前的UID,gid以及所属群组的组列表。
格式: id[选项][用户名称]

选项
-g 显示用户所属组群的ID
-G 显示用户所属附加组群的ID
-n 显示用户所属组群或附加组群的名称
-r 显示实际ID
-u 显示用户ID

whoami命令
用于显示登录者自身的用户名称,相当于'id-un'指令。

su命令
用于转换用户身份,可暂时变更登入的身份,需输入所变更的账户和密码。格式为:su [-flmp][-][-c<指令>][-s][用户帐号]

groups命令
显示指定用户所属的组,省缺为当前用户所属的组。

进程管理

进程的定义:在自身的虚拟地址空间运行的一个单独的程序。进程是动态的,可随时变化的,使用系统运行资源的。一个程序可以启动多个进程。

报告进程状态——ps
格式:ps [选项]
-e 显示所有进程
-f 全格式
-h 不显示标题
-l 给出长列表
-a 显示终端所有进程,包括其他用户进程
-r 只显示正在运行的进程
-m 显示存储器信息
-S 增加子CPU时间和页面出错
-w 用宽格式显示,不截取命令行,使它成一行

PS字段的含义,上机研究

结束进程
中断一个前台进程,用Ctrl+C,后台进程终止,用kill命令,格式如下:
kill [-s 信号| -p][-a] 进程号
kill -l[信号]

-s指定需要送出的信号,可为信号名也可以对应数字
-p 只显示进程的PID,不真正结束信号

-l 显示信号名称列表

进程睡眠——sleep
使当前执行的进程在规定时间内处于睡眠,格式:
sleep time
time为进程将睡眠的时间,以秒为单位

查看登录用户

系统管理员查看用户的操作用W命令

当查看某一具体用户时,用 w [用户名]

查看登录用户
若系统管理员想知道某一时刻有那些用户登录系统,可以用who命令

查看登录用户的历史行为,用last命令

查看日志文件

大多位于/var/log目录中。日志被循环使用。

查看日志文件
主菜单-系统工具-系统日志或者终端键入 redhat-logviewer命令

每30s刷新一次,用Ctrl+R刷新

检查日志文件

控制面板和设置管理工具

setup配置工具

引入救援/单用户/紧急模式 基本系统恢复

第4章linux网络基础

TCP/IP协议
127.0.0.1自循环网
路由:数据从一个节点到另一个节点的过程。IP的路由-IP网关。

internet的域名管理

linux的网络配置:

主菜单-系统设置-网络或启用redhat-config-network命令

linux网络配置的常用命令

hostname命令
该命令用来获取/设置当前系统的名称,需root权限。例如:
#hostname hack.linux.cn
#hostname
hack.linux.cn

如果希望每次启动都启动改配置,需要在rc.conf中加入
hostname="hack.linux.cn"

ifconfig命令
作用同ipconfig
不带任何参数,列出网络接口。

关闭/开启网络接口: down/up
netmask分配子网掩码
ifconfig eth0 10.0.0.1
可以讲IP地址设置为10.0.0.1

ifup和ifdown命令
用于开启和停止王克设备,格式如下:
ifup 网卡设备名
ifdown 网卡设备名

route命令
通过该命令设置路由。

dostination--目标IP
GATEWAY * 不需要路由
genmaske 路由网络掩码
interface接口

加一个路由信息:
route add -net 网络地址 netmask 子网掩码 dev 网卡设备名

添加/删除默认网关
route add default gw 网关IP地址 dev 网卡设备名

route del default gw 网关IP地址

ping命令
用于测试网络链接状态,向目标地址发送ICMP报文并收取回应报文。linux默认不简短的发送ICMP,直到用户Ctrl+C终止,使-c可以指定发送报

文数目。格式如下:
ping [-c 发送报文数] 目的主机地址

tracerute命令
跟踪本地和远程两台主机间的UDP路由数据包,格式: traceroute IP地址
该命令是通过设置待发送分组的存活时间(Time to live TTL)来工作的。

netstat命令
显示各种各样与网络相关的状态信息。主要用途:查看网络连接状态(仅对TCP有效,UDP无效)、检查接口的配置、检查路由表、取得统计信

息。不带参数时,获得TCP/UDP端口状态。
常见状态为:established /listening/TIME-WAIT 连接/等待/关闭

参数
-a 显示所有配置的接口
-i 显示接口统计信息
-n 以数字形式显示IP
-r 显示内核路由表
-s 表示计数器的值

nslookup命令
查询DNS数据库的用户级命令。向服务器直接查询信息,一般情况下使用交互模式,出现>提示符。
help:帮助信息
exit:退出
lserver:查找指定域名服务器并将其设为默认的域名服务器。
server:解析另一台域名服务器,并将其设置为默认服务器。使用当前的默认服务器来解析。
set:修改工作参数。

tcpdump命令
用于监视TCP/IP连接,并直接读取数据链路层的数据包的头部信息。可以指定监视那些,控制显示格式。格式为:
tcpdump [-选项][-c数量][-F 文件名][-i 网络接口][-r 文件名][-s snaplen]
[-T类型][-w 文件名][表达式]

ARP包的TCPDUMP输出信息
#tcpdump arp

网络配置文件及程序

网路有个的配置文件:
1网络配置/etc/sysconfig/network

2主机名/etc/HOSTNAME
包含系统的主机名称和完全的域名

3IP地址和主机名的映射/etc/hosts
包含了IP地址和主机名之间的映射及主机名的别名。
重新启动网络命令:
/etc/rc.d/network restart

4端口号和服务器名之间的映射/etc/services

5配置名字解析器/etc/host.conf

三种解析方式:/etc/hosts,DNS,NIS

6配置DNS客户/etc/resolv.conf
配置DNS客户,包含了域名服务器的搜索顺序和DNS服务器地址,每一行包含一个关键字和一个或多个空格隔开的参数。

第5章 Intranet服务器

Samba服务器

Samba是一组软件包,使linux支持SMB协议,与microsoft系统进行文件与打印机共享。

Samba服务器实际上包含两个服务器程序:smbd和nmbd.它提供相关的服务。

安装和配置samba服务器

samba服务器的安装
如果在安装时以及安装了Samba,就不需要再安装了,但如果不确定,可以用以下命令来确认:
#rpm -qa|grey samba
如果没安装,用#mount /mnt/cdrom挂载,然后光盘安装。切换工作目录到安装光盘的/Red Hat/RPMS目录,使用# cd/mnt/cdrom/RED Hat/RPMS
安装所需RPM包,用:#rpm -ivh samba-common-2.27a-7.90-i386.rpm
#rpm-ivh samba -2.27a-7.9.0i386.rpm
#rpm -ivh samba-client-2.27a-7.90.i386.rpm
安装samba的图形配置界面,用#rpm -ivh redhat-config-samba-1.0.4.1-noarch.rpm
弹出光盘#cd:eject

samba服务器的配置:图形配置,按照向导做。

启动或停止samba服务器
查看samba驻留进程的状态
#/sbin/service smb status
启动驻留进程
#/sbin/service smb start
检查samba服务器是否被启动
#pstree |grey mbd
停止samba服务
#/sbin/service smb stop
在引导时启动smb服务
#/sbin/chconfig--level 345smb on

在windows的网上邻居访问Samba共享1搜索计算机,samba服务器的IP地址或计算机名
2通过网上邻居访问

Samba服务器的客户端软件
#smbclient -L localhost
来检查服务器所贡献的资源

smbclient命令用类FTP客户端形式来访问win共享和samba贡献,格式为:
smbclient//hostname/sharename -U username
用# smbstatus查询samba资源的使用情况

如果想简要显示,用# smbstatus -b

NFS服务器
NFS(Network Files System) 网络文件系统。

NFS服务的启动和停止
#service nfs start/stop
查看NFS进程的状态
#service nfs status
重新启动
#service nfs restart
引导时启动NFS服务
#chkconfig--level 345 nfs on

NFS服务器的配置
运行X窗口系统,具有root权限,安装了config nfs rpm软件包。
1 主菜单-系统配置服务器-nfs服务器
2 redhat -config-nfs
可指定主机/端口/用户

NFS客户端的配置
#showmount -e 服务器地址
#mount NFS服务器地址:共享目录 本地挂载点目录

查询状态
#mount |grep nfs
卸载目录
#unmount /mnt/nfs
由于NFS有安全隐患,一般用于局域网。

linux内核结构与进程管理

linux系统结构:
用户进程。

OS服务层:System Call Interface(POSIX.1),shell,GUI,Compoler,Library,etc.

linux内核层:Linux kernel: 开放源代码的linux操作系统内核。以及设备驱程和modules以及接口。

硬件层。

linux源代码完全开放。体系结构开放,能适应较广的硬件平台。

linux内核组成
1进程调度程序(SCHED),负责控制访问CPU.保证执行一些必要的硬件操作。
2内存管理程序(MM),使多个进程安全共享机器的主存系统,并支持虚拟内存
3虚拟文件系统(VFS),通过VFS访问不同的文件系统。
4网络接口(NET)提供对许多建网标准及网络硬件的访问。
5进程间通信(IPC)子系统为进程间的通信提供了一些机制。

这些子系统功能相对独立,存在较强的依赖性。linux内核是单块结构(monolithic)的,而win是微内核(microkernel)的。

linux启动流程:
1从bios到kernel
MER-KERNEL-KERNEL自解压-内核初始化-内核启动(start_kernel函数。在linux内核源代码树的/usr/scr/linux/ini/mail.c中)
2内核启动:创建1#进程并执行,由它创建若干内核线程(kernel thread)然后装入并执行程序/sbin/ini(变成一个用户进程)。init根

据/etc/inittab 配置文件来执行相应的脚本进行系统初始化。在/etc/inittab中指定了系统的运行级别(runlevel),init根据运行级别启动相

关的服务,以实行不同的功能。
运行级别:0 halt1 单用户 2 多用户 3 多用户并启动NFS服务4保留 5运行xdm(X window)以图形界面方式登录 6 reboot

linux用户登录流程见视频教程或PPT。

linux进程的四要素
程序
PCB(进程控制块):进程创建时内核为其分配的一个核心数据结构,进程自身不能直接读取。
地址空间
系统堆栈空间:进程运行在核心态时使用的堆栈和PCB连在一起,共8KB,其中PCB约占1000字节,系统堆栈空间约占7200字节。

linux进程个数有最大值限制(4092)。2.4版本一会进程数首限于系统的内存数。即,PCB及系统堆栈占用的空间<=1/2的物理内存总和。例如64M

内存:进程<=64M/2/8=4K

PCB中的重要信息:
身份信息:pid,uid,gid,euid,egid等。
状态信息:running,interruptible,non-interruptible,stopped,zombie
调度信息:policy,priority,rt-priority,need_resched
policy——进程的类别,分SCHED_FIFO,SCHED_RR,SCHED_OTHER三种,前两种为实时进程,后一种为非实时进程
IPC信息:进程间的消息
家族信息:父进程,子进程,兄弟进程信息
时钟好玩定时信息
文件系统
存储管理

进程的创建

进程创建:fork,clone,vfork
父子进程共享资源的形式
a不共享(fork时缺省)
b部分共享
c完全共享(线程)

fork实例,见讲义或视频。

进程调度

硬件基础:
硬件时钟(晶振.COMS电路)——定时器8253——中断控制器8259——CPU

调度时机
a用户进程自动放弃CPU,如执行sleep()系统调用;
b系统调用,需要等待时,直接调用schedule()进行调度;
c系统调用、中断或异常处理完成后,返回到用户空间前,如当前进程的PCB的need_resched=1,则发生调度;
调度策略:基于进程的权值(weight,动态优先级)
实时进程:weight=1000+rt_priority (>1000)
分时进程:weight=counter+20-nice (<1000)
rt_priority 实时进程的优先级
counter 进程剩余的时间值
nice 进程优先级的调整值 (均在进程的PCB中标识)

文件系统
win支持FAT32/16,NTFS
传统UNIX:UFS(unix file system)
BSD文件系统:FFS(Fast File System)
Proc File System:只在内存中
Linux :etx2,etx3,reiserfs,xfs(SGI),Jfs(IBM)
嵌入式小型文件系统
CRAMFS
JFFS2

linux文件系统目录布局:
FSSTND(FILE SYSTEM STANDARD)
/
/etc 系统配置
/boot
/bin
/sbin
/usr
/dev
/home
/proc
/var
/lib
/tem
/opt

unix文件系统类型:
Directory
Normal file
-source file
-text file
Symbolic link
Special file
Named pipe 先进先出

VFS的作用

ext3文件系统:
日志文件系统(journaling file system)

利用数据库的日志技术(log,checkpoint)
3种日志方式:journal.ordered,writeback
日志记录在/. journal (隐藏文件)
Kjournal-5s
reiserfs

proc文件系统
/proc在内存种,通过它可以查询、设置系统的运行和各种系统参数。

PS:视频教程中有些东西已经很泛泛,就没记录。有些东西最好能亲自看看视频教

linux下得shell与make

shell
用户与linux得接口
命令解释器
支持多用户支持
复杂得编程语言
shell种类很多,如csh,tcsh,bash等。

转移字符和通配字符

shell变量

系统变量
$? 最近执行命令得返回值
$$ 本进程得进程号
$! 最近后台进程号
$# shell自变量个数,$1 表示第一个自变量

环境变量:
全部大写属于环境变量
$HOME--用户主目录

用户变量
#vname=value 赋值
#readonly varname 只读标记

定制用户环境
用户登录时,会依次执行一系列得脚步
用alias,定义一些别名

条件控制
if语句
case语句
逻辑运算符&&和||

循环控制
for语句
while语句

函数
类似C语言。

here文档
在shell脚步中指定输入源,<<是here文档保留字。
例如:
#mail cindy < happy birthday
i love you
i@$

shell内部命令:不产生子进程
eval:在shell程序中,利用变量得值来构建命令

exec
read
shift
wait:等待子进程结束
trap:中断处理命令
点命令,在bsh利用 . 执行一个命令时,不产生子进程
空命令

shell 程序执行方法
1$chmod u+x dircmp
$/dircmp/usr/bin
2$sh dircmp
3$sh 4$ dircmp 用点命令执行程序,不创建子进程
%source dircmp(csh中)

make
makefile:告诉make维护一个大型程序,该做什么。makefile说明了组成程序的模块之间的相互关系及更新模块时必须进行的动作,make按照这些说明自动维护这些模块。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: