资源描述
大型服务器配置与管理
课 程 作 业
院 系:
信息科学与技术学院
专 业:
软件技术
学 期:
2015~2016学年第一学期
班 级:
B1333
学 号:
28
姓 名:
谢锦
任课教师:
程 霄
成 绩:
二〇一五年十一月
第一部分:CentOS系统安装与配置
说明:需要5张以上安装截图,且有个人的QQ窗口在截图中。
试验步骤:
IP地址 子网掩码 网关 DNS MAC
CentOS下 查看网络信息
查看当前活动网络设备信息
ifconfig -a 查看所有网络设备信息
cd /etc/sysconfig/network-scripts 进入网络配置文件目录
vi ifcfg-eth0 编辑eth0的配置信息
修改ONBOOT=no 为ONBOOT=yes
/etc/init.d/network restart 重启网卡设置
ping 202.101.224.69 测试网络连通
ipconfig Windows下查看网络信息 ipconfig /all
netstat –na | more 查看网络连接信息
ping
arp 查看MAC分配表
建立从主机在到子系统的端口转发
192.168.56.1:22 à 10.0.2.15:22
试验截图:
第二部分:Linux系统操作
说明:常见命令操作,不少于5张命令操作截图,且有个人的QQ窗口在截图中。
试验步骤:
cd ~ 切换到当前用户的主目录
pwd 查看当前所在目录
cd / 切换到系统根目录
pwd
ls 列出当前目录下的所有文件和子目录
clear 清除当前终端中的内容
=====================分割线=====================
查看文件
Linux下通常用颜色来区分文件,默认情况:
蓝色 -> 目录文件 绿色 -> 可执行文件
天蓝色 -> 链接文件 亮黄色 -> 设备文件
闪烁红色 -> 错误的链接文件 白色 -> 一般文件
例如:
ls -lh /bin/* 查看/bin/目录中的所有文件
ls -lh /dev/tty* 查看所有tty设备文件
ls -lh / 查看/下所有目录
=====================分割线=====================
系统登录
建议使用非root用户登录
登录以后注意提示符 普通用户是 $ root用户 #
建议时刻注意当前所在目录
ssh -l root 127.0.0.1 用root用户登录 主机(127.0.0.1)
exit / logout 退出当前登录终端
=====================分割线=====================
系统关闭与重启
关闭系统 shutdown -h now / init 0 / halt 宕机
重启系统 reboot / init 6 / shutdown -r
shutdown -r +3 表示3分钟后重启系统
以上操作需要root权限
=====================分割线=====================
shell操作
shell是一个Linux最重要的工具,是其他命令的操作平台,是一个编程环境。shell通常有多种,每种shell有不同的作用,常见shell有sh/bash/csh等,目前流行的是bash
ls -lh /bin/*sh 查看当前系统中的可用的shell
exit 退出当前shell,返回上一级shell
切换shell /bin/bash 或 /bin/csh 或 /bin/sh 或 /bin/dash
\ Linux命令续行符
例如:
ls -lh /bin/*sh à ls \ -lh \ /bin/*sh
ctrl + c 终端当前命令执行
tab 键 补全命令或列出所有匹配的文件和目录
方向键 上下查找已键入的命令
=====================分割线=====================
通配符
* 任意个任意字符 ? 一个任意字符
[] 正则表达式
=====================分割线=====================
管道符和重定向符
| 管道符 是把前一个命令输出作为下个命令的输入
例如:
ls -lh /bin/* | more
> 覆盖重定向符 把命令的输出重定向
例如:
cd ~
ls -lh /bin/* > 1.txt
cat 1.txt | more 查看1.txt文件
more 1.txt 分页查看1.txt文件
head 1.txt 查看文本文件的开始10行
tail 1.txt 查看文本文件的结尾10行
less 1.txt 分页查看1.txt文件
>> 追加重定向符 把命令的输出重定向
<< 追加重定向符 把内容重定向为命令的输入
=====================分割线=====================
强大的帮助系统
man <command>
info <command>
<command> --help / <command> -h
=====================分割线=====================
进程管理
前台进程 top
后台进程 top &
守护进程 sshd
僵尸进程
休眠进程
ps 查看当前用户进程
ps -ef | more 查看当前所有进程
ps -ef | more | wc -l 查看当前进程数
ps -ef | grep tty 查看当前启动的终端进程
top 查看当前系统资源信息
kill <PID> 关闭指定进程号的进程
kill -9 <PID> 强制关闭指定进程号的进程
free 查看当前内存使用情况
uptime 查看当前系统负载
=====================分割线=====================
用户管理
/etc/passwd 用户信息文件 (普通用户可看)
/etc/group 用户组信息文件 (普通用户可看)
/etc/shadow 用户密码信息文件 (root用户可看)
/etc/gshadow 用户组密码信息文件 (root用户可看)
more /etc/passwd 查看用户信息文件
/bin/su - 切换到root用户
more /etc/shadow 用root用户身份查看用户信息文件
关于用户切换
/bin/su 披马甲的方式切换
/bin/su - 换身份换环境
/bin/su - <用户名> root用户可以切换成任何用户
用户的增加修改删除都需要root权限,修改他人密码需要root权限
/usr/sbin/useradd 添加用户信息
/usr/sbin/usermod 修改用户信息
/usr/sbin/userdel 删除用户信息
/usr/bin/passwd 修改用户密码信息
例如:
/bin/su - 切换到root用户
ls /home 查看当前用户目录中的目录
/usr/sbin/useradd mysql 以默认方式添加mysql用户
tail -n 2 /etc/passwd 查看passwd文件的最后两行
tail -n 2 /etc/group 查看group文件的最后两行
tail -n 2 /etc/shadow 查看shadow文件的最后两行
/bin/su – mysql 切换到mysql用户身份
注意: 当前mysql用户没有设置密码,不能用于远程登录。该用户的作用只是用来启动mysql服务
man useradd
例如:
tail -n 2 /etc/passwd
/usr/sbin/usermod -c “MySQL Administrator” mysql
修改用户mysql 的友好名称
tail -n 2 /etc/passwd
例如:添加用户kaka到GID为500的组中
ls -lh /home
/usr/sbin/useradd -g 500 kaka
ls -lh /home
如果希望kaka用户能够登录,则需要设置密码
/bin/su -
tail -n 1 /etc/shadow
/usr/bin/passwd kaka
tail -n 1 /etc/shadow
测试kaka用户
exit 退出root用户权限
/bin/su - kaka
id 查看用户信息
exit 退出kaka用户
用户修改自身密码需要输入当前使用密码
/usr/bin/passwd
例如:
/bin/su -
/usr/sbin/useradd test
ls -lh /home
tail -n 1 /etc/passwd
/usr/sbin/userdel -r test -r参数请谨慎使用
ls -lh /home
tail -n 1 /etc/passwd
=====================分割线=====================
文件命令基本操作(请在非root用户下操作,防止系统崩溃,在用户主目录中操作)
T1:访问目录
cd /
pwd
cd ~
pwd
ls -lh
ls -alh 查看以 . 开头的文件 . 开始的文件为隐藏文件
T2: 创建目录
mkdir task1
cd task1
mkdir test
ls
rmdir test
T3: 创建文件
pwd 确定在用户主目录中的task1目录
mkdir test
cd test
touch 1 创建文本文件1
cd .. 返回上一级目录
T4: 文件拷贝,删除,移动
拷贝文件
pwd (确认当前目录为task1)
ls
cp test/1 ../. 该命令把当前目录下的子目录test中的文件1拷贝到当前目录的上级目录中
ls
ls ../.
移动文件
pwd
ls
mv ../1 . 该命令把当前目录的上级目录中的文件1移动到当前目录中
ls ../.
ls
移动目录
pwd
ls
mkdir kkk
mv kkk test/. 该命令把当前目录中的kkk目录及包含的子目录移动到子目录test中
ls
ls test/
删除文件和目录
pwd
ls
rm 1 删除文件名为1的文件
rm test 删除目录test,失败
rm -rf test 静默方式删除目录test
rm -rf * 危险!!!!!!!请多次确认pwd
T5:查看文件类命令
cat 通常查看短信息内容
more 分页形式查看内容(space 向下翻页 b 向上翻页 q退出)
less 更强大的分页查看内容工具 (q 退出 h 查看帮助)
head 查看文件开始若干行 head -n 20 <filename>
tail 查看文件末尾若干行 tail -n 20 <filename>
T6:文件相关命令
ln 创建文件链接,例如:
mkdir a1
ln -s a1 a2
ls -lh
file 查看文件信息,例如:
file a1
file a2
file a1/1.txt
ls /bin/* > 2.txt
file 2.txt
T7:find命令 重要的查找工具,但不局限于查找
find . -name “*.txt” 表示查找当前目录包括子目录下文件名包含”.txt”的文件
例如:
pwd
touch 1.txt 2.txt 3.txt 4.txt
touch a1/5.txt a1/6.txt a1/7.txt
cd /
find /home/clchappy/ -name “*.txt”
find /home/clchappy/ -name “*.txt” -exec rm -rf {} \;
找到以后并删除
find /home/clchappy/ -name “*.txt” | xargs rm -rf
ls /home/clchappy/task1
T8: 命令查找工具
which
whereis
whatis
T9: 归档及压缩工具
tar 归档打包工具,也是Linux下的备份工具
gzip 解压缩软件 gz
bzip2 另一种算法的解压缩软件 bz2
zip 标准zip算法的压缩软件 zip
unzip 标准zip算法的解压软件
为了让备份的数据能够在其他平台上使用,通常添加扩展名 .tar.gz
通常tar和gzip是共同工作,而且tar自带gzip管道
有少部分.tar.gz包在Windows平台下解压会出现问题
例如:创建备份包
mkdir log
cd log
cp /var/log/*log .
cd ..
tar zcvf mysql-2012.03.01.tar.gz a1/ a2/ log/
ls -lh
恢复备份包
pwd
rm -rf a1/ a2 log/
tar zxvf mysql-2012.03.01.tar.gz
=====================分割线=====================
文件权限系统
两类用户 root用户 普通用户
三种级别 文件所有者(u) 文件所有者组(g) 其他人(o) 所有人(a)
三种权限 读(r) 写(w) 执行(x)
另外 还有第一位权限为表示该文件的类别
d代表目录(有x) - 表示文件 l链接文件 (rwx)
r w x
4 2 1 用8进制表示权限,以及8进制掩码表示权限
-rw-r--r-- 644(8进制) 133(8进制掩码) 表示该文件所有者可读可写不可执行,文件组所有者可读不可写不可执行,其他所有人可读不可写不可执行
例如:
id 查看当前的用户信息
cd /tmp 进入系统的临时文件夹目录
vi 1.txt
在vi编辑界面中按i 进入插入模式,然后键入任意个字符,然后按esc退出插入模式,然后键入:,然后键入x并回车退出
ls -l 1.txt
可见当前文件权限为 -rw-rw-r--
/bin/su - kaka 切换到kaka用户,kaka用户与当前用户是同一用户组
id
cd /tmp
vi 1.txt
在vi编辑界面中按i 进入插入模式,然后键入任意个字符,然后按esc退出插入模式,然后键入:,然后键入x并回车退出
接下来我们切换到mysql用户,该用户没有密码,不能直接登录,先切换到root用户,然后在切换到mysql用户
/bin/su -
/bin/su - mysql
id
cd /tmp
在vi编辑界面中按i 进入插入模式,然后键入任意个字符,然后按esc退出插入模式,然后键入:,然后键入x并回车退出(提示错误),然后键入q!退出
=====================分割线=====================
文件权限设定
chown -R <用户名>:<用户组> <文件或目录>
chgrp -R <用户组> <文件或目录>
chmod g+rwx <文件或目录>
chmod 700 <文件或目录>
例如:
切换到当前用户
cd /tmp
ls -l 1.txt
/bin/su -
cd /tmp
chown mysql:mysql 1.txt 设置1.txt的用户和用户组分别为mysql 和mysql
ls -l 1.txt
chgrp clchappy 1.txt 设置1.txt的用户组为当前用户
ls -l 1.txt
chmod g-rw 1.txt 设置1.txt的组权限为不可读不可写
ls -l 1.txt
chmod -rwx 1.txt 设置1.txt的所有权限为不可读不可写不可执行
ls -l 1.txt
chown clchappy 1.txt 设置1.txt的用户为当前用户
切换到当前用户
chmod u+r 1.txt 设置1.txt的用户可读权限
ls -l 1.txt
chmod a+w 1.txt 设置1.txt的所有人可写
ls -l 1.txt
chmod o-w 1.txt 设置1.txt的其他用户不可写
ls -l 1.txt
chmod 755 1.txt 设置1.txt的权限模式…
常见Web服务器中的目录设置权限
777 755 644 664 700
特别的,设置当前目录下权限
chown clchappy:clchappy . 设置当前目录的用户和用户组
chmod 770 .
ls -al .
=====================分割线=====================
网络管理命令
ifconfig 网络查看与设置(动态设置,静态设置需要修改配置文件)例如:ifconfig -a eth0
netstat 查看当前网络连接情况
例如:netstat -na | more
正常 LISTEN 和 ESTABLISHED
系统负载大 WATING
系统负载过大 TIMEOUT
netstat -na | grep LISTEN | wc -l
ping
nslookup 查询DNS解析
whois 查询域名信息
arp
route
nmap 网络扫描软件
网络配置信息文件
cd /etc/sysconfig/networking-scripts 网卡配置信息
cd /etc 网络信息
hosts 主机信息文件
protocol 网络协议信息文件
services 服务信息文件 列出常见服务端口
ftp :20(数据传送端口) :21 (控制端口)
ssh :22 推荐登录工具 putty windows下radmin
smtp :25 发邮件的协议 简单邮件传送协议
dns :53
http :80
pop3 :110
imap :143
https :443
SQL Server :1433
MySQL Server :3306
以上端口状态以 LISTENING 出现
=====================分割线=====================
vi 超级利器 (vim)
例如:
启动 vi 或者 vi <filename>
命令
i 在当前光标位置进入文本编辑模式
文本
用esc命令退出 文本编辑模式
保存 先键入: 在键入w 1.c
先键入 : 再键入q 退出
进入文本编辑模式:
i 当前光标位置插入
I 当前行的第一个位置
a 当前光标的下一个位置
A 当前行的最后一个位置
o 当前行的下一行
O 当前行的上一行
例如:
vi Hello.java
键入i
键入代码
import java.lang.*;
public Hello{
}
按ESC
移动光标public的末尾字母c上
键入a进入编辑模式,编辑完代码后按ESC退出
键入o进入编辑模式,编辑完代码后按ESC退出
键入O进入编辑模式,编辑完代码后按ESC退出
键入I
键入A
在命令模式下进行移动
h(左) j(下) k(上) l(右)
e 以单词为单位向后移动(移动到单词的末尾)
w 以单词为单位向后移动
b 以单词为单位向前移动
0 移动到当前行开始
$ 移动到当前行末尾
G 移动到文件末尾行
1G 移动到文件开始行
Ctrl + f 向下翻1页
Ctrl + b 向上翻1页
:<number> 冒号加上数字可跳转到指定行
在命令模式中删除
x 删除一个字符
dw 删除一个单词
dd 删除一行
ndd n为数值,删除连续的n行
d0 删除当前位置之前的所有字符
d$ 删除当前位置之后的所有字符
db 删除当前位置之前的一个单词
de 删除一个单词
dG 删除当前所在行之后的所有内容
d1G 删除当前所在行之前的所有内容
在命令模式中撤销与重做
u 撤销
Ctrl+r 重做
在命令模式中复制,粘贴,及剪切
yy 复制一行
nyy n为数值,复制n行
p 在当前行之后一行粘贴内容
P 在当前行之前一行粘贴内容
dd 剪切一行
ndd n为数值,剪切连续的n行
退出
:q 不保存退出
:q! 不保存强制退出
:wq <filename> 保存并退出
:wq! <filename> 保存并强制退出
:x <filename> 保存退出
:x! <filename> 保存并强制退出
命令模式查找 键入/(向后查找) 或者 ?(向前查找)
命令模式中替换 r 替换一个字符, R 替换连续字符
全文正则替换 :s/public/private/g
:set 设置vi环境
:set number 显示行号
:set ts=3 设置tabSize为3
:set autoindent 支持代码缩进
:help 帮助系统
=====================分割线=====================
C/C++ 及 Java的编译环境
gcc 是一种非常好的c/c++编译器,开源的编译器,对于ANSI C99支持的较好(98%)
gcc Hello.c
./a.out
绝对路径/home/clchappy/task1/a.out 相对路径(./a.out)
gcc -o Hello Hello.c
./Hello
javac Hello.java
如何安装软件??????????
二进制包(软件发行包)安装
源码方式安装
=====================分割线=====================
磁盘管理
fdisk 磁盘分区
mkfs 分区格式化
e2label 分区卷标
mount 分区挂载
umount 分区卸载
需要在VirtualBox中新增一个虚拟磁盘
切换到root用户
查看新增硬盘是否检测到? fdisk -l
做分区操作,请务必弄清新加载的硬盘的设备名称
fdisk /dev/hdb
m 表示查看帮助
d 删除一个分区
l 列出支持的分区格式
n 添加一个分区
p 查看分区
q 不保存退出
w 保存分区信息
创建分区操作
n 【 p(以主分区创建) ->1 选择分区号 】 -> p -> w -> q
ls /dev/sd*
mkfs -t ext3 /dev/hdb1 用ext4格式格式化分区
mkfs.ext3 /dev/hdb1 另一个简化的命令
cd /
mkdir /backup
df -kh
mount -t ext4 /dev/sdb1 /backup
df -kh
umount /dev/sdb1
df -kh
自动挂载 /etc/fstab
=====================分割线=====================
VirtualBox的分配数据空间的挂载
设备 à 分配数据空间
cd /mnt
mkdir share
mount -t vboxsf Software /mnt/share
=====================分割线=====================
加载iso文件
cd /mnt
mkdir dvd
cd share
mount -t iso9660 -o loop CentOS-6.2-i386-bin-DVD1.iso /mnt/dvd
=====================分割线=====================
Linux 软件发行包的安装
1、发行包是32bit还是64bit (x86_64 / x64) i386_x64
2、发行包支持的内核版本 2.4.x / 2.6.x
uname -a 可查看当前系统的内核版本
3、发行包支持的C/C++库版本 gcc v3 gcc v4
gcc -v 查看gcc的版本
Linux发行包使用.rpm扩展名,还有使用.bin的
rpm包可以从官方下载 从rpmfind网站
(
http://www.centos.org
)
发行包有签名的概念 PGP签名 Windows MD5和SHA签名
CentOS用使用rpm命令查看、安装和卸载软件包
说明:包名包含devel的,表示是该软件的开发包
软件安装目录通常是/usr或/usr/local目录中,且分散
rpm -qa | more 查看当前系统安装的软件包
rpm -ql <软件名>
rpm -ivh <rpm包> 安装软件包
rpm -e <软件名> 卸载软件包
rpm -U <软件名> 升级软件包
从系统光盘中安装rpm
在虚拟机中选择“设备->分配光驱”
在远程登陆(putty)窗口中操作
/bin/su -
id
mount /dev/cdrom 挂在系统光盘
cd /mnt/cdrom
cd RedHat/RPMS
例如需要安装 pcre-devel-3.9-10.2.i386.rpm
rpm -qa | grep pcre
rpm -ivh pcre-devel-3.9-10.2.i386.rpm
rpm -qa | grep pcre
需要卸载
rpm -e pcre-devel
rpm -qa | grep pcre
=====================分割线=====================
CentOS的软件更新管理
yum check-update 检查更新
yum clean 清除cache
yum list 列出支持的软件包
yum update 更新软件
yum erase 删除软件
yum install 安装软件
通常会更改更新源为
=====================分割线=====================
网络应用
lynx <url> 纯字符界面的Web浏览器
elinks <url> 友好的纯字符界面Web浏览器
wget <url> 支持多协议的下载工具
ftp <ip:port> FTP客户端
=====================分割线=====================
系统服务启动
/etc/init.d 目录下为服务启动脚本
/etc/rc0.d /etc/rc1.d …. /etc/rc6.d 目录下为启动级别
rc.local 自动启动文件 相当于 autoexec.bat
启动级别:
0 表示关机 放入到/etc/rc0.d的表示在该级别执行的任务
1 表示单用户模式,用于系统维护
2 表示无网络的控制台模式
3 表示控制台模式
4
5 表示图形界面模式
6 表示重启
/etc/inittab 启动级别配置文件
cd /etc/rc5.d
会看
Knnxxx K表示Kill nn表示顺序 xxx表示服务名
Snnxxx S表示Start nn表示顺序 xxx表示服务名
ls -lh
例如:安装vsftpd服务 ftp的服务
cd /etc/init.d
/etc/init.d/vsftpd start 启动vsftpd服务
ftp 127.0.0.1
/etc/init.d/vsftpd stop 停止vsftpd服务
/etc/init.d/vsftpd restart 重启vsftpd服务
服务管理
chkconfig 系统服务管理命令
chkconfig --list 列出所有服务的各个级别状态
chkconfig --add 增加一个服务到系统服务中
chkconfig --del 删除一个服务
chkconfig --override 覆盖一个服务
chkconfig --level <级别> <服务名> <on | off> 修改指定级别的服务
=====================分割线=====================
防火墙设置 iptables 专业级防火墙
/etc/init.d/iptables start 启动防火墙
/etc/init.d/iptables stop 关闭防火墙
配置文件 /etc/sysconfig/iptables
在防火墙中增加FTP服务许可
/bin/su - 切换到root
cd /etc/sysconfig
vi iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
试验截图:
第三部分:Nginx&FTP服务安装与配置
说明:Nginx的安装与测试,vsFtpd的安装与测试,需要5张以上安装截图,且有有个人的QQ窗口在截图中。
试验步骤:
2、安装Web服务器 -- Nginx
Apache IIS Nginx
cd ~
tar zxvf nginx-1.9.4.tar.gz
cd nginx-1.9.4
从源码方式进行安装(对比:二进制版本为了兼容更多的系统,通常 发行的文件较大),通常分三步:
./configure
展开阅读全文