Linux:
……
虚拟机设置网络:
ping 114.114.114.114(PublicDNS) 223.5.5.5(AllDNS)
ifconfig 查看网络适配器状态
ifconfig-a
lo -- 本地回路适配器 localhost / 127.0.0.1
eth0 -- 以太网卡(0表示第一个逻辑网卡)
ifuo eth0
ifconfig 查看IP地址
DHCP给eth0分配IP地址:10.0.0.2.15
ping 127.0.0.1 虚拟机的网络连通状态 Ctrl+C终止
在VirtualBOX 中选择 设备->网络->网络 设置端口转发规则
192.168.56.1 :22 <--> 10.0.2.15:22
Putty 操作 左键选中(复制) 单击右键(粘贴)
5、网卡设置
vi 文本编辑器
cd /etc/sysconfig/network-scripts
键入命令时可以使用tab键补全
pwd 查看当前的位置
ls 列出当前位置下的内容
vi ifcfg-eth0
j 向下移动一个字符 k 向上移动一个字符
h 向左移动一个字符 l 向右移动一个字符
ONBOOT=no --> ONBOOT=yes
光标在"n"字符上
dw 删除一个单词 a 当前位置之后插入
esc 返回XX模式
键入 “:” 进入命令模式 输入 X(保存)
6、系统重启与关机
重启 reboot
关机 shutdown -r now
关机 halt
yum list *setup*
查找某个文件 whereis er er的文件都给你找出来
mkdir
就是建立文件夹
mkdir -m 755 haner
就是在当前目录建立一个名为haner的文件夹
可读可写
rm是删除文件的命令
对应的rmdir
是删除文件夹
(1)新建一个普通用户
新建/用户user01 usr/sbin/useradd user01
设置user01密码 usr/bin/passwd user01
(2)使用user01登录系统
exit 退出当前登录Shell
普通用户命令提示符 $
/home/user01 为user01的主目录,拥有所有权限
(3)常用命令
pwd 做操作前使用该命令
ls/ 列出根目录下所有内容
cd 或者 cd~ 切换到用户主目录
目录:
全路径 例--> /home/user01
相对路径 例 假设当前位置为/home/user01
--> ls../.././etc/sysconfig/network-scripts
其中“..”表示上级目录
--> ls../.././etc/sysconfig/network-scripts
其中“.”表示当前目录
--> ls~/.
ll -->详细列表
ls -al -> 列出隐藏内容
在Linux系统中 “.”开始的文件为隐藏文件
管道符“|”前项输出作为后项的输入
ll/etc/ |more 分页显示
ll/etc/ |less 分页显示
ll/etc/ |grep pass 列出包含pass的内容
ll/etc/ |grep pass | less
ll/etc/ |grep pass | wc -1 统计符合要求的行数
clear 清除屏幕显示
查看文本内容
cd
pwd
ll /etc/ >1.txt ">"表示定向符
ll
(vi ) 1.txt
more 1.txt分页
less 1.txt
cat 1.txt查看
grep passwd 1.txt查看指定的相关内容
程序进行中的退出:
ctrl+c或者alt+c
10、用户管理和文件权限管理
(1)用户管理
相关配置文件
etc/passwd 存储用户信息(不含密码)
etc/group 存储用户组信息(不含密码)
etc/shadow 存储对应的用户安全信息
etc/gshadow 存储对应的组安全信息
相关名词
uid
gid
普通用户 cat /etc/shadow 权限限制
cat /etc/passwd
用户名:密码:用户ID:用户组ID:用户全称:用户主目录:用户shell
root:x:0:0:root:/root:/bin/bash
user01:x:500:500::/home/user01:/bin/bash
nobody:x:99:99:Nobody:/:/sbin/nologin
用户shell为/sbin/nologin的时候,通常为提供专有服务的用户
nobody http的子进程 777
cat /etc/group
用户组名:密码:用户组ID:用户组成员
root:x:0
相关命令(切换到root用户)
/bin/su -
用户管理
/usr/sbin/useradd
/usr/sbin/userdel
/usr/sbin/usermod
用户组管理
/usr/sbin/groupadd
/usr/sbin/groupdel
/usr/sbin/groupmod
/usr/sbin/groupmems
用户密码管理
/usr/bin/passwd
相关操作(基本上需要root用户)
/usr/sbin/useradd kaka^c
/usr/sbin/usermod -c "New User" kaka -->修改全称
tail -n 2 /etc/passwd
tail -n 2 /etc/group
/usr/sbin/userdel kaka
rm -rf /home/kaka
/usr/sbin/groupadd mysystem
tail -n 2 /etc/group
/usr/sbin/useradd -g mysystem
……
(2)文件权限管理
相关概念
11
权限栏(10位) 用户栏 用户组栏
-rw-rw-r-- user01 user01
文件或目录的权限由上述三个部分共同决定
权限栏:
第一位为标识位
- 文件 d 目录 1 链接文件
b 块文件 c 字符信息文件
ln 创建链接文件
ln -s bin/ abc
每三位一组分别表示<用户权限><组权限><所有人权限>
r 读权限 4
w 写权限 2
x 执行权限 1
例:-rw-rw-r-- 664
-rwxrwxrwx 777
-rwxr-xr-x 755
-drwx------ 700
用户栏与用户组栏(root用户修改)
相关命令
chmod 更改文件或目录权限
chmod 命令参数
chmod 数字
chown 更改文件或目录所属用户或用户组
chgrp 更改文件或目录所属组
以上均支持参数“-R” 表示对当前目录下的所有文件和子目录操作
相关操作
/tmp 所有用户均可读写
使用user01用户创建三个文件
touch user01.txt user02.txt……
chmod +x user01.txt 给user01.txt增加执行权限
u用户g用户组o其他a所有
+增加-删除
r读w写x执行
例:
chmod +x user01.txt user01.txt增加执行权限
chmod u+rw user01.txt
mkdir -p u1/u2
touch u1/f1.txt u1/u2/f2.txt
chmod +x u1 -R
ll u1
ll u1/u2
user01用户设置user02.txt文件权限
ls / >user01.txt
ls / >user02.txt
ls / >user03.txt
chmod 600 user02.txt
/bin/su - mysql 使用root用户切换到mysql用户
访问
cat user02.txt 提示:用户权限不够
切换到root用户更改文件或目录的所属用户和用户组
chown mysql user02.txt
chgrp mysystem user02.txt
chgrp 501 user02.txt
chown nginx.mysystem user03.txt 同时修改所属用户和用户组
11、系统(base/extra/updates三类源)软件安装、第三方软件安装
系统软件安装:(root用户)yum会自动管理依赖包
yum list <xxx> 列出相关软件包
install 安装
erase 删除
rearch 搜索某个软件包
provides 搜索某个相关的软件包
update 更新
upgrade 升级
第三方软件安装:
rpm(发行包安装)
rpm -ivh xxx.xxx.xxx.rpm 安装某个rpm包
rpm -e 删除某个rpm包
编译(源码安装)
安装Wget工具包
yum list *wget*
yum install wget
安装nslookup工具
yum list *nslookup*
yum provides */nslookup 查询结果
12、简单网络管理
……
相关命令
ifconfig 查看与管理网卡及配置
netstat 查看当前网络连接状态
netstat -na | more
netstat -na | grep ":22"
LLISTEN 监听状态
ESTABLISH 活动……
WAITTING 等待…
TIME OUT 超时
CLOSED 关闭
TCP / UDP
常见默认端口号:
FTP-Date 20
FTP-Control 21
SSH 22
STMP 25
DNS 53
HTTP 80
POP3 110
IMAP 143
HTTPS 443
MySQL 3306
Tomcat 8080
arp 查看IP地址与MAC地址对应关系
route 查看和修改路由表
nslookup
whois
13、系统防火墙(iptables/ip6tables)的基本管理
配置文件
/etc/sysconfig/iptables
:INPUT ACCEPT [0:0] 输入链(管理服务端口)
:FORWARD ACCEPT [0:0] 转发链
:OUTPUT ACCEPT [0:0] 输出链
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 打开22端口
常见标准端口
FTP -- 21
SSH -- 22
HTTP -- 80
HTTPS -- 443
SMTP -- 25
POP3 -- 110
IMAP -- 143
Tomcat -- 8080
MySQL -- 3306
防火墙设置
文本图形界面配置
yum list *setuptool*
yum install setuptool
setup --> 进入配置界面
yum list *system-config*
yum install system-config-network-tui
yum install system-config-firewall
yum install system-config-firewall-tui
/etc/init.d/messagebus start --> 启动系统消息总线服务
cat /etc/sysconfig/iptables --> 看看结果
直接编辑配置文件(vi)
需要建立虚拟机的端口转发
221 --> 21
280 --> 80
23306 --> 3306
28080 --> 8080
14、vim简易使用
vi 1. c
vi Student.java
三种模式:
正常模式:默认进入
编辑模式:编辑文本
命令模式:冒号之后
进入编辑:
i 当前光标位置开始编辑
I
a 当前光标之后开始编辑
A 当前行末尾之后开始编辑
o 当前位置下一行开始编辑
O 当前位置上一行开始编辑
键入ESC键,返回到正常模式
移动:j k h l
b(向前移动一个单词) w(向后移动一个单词)
e(向后移动一个单词末尾)
ctrl+b(上翻页) ctrl+f(下翻页)
复制:yy <n>yy
剪切:dd <n>dd
粘贴:p(当前位置下一行粘贴) P(当前位置上一行粘贴)
删除:dd(删除一行) <n>dd(删除n行)
x(删除当前位置字符)
dw(向后删除一个单词) de(向后删除一个单词)
db(向前删除一个单词)
重做与撤销:
u 撤销上一步的操作
ctrl+r 恢复上一步被撤销的操作
键入冒号“:”,进入到命令模式
w 保存
q 退出
wq 保存并退出
x 保存并退出
q! 强制退出
x! 强制保存并退出
set 设置
set nu 设置行号
set tabstop=4 设置tab的大小为4个空格
1 移动到文件开始
$ 移动到文件末尾
15、安装vsFTPd服务(root用户)
yum list *ftpd*
yum install vsftpd
rpm -ql vsftpd 查看rpm包安装的详细情况
测试FTP服务(需要FTP客户端:FileZilla 、 FlashFXP)
ps -ef|grep ftpd
/etc/init.d/vsftpd start
系统服务管理:
相关文件和目录
/etc/init.d --> 服务启动脚本存放目录
/etc/rc.local --> 启动脚本
/etc/inittab --> 系统启动级别配置
0 --> 关闭系统
1 --> 单用户模式
2 --> 多用户模式
3 --> 控制台多用户模式
4 --> 没有用
5 --> X11模式
6 --> 重启系统
相关命令 init
/etc/rc<x>.d x为从0到6共7个级别,在这些目录中会发现
KxxXXXX 以及 SxxXXXX 其中K(Kill)、S(Start)
相关控制命令 chkconfig
chkconfig 列出当前服务控制状态
chkconfig --list <xxx> 列出<xxx>的服务控制状态
chkconfig --add <xxx> 把<xxx>加入到系统服务控制中
chkconfig --level 3 <xxx> on 把<xxx>在级别3上开启服务
例如:
chkconfig --list vsftpd
chkconfig --level 3 vsftpd on
测试FTP匿名用户访问情况
/etc/init.d/vsftpd start
ps -ef|grep vsftpd
less /etc/sysconfig/iptables 确认防火墙开放21端口
映射:192.168.56.1:3321 -> 10.0.2.15:21
Ftp 主动模式(Port)与被动模式(Passive)
分别用匿名用户和普通用户登录(均采用主动模式)
普通用户登录出现提示:
500 OOPS: cannot change directory:/home/user01
与CentOS的安全设置有关,默认均是关闭
sestatus -b | grep ftp
setsebool -P ftp_home_dir on 永久开启普通用户ftp访问规则
yum install gcc
yum install java-1.8.0
gcc --version
java -version
16、安装Web服务(Nginx)
http://www.nginx.org
使用user01用户下载
wget http://nginx.org/download/nginx-1.12.1.tar.gz
从源代码安装服务器软件:
配置编译选项(configure)、编译(make)、安装(make install)
配置(在目录conf或etc下)、服务控制管理(启动脚本)
在user01用户下:
cd ~
tar zvxf nginx-1.12.1.tar.gz
cd nginx-1.12.1
./configure --help | more 查看编译选项
其中选项 --prefix --> 指定软件安装目录
./configure --prefix=/opt/nginx \
--user=nginx \
--group=mysystem \
--with-http_ssl_module \
会依据编译选项检查当前系统环境
出现错误提示:
./configure: error: the HTTP rewrite module requires the PCRE library.
类似的问题均是需要对应库的开发包 均有关键词 “devel”
使用root用户
yum list *pcre*
yum install pcre-devel
./configure: error: SSL modules require the OpenSSL library.
需要openssl开发包
yum list *openssl*
yum install openssl-devel
配置编译选项完成后(普通用户)
make
安装(root用户)
cd /home/user01/nginx-1.12.1
make install
linux 64系统中安装nginx1.3时如果出现错误:nginx: [emerg] getpwnam(“www”) failed
解决方法1:
在nginx.conf中 把user nobody的注释去掉既可
解决方法2:
错误的原因是没有创建www这个用户,应该在服务器系统中添加www用户组和用户www,如下命令:
#/usr/sbin/groupadd -f www
#/usr/sbin/useradd -g www www
配置(均在/opt/nginx目录下)
conf --> 配置文件目录
html --> 默认Webroot
sbin --> 服务主程序
logs --> 默认日志目录
测试服务:
/opt/nginx/sbin/nginx 启动nginx服务
/opt/nginx/sbin/nginx -s stop 停止nginx服务
/opt/nginx/sbin/nginx -s reload 重启nginx服务
映射:192.168.56.1:3380 --> 10.0.2.15:80
防火墙开放80 端口
vi /opt/nginx/html/1.html 加入如下内容
<h1>2015xxxxxx</h1>
把Nginx加入到系统服务控制中 在/etc/init.d/ 中增加相关脚本
在https://www.nginx.com/resources/wiki/start/index.html找到相关脚本
(root用户操作)
vi /etc/init.d/nginx 粘贴相关脚本内容
修改
nginx="/usr/sbin/nginx" -> nginx="/opt/nginx/sbin/nginx"
NGINX_CONF_FILE="/etc/nginx/nginx.conf" ->
NGINX_CONF_FILE="/opt/nginx/conf/nginx.conf"
chmod +x /etc/init.d/nginx 增加执行权限
/etc/init.d/nginx start 测试脚本运行是否成功
加入到系统服务控制中
chkconfig --list nginx
chkconfig --add nginx 加入到系统服务控制列表
chkconfig --level 3 nginx on 在级别3上开启nginx服务
17、数据库服务(MySQL)
使用user01用户
http://www.mysql.com
wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.37.tar.gz
tar zvxf mysql-5.6.37.tar.gz
cd mysql-5.6.37
less INSTALL 查看安装提示(通常在README或INSTALL或BUILD)
使用root用户
安装编译选项配置工具 CMake
yum install cmake
安装g++编译器
yum install gcc-g++
安装Perl解释器
yum install perl
安装bison
yum install bison
使用user01用户
配置编译选项
cmake \
-DCMAKE_INSTALL_PREFIX=/opt/mysql5.6 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_DATADIR=/opt/mysql5.6/data \
-DMYSQL_UNIX_ADDR=/opt/mysql5.6/mysql.sock \
出现错误提示:
Curses library not found.
使用root用户
yum list *curses*
yum install ncurses-devel
使用user01用户
每次出错后重新执行cmake,需要首先删除CMakeCache.txt
rm CMakeCache.txt
make -j 9 编译
使用root用户 安装
cd /home/user01/mysql-5.6.37
make install
使用下面的命令查看是否有mysql用户及用户组
cat /etc/passwd 查看用户列表
cat /etc/group 查看用户组列表
如果没有就创建
groupadd mysql
useradd -g mysql mysql
修改/usr/local/mysql权限
chown -R mysql:mysystem /opt/mysql5.6
初始化MySQL数据库
cd /opt/mysql5.6
scripts/mysql_install_db --basedir=/opt/mysql5.6 --datadir=/opt/mysql5.6/data
服务控制启动脚本
support-files/mysql.server start 启动mysql服务
修改my.cnf文件
cd /opt/mysql5.6
vi my.cnf 加入如下内容
basedir=/opt/mysql5.6
datadir=/opt/mysql5.6/data
socket=/opt/mysql5.6/mysql.sock
修改MySQL - DBA用户root密码
/opt/mysql5.6/bin/mysqladmin -u root password '111111'
/opt/mysql5.6/bin/mysqladmin -u root -p -h localhost password '111111'
测试MySQL
/opt/mysql5.6/bin/mysql -u root -p
show variables like '%char%'; --> 检查是否为utf8
加入到系统服务控制中
cp /opt/mysql5.6/support-files/mysql.server /etc/init.d/mysql
chkconfig --list mysql
chkconfig --add mysql
chkconfig --level 2 mysql off
chkconfig --level 4 mysql off
chkconfig --level 5 mysql off
18、应用服务器(Tomcat)
使用user01用户
http://tomcat.apache.org
wget http://mirrors.shuosc.org/apache/tomcat/tomcat-8/v8.0.47/bin/apache-tomcat-8.0.47.tar.gz
上面不行的話換這個鏈接:http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.0.47/bin/apache-tomcat-8.0.47.tar.gz
cd ~
tar zvxf apache-tomcat-8.0.47.tar.gz
使用root用户
cp -r /home/user01/apache-tomcat-8.0.47 /opt/tomcat1
cd /opt/tomcat1
bin/startup.sh
简单查看Tomcat是否工作
暂停iptables /etc/init.d/iptables stop
建立映射 192.168.56.1:38080 --> 10.0.2.15:8080
停止Tomcat
/opt/tomcat1/bin/shutdown.sh
新建jsp工作目录
mkdir -p /opt/web/jsp1/WEB-INF
在Tomcat1中增加虚拟路径
cd /opt/tomcat1/conf
vi server.xml 在标签 “</Host>” 之前加入
<Context docBase="/opt/web/jsp1" path="/test" debug="0" reloadable="false" />
在/opt/web/jsp1下建立文件 index.jsp --> vi /opt/web/jsp1/index.jsp
<h1>Tomcat 1</h1>
<%= new java.util.Date() %>
重新启动Tomcat1
/opt/tomcat1/bin/startup.sh
在浏览器中访问 http://192.168.56.1:38080/test/index.jsp
建立Tomcat第2个实例
/opt/tomcat1/bin/shutdown.sh 停止 第1个tomcat实例
cp -r /opt/tomcat1 /opt/tomcat2
修改相关的端口和路径
端口 8005,8009,8080 修改(+1) --> 8006, 8010, 8081
修改 "/opt/web/jsp1" --> /opt/web/jsp2
cd /opt/tomcat2/conf
vi server.xml
mkdir -p /opt/web/jsp2/WEB-INF
vi /opt/web/jsp2/index.jsp
<h1>Tomcat 2</h1>
<%= new java.util.Date() %>
测试Tomcat1 和 Tomcat2 是否能同时工作
/opt/tomcat1/bin/startup.sh
/opt/tomcat2/bin/startup.sh
建立映射 192.168.56.1:38081 --> 10.0.2.15:8081
通过Nginx的配置来实现”负载均衡“
cd /opt/nginx/conf
vi nginx.conf
在 ”http“ 配置段的末尾(}之前)增加一行
include tomcat-nginx.conf;
touch tomcat-nginx.conf
vi tomcat-nginx.conf
upstream tomcat{
server 127.0.0.1:8080 weight=1 max_fails=2 fail_timeout=30s;
server 127.0.0.1:8081 weight=1 max_fails=2 fail_timeout=30s;
}
server{
listen 81;
server_name localhost;
index index.jsp index.html index.htm;
location / {
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://tomcat;
expires 3d;
}
location ~^/(WEB-INF)/{
deny all;
}
}
说明:"upstream" 采用轮询的工作方式
/etc/init.d/nginx restart 重启nginx服务
修改防火墙(iptables) --> vi /etc/sysconfig/iptables 增加规则
-A INPUT -m state --state NEW -m tcp -p tcp --dport 81 -j ACCEPT
/etc/init.d/iptables restart
建立映射 192.168.56.1:381 --> 10.0.2.15:81
测试轮询工作状况,浏览器中访问
http://192.168.56.1:381/test/index.jsp
分别关闭或开启 tomcat1和tomcat2实例,可以观察轮询状况。
介绍:tomcat的native(本地化),相关文件
bin目录下的 commons-daemon-native 和 tomcat-native
首先是编译准备工作:
yum groupinstall "Development tools"
然后是编译安装 PHP 需要用到的 devel 包:
yum install libxml2-devel gd-devel libmcrypt-devel libcurl-devel openssl-devel
http://www.php.net
wget http://hk1.php.net/get/php-5.6.31.tar.gz/from/this/mirror
mv mirror php-5.6.31.tar.gz
tar -xvf php-5.6.31.tar.gz
cd php-5.6.31
./configure --with-apxs2=/opt/apache2/bin/apxs --disable-cli --enable-shared --with-libxml-dir --with-gd --with-openssl --enable-mbstring --with-mcrypt --with-mysqli --with-mysql --enable-opcache --enable-mysqlnd --enable-zip --with-zlib-dir --with-pdo-mysql --with-jpeg-dir --with-freetype-dir --with-curl --without-pdo-sqlite --without-sqlite3