系统引导起来:
1、root (hd0,0)
2、kernel /vmxxx root=/dev/sda?
3、initrd /initramxxx
升级内核:
1、rpm包升级内核
2、yum升级内核
3、源码包升级内核
uname -r
2.6.32-431.el6.x86_64
vim /etc/grub.conf
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux (2.6.32-431.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=UUID=ca0aaea2-d18a-4320-84d1-483c0e282475 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-431.el6.x86_64.img
rpm包升级:
# rpm -ivh kernel-2.6.32-504.el6.x86_64.rpm kernel-firmware-2.6.32-504.el6.noarch.rpm --force
注意L:不要直接用-Uvh或者-Fvh升级内核,会覆盖掉原来的内核
安装完后,会在/etc/grub.conf文件里多一个菜单,并且默认从新的内核启动
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.32-504.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-504.el6.x86_64 ro root=UUID=ca0aaea2-d18a-4320-84d1-483c0e282475 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-504.el6.x86_64.img
title Red Hat Enterprise Linux (2.6.32-431.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=UUID=ca0aaea2-d18a-4320-84d1-483c0e282475 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-431.el6.x86_64.img
yum升级:自己完成
1、找一个比当前操作系统高的一个镜像文件挂载到本地
2、配置本地yum源指向高版本的系统镜像文件
3、使用yum去安装升级
源码包升级:
1、下载kernel源码包 www.kernel.org
# md5sum linux-4.1.4.tar.xz
32cb4dd9f14d37bf71bafa6ed368f769 linux-4.1.4.tar.xz
2、解压缩到指定的路径下面
# tar -xf linux-4.1.4.tar.xz -C /usr/src/
3、进入到解压后的文件目录里
# cd /usr/src/linux-4.1.4/
1>安装相应的开发工具包
# yum -y groupinstall "Development tools"
# yum -y install ncurses-devel
三步曲:
./configure (配置 Makefile) ——>make (编译)——>make install (安装)
make menuconfig 让内核支持ntfs的文件系统
# grep -i ntfs .config
CONFIG_NTFS_FS=m
CONFIG_NTFS_DEBUG=y
CONFIG_NTFS_RW=y
make -j 2
lscpu
cat /proc/cpuinfo
make modules_install
make install
模块相应命令:
/lib/modules/2.6.32-431.el6.x86_64/ 存放当前系统的所有模块
lsmod
modprobe -l|grep 8139
kernel/drivers/net/8139cp.ko
kernel/drivers/net/8139too.ko
modinfo 8139cp
modprobe 8139cp 激活
modprobe 8139too
# lsmod |grep 8139
8139too 30892 0
8139cp 22559 0
mii 5376 2 8139too,8139cp
modprobe -r 8139cp 删除模块(不激活模块)
depmod -a 让模块之间生成依赖关系
系统检测与进程控制
ifconfig
hostname 或者 uname -n
cat /etc/redhat-release
uname -a|r
last
lastlog
free -m
swapon -s
df -h|H
uptime 查看系统平均负载及基本信息
11:00:45 up 9 min, 2 users, load average: 0.00, 0.04, 0.05
top:实时动态的查看系统状态
进程状态:
s:sleeping
r:running
t:stopped
z:zombie
d:不可中断的睡眠进程
P:
M:
k:结束进程
r:renice
q:退出
shift+ >和< :
top -u username
top -b -n1 >1.txt 将输出打印到屏幕一份并输入到文件中
ps命令:
-A:显示所有进程
a:显示当前终端下所有的进程
u:以用户为主的信息状态
x:与a一起,列出比较完整的信息(aux)瞬时状态
-l:以长格式列出详细信息
-f:显示父子关系
# ps
PID TTY TIME CMD
4981 pts/0 00:00:00 bash
5232 pts/0 00:00:00 ps
# ps aux
# ps auxf|grep xxx
# ps -ef|grep xxx
# ps ef|grep xxx
# pidof xxx
# pstree
+
# w
11:45:11 up 2:14, 3 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 :0 12Jul16 16days 29.13s 29.13s /usr/bin/Xorg :0 -nr -verbose -audit 4 -auth /var/run/gdm/auth-for-g
root pts/0 :0.0 11:21 0.00s 0.11s 0.00s w
root pts/1 :0.0 11:31 13:35 2.37s 2.37s top
LOGIN@:何时登录的
IDLE:空闲时间
JCPU:和该终端连接的进程所占用的cpu时间
PCPU:当前进程所占用的cpu时间
WHAT:程序名(干什么)
kill -l:列出所有信号
15) SIGTERM 结束(默认发送信号)
9) SIGKILL 强制结束
18) SIGCONT 继续
19) SIGSTOP 暂停
kill -15 pid1 pid2
kill -9 pid
killall httpd
skill -9 pid1 pid2 httpd
skill -9 -u tom
pkill httpd
将某个进程放到前台后台执行
firefox &
ctrl+z
# jobs
[1]- Running firefox http://www.baidu.com &
[2]+ Stopped gedit 777
kill -18 %jobs
kill -19 %jobs
fg:
bg:
bg %1
服务:
特点:24小时不间断的服务 并发特征
tcp/ip |socket
socket:套接字。应用程序通过“socket”向网络发出请求或者应答请求,介于应用层和传输层
socket类型:
流式socket(socket_stream):面向连接的socket,一般针对的是面向连接的服务程序(TCP)
数据报socket(socket_dgram):面向无连接的socket,一般针对的是面向无连接的UDP应用服务
Linux操作系统中服务:
依赖服务:
1、没有自己独立的启动脚本
service xxxx start
2、依赖一个叫xinetd服务(独立服务)
什么是xinetd?
扩展的网络守护程序。超级Intenet服务,常用来管理多个轻量级的服务;平时不占用系统运行资源。
常见的依赖服务:telnet、tftp
3、依赖服务提供服务的前提是xinetd服务已经启动
独立服务
1、有自己独立的启动脚本
/etc/init.d/xxx
/etc/rc.d/init.d/xxx
启动:servcie xxx start|stop|reload|restart|sttaus
2、不依赖于任何服务
常见的独立服务:ftp、http、dns、mail等
端口号的设定:
IP——>主机——>端口——>相应的服务
端口号范围:0~65535
1~255:一般是知名的端口(web 80 ftp 21|20 ssh 22)
256~1023:一般是由unix系统占用,来提供特殊的服务
1024~5000:客户端随机产生的
大于5000:网络上预留的端口
思路:
1、关闭防火墙和selinux
2、配置yum源
3、软件三步曲(查看|安装|软件列表)
4、了解配置文件 man 5 xxx.conf
5、根据需求通过修改配置文件来完成服务的搭建
6、启动服务,开机自启动
7、测试验证
环境准备:3台虚拟机
server:192.168.1.102 vm01.uplooking.com
client:192.168.1.3 node1.uplook.com
windows:192.168.1.4
需求:搭建telnet服务,远程管理主机
telnet 23 tcp 明文传送用户名和密码 linux默认不支持
server:telnet-server
client:telnet 192.168.1.102 23
步骤:
1、关闭防火墙和selinux
# service iptables stop
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
# chkconfig --level 35 iptables off
# chkconfig --list|grep iptables
iptables 0:off 1:off 2:on 3:off 4:on 5:off 6:off
关闭selinux:
[root@vm01 ~]# getenforce
Enforcing
[root@vm01 ~]# setenforce 0
[root@vm01 ~]# getenforce
Permissive
# vim /etc/selinux/config
SELINUX=disabled 永久关闭
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced. 强制模式
# permissive - SELinux prints warnings instead of enforcing. 警告模式
# disabled - No SELinux policy is loaded. 关闭
2、配置yum源
# ls /mnt/hgfs/soft/rhel-server-6.5-x86_64-dvd.iso
/mnt/hgfs/soft/rhel-server-6.5-x86_64-dvd.iso
# vim /etc/fstab
/mnt/hgfs/soft/rhel-server-6.5-x86_64-dvd.iso /iso iso9660 defaults,ro,loop 0 0
mkdir /iso
mount -a
# cd /etc/yum.repos.d
# vim server.repo
[server]
name=xxxx
baseurl=file:///iso
enabled=1
gpgcheck=0
3、软件三步曲
# yum list|grep xinetd
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
xinetd.x86_64 2:2.3.14-39.el6_4 server
# yum list|grep telnet
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
telnet.x86_64 1:0.17-47.el6_3.1 server
telnet-server.x86_64 1:0.17-47.el6_3.1 server
# yum -y install xinetd telnet-server
# rpm -ql xinetd
/etc/rc.d/init.d/xinetd 启动脚本
/etc/xinetd.conf 主配置文件
/etc/xinetd.d 主目录(管理的其他服务的子配置文件)
/usr/sbin/xinetd 二进制命令
# rpm -ql telnet-server
/etc/xinetd.d/telnet 子配置文件
/usr/sbin/in.telnetd 启动命令
4、了解配置文件
1>主配置文件
# cat /etc/xinetd.conf |grep -v ^#|grep -v ^$
defaults
{
log_type = SYSLOG daemon info 日志类型 使用rsyslog来登记日志
log_on_failure = HOST 登录失败日志,记录客户端的主机
log_on_success = PID HOST DURATION EXIT 登录成功日志,记录客户端主机及进程的pid
cps = 50 10 每秒50个连接 如果超出限制,则等待10s
instances = 50 最大连接数
per_source = 10 每个IP最多能连接10次
v6only = no
groups = yes 属组
umask = 002 掩码
}
includedir /etc/xinetd.d 加载外部主目录
2>子配置文件
# cat /etc/xinetd.d/telnet
service telnet
{
flags = REUSE 标记
socket_type = stream 面向连接 tcp
wait = no 不等待,服务以多线程的方式运行
user = root 启动服务用户
server = /usr/sbin/in.telnetd 启动命令
log_on_failure += USERID 设置登录失败记录用户uid
disable = yes 代表关闭;no代表开启
}
5、根据需求通过修改配置文件来完成服务的搭建
vim /etc/xinetd.d/telnet
...
disable = no
6、启动服务,开机自启动
/etc/init.d/xinetd start
Starting xinetd:
# chkconfig --level 35 xinetd on
[root@vm01 ~]# chkconfig --list|grep xinetd
xinetd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
# netstat -lntp|grep 23
tcp 0 0 :::23 :::* LISTEN 3242/xinetd
netstat:
-a:查看所有连接状态
-l:查看listen状态
-t:tcp协议
-u:udp协议
-n:数字显示
-p:显示程序名
7、测试验证
client:192.168.1.3
# telnet 192.168.1.102
Trying 192.168.1.102...
Connected to 192.168.1.102.
Escape character is '^]'.
Red Hat Enterprise Linux Server release 6.5 (Santiago)
Kernel 2.6.32-431.el6.x86_64 on an x86_64
login: stu1
Password:
Last login: Thu Jul 28 15:51:04 from 192.168.1.3
需求2:只允许192.168.1.2和192.168.1.110访问telnet服务
vim /etc/xinetd.d/telnet
{
。。。
only_from = 192.168.1.2 192.168.1.110
}
重启xientd服务:
service xientd restart
需求3:允许192.168.1.0/24 网段访问,除了192.168.1.3
vim /etc/xinted.d/telnet
{
only_from = 192.168.1.0/24
no_access = 192.168.1.3
}
重启xientd服务:
service xientd restart
需求4:根据man文档完成如下要求
1、控制telnet服务最多只能连接3,每个IP只能连接1次
2、控制只能在工作时间访问telnet服务,9:30-12:00 14:00-17:30
3、指定日志记录到/var/log/xinetd_telnet.log里
4、更改telnet服务的默认端口号为10023
课后练习:
根据telnet服务搭建步骤,完成tftp服务的搭建
tftp 简单的文件传输协议 udp 69端口
用途:小文件的传输
要求:
1、只允许在工作时间9:30-12:00 14:00-17:30访问
2、只允许192.168.1.102和你自己的客户端ip访问
3、每个ip最多连接2次,最大连接数是3
4、修改端口号为10069