资源描述
Linux简介
1.Nos概念:网络操作系统是在通常操作系统功能的基础上提供网络通信和网络服务功能的操作系统。网络操作系统为网上计算机进行方便而有效的网络资源共享,提供网络用户所需各种服务的软件和相关规程的集合。
2.linux的特性:
真正的多用户、多任务通用OS
全面支持TCP/IP,内置通信联网功能,实现异种网络互联
符合POSIX1003.1标准,与UNIX完全兼容,互移植性强
支持32种文件系统
GUI接口,X-WINDOW
开源、自由软件
具有庞大且素质较高的用户群,有广泛的应用程序支持
3.网络管理员的职责
A.用户管理
1.为新用户开帐号 2.删除不再需要的老帐号 3.禁用某帐号,把该帐号拥有的文件进行备份。
B.硬件管理 1.添加/删除硬盘 2.添加打印支持
C.软件管理 1.安装新软件 2.系统升级
D.备份 1.人工备份 2.自动备份
E.系统监控
系统资源的可用性,包括磁盘空间、网络可用性等
F.故障诊断 G.安全
4.linux安装的硬盘规划方法
稍微麻烦一点的硬盘规划(默认情况)
/:根目录,自动有
/boot:启动分区,一般100M,也可以不单独分;
/usr:存放Linux(类似于WindowsXP的C:\Windows),跟选择的软件相关,支持图形需要3G左右;
/home:使用者的信息(类似于WindowsXP的C:\Documents and Settings),可大些
/var:记录所有默认服务器的登录文件, 且mail与 WWW的默认路径也在/var底下,可大些。
Swap(一般为内存大小的两倍):交换区
5.引导过程和配置文件:inittab、rc.local、init.d
典型的引导过程:
A.加载并初始化内核
B.检测和配置设备
C.创建自发的系统进程
D.管理员参与(如果是手工引导)
E.执行系统初始化脚本
F.多用户使用
由init根据一定的算法来选择并运行启动脚本(/etc)
执行/etc/inittab: 定义运行时INIT的启动模式 ,规定进入每个模式时要运行的命令(/etc/init.d目录中保存所有配置初始化文件,一般系统映射到RC*.D文件中指定某个级别执行什么)执行/etc/rc*.d的文件:启动或停止各种服务的脚本,每个脚本负责一个守护进程或系统某个特定方面。脚本符号链接到/etc/init.d的文件
6.管理命令:
(1)Shutdown 停止系统
shutdown [-t 秒数] [-rkhcfF] 时间 [信息]
-t 秒数 意思是动作在XX秒之后开始执行
-k 意思是不要真的关机,只是发送警告信息
-r 意思是在系统的服务停止之后重新启动
-h 意思是在系统的服务停止之后关机
-f 意思是重新启动后略过fsck工具的磁盘检查
-F 意思是重新启动后执行fsck工具的磁盘检查
-c 意思是取消已经在运行的shutdown命令
时间可以是
now代表立即执行
hh:mm 今天的几点几分
+mm mm分钟之后,now等价于+0
(2)Who 查看当前使用系统的用户
(3)date、
(4)halt 关闭系统所有任务
(5)poweroff 停机并申请关闭电源
(6)sync 强制将缓存写入硬盘
文件管理
一.目录结构
二.文件权限:
-rwxrwx--- 第一个属性代表这个文件的类型[d]是目录,[-]是文件,[l]表示链接文件
前三个组合代表所有者,中间三个组合代表组,后面三个组合代表其他非本组的人. 三个为一组,且都为rwx的三个参数组合read write [x]可执行,[-]无此属性
列: -rw-r--r-- 1 root root 238 Jun 18 17:22 test.txt
文件test.txt的所有者为root,组为root,只有root这个账号可以存取此文件,其它人则仅能读此文件。
改变所属组命令chgrp chgrp 组名称 文件名称 注意:组名必须存在
改变所有者命令chown chown [ -R ] 账号名称 文件
chown [ -R ] 账号名称:群组名称 文件
改变权限命令chmod [-R] xyz 文件
其中xyz分别为三组rwx属性数值的和
三.目录结构:
1.cd [相对路径或绝对路径]
cd .. <==回到上一层目录
cd ../home <==相对路径的写法
cd /var/www/html <==绝对路径的写法
cd <==回到使用者的Home目录
cd ~ <==回到使用者的Home目录
cd ~test <==回到test这个用户的Home目录
2.pwd 显示当前路径的命令:pwd
相对路径容易混淆,可以用pwd打印绝对路径来确认
3.建立目录命令 mkdir [-mp] [目录名称]
-m 选项可以改变默认的文件属性
-p 选项用于创建需要的目录结构
m和p同时使用,则仅控制最后一个目录的属性
4.删除目录的命令 rmdir [-pv] [目录名称]
-p 选项用于删除整个目录结构
-v 选项用于显式详细信息
一定要确保目录非空,否则要报错
删除非空的目录可以用rm命令
目录实战
创建目录:
mkdir t1/a
在t1下建立子目录a,如果t1不存在则报错,目录属性默认值一般为775
mkdir -p a/b/c
创建目录树结构,如果没有则创建,有则沉默
mkdir -m 770 bb
新建目录bb,属性设置为770
删除目录
rmdir aa/bb/cc
删除aa/bb目录下的子目录cc,aa/bb保留
rmdir -pv aa/bb/cc
删除aa/bb/cc整个目录树,显示删除的每一个目录
四.文件管理:
1.显示文件和属性命令 ls [-aABdlS] [路径...]
-a 全部的文件都列出(包括隐藏文件)
-A 忽略当前路径和上级路径
-B 忽略备份文件(以~结尾)
-l 一行一个文件,包含几乎全部属性
-S 以文件大小排序
-R:递归显示子目录信息
-d 只显示目录的属性,而不是路径下的文件
2.拷贝命令 cp [-iruv] [源文件] [目标文件]
-i 在文件覆盖之前显示确认信息
-r 拷贝整个目录结构
-u, --update:如果源文件比较新,或者是没有目标文件,那么才会进行copy的动作,可用于备份。
-v 显示详细信息告诉用户当前执行的动作
3.删除文件或目录rm [-firv] [文件名称]
-i 删除前让用户确认,文件删除时这是默认值,如果使用递归删除则不是默认值。
-r 递归删除
-f 强制删除,忽略掉不存在的文件,且删除前不需要用户确认
-v 显示当前操作的详细信息
4.移动目录或文件,修改名字:mv [-fiuv] [源文件] [目标文件]
-f 覆盖文件前不需要用户确认
-i 覆盖文件前让用户确认
-u 当源文件比目标文件新或者目标文件不存在的时候才会执行动作
-v 显示当前操作的详细信息
5.显示所指文件信息cat [文件名[ 文件2]]
例子cat /etc/inittab
6.按页显示文件内容 more [选项] <文件名>
q:退出
/word:查询信息
空格或回车:换行
7. Less命令:与more类似,但可以使用PageUp/Down前后翻页的命令
8.Grep 查找文件内容grep [选项] 匹配字符串 文件列表
文件列表:指定查找文件
匹配字符串:希望在文件中查到的串。
常用选项
-v 列出不匹配串或正则表达式的行。
-c 对匹配的行计数。
-l 只显示包含匹配的文件的文件名。
-h 抑制包含匹配文件的文件名的显示
-n 每个匹配行只按照相对的行号显示。
-i 产生不区分大小写的匹配,缺省状态是区分大小写。
例子grep –v root /etc/passwd
[]:与任何一个字符匹配
Grep “new[abc]” filename
9.WC计数文件中单词个数wc [选项] 正则表达式 [文件名]
-l 显示行数
-w 显示单词个数
-c 显示字符个数
五.搜索文件:
1.find 查找文件find [目录列表] [匹配标准]
例子
通过文件名查找
# find / -name httpd.conf –print
根据部分文件名查找
#find / –name *http* -print
2.locate 通过名字来进行查找 使用数据库进行查找locate [-ceir] [文件名称]
-c 只输出文件数量
-e 只输出存在的文件
-i 查询时不区分大小写
-r 把文件名称参数视为正则表达式来检索
3.which 查看可执行文件的路径which [文件名称] 例子which ls
4.whereis 查找给定命令的可执行文件、手册文件、源文件 使用数据库进行查找whereis [-bmsu] [目录名称]
-b :只找binary的文件
-m :只找在说明文件manual路径下的文件
-s :只找source来源文件
-u :所有相关文档
六.符号链接:
Ln建立文件链接
ln [-s] [源文件] [目标文件]
参数说明:
-s 提供符号链接
不带选项执行ln代表硬链接
示例:
ln –s tt1 Ftt1 #符号链接
ln tt1 SFtt1 #硬链接
磁盘及文件系统
一. 磁盘管理
1.fdisk 磁盘分区工具fdisk [-l] [设备名称]
参数说明:
(1)-l 直接列出该硬盘设备的partition table信息,如果没有给定硬盘名称,那么列出所有硬盘的分区信息
(2)不加参数并且存在设备名称的情况下,将进入fdisk界面,所有操作都在该设备下进行。
设备名称:使用磁盘设备文件,如hda,sda等
示例: fdisk /dev/sda
fdisk操作界面的主要命令
m :显示说明信息
q 或quit:退出,所有修改宣布无效
p 或print:查看分区信息
d 或delete:删除一个分区
w 或write:应用所有硬盘分区的修改,退出fdisk
n 或new:新增一个分区
t或type:改变分区类型(e 或 p)
p 实验1:删除分区
n 主要命令:
n fdisk /dev/hda <==进入界面
n p <==打印分区信息
n d <==删除分区,需要输入分区的
编号(Partition Number)
w <==保存修改,退出
p 实验2:增加主分区
n 主要命令:
n fdisk /dev/hdc <==进入界面
n p <==打印分区信息
n n <==增加分区,需要输入分区的 编号、范围(1-4)、起 始磁柱号、以及结束磁柱号 或者分区大小。
n w <==保存修改,退出
p 实验3:增加主分区、扩展分区、逻辑分区
n 主要命令:
n fdisk /dev/hdd <==进入界面
n p <==打印分区信息
n n <==增加主分区(输入p)
n n <==增加扩展分区(输入e)
n n <==增加逻辑分区(输入l)
n w <==保存修改,退出
分区注意事项
(1)以root的身份进行硬盘的分区时,最好是在单人维护模式下比较安全。在进行fdisk的时候,如果该硬盘某个分区还在使用当中,那么很有可能系统核心会无法重新加载硬盘的分区表,解决的方法就是将该使用中分区卸载,然后再进入 fdisk。
(2)虽然一块硬盘最大的逻辑分区可以到64个(总数,包含1-4主分区),但是并非所有的 Linux distribution都会将所有的逻辑分区对应的磁盘代号都写入系统当中(如Red Hat只列出1-16个代码,其他要自己用mknod命令手动设置)。
2.make2fs 格式化建立ext文件系统
mke2fs [-c] [-b block-size] [-i bytes-per-inode] [-j] [-L volume-label]
p 参数说明:
-b :在设定每个数据区块占用的大小,目前支持的大小有 1024, 2048, 4096
-i :设定多少字节占用一个inode,一般不小于 block-size
-c :检查错误磁盘,会比较慢
-L :设定分区的label(卷标名称,最大16字节)
-j :建立ext3,否则ext2
p 格式化命令:mke2fs
n 实验
n mke2fs /dev/hdb5
n mke2fs –j -b 4096 -i 4096 /dev/hdb1
n mke2fs /dev/fd0
3.df 查看容量df [-hikm] [file]
p 参数说明:
-h :以适合于人可读的方式显示数据
-i :i-nodes示结果而不是显示块
-k: 使用K字节显示结果
-m: 使用M字节显示结果
file:参数可以是硬盘的代号(/dev/hda2)或者文件挂载点(/)或者目录(/boot/grub),目录会转化到相应的挂载点来对待。
p 注意:只能显示已经挂载的文件系统!
4.du 查看目录或文件容量 du [-abckms] [目录名称]
n 参数说明:
[目录名称] 可以省略,如果省略的话,表示要统计当前路径的文件容量
p -a 列出所有文件与目录,默认只列出目录
p -b 列出的值以字节输出
p -k 以K字节列出
p -m 以M字节列出
p -h 以人可读的方式列出计量单位
p -c 最后加上总计值
p -s 只列出总值
二. 磁盘的设备文件
硬盘设备文件
IDE:以hd开头,第一个磁盘hda
SCSI:以sd开头,第一个磁盘sda
磁盘分区设备文件:
IDE:hda1(第一个分区)、hda2(no2)等
SCSI:sda1 (第一个分区)、sda2(no2)等
三.文件系统加载mount和umount
1.挂载文件系统的命令:mount [-ahlV]
参数说明:
-a 按照/etc/fstab的内容将所有相关的磁盘都挂上
-h 只列出mount相关的参数,并不挂载任何设备
-l 列出目前已经挂载的设备、文件系统与挂载点
-V 列出mount的版本信息
2. 挂载特定文件系统
mount [-t vfstype] [-o options] device dir
参数说明:
-t: 指定挂载的目标文件系统,常见的vfstype有vfat,fat32,fat16,ext2, ext3 ,iso9660,ntfs
device :指要挂载的设备代号
dir :设置挂载点
例子挂载USB盘:
查看是否支持USB
lsusb
查看硬盘代号,一般是sda sdb,sdc等:
fdisk -l
建立空目录:
mkdir /mnt/usb
挂载文件系统:
mount -t vfat /dev/sdc1 /mnt/usb
访问USB盘:
cd /mnt/usb
p 挂载光盘:
n linux早期版本加载CDROM模块到系统:
modprobe cdrom
modprobe ide-cd
n 建立空目录:
mkdir -p /mnt/cdrom
n 挂载光盘:
mount -t iso9660 /dev/cdrom /mnt/cdrom
n 卸载光盘:
umount /mnt/cdrom
3.卸载文件系统的命令:umount
umount [-f] [device | mount_point]
参数说明:
-f : 强制将该文件系统退出,最常使用在无法访问的NFS文件系统中。注意:不能卸载busy文件系统。
范例:
[root @test root]# umount /home
三. 加载配置文件:/etc/fstab
启动时自动挂载文件系统
配置文件:/etc/fstab
注意:根目录/必须是第一个挂载
挂载点(mount point)必须为已存在的文件目录,且在同一时间之内只能挂载一次
所有partition在同一时间之内,只能挂载一次
如若进行卸载,必须先将工作目录移到 mount point(及其子目录) 之外
/etc/fstab文件中配置的项,可以直接使用挂载点挂载文件系统,如 mount /mnt/usb
用户
一.用户管理
1.usradd 添加用户useradd [-u UID] [-g GID] [-G GID] [-d HOME]
[-mM] [-s shell] username
参数说明:
-u :指定UID
-g :指定默认GID或者组名称,此GID或者组名称必须已经存在于/etc/group
-G:指定所属的其他组,用逗号分割
-d :指定Home目录,如果不存在系统会创建
-M :不建立Home目录
-s :定义其使用的shell
2.userdel 删除用户userdel [-r] username
说明:指定-r参数将Home目录以及邮件目录删除
3、groupadd 添加组 groupadd [-g GID] groupname
访问/etc/group和/etc/gshadow文件,写入新的组信息
4、groupdel 删除组groupdel groupname
访问/etc/group和/etc/gshadow文件,删除组信息
注意:组内的用户必须不在线,而且该组不存在组用户才能删除。
5、su 切换用户su [-] [username]
说明:创建子shell,并切换到username用户,如果没有username参数,那么切换到root。退出可以输入exit
加入-可以强制创建登录shell,相当于重新登录
root用户切换到其他用户不需要输入密码
6、sudo 受限的su
sudo command
说明:第一次执行会要求输入密码(使用者自己的密码而非root密码)
每个用户、组能够使用sudo执行的命令集合必须在/etc/sudoers文件中配置,使用visudo命令编辑文件。
二.主要配置文件
1./etc/passwd 记录系统用户基本情况
p 格式:usrname:x:UID:GID:comment:homepath:shell-type
p 说明:
1. usrname:用户名
2. x:密码是否放在shadow文件中
3. UID:用户ID(1~499系统预留500~65535)
4. GID:组ID,初始用户组
5. comment:说明信息
6. homepath:用户工作(Home)目录
7. Shell-type:用户使用的用户接口类别,通常为/bin/bash
2./etc/shadow 记录用户密码使用情况
p 格式:usrname:pass:date1:date2:expire:expire-date:disable-date:cancel-date:obligate
p 说明:
1. usrname:用户名
2. pass:经过了加密的密码,如果*或!开头那么不能登录
3. date1:上次更改密码的日期(1970/1/1起,天数累加)
4. date2:密码不可被修改的天数(0表示随时可改)
5. expire 密码需要重新修改的天数(99999表示不用改)
6. expire-date: 密码需要修改期限前的警告期限(7表示失效前7天开始提示)
7. disable-date: 帐号失效期限
8. cancel-date: 帐号取消期限
9. obligate: 预留
p 3./etc/group 记录用户组及用户分组情况
p 格式:grpname:gpass:GID:user-list
p 说明:
1. grpname:组名称
2. gpass:组密码,密码在/etc/gshadow中
3. GID:组ID,
4. user-list:属于组的用户列表,以逗号分割,如:xsl:x:500:test02,test03
4./etc/sudoers
进程管理
一.进程控制:
p Ctrl+C 与 Ctrl+Z 的区别是什么?
Ctrl+C终止当前执行的命令,即发送INT信号给当前执行命令的对应进程
Ctrl+Z挂起当前执行的命令,即发送TSTP(软STOP)信号给当前执行命令的对应进程
1.fg把挂起的任务放到前台继续执行 fg %number
2.bg把挂起的任务放到后台继续执行 bg %number
p number 表示jobs编号。此时再用jobs查看的话,任务的状态可能由Stopped(挂起)变为Running(正在运行)或者Done(执行完毕)
3、jobs 列出所有挂起进程
作用:显示所有被Ctrl+Z挂起的jobs编号(任务编号)以及对应命令和状态
4、kill 给后台进程发送信号的命令kill -sigal %number
参数说明:
%number 背景工作的任务编号,可使用 jobs 查询signal
-1 重新读取一次配置文件(HUP信号)
-2 使用者中断该任务(INT信号)
-9 立刻删除任务,不论该任务生死(KILL信号)
-15 终止任务(这是默认值,TERM信号)
举例:kill -9 %1
5、ps 查看当前执行进程的命令ps [-AauxF]
参数说明:
A,a :选择所有的进程列出
u :所有用户的进程都列出
x :所有tty的进程都列出
F :列出所有信息
6、uname 打印系统信息的命令uname [-apnr]
参数说明:
-a :所有的系统信息均列出
-p :列出 CPU 信息
-n :列出 host name
-r :列出 kernel 版本信息
如果对CPU感兴趣还可以查看/proc/cpuinfo
二.程序管理:tar、rpm、源文件安装方法
1.tar 源码包安装过程
1. 解开tar包,一般自动生成以软件名命名的目录(tar –xvf tar包);
2. 执行配置文件(./configure)
3. 编译(make)
4. 安装(make install)
5. 清理安装过程中的一些临时文件。(make clean)
6. 卸载:make uninstall
WWW服务的Apache服务器软件安装
1、解压:
tar -xvzf httpd-2.0.48.tar.gz
tar -xvjf httpd-2.0.52.tar.bz2
2、配置,并指定安装目录
:./configure --prefix=/usr/local/aaaa
3、编译 make
4、安装 make install
5、清理临时文件的命令如下:make clean
6、如果要卸载,则进入安装目录执行命令。make uninstall
Rpm目前rpm包有两种模式:
已经过编码的(i386.rpm)
未经编码的(src.rpm):安装前必须先编译:
rpm --rebuild Filename.src.rpm
命令格式:
rpm [-itUpfvqch] rpm包名
-i 安装软件。
-t 测试安装,不是真的安装。
-p 显示安装进度。
-f 忽略任何错误。
-U 升级安装。
-v 检测套件是否正确安装。
-q:查询已经安装的rpm包
-c:列出rpm包的配置文件
-h:安装进度
-e:卸载软件包
注意:这些参数可以同时采用
Cron和系统服务
一.Cron的配置:crontab
Linux中的周期性任务由cron这个后台进程来维护,实现某些自动系统管理工作。
命令规划minute hour day month weekday [username] 命令
例如:30 10 * * 1-5 mail xsl “hello ”
表示从周一到周五的上午十点半发问候给xsl
目录规划minute hour day month weekday [username] run-parts 目录
例如:每5分钟执行一次/run/runcron下的可执行文件
*/5 * * * * root run-parts /run/runcron
crontab [-u user] [-l|-e|-r]
说明:
-u user :配置用户的cron(只有root能用)
-l :列出crontab的内容
-e :编辑crontab的内容(打开vi编辑器)
-r :删除crontab的内容
举例:每隔两分钟把当前日期发送到邮箱
crontab -e
编辑器中加入下面语句:
*/2 * * * * echo `date`>/tmp/date.tmp; mail xsl < /tmp/date.tmp; rm -f /tmp/date.tmp
查看目录:ls -al /var/spool/cron
查看配置:crontab -l
删除:crontab -r
二.系统服务:
1.工作原理:Linux提供的功能,包括系统功能和网络服务。每个系统服务都需要对应的守护进程(daemon)来监听服务需求。
2.chkconfig 控制服务的启动、停止和重启
chkconfig [--level levels] [--list | add | del] [service_name] [on|off]
说明:
--level 指定运行级别,默认级别为2345
--list显示所有当前配置
--add 表示增加
--del 表示删除
3.service
/etc/services文件
列举所有服务端口以及对应进程
格式:
<dameon name> <端口与包类型> <服务说明>
一般不需要修改
查看/etc/services文件
启动独立服务
服务启动脚本 start
例如:/etc/init.d/syslog start
启动超级守护程序
service < option > | --status-all | [ service_name ] [start|stop|restart]
说明:
--status-all表示列出所有服务的当前状态
start表示启动
stop表示停止
restart表示重启服务
4.ntsysv
设置开机自动启动服务工具——ntsysv
Red hat系统特有的服务管理工具
ntsysv [--level <levels>]
说明:
--level:levels可接多个运行级别,如35表示3级和5级
stat
观察打开的服务——netstat
netstat [-antulp]
说明:
-a 显示所有网络联机状态
-n 以数字方式显示主机与端口
-t 仅显示TCP联机状态
-u 仅显示UDP联机状态
-l 仅显示LISTEN内容
-p 显示联机服务的PID
Shell编程
一.变量设置:学会bash环境变量的设置
(1)设置变量语法:
变量名=值
示例:
name=“John Lennon”
JAVA_HOME=/usr/jdk1.5
ORACLE_HOME=/usr/oracle/10g
注意:变量一旦设置,在该shell环境下一直有效,除非取消或重新注册。
等号两边不能直接接空格符
变量名称: 字母开头,包含英文字母与数字的字符串,若有特殊字符:
方法1:使用双引号将内容括起,特殊字符可以保有变量特性
方法2:单引号来将变量内容括起来,特殊字符则仅为一般字符
方法3:使用转义字符“\”来将特殊符号(如回车换行,$,\,空格符,单引号等)变成一般符号
扩增变量内容:
“$变量名”增补内容
如:“$PATH”:/home
name="$name"isme
<==正确!echo $name 显示 VBird's nameisme
unset 变量名称 实例 unset name
二.运算符:整数运算、字符运算、逻辑运算
默认变量类型是字符串,其他变量声明用d:
declare [-afir] 变量名称[=初始值]
含义:
-a 定义数组
-f 定义函数
-i 定义整数
-r 定义只读变量
常用的整数运算符:
-eq 等于
-ne 不等于
-lt 小于
-gt 大于
-le 小于或等于
-ge 大于或等于
常用的字符串运算符:
str 若str为非空字符串则为真
str1=str2 若str1与str2相同则为真
str1!=str2 若str1与str2不相同则为真
str1<str2 若str1比str2排序为小则为真
str1>str2 若str1比str2排序较大则为真
-z str 若str长度为0则为真
-n str 若str长度大于0则为真
常用的逻辑判断:
-f 检测文件是否存在
-d 检测目录是否存在
-e 检测对象是否存在,对象可以是任何东西
-r 文件是否具备可读属性
-w 是否可写
-x 是否可执行
-s 文件是否非空
-u 文件是否具备SUID
-g 文件是否具备SGID
-k 文件是否具备sticky bit属性
&& 逻辑与
|| 逻辑或
输入:read
输出:echo
示例:
echo input u name:
read name
echo u name is $name
三.控制语句:if、for、case、while
目标:实现日志的自动周期备份——上机实验为主
展开阅读全文