Unix 操作系统基础手册

本文详细介绍了Unix操作系统的版本,包括BSB和AT&T Unix System V,以及它们在不同系统上的应用。Unix系统由核心、用户进程和磁盘文件系统组成,核心负责进程调度、系统服务和硬件管理。文件系统采用树形结构,设备文件在/dev目录下。此外,讨论了Unix的进程管理、文件类型、常用配置文件和命令,是理解Unix基础的全面指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 版本
///////////////////////////////////////////////////////////////////////////////
  Unix系统主要基于2个版本:
* BSB(Berkeley Software Distribution)Unix: 如SUNOS4.x, HP-UX
* AT&T Unix System V: 如IBM-AIX, Solaris(SUNOS5.x)

两个版本的Unix提供的C语言函数不完全相同;
SUN公司在从BSD的Unix向Unix System V过渡的同时在Solaris系统上增加了BSD的支持.
在/usr目录下提供了/ucb, /ucbinclude, /ucblib三个目录; 在开发过程中要使用bzero等BSD的Unix函数,就需要将/usr/ucblib下的动态库链接使用.

2 简介
////////////////////////////////////////////////////////////////////////////////
  Unix系统由三部分组成:
* Unix核心
* 用户进程数目<=65535个
* 磁盘上的数据文件系统

Unix核心是一个二进制程序,大部分由C语言编写,有一小部分用汇编语言编写,核心有三个要完成的基本任务:
(1)建立用户进程并调度其执行
(2)提供系统服务
(3)处理硬件中断和例外
用户进程是一个二进制文件,每个系统上允许同时启动的进程数目是有限的,Solaris中缺省的最大进程数目是986;
(/etc/system文件重配Unix内核修改此参数)
每个进程有自己的虚拟地址空间,地址最大值取决于CPU类型和系统磁盘容量.
进程被执行时,代码和数据区装入主存中,寄存器和程序计数器装在CPU寄存器中.

3 文件系统
/////////////////////////////////////////////////////////////////////////////////
Unix文件系统是树型的组织结构,树的根节点就是"/"目录;
每个设备对应根文件系统/dev目录下的一个设备文件

                                  /目录                    
                                     
home  tmp  var  usr  lib  etc  dev  bin  vmunix
                       |       |       |
                    adm  lib----

/文件系统: 包含Unix系统核心,设备文件和配置文件
/usr文件系统: Unix命令和库函数
/tmp文件系统: Unix系统交换区

交换区的大小取决于工作站要运行什么应用,影响系统的运行速度,一般不应小于内存大小;
一部分应用程序使用"/"文件系统作交换区;
未给操作系统分配交换区时,缺省也是使用"/"文件系统作交换区.
使用Solaris时注意了,每个文件系统的10%是操作系统占用的;
对于超级用户,当容量是100%时,仍然可以向该文件系统写入(可能导致系统崩溃,应避免)

Unix常用的文件系统类型
* ufs(User File System)
* cdfs (CD-ROM File System)
* nfs (Network File System)
不同厂家的标准:
Solaris上的cdfs是hsfs(High Sierrs & ISO 9660 CD-ROM filesystem),AIX上的是cdrfs
Solaris上本地文件系统是ufs, AIX是jfs;
jfs是使用在大型文件系统上,用硬盘作为文件系统的缓冲区(降低系统性能换取系统的高可靠性);
ufs是使用内存作文件系统的缓冲区,一旦掉电可能导致文件系统的损坏.

文件系统的挂接与卸载
分为本地文件系统和网络文件系统;
启动时的自动挂接,写在/etc下的配置文件中;SUN上是/etc/vfstab,其他系统是/etc/filesystems
使用[df]查看挂接的文件系统;

Unix的NFS可以使工作站之间透明地相互使用硬盘资源(文件系统是ufs/jfs无所谓,不相干);
NFS的运行方式是CLIENT-SERVER方式:
* Server开放目录(Solaris上修改配置文件, /etc/dfs/dfstab,加入要开放的目录)
  执行
  /etc/init.d/nfs.server stop
  /etc/init.d/nfs.server start
  重启nfsd, 在AIX上用工具smit开放目录
* Client
  执行
  mount server-hostname:share-dir mount-point
* 卸载方法(无进程或终端窗口使用才可卸载)
  umount mount-point

Unix的文件类型
* 文本文件
* 二进制文件
* 目录文件
* 设备文件

设备文件分为字符设备文件和块设备文件;
字符设备又叫原始设备(raw设备),一次处理一个字符,如:打印机
块设备必须在BSIZE字节单元内寻址,BSIZE在/usr/include/sys/param.h中定义为512字节,如:磁盘
使用ls -l查看/dev下的文件,第一个字符为b的是块设备,c是字符设备;
磁盘和磁带既是字符设备,又是块设备,"r"作标识, 如/dev/dsk是块设备文件, /dev/rdsk是字符设备文件

文件系统的创建与恢复
各个Unix系统上文件系系统有差异,AIX使用simt工具管理系统;
Solaris创建文件系统为例子:
* format对硬盘分区,
  分区后一定要lable(write partition map and label to the disk)
  命令中的format功能是低级格式化,慢~~的~~很,不必要不要用
* mkfs或newfs对分区建立系统文件
  分区使用的设备文件必须是字符设备,如:newfs/dev/rdsk/c0t1d0s0
* fsck 全路径文件名 修复损坏的文件系统
  修复过程是交互的,也可用-y选项取消交互。

4 Unix进程
//////////////////////////////////////////////////////////////////////////
* 前台执行进程 "fg"
* 后台执行进程 命令+"&" "bg"
* 挂起进程 "Ctrl+z"
* 查看进程 "ps [-aAcdefjl]"  返回值:
  F:标志, 16进制数
  S:进程状态
  UID: 进程用户号
  PID: 进程号
  PPID: 父进程号
  C: 进程最近消耗CPU资源的情况,C值低的进程比C值高的进程更易获得CPU
  PRI: 进程的调度优先权,有-c时数大优先权高,无-c相反.
  NI: 优先级
  ADDR: 进程的内存地址
  SZ: 进程在主存中可交换存储映象的大小(一页计)
  WCHAN: 导致进程进入睡眠状态的事件的地址(NULL表示进程正在运行)
  STIME: 进程启动时间
  TTY: 运行进程终端
  TIME: 进程累计执行时间
  CMD: 命令名称

* 特殊进程:
  进程0: 交换程序进程,功能是把进程映像移到盘文件,或从盘文件移到内存
  进程1: 初始引导进程,负责启动其他用户进程
  defunct进程: 一种子进程,当它正常退出时,系统通知他的父进程,由父进程结束该子进程,但是这时父进程已经运行异常或繁忙,导致该子进程不能正常退出,使该子进程变成为defunct进程.
  这种进程不能杀掉,只能等待父进程退出,由系统结束.

* 进程控制
  出现异常: kill [-signal] pid ...  kill -l

5 Unix 常用配置文件
////////////////////////////////////////////////////////////////////////
/etc/hosts
  IP hostname  127.0.0.1必须设为localhost
/etc/passwd
  shadow文件保存用户口令
  passws文件格式如下: 用户名: 口令: 用户号: 组号: 注释: 用户家目录: Shell
/etc/group
  用户组文件: 用户组名: 口令: 用户组号: 用户组(,作为分隔符)
/etc/services
  Services与Socket端口对应资源文件:
  service-name port/protocol(tcp/udp) aliases
/etc/netmasks
  网络掩码资源文件:  子网 掩码
/etc/vfstab, /etc/filesystems
  device to mount
  device to fsck
  mount point
  FS type
  fsck pass
  mount at boot
  mount option
/etc/dfstab, /etc/exports
  配置开放本机的某个文件系统: dfstab : share -F FSType -d description pathname
inittab
  系统初始化配置文件: 标识符: 运行级别: 动作: 命令
/etc/system
  Solaris内核参数的配置文件: sysdef -i 查看系统当前参数
  命令格式:
  set patameter = value
  set module_name:variable = value
 重要参数:
 max_nprocs: 最大进程数目
 max_users: 最大用户数目
 shmsys:shminfo_shmmax: 最大共享内存(一个进程能使用的最大共享内存)
 
6 常用操作命令
//////////////////////////////////////////


第1章 UNIX操作系统概述 7 1.1 UNIX操作系统简介 7 1.2 UNIX系统组成 7 1.3 UNIX启动过程 8 1.4 UNIX用户登录过程 8 1.5 与UNIX有关的几个名词 9 第2章 UNIX基本常识 11 2.1 启动终端 11 2.2 登录 11 2.3 初始化文件 11 2.4 注销(退出UNIX系统) 12 第3章 UNIX文件系统 13 3.1 文件系统分类 13 3.2 文件类型 13 3.2.1 正规文件 13 3.2.2 目录文件 14 3.2.3 字符和块设备文件 15 3.2.4 套接字文件 15 3.2.5 命名管道文件 16 3.2.6 链接文件 16 3.3 树型目录结构 16 3.4 文件和目录的命名 18 3.5 UNIX文件存取权限 18 3.6 重定向与管道 21 3.6.1 UNIX重定向 21 3.6.2 UNIX管道 22 3.7 常用配置文件 22 3.7.1 /etc/passwd文件 22 3.7.2 /etc/group文件 22 3.7.3 /etc/hosts 23 3.7.4 /etc/services 23 3.8 文件系统管理 23 3.8.1 mount 23 3.8.2 umount 24 3.8.3 加载配置文件 24 3.8.4 fsck 25 第4章 UNX系统常用命令 27 4.1 UNIX命令基础 27 4.1.1 UNIX命令的一般格式 27 4.1.2 特殊功能键和字符 28 4.1.3 查看帮助信息 30 4.1.4 在后台运行程序 31 4.1.5 在指定时间执行指定程序 31 4.2 vi编辑器的最基本用法 32 4.2.1 vi简介 32 4.2.2 vi的启动和退出 33 4.2.3 vi的两种模式 33 4.2.4 vi的基本操作 34 4.2.5 vi的高级操作 36 4.3 目录操作命令 38 4.3.1 pwd 38 4.3.2 mkdir 38 4.3.3 cd 38 4.3.4 rmdir 39 4.4 文件操作命令 39 4.4.1 ls 39 4.4.2 cat 40 4.4.3 head 41 4.4.4 tail 41 4.4.5 more 41 4.4.6 cp 43 4.4.7 mv 44 4.4.8 rm 44 4.4.9 chmod 44 4.4.10 chown 46 4.4.11 chgrp 46 4.4.12 cmp 46 4.4.13 diff 47 4.4.14 wc 47 4.4.15 split 47 4.4.16 touch 48 4.4.17 file 48 4.4.18 pack 48 4.4.19 pcat 49 4.4.20 unpack 49 4.4.21 find 49 4.4.22 grep 51 4.4.23 pg 52 4.4.24 ln 52 4.4.25 sort 53 4.4.26 compress 53 4.4.27 uncompress 54 4.4.28 gzip 54 4.4.29 gunzip 54 4.4.30 tar 54 4.4.31 cpio 55 4.4.32 tee 56 4.5 状态信息命令 57 4.5.1 w 57 4.5.2 who 57 4.5.3 whodo 57 4.5.4 logname 58 4.5.5 whoami 58 4.5.6 whereis 58 4.5.7 which 58 4.5.8 date 58 4.5.9 cal 59 4.5.10 time 59 4.5.11 id 59 4.5.12 hostid 60 4.5.13 hostname 60 4.5.14 df 60 4.5.15 du 60 4.5.16 stty 61 4.5.17 tty 61 4.5.18 history 61 4.5.19 alias 61 4.5.20 echo 62 4.5.21 uname 62 4.5.22 clear 62 4.6 网络命令 62 4.6.1 arp 62 4.6.2 finger 63 4.6.3 wall 63 4.6.4 mesg 63 4.6.5 write 63 4.6.6 ping 63 4.6.7 netstat 64 4.6.8 telnet 64 4.6.9 ftp 64 4.7 进程管理命令 65 4.7.1 kill 65 4.7.2 ps 66 4.7.3 sleep 68 4.7.4 nice 68 4.7.5 shutdown 68 4.7.6 halt 69 4.7.7 poweroff 69 4.7.8 reboot 69 4.8 用户管理命令 69 4.8.1 su 69 4.8.2 groupadd 69 4.8.3 groupdel 70 4.8.4 useradd 70 4.8.5 userdel 70 4.8.6 passwd 71 第5章 shell的基础知识 72 5.1 什么是shell 72 5.2 别名化 73 5.3 shell变量 74 5.3.1 shell变量的存储机制 74 5.3.2 变量替换 74 5.3.3 命令替换 76 5.4 用户环境 76 5.5 两个重要的环境变量 77 5.6 shell启动文件 78 5.7 监控进程 78 第6章 附录 79 6.1 ftp命令参考 79 6.2 vi命令参考 80 6.3 find命令详解 85 6.3.1 Find命令形式 85 6.3.2 Find命令参数 85 6.3.3 Find命令举例 87 6.4 grep命令详解 99
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值