一、linux系统管理与维护
1、分区:/boot(100-200m)
swap:(交换分区,建议是物理分区的1.5-2倍)
/:剩余空间
root是管理员用户,区分于administrator
2、对初学者建议:关闭iptables
a、chkconfig iptables off
b、打开/etc/sysconfig/selinux文件,修改“SELINUX=disabled”,保存并退出
注意:两项都要关闭,然后reboot重启生效。
3、MBR引导:
位于磁盘的0柱面0磁道1扇区,共512字节
512=446+64+2(446字节为grub引导器,64字节是分区表,2字节是结束标记)
grub菜单:对应文件是/boot/grub/grub.conf
加载内核:内核所对应的文件在/boot下
4、init进程:由linux内核加载运行/sbin/init
是系统中第一个进程,PID号永远为1
5、配置默认运行级别:/etc/inittab
例如:/etc/init/control-alt-delete.conf 控制终端下的ctrl+alt+del热键操作
6、runlevels(运行级别):0关机6重启5图形,3完整字符,2不支持网络字符,
1(单用户,即不需要密码可登录,多用于系统维护),4未分配,一般不用
vi的使用:vim 文件名
按i键--修改内容--按esc键--:wq(保存并退出),加!表示强制执行。
7、服务的控制:
方法一:service 服务名亨 控制类型
方法二:/etc/rc.d/init.d/服务名称 控制类型
控制类型:start|stop|restart|reload(重载)|status(查看状态)
例如:重启network服务
service network restart
或/etc/rc.d/init.d/network restart
8、查看当前的运行级别:runlevel
系统服务管理工具(控制开机自启动):
(1)ntsysv:交互式,有菜单选项。按空格启用或停用,tab切换
(2)chkconfig:纯命令配置
查看当前服务的默认启动状态:chkconfig --list
修改服务在某个级别的开机自启动:chkconfig --level 级别 服务名 on(或者off)
二、目录和文件管理
1、查看文件的内容:
cat:显示文件的内容(如果内容多,则只显示最后一屏)
more:分屏显示文件
less:分屏显示文件内容,但是扩展功能多
head:只看文件的首(首行依次往下) ,head -n(n可理解为页数)
tail:查看文件的尾(同head,顺序相反)
例如:;shift + page up(down)翻页,tail -f:跟踪日志文件
2、wc命令:统计文件内容(-l行、-c字节、-w单词数)
3、grep命令:检索和过滤文件内容
常用命令选项:-i查找时忽略大小写,-v反转查找,输出与查找条件不相符的行
查找条件设置:a.要查找的字符以双引号括起来
b."^......"表示以...开头,"......$"表示以...结尾
c."^$"表示空行
4、压缩和解压缩(只能针对文件压缩)
a.压缩(文件)
gzip 文件名(压缩后的后缀为gz)
bzip2 文件名(压缩后的文件为bz2)
b.解压缩
解压gz:
gzip -d 或gunzip
解压bz2:
bzip2 -d 或bunzip2
制作一个大文件:cat /dev/zero > 文件名 (ctrl+c结束)
5、归档和压缩tar(文件或文件夹)
a.归档并压缩
tar czf .tar.gz 需要压缩的文件或目录(压缩为gz格式)
tar cjf .tar.bz2 需要压缩的文件或目录(压缩为bz2格式)
b.解压缩
解压 .tar.gz:
tar zxf .tar.gz文件
解压 .tar.bz2
tar xjf .tar.bz2文件
解压的选项:(-C 目标位置) 注意:C为大写
6、vi编辑器
vi的使用:
A.vi的三种模式以及模式的切换:
光标的移动:#G(指定跳转到哪一行)
复制(yy 或者#yy表示从哪一行开始复制)、粘贴(P)、删除(x表示删除
删除一个字符,而dd或者#dd表示删除行)
查找:/查找内容(从上至下)、?查找内容(从下至上查)
撤销:d,如果单个字符撤销,为u
B.末行模式下使用:
显示行号(:set nu),(:set nonu表示取消)
保存和退出:w保存,q退出,wq表示保存并退出,加!表示强制执行
查找和替换:(: % s /old/new/g)
注:%--代表整个文档、g--代表整行
在行号"#,#"范围内替换所有字符串:(:#,# s /old/new/g)
三、 安装及管理程序
1、查询已安装的rpm软件信息
格式:rpm -q(子选项) (软件名)
-qa:查看系统中已安装的所有rpm软件包列表
-qi:查看指定软件的详细信息
-ql:查询指定软件包所安装的目录、文件列表
-qc:仅显示指定软件包安装的配置文件
-qd:仅显示指定软件包安装的文档文件
2、查询文件或目录属于哪个rpm软件
格式:rpm -qf 文件或目录名
3、查询未安装的rpm包文件信息:
格式:rpm -qp(子选项)rpm包软件
-qpi:通过.rpm包文件查看该软件的详细信息
-qpl:查看.rpm安装包内所包含的目录,文件列表
-qpc:查看.rpm安装包内所包含的配置文件列表
-qpd:查看.rpm安装包内包含的文档文件列表
4、光盘的挂载
mount /dev/cdrom(设备) /media(目录)
注意:与windows的使用光盘的习惯要区分开,linux必须挂载或卸载。
查看挂载情况:mount
光盘的卸载:umount /dev/cdrom 或umount /media
5、rpm包的安装
rpm -ivh(不区分先后顺序) rpm软件包名
-i(安装)、-U(升级)、-F(更新)、-v(显示信息)、-h(显示安装进度,“#”表示)
6、rpm包的卸载:
rpm -e 软件包名
--nodeps(忽略依赖关系)、--force(强制)
7、维护rpm数据库
重建rpm数据库:rpm --rebuilddb 或 rpm --initdb
8、编译安装过程:
a、tar解包——下载源代码安装包文件
用途:解压并释放源代码包到指定的目录。
b、(./configure配置)
用途:设置安装目录、安装模块等选项
c、make编译
用途:生成可执行的二进制文件
d、make install安装
用途:复制二进制文件到系统,配置应用环境
e、测试及使用
相关命令:cp * 复制所有文件
源码包存放位置:/usr/src
源码包安装的位置:/usr/local
访问linux网页加端口号(:10000),可输入root和密码访问
四、 账号和权限管理
用户管理:
1、用户相关的配置文件
/etc/passwd(保存用户)
/etc/shadow(用户密码文件)
/etc/skel(用户模板文件)
2、用户相关的命令
useradd(创建用户)、passwd(修改密码)、userdel(删除用户)、usermod(修改用户属性)
useradd选项:
-d:指定用户的宿主目录位置
-e:指定用户账号失效时间
-g:指定用户的基本组名(或GID号)
-G:指定用户的附加组名(或GID号)
-s:指定用户的登录shell
passwd (选项) 用户名
-d:删除密码,root才能受用
-f:强制执行
-k:设置只有在密码过期失效后,方能更新
-l:锁住密码
-u:解锁账号
-s:列出密码相关的信息,root才能使用
usermod命令:
格式:usermod (选项)用户名
注:usermod可用来修改用户账号的各项设定
-L:锁定用户账户
-U:解锁用户账户
由于选项与useradd命令中的含义大致相同,此处不做详解
chage -l 用户(查看用户账户信息)
删除用户账号:
userdel命令
格式:userdel (-r) 用户名
此处补充一个知识点:!命令可以从历史记录中找出你所需要的命令行,history可得到历史命令的序号
3、组的管理
a、组相关的配置文件:/etc/group
b、组相关的命令:groupadd -g (创建组)、groupdel(删除组)、gpasswd(将用户添加到组中)
gpasswd命令:
格式:gpasswd (选项) 组账号名
-a:向组内添加一个用户
-d:从组内删除一个用户成员
-M:定义组成员列表,以逗号分隔(附加组)
补充:
a、id命令
用途:查询用户身份标识 (id 用户名)
b、groups命令
用途:查询用户所属的组
groups 用户名
c、finger命令
finger 用户名
d、users、W、who命令
用途:查询已登录到主机的用户信息
五、 磁盘和文件系统管理(一)
磁盘管理:
1、查看磁盘分区
fdisk -l
2、磁盘分区(此处以/dev/sdb为例)
fdisk /dev/sdb
m——查看帮助,n——创建分区(p为主,e为扩展,l为逻辑)
d——删除分区,p——查看分区,w——保存并退出,q——不保存退出
3、创建文件(俗称格式化)
1)、格式化为ext4
mkfs -t ext4 /dev/sdb1
或者mkfs.ext4 /dev/sdb1
2)、格式化为swap
mkswap /dev/sdb5 (转换为swap)
swapon /dev/sdb5 (启用)
swapoff /dev/sdb5(禁用)
4、挂载和卸载(此处注意区分临时挂载和永久挂载)
1)、临时挂载
a、挂载一个分区(/dev/sdb1)
mount /dev/sdb1 /share(目录可自定义,但必须是真实创建的)
b、挂载一个光驱设备
mount /dev/cdrom /media
c、挂载一个光盘镜像(后缀为.iso)
先制作一个光盘镜像文件
cp /dev/cdrom a.iso
mount -o loop a.iso /挂载目录
2)、卸载
umount /设备名 或 umount /挂载点
3)、永久挂载
使用vim修改/etc/fstab文件,
添加一行:
/dev/sdb1 /share ext4 defaults 0 0
5、查看磁盘使用情况或挂载情况
1)、查看挂载情况:mount
2)、查看磁盘使用情况:df -hT
六、 磁盘和文件系统管理(二)
主要命令:
pvcreate 设备名1 (设备名2)
vgcreate 卷组名 物理卷名1 物理卷名2
lvcreate -L 容量大小 -n 逻辑卷名 卷组名
lvextend -L +大小 /dev/卷组名/逻辑卷名
lvm的步骤:整个磁盘或分区——pv——vg——lv——格式化——挂载
1、创建pv(此处以/dev/sdb1,/dev/sdc1为例)
pvcreate /dev/sdb1 /dev/sdc1
2、创建vg
vgcreate share /dev/sdb1 /dev/sdc1
3、创建lv
lvcreate -L 30G -n test share
4、格式化
mkfs -t ext4 /dev/share/test
5、挂载
mount /dev/share/test /mailbox
6、扩展lv
lvextend -L +9G /dev/share/test
7、扩展后,需在线更新文件系统
resize2fs /dev/share/test
8、扩展vg
vgextend share /dev/sdb1
用户配额实验:
1、修改/etc/fstab文件,支持配额
/dev/share/test /mailbox ext4 defaults,usrquota,grpquota 0 0
2、重新挂载或重启系统(使/etc/fstab生效)
umount /mailbox ——mount /mailbox
3、生成配额文件
quotacheck -aucgv
4、启用配额文件(所有)
quota -a
5、设置配额
edquota -u 用户
edquota -g 组
6、测试配额(测试配额生效否)
cat /dev/zero > 文件名 ,分别切换用户登录
7、查看配额使用情况
quota -u 用户
quota -g 组
repquota -a查看所有
组的配额:
组中的用户共用空间大小和文件数,只对基本组生效,附加组不生效。
配置过程与用户配额步骤一样,只需修改
edquota -g 组,使用测试即可
添加用户到基本组:useradd -g 组名 用户名
添加用户并加入到附加组
useradd -G 组名 用户名
创建组
groupadd 组名
七、 进程和计划任务管理
1、查看进程信息
1)、查看静态的进程信息
ps aux
2)、查看动态的进程信息
top
3)、根据条件查询进程信息
pgrep -l “进程名”
4)、查看进程树
pstree -aup
2、进程启动
1)、手工启动:前台 后台(&)
2)、调度启动:at(一次性)、crontab(周期性)
3、漏斗命令:cat /dev/zero(表永远读不完的0) > /dev/null(表永远写不满的文件)
4、结束进程
1)、ctrl+c(正在运行的进程)
2)、kill(杀进程的PID)
格式:kill PID号
选项 -q表强制
3)、killall(杀进程名)
格式:kill all
4)、pkill(根据特定条件杀进程)
pkill -q -U “张三” (以用户张三为例)
5、at(一次性)
服务脚本:/etc/init.d/atd
格式:at 时:分 年-月-日
ctrl +d表提交任务
相关命令:
at(设置) 查看当前时间:date
atq(查询) 修改时间 date -s 时:分
atrm(删除) 修改日期:date -s 年月日
6、crontab(周期性)
服务脚本:/etc/init.d/crond
格式:
分 时 日 月 星期(0,7代表周日) 命令或脚本(绝对路径)
相关命令:
crontab -e 编辑
crontab -l 查看
crontab -r 删除
时间数值的特殊表示方法:
*:表示该范围内的任意时间
,:表示间隔的多个不连续时间点
-:表示一个连续的时间范围
/:指定间隔的时间频率
八、 分析和排查系统故障
日志的分类:
内核及系统日志、用户日志、程序日志
日志保存位置:
默认位于:/var/log目录下
内核及公共消息日志:/var/log/messages
计划任务日志:/var/log/cron
日志消息重要程度:
0 EMERG(紧急):会导致主机系统不可用的情况
1 ALERT(警告):必须马上采取措施解决的问题
2 CRIT(严重):比较严重的情况
3 ERR(错误):运行出现错误
4 WARNING(提醒):可能影响系统功能,需提醒用户的重要事件
5 NOTICE(注意):不会影响系统功能,但是需要注意的事件
6 INFO(信息):一般信息
7 DEBUG(调试):程序或系统调试信息等。
九、 linux基础网络设置
一、查看网络参数
1、查看ip地址信息
ipconfig(查看活动)
参数:-a(查看所有),eth0(只查看eth0)
2、查看主机名
hostname
3、查看路由表(默认网关)
route -n 或netstat -rn
4、查看tcp/udp端口信息
netstat -auptu(a表所有,n表数字,p表进程id,t指tcp,u指udp)
5、跟踪网络节点
traceroute
6、测试dns解析
nslookup
二、设置网络参数
1、配置ip地址
ifconfig eth0 IP地址
ifconfig eth0:2 IP地址
2、配置默认网关
route add default gw 网关地址(添加)
route del default gw 网关地址(删除)
三、设置网络参数(固定)
1、修改IP地址和默认网关
/etc/sysconfig/network-scripts/ifcfg-eth0
需要重启服务生效:service network restart
或禁用启用后生效:ifdown eth0;ifup eth0
2、修改计算机名(重启生效)
/etc/sysconfig/network
修改HOSTNAME=主机名
3、修改首选和备用DNS地址文件
/etc/resolv.conf
4、本地主机名映射文件(立即生效)
/etc/hosts
四、DHCP服务
1、查看服务包是否安装
rpm -qa |grep dhcp
若没有安装,插入系统安装光盘
安装后须覆盖:cp /usr/share/doc/dhcp-4.1/dhcpd.conf.sampe(sampe文件) /etc/dhcp/dhcpd.conf(主配文件)
2、服务脚本
/etc/init.d/dhcp.d
启动服务:service dhcpd start
3、端口号:
UDP:67(服务器)
UDP:68(客户端)
4、排除错误,查看日志
tail -30 /var/log/messages
十、 samba文件共享服务
一、安装包
rpm -ivh samba-3.x.x.....
二、samba服务
1、samba服务器的主要程序
smbd:提供对服务器中文件、打印资源的共享访问,tcp端口号139和445
nmbd:提供基于NetBios主机名称的解析,udp端口号138和137
2、samba的配置目录及文件
/etc/init.d/smb
3、samba的配置目录和文件
/etc/samba/smb.conf
三、主配置文件smb.conf的全局配置项
1、security:安全级别,可用值如下:
share(匿名访问)
user(本地用户验证用户名及密码)
server(其他linux服务器验证)
domain(windows域控制器身份验证)
2、常见共享目录配置项的含义
path:(共享目录在服务器中对应的实际路径)
guest ok(或public):是否允许所有人访问共享权限
read only(只读,默认不写也是只读)
writable(可读可写)
四、搭建一个匿名共享访问(实践是检验理论的唯一标准)
1、修改主配置文件/etc/samba/smb.conf
security=share
2、创建一个自定义的共享
【software】
path=/software
publice=yes
read only=yes
注意:/software目录需在系统中创建
3、启动服务或重启服务
service smb start/restart
五、搭建一个本地用户验证的共享访问
1、创建用户并添加到samba用户中
useradd zhangsan
pdbedit -a -u zhangsan
2、修改主配置smb.conf文件
security=user
3、自定义共享
如:财务部共享文件,财务经理完全控制,财务部员工只读,其他人无权限
【caiwubu】
path=/caiwubu
valid users=cwjl,@cwb(定义合法用户)
write list=cwjl(定义合法可读可写的用户)
六、设置上传文件和目录的默认权限
directory mask=0775(目录权限)
create mask=0644(文件权限)
七、别名
1、修改别名配置文件
/etc/samba/smbusers
2、修改smb.conf文件
在【golbal】中添加一行
username map = /etc/samba/smbusers
十一、 FTP文件传输服务
1、FTP连接
控制连接:tcp21端口,用于发送ftp命令信息
数据连接:tcp20端口,用于上传、下载数据
数据连接的建立类型:
a、主动模式:服务器从20端口主动向客户端发起连接
b、被动模式:服务端在指定范围内某个端口被动等待客户端连接
2、FTP用户的类型
匿名用户:anonymous或ftp
本地用户:账号名称、密码等信息都保存在passwd、shadow文件中
虚拟用户:使用独立的账号、密码数据文件
注意:本地用户和虚拟用户不能同时存在
3、vsftpd软件包
a、安装包(在linux系统安装光盘上)
rpm -ivh vsftpd......
b、服务(vsftpd) service vsftpd restart
c、主配置文件 /etc/vsftpd/vsftpd.conf
d、用户控制列表文件
/etc/vsftpd/ftpusers(黑名单)
/etc/vsftpd/user-list(黑白名单)
注意:ftpusers为黑名单,user_list为白名单时:
用户既在ftpusers中,又在user_list中,此用户不能访问
用户既不在ftpusers中,又不在user_list中,此用户不能访问
只有用户仅在user_list中,才能访问
anon_umask=022(反掩码)
目录正码:777-022=755
文件正码:666-022=644
虚拟用户常用的配置选项:
anon_umask=022 虚拟用户所上传的权限掩码
anon_upload_enable=YES 允许上传文件
anon_mkdir_write_enable=YES 允许创建目录
anon_other_write_enable=YES 开放其他写入权
anon_max_rate=0 限制最大传输速率(字节/秒)
local_root=/var/ftp 设置虚拟用户的ftp根目录
匿名访问:可下载可上传
十二、 DNS域名解析服务
DNS服务
1、软件包
rpm -ivh bind-9.... bind-chroot...
2、bind服务配置
a、服务脚本
/etc/init.d/named
service named restart
b、协议端口
tcp/udp 端口 53
c、主配置文件
/var/named/chroot/etc/named.conf
d、保存DNS解析记录的数据文件位于
/var/named/chroot/var/named/
e、资源记录
SOA(权威服务器)、A(主机,域名到ip)、PTR(指针,ip到域名)
NS(名称服务器)、MX(邮件交换记录)、CNAME(别名,一个主机映射到多个主机名)
3、主DNS的配置(实践检验理论)
一个正向区域benet.com 一个反向区域192.168.1.0
a、修改主配置文件
vim /var/named/chroot/etc/named.conf
options {
directory "/var/named";
};
zone "benet.com" in{
type master;
file "benet.com.zone";
};
注:标明下划线的内容可自定义,但必须相对应
zone "1.168.192.in-addr.arpa" in {
type master;
file "192.168.1.zone";
};
b、创建正向的数据文件(benet.com)
vim /var/named/chroot/var/named/benet.com.zone
$ttl 86400
@ in soa benet.com. admin.benet.com. (
20151014
3h
15m
1w
1d
)
in ns ns1.benet.com.
in mx 5 mail.benet.com.
ns1 in a 192.168.1.10
www in a 192.168.1.100
mail in a 192.168.1.100
web in cname www
注意:正向数据文件中必须有SOA,NS
可以有MX,A,CNAME
c、创建反向的数据文件(192.168.1.0)
vim /var/named/chroot/var/named/192.168.1.zone
$ttl 86400
@ in soa benet.com. admin.benet.com.(
20151014
3h
15m
1w
1d
)
in ns ns1.benet.com.
10 in ptr ns1.benet.com.
100 in ptr www.benet.com.
200 in ptr mail.benet.com.
注意:在反向的数据文件中,必须有SOA,NS,可有PTR
4、从DNS配置步骤(辅助)
a、安装包
b、修改主配置文件
vim /var/named/chroot/etc/named.conf
options {
directory "/var/named";
};
zone "benet.com" in {
type slave;
masters {192.168.1.10;};
file "slaves/benet.com.zone";
};
c、启动服务
5、缓存服务器(转发器)
a、安装包
b、修改主配置文件
vim /var/named/chroot/etc/named.conf
options {
forwarders {192.168.1.10;};
};
c、启动服务