赞
踩
目录
4、Linux进程管理命令之 ps -ef 与 ps aux 详解
第八步:把组件apr与组件apr-util拷贝进apache安装包
第九步:进入apache安装包使用./configure进行环境收集检验与配置
(3)使用cmake工具对mysql5.7.17进行环境收集检验与配置相关模块
(6)在nginx的网站发布路径下创建index.php文件
(4)在A服务端机器安装nfs-utils和rpcbind包
(9)在B客户端机器安装nfs-utils和rpcbind包
下载安装包,双击点击安装,遇到下图选择其中框起来的即可
安装完成后如果要输入许可证密钥,在网上找一个可以用的密钥填进去就行了~
VM虚拟机主界面显示如下图所示:
必备:下载好centos7系统镜像文件
点击创建新的虚拟机,选择稍后安装操作系统,操作系统选择Linux,版本选择Centos 7 64位
下一步给虚拟机起名,以及选择安装路径,一个虚拟机大概会占用3-4G的内存(我这里选择装在D盘)
这里是要给当前新建的服务器安排多少的内存空间,一般选择40G就差不多了(看个人情况)
这里点击自定义硬件,需要处理两点
若新建虚拟机时没配置好,我们也可以点击【编辑虚拟器设置】继续编辑虚拟器
点击编辑虚拟器设置,在硬件处点击CD/DVD,选择之前下载的ISO映像文件,最后点击确定
点击【开启此虚拟机】按钮,这里我们选择第一个,进行安装centos 7
这里弹出一个界面选择语言,我们选择英语
接下来有几个配置:
配置设置完后,点击右下角的【Begin installation】进行安装
安装时会出现设置密码和普通用户的情况,根据个人情况设置即可(我这里设置了密码123)
安装完成之后,点击右下角Reboot重启虚拟机登录我们的虚拟服务器
用户名即为root
密码为之前设置的密码,我这里是123
从下图可以看到,我们已经登录成功啦
vmware虚拟机有对应三种网络模式,分别是:Bridged桥接模式、Host-Only仅主机模式、NAT模式,下面简单介绍下三种网络模式的特点
点击编辑->虚拟网络编辑器,可以看到三种模式,桥接模式可以选择具体网卡(自动、无线网卡、有线网卡),我这里选择自动
选择要配置的单台虚拟机,右键点击设置进入虚拟机设置界面,再点击网络适配器选择网络连接
在虚拟机设置中网络连接若选择桥接模式,直接勾选即可,如下图:
更改了网络设置,若想要让它生效,有两个方法:
重启主机花费时间较多,因此重启网卡即可,桥接模式中的主机和外部物理主机基本处于同一个局域网,网络之间可以互相通信
在虚拟机设置中网络连接勾选仅主机模式,点击确定,且重启网卡使网络生效
【ping ip地址】可查看到该虚拟机可以和物理主机互相访问,但虚拟机无法访问外部网络
在虚拟机设置中网络连接勾选仅主机模式,点击确定,且重启网卡使网络生效
【ping ip地址】可查看到该虚拟机可以和物理主机互相访问,可访问外部网络
操作命令
操作 | 命令 |
重启主机 | reboot |
重启网卡 | systemctl restart network.service |
查看ip地址 | ip addr |
检测网络是否畅通 | ping ip地址 |
结束ping命令 | 摁住 ctrl + c 键盘即可退出ping命令 |
清屏 | 摁住 ctrl + l |
网络模式 | 访问条件 | IP冲突 |
Bridged桥接模式 | 可以访问外网 | 容易与局域网的其他机器ip地址冲突 |
Host-Only仅主机模式 | 一般不能访问外网 | 不会与局域网的其他机器ip地址冲突 |
NAT模式 | 可以访问外网 | 不会与局域网的其他机器ip地址冲突 |
注意:为了提供不同的测试环境,有的需要虚拟机与局域网内的其他机器环境隔离,有的不需要,因此出现了这么多模式
使用前要确保虚拟机与物理主机网络畅通,我们分别在虚拟机以及物理主机进行ping
我这里使用的是SecureCRT 64,双击打开应用程序
获取到目标虚拟机的ip地址,填入这里的主机名称,用户名我这里只有一个root,其他暂时为默认值,点击连接
如图:已经连接成功了
选项->会话选项->外观,设置背景颜色,字体大小以及字符编码为UTF-8,设置好后保存
选项->全局选项->终端,选中这里的鼠标设置即可
传输->Zmodem上传列表,点击文件进行上传服务器
第一次上传时会弹出rz命令没找到的提示,则需要安装下rz命令(确认服务器可以联外网)
安装上传下载功能lrzsz服务:yum -y install lrzsz
安装完成后再次点击开始上传按钮,如下图可以看到文件上传成功,使用 ll 命令可以看到文件具体上传地方
在窗口输入命令直接下载文件,命令如下:
sz 文件名
备注:文件的上传下载路径可以设置,选项->会话选项->终端->X/Y/Zmodem
右键虚拟机->管理->克隆,需要注意的是,开启或挂起的虚拟机无法被克隆
如上图,这样就克隆好了一台新的虚拟机,克隆机与原来的虚拟机网络设置、密码等都一致
注意事项:
克隆后的虚拟机重启网卡会失败,如下图:
查询机器网卡:cat /etc/sysconfig/network-scripts/ifcfg-eno16777728(摁住键盘的tab键可以对命令进行补全 )
原因是因为克隆过来的虚拟机把原虚拟机的MAC地址也一起复制过来了,正常情况下虚拟机MAC地址都是唯一的,因此需要修改MAC地址
查看一个虚拟机的MAC地址(两种方法):
拿到克隆机原本的MAC地址后,修改网卡信息-MAC地址
使用 vi 工具进行编辑网卡信息: vi /etc/sysconfig/network-scripts/ifcfg-eno16777728(摁住键盘的【i】 进入编辑模式,按住键盘左上角【esc】键退出编辑模式,再输入【:wq 】进行保存)
快照相当于备份,我们进行操作的时候,有时候会导致一些不可逆的错误发生,比如删除了某些文件造成数据丢失,这时候就可以通过快照恢复
创建快照的方法:
虚拟机右键->快照->拍摄快照,填写快照名称以及描述,点击确定后,就新建好了一个快照
如果要恢复快照的话,必须关闭虚拟机进行恢复(一般除非做出了不可逆的操作,否则不太会进行快照恢复)
恢复快照步骤:
虚拟机右键->快照->快照管理器,选择快照节点,右键选择转到快照
注意:我们恢复快照相当于做逆反操作,恢复之前某个时刻的状态,但恢复后就无法再次回到当前状态了(恢复快照前要仔细考虑)
命令 | 功能说明 | 举例 |
cd | 切换目录 | cd /usr/local/ (切换至当前目录) cd .. (返回上一级目录) cd - (回退到上一次目录) |
ls | 列出目录内容 | ls -lrt 缩写为 ll -----时间升序显示 ls -alrt ---显示隐藏文件 ls -lrt /home/ ---显示home目录下的内容 |
pwd | 查询所在目录 | pwd |
cat | 查看小文件内容 | cat 123.txt ----查看目标文件内容 cat -n 123.txt ---查看文件内容且给每行排序 |
more | 查看大文件内容 | more System.map-3.10.0-123.el7.x86_64 (可以嗯【Q】键退出查看) |
head | 查看文件的前面N行 | head System.map-3.10.0-123.el7.x86_64 (默认查看文件前10行) head -20 System.map-3.10.0-123.el7.x86_64 (查看文件前20行-自定义) |
tail | 查看文件的后面N行 | tail System.map-3.10.0-123.el7.x86_64 (默认查看文件后10行) tail -20 System.map-3.10.0-123.el7.x86_64 (查看文件后20行-自定义) tail -f access.log (动态查看日志文件) tail -20 access.log (动态查看文件后20行) |
touch | 创建一个空文件 | touch 123.txt |
mkdir | 创建目录 | mkdir -p /tmp/YYL/YYL/class (以绝对值方式创建套层目录) |
rmdir | 删除目录 | rmdir /tmp/YYL/YYL/class (删除目录) |
cp | 拷贝文件 | cp 123.txt class/ (拷贝文件到class目录) cp 123.txt class/456.txt (拷贝文件到class目录并改名为456,但文件某些属性没复制过来) cp -a 123.txt class/789.txt (拷贝文件到class目录并改名为789,文件属性也一起复制过来) |
mv | 移动或更名现有的文件或目录 | mv 123.txt 345.php (将文件更名) mv 456.txt /home/ (将文件移动至home文件夹下) mv 789.txt /home/987.php (将文件移动至home文件夹下且更名为987) |
rm | 删除文件或目录 | rm 987.php (删除文件,会弹出是否删除的提示,且目录不能删除) rm -rf 456.txt (直接删除文件,且什么都可以删除) |
diff | 对比文件差异 | diff 123.txt 456.txt |
ssh | 远程安全登录方式 | ssh 192.168.213.129 (根据ip地址切换主机) |
exit | 退出命令 | exit (切换主机后再退回来,原主机所在目录不做改变) |
id | 查看用户 | id root |
uname | 查询主机信息 | uname -a (详细主机信息) |
ping | 查看网络是否畅通 | ping 192.168.213.129 |
echo | 标准输出命令 | echo "this is echo 命令" |
man | 查看帮助文档 | man ls (ls命令的具体使用) ls --help (同man命令类似,只不过是全部打印出来) |
help | 查看内部命令帮助 | help if (if命令的具体使用) |
clear | 清屏 | clear 等同于 ctrl + l |
who | 当前在本地系统上的所有用户的信息 | who whoami (查看当前是哪个用户) |
uptime | 查询系统信息 | 其中显示信息:load average:0.00,0.01,0.05 (1分钟的负载,5分钟的负载,15分钟的负载) |
w | 查询系统信息 | w (who与uptime的结合查询) |
free | 查看系统内存 | free -h (会同时显示出单位) free -m (以m为单位显示) |
wc | 统计行 | wc -l 123.txt (文件中有多少行) |
grep | 查找文件里符合条件的字符串 | grep '119.4.253.206' 123.txt (找到文件里有多少该字符串,都展示出来) grep '119.4.253.206' 123.txt | wc -l (找到文件里有多少该字符串-统计个数) -n(输出行数) grep -n '80.82.70.187' 123.txt (如果出现多个,则分别输出) -w(精确匹配) grep -w '113.66.107.198' 123.txt (精确匹配出该字符串) -i(忽略大小写) grep -i 'IP:113.66.107.198' 123.txt -v(反向选择) grep -v '113.66.107.198' 123.txt (筛选出非当前字符串的内容) |
find | 查询文件 | find / -name 123.txt (查询文件的所有路径-可能会查出来目录,但不建议,因为很耗性能) find / -type f -name 123.txt (查找路径,限定文件) |
uniq | 对排序好的内容进行统计 | uniq -c 123.txt | sort -n |
sort | 对内容进行排序 | uniq -c 123.txt | sort -n (排序以及统计个数) |
df | 文件系统的磁盘使用情况统计 | df -h |
netstat | 查看网络端口的使用情况 | netstat -tunlp | grep nginx (查看nginx程序所在端口) -t:显示TCP端口 -u:显示UDP端口 -n:指明拒绝显示别名 -l:指明listen(监听)的意思 -p:指明显示建立相关链接的程序名 安装netstat命令:yum -y install net-tools |
hostname | 查看主机名 | hostname |
ps | 显示所有进程信息(ps与grep组合使用,查找特定进程) | ps -ef (显示所有进程信息) ps -ef | grep nginx (显示grep命令的进程) ps -ef | grep -v grep | grep nginx (显示非grep命令的进程) ps -aux | grep nginx (会同时显示出CPU以及内存情况) |
kill | 杀进程 | kill -l (查看kill的使用信号) kill -9 top (杀掉top命令进程 ) 摁住【ctrl+c】相当于传递了kill中2的信号 |
top | 监控Linux系统状况,比如cpu、内存的使用 | 摁住键盘【Q】退出 |
du | 统计大小 | du -sh (统计当前目录下所有文件大小) du -sm * (以m为单位统计文件大小) |
firewall-cmd | 查看防火墙的状态 | firewall-cmd --state centos 7 关闭防火墙:systemctl stop firewalld.service |
echo | 判断上一条命令是否正确 | echo '1234' (打印1234在命令行上面) echo $? (判断上一条命令执行是否正确,正确显示0,非0就是未执行正确) |
cal | 查看日历 | cal 2008 (查询2008年的月份日期) |
Linux中一切皆文件,文件描述符如下:
posix名称 | 文件描述符 | 用途 |
/dev/stdin | 0 | 标准输入 |
/dev/stdout | 1 | 标准输出 |
/dev/stderr | 2 | 标准错误输出 |
wc -l < 123.txt
- cat >> 123.txt //向123.txt文件中输入追加内容,不会覆盖已有内容
- cat > 123.txt //向123.txt文件中输入内容,会覆盖已有内容
- ls -lrt > 123.txt //将ls -lrt显示的信息输入到123.txt文件中,会覆盖已有内容
- echo '12345' > 123.txt //使用echo命令输入信息到123.txt文件中,会覆盖已有内容
示例:
- llll 2> 123.txt //llll报错信息输出到123文件中
- llll 2> /dev/null //错误信息不需要了解,就可以输出到无底洞里边
符号 | 功能说明 | 示例 |
& | 等同于 | ls -lrt /boot /test 1>/root/123.txt 2>/root/123.txt (查看boot目录以及text目录下的内容,这里判断boot目录下有内容,则写入了123文件,但test目录不存在,错误重定向并没有写入文件) ls -lrt /boot /test 1>/root/123.txt 2>&1 (错误的输出信息等同于正确的信息输入,即输入至123文件) |
&> | 不区分正确还是错误 | ls -lrt /boot /test &>123.txt (不区分正确错误信息,全部输入到123文件) |
| | 管道符 | cat /etc/passwd | grep root (查看密码文件信息通过管道符传输给grep,显示出来关于root的信息) |
; | 可以执行多条命令 | cat /etc/passwd | grep root ; ls -lrt (同时执行多条命令) |
&& | 前面的命令执行成功的话后面的才可以执行成功;前面的命令执行失败后面的就不可以执行 | llll && echo 123 |
|| | 前面的命令执行成功的话,后面的不可以执行;前面的命令执行失败的话,后面的才可以执行 | llll || echo 123 (前面命名执行失败,后面可以执行) ls || echo 123 (前面命名执行成功,后面不可以执行) |
下面列举一些根目录下常用的目录,便于我们更快了解虚拟机架构
目录 | 描述 |
/ | 根目录,一般根目录下只存放目录,不要存放文件,也不要修改/删除目录下的内容 |
/mnt | 用于测试的目录 |
/root | root用户的家目录 |
/home | 普通用户的家目录 |
/tmp | 临时目录(比如文件上传之类的) |
/var | 存放经常修改的数据,比如程序运行的日志文件 |
/boot | 存放启动Linux时使用的内核文件,包括连接文件以及镜像文件(原则上该目录不允许操作) |
/etc | 系统默认存放配置文件的地方 |
/bin | 所有用户都能执行的程序 |
/sbin | 只有root才能执行的程序 |
/usr | 用户自己的软件都可以放到这儿来 |
/dev | 存放硬件设备的地方(/dev/cdrom) |
/media | 挂载光盘的地方 |
命令 | 功能说明 |
mount /dev/cdrom /media | 挂载光盘 |
umount /dev/cdrom | 卸载光盘 |
df -h | 查看挂载光盘 |
一般情况下,新安装的虚拟机同外部物理机的时间不一致,这是因为我们未安装VMware Tools工具,因此需要安装该工具
在VM中右键虚拟机->安装VMware Tools,VM软件会自动帮我们下载VMware Tools工具到光盘中,再把光盘挂载在Linux系统中(由于VM软件的限制,安装结果没有弹框提示,我们可以试图挂载,以此来观察工具是否下载完成)
安装步骤:
1、安装VMware Tools 使工具软件包下载到光盘
2、挂载光盘到Linux系统
3、复制安装包到root目录【cp VMwareTools-10.3.23-16594550.tar.gz /root/】
4、卸载光盘【umount /dev/cdrom】
5、解压安装包【tar -xf VMwareTools-10.3.23-16594550.tar.gz】
6、进入解压缩包【cd vmware-tools-distrib】
7、安装Perl【yum -y install perl-Data-Dumper】
8、点击安装VMware Tools【./vmware-install.pl】
安装时一路摁住键盘的回车键即可(都选用默认路径),安装完成后验证是否安装成功,有两种验证方法:
命令 | 功能说明 |
echo $? | 验证是否安装成功,返回0就是成功(echo命令本身就可以判断上一条命令是否正确) |
date "+%Y-%m_%d %H:%M:%S" | 验证虚拟机时间是否与外部物理机的时间同步(若不同步,则重启主机即可) |
可以使用date命令去查看当前时间
命令 | 功能说明 |
date | 查看当前时间(不美观) |
date "+%Y-%m_%d %H:%M:%S" | 显示年-月-日 时:分:秒 (如 2024-03_05 05:22:14) |
date -s "2020-10-1 22:00:00" | 更改时间为 2020-10-1 22:00:00 |
date -d yesterday "+%Y-%m-%d %H:%M:%S" | 查看当前时间的前一天的时间 |
date "+%w" | 查看今天是周几 |
注意:卸载的光盘的时候会出现如下报错
- [root@localhost media]# umount /dev/cdrom
- umount: /media: target is busy.
- (In some cases useful info about processes that use
- the device is found by lsof(8) or fuser(1))
- [root@localhost media]#
解决方法:
首先确认目前是联网状态,接下来需要安装 fuser 工具,用来查看光盘使用情况 ,接着杀掉光盘使用进程即可
- 安装fuser工具:yum install -y psmisc
- 查看光盘使用情况:fuser -mv /media
- 取消挂载盘符:fuser -kv /media
vi的三种模式:命令模式、插入模式、底行模式
使用vi命令则进入命令模式,不可编辑,摁住键盘的 i 或者 o 或者 a,进入插入模式,编辑我们想要的内容;内容编辑完成后,再摁住键盘的左上角esc键盘,切入命令模式;在命令模式输入【:】进入底行模式,在底行模式还可以做其他的一些操作
命令 | 功能说明 |
Esc | 进入命令行模式 |
$ / 【shift + 4】 | 移动到这一行的行尾 |
gg | 移动到文档第一行行首 |
G | 移动到文档最后一行行首 |
x | 删除内容,删除一个字符【光标所在字符】 |
dd | 删除光标所在的那一整行 |
u | 复原原来的操作 |
v | 点击【v】后进入复制,按上下左右键选中范围,再按【y】就能复制 |
p | 粘贴 |
命令 | 功能说明 |
n | n为数字,光标移动到第n行 |
/ | 寻找内容,光标移到目标行行首 |
%s/word1/word2/g | 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2【word1字符串实现全文档替换】 |
n1,n2s/word1/word2/g | n1 与 n2 为数字,在第 n1 与 n2行之间寻找 word1这个字符串,并将该字符串取代为 word2 |
set nu | 显示每一行的行号 |
set nonu | 取消行号 |
q! | 强制离开不保存 |
wq | 离开并保存 |
wq! | 强制离开并保存 |
! | 相当于暂时离开,可以在【!】后直接输入命令进行别的操作 |
Linux是一个多用户、多任务的操作系统
分类 | 权限 | UID |
超级用户root | 拥有至高无上的权限 | UID:0 |
普通用户 | 权限有一定的限制,可以登录系统,一般可以执行 /usr/local/bin 或者 /bin 或者 /usr/bin 或者自己家目录的命令 | UID:500-60000(centos 6)UID:1000-60000(centos7) |
系统用户(伪用户) | 一般不会登录系统,一般情况是用来维持某个服务程序 | UID:1-499(centos 6) UID:1-1000(centos 7) |
test :x :1000 :1000 : :/home/test :/bin/bash用户 密码占位符 UID GID 用户描述 用户家目录 登录后使用的 shell 解释/sbin/nologin # 是不可登录的/bin/bash # 可以登录
命令 | 命令属性 | 大功能 | 各属性功能说明 |
useradd | -u | 添加用户命令 | 指定用户UID |
-d | 指定用户主目录 | ||
-g | 指定用户所属组 | ||
-r | 指定用户是系统用户 | ||
-s | 用户登录shell解释器 | ||
-M | 不创建主目录 | ||
userdel | -r | 删除用户命令 | 连同家目录一块删除 |
groupadd | 添加用户组命令 | ||
groupdel | 删除用户组命令 | ||
usermod | -u | 修改用户的信息命令 | 指定用户UID |
-d | 指定用户主目录 | ||
-g | 指定用户所属组 | ||
passwd YYL | 设置用户密码命令passwd | ||
echo "123456" | passwd --stdin YYL |
创建一个用户YYL,指定UID为1010,指定家目录为/home/YYL,指定所属组为root组,指定登录shell为/bin/bash
useradd -u 1010 -d /home/YYL -g root -s /bin/bash YYL
注意:登录用户时出现以下信息如何解决
如:
bash-4.2$
bash-4.2$
这是因为家目录下缺少一些东西,在/etc/ske1/路径下将相关信息复制进系统用户家目录即可
解决:复制相关信息到家目录
cp -r /etc/skel/.bash* /home/YYL/
ls -lrti | 查看文件的属性 |
135140482 -rw-------. 1 root root 1902 Oct 1 2020 yum.log | |||||
第一列 | i节点 | i节点可以理解文件id,一个i节点可以对应多个文件,一个文件只能对应一个i节点 | |||
第二列-文件的类型与权限 | - #代表的是文件 | d #代表的是目录 | l #软链接文件 | b #代表块设备 | c #代表的是硬件设备(键盘) |
r #表示读权限 | w #表示写权限 | x #表示执行权限 | |||
4 #表示读权限 | 2 #表示写权限 | 1 #表示执行权限 | |||
rw------- | rw- #第一列为所属者的权限 | --- #第二列为所属组的权限 | --- #第三列为其他的权限 | ||
第三列 | 有多少文件名链接到这个节点 | ||||
第四列 | 文件的所有者 | ||||
第五列 | 文件的所有组 | ||||
第六列 | 容量大小,单位默认为B | ||||
第七列 | 创建或最近修改的时间 | ||||
第八列 | 文件名 |
分类 | 命令 | 例如 | 举例 |
软链接 | ln -s | ln -s /home/YYL/yum.log /usr/local | i 节点跟源文件不一样,源文件一旦删除,软链接将找不到源文件 |
硬链接 | ln | ln /home/YYL/yum.log /usr/local/YYL/ | i 节点与源文件一模一样,源文件删除,硬链接还可以继续使用,常用于防止重要文件被误删 |
命令 | 参数 | 举例 |
chmod | 无参 | chmod u+x,g+w+o+w boot.log |
chmod u-x,g-w+o-w boot.log | ||
chmod 777 boot.log | ||
-R #递归的意思 | chmod -R 777 /home/YYL/* |
命令 | 参数 | 举例 | 解释 |
chown | -R | chown -R root:YYL YYL | 递归更改文件目录YYL的所属者为root用户 跟 所属组为YYL组 |
文件归档也称之为打包,指的是一个文件或者多个文件或者目录的一个集合,这个集合存储在一个文件中;归档的文件是没有进行压缩的,所以占用的空间是所有文件或者目录的总和(工作中经常与压缩结合在一起使用)
节约磁盘空间,加快文件的传输速率
压缩与解压缩有两种命令:gzip 、xz,区别如下:
命令 | 目的 | 操作命令 |
gzip | 不保留源文件压缩 | gzip 111.txt |
保留源文件压缩 | gzip -c 123.txt > 123.txt.gz | |
不保留源文件解压 | gunzip 111.txt.gz | |
gzip -d 123.txt.gz | ||
保留源文件解压 | gunzip -c 123.txt.gz > 234.txt | |
xz | 不保留源文件压缩 | xz 111.txt |
保留源文件压缩 | xz -c 123.txt > 123.txt.xz | |
不保留源文件解压 | unxz 111.txt.xz | |
xz -d 123.txt.xz | ||
保留源文件解压 | xz -d -k 123.txt.xz |
参数 | 目的 | 示例 | 命令解析 |
-c | 归档时创建新文件,必选 | 归档vmware-tools-distrib文件并命名为vmware.tar | tar -cf vmware.tar vmware-tools-distrib |
-f | 归档时指定文件格式,必选 | ||
-v | 归档时显示详细过程 | 归档vmware-tools-distrib文件并命名为vmware.tar,归档时显示详细过程 | tar -cvf vmware.tar vmware-tools-distrib |
-z | 以gzip的方式归档并压缩 | 归档并压缩vmware-tools-distrib文件并命名为vm-tools.tar.gz,归档时显示详细过程 | tar -zcvf vm-tools.tar.gz vmware-tools-distrib |
-J | 以xz的方式归档并压缩 | 归档并压缩vmware-tools-distrib文件并命名为vm-tools.tar.xz,归档时显示详细过程 | tar -Jcvf vm-tools.tar.xz vmware-tools-distrib |
归档并压缩vmware-tools-distrib文件并命名为vm-tools.tar.xz,文件放于/home/YYL目录下,归档时显示详细过程 | tar -Jcvf /home/YYL/vm-tools.tar.xz vmware-tools-distrib | ||
-x | 接档解压操作 | 解档解压文件vm-tools.tar.xz | tar -xf vm-tools.tar.xz |
-C | 指定解压路径 | 指定vm-tools.tar.xz文件的解压路径为:/home/YYL | tar -xf vm-tools.tar.xz -C /home/YYL |
命令 | 参数 | 参数解析 | 示例 | 示例解析 |
find 路径 选项 | -type | 根据文件类型搜索 | find /var/log -type f -name "*.log" | 查找后缀为“.log”的文件 |
find /var/log -type d | 查找该绝对路径下的目录 | |||
-name | 根据文件名搜索 | find /var/log -type f -name "*.log" | 查找后缀为“.log”的文件 | |
-perm | 根据文件权限 | find /var/log -perm 600 -type f -name "*.log" | 查找绝对路径下权限为600的后缀为“.log“的文件 | |
-user | 根据文件所属主 | find /var/log -user root | 查找绝对路径下所属主为 root 的文件【不仅限于文件】 |
命令 | 各参数 | 各参数解析 | 示例 |
find /var/log -type f -name "*.log" -exec wc -l {} \; | ; | 可以执行多条命令 | find /var/log -type f -name "*.log" -exec cp -a {} /home/YYL/YYL2 \; |
\ | 转义符,使得该条命令结束 | ||
{} | 把find命令匹配到的每一次结果传递给{} | ||
-exec | 执行 |
参数 | 参数解析 | mtime参数 | mtime参数解析 | 示例 |
-mtime | 根据文件的变更时间来查找 | -n | 表示更改时间举例现在n天以内 | find /var/log -mtime -2 -name "*.log" -exec ls -lrt {} \; |
+n | 表示更改时间举例现在n天以前 | find /var/log -mtime +2 -name "*.log" -exec ls -lrt {} \; |
主要用于用户信息安全防护,主要有软件防火墙和硬件防火墙,firewall防火墙是权健防火墙
操作 | 命令 |
查看firewalld服务状态 | systemctl status firewalld |
开启firewalld服务 | systemctl start firewalld.service |
关闭firewalld服务 | systemctl stop firewalld.service |
重启firewalld服务 | systemctl restart firewalld.service |
查看firewall防火墙状态 | firewall-cmd --state |
查看防火墙开放端口 | firewall-cmd --list-port |
查看指定80端口是否开放 | firewall-cmd --query-port=80/tcp |
开放80端口 | firewall-cmd --permanent --add-port=80/tcp(--permanent代表永久生效,没有此参数重启后就失效了) |
加载生效开放的端口 | firewall-cmd --reload |
关闭80端口 | firewall-cmd --remove-port=80/tcp |
注意:
SELinux有三种工作模式,配置文件路径在:/etc/selinux/config
telnet命令主要用于测试到某台机器的某个端口是否畅通,telnet命令依赖于xinetd服务与telnet-server服务
作用:用于服务器之间的文件或者文件目录拷贝
用法1:从本机拷贝文件到别的机器
scp 本机文件的存放路径 root@服务器IP:服务器目标路径
示例:
从192.168.213.132(本机)这台机器的 /root/VMwareTools-10.3.23-16594550.tar.gz 文件拷贝至192.168.213.129 的 /root/下
scp /root/VMwareTools-10.3.23-16594550.tar.gz root@192.168.213.129:/root/
用法2:从别的机器拷贝文件到本地目录
scp root@服务器IP:服务器目标路径 本机文件的存放路径
示例:
从192.168.213.129这台机器的/root/VMwareTools-10.3.23-16594550.tar.gz文件拷贝至 192.168.213.132(本机)的/root/下
scp root@192.168.213.129:/root/VMwareTools-10.3.23-16594550.tar.gz /root/
参数说明:
示例:scp -r /root/vmware-tools-distrib root@192.168.213.129:/root/
列名 | 含义 |
UID | 用户ID |
PID | 进程ID |
PPID | 父进程号 |
C | CPU的占用率 |
STIME | 进程的启动时间 |
TTY | TTY终端 |
TIME | 进程执行起到现在总的CPU占用时间 |
CMD | 启动这个进程的命令 |
列名 | 含义 |
USER | 哪个用户启动了这个命令 |
PID | 进程的ID |
%CPU | CPU的占用率 |
%MEM | 内存的使用率 |
VSZ | 如果一个程序完全驻留在内存中一共需要使用多少内存空间 |
RSS | 进程当前占用了多少内存 |
TTY | TTY终端 |
STAT | 表示当前进程的状态(S #处于休眠的状态;D #不可中断的状态;Z #僵尸进程;X #死掉的进程 ) |
START | 启动这个命令的时间点 |
TIME | 进程执行起到现在总的CPU占用时间 |
COMMAND | 启动这个进程的命令 |
目的:一般执行 ps -ef 或者 ps aux命令是查看我们的进程是否启动成功,或者找出进程号,对进程进行kill强制关闭
通常对数据进行列的提取
cut [选项]...[file]
选项 | -d #指定分割符(不加 -d 选项,默认为制表符,而非空格) |
-f #指定截取区域 | |
-c #以字符为单位进行分割 | |
以【:】为分隔符,截取出/etc/passwd的第一列和第三列 | cut -d ':' -f 1,3 /etc/passwd |
以【:】为分隔符,截取出/etc/passwd的第一列到第三列 | cut -d ':' -f 1-3 /etc/passwd |
以【:】为分隔符,截取出/etc/passwd的第二列到最后一列 | cut -d ':' -f 2- /etc/passwd |
截取/etc/passwd文件从第二个字符到第九个字符 | cut -c 2-9 /etc/passwd |
截取linux上面所有可登录的普通用户 | cat /etc/passwd | grep '/bin/bash' | cut -d ':' -f 1 | grep -v root |
一个非常强大的数据处理命令,支持条件判断、数组、循环等功能,与grep、sed被称为linux三剑客
通常对数据进行列的提取
特殊字段 | 含义 | 举例 | 查询结果 |
NR | 行号 | df -h | awk 'NR==4 {print $1}' | 查询第4行第一列的数据 |
$1 | 代表第一列 | df -h | awk 'NR==1 {print $1}' | 查询第1行第一列的数据 |
$2 | 代表第二列 | df -h | awk '(NR>=2 && NR <=5) {print $1}' | 查询第二到五行第一列的数据 |
$NF | 代表最后一列 | df -h | awk '{print $NF}' | 查询最后一列的数据 |
-F | 指定分割符 | awk -F":" '{print $1}' /etc/passwd | 查询/etc/passwd文件下以【:】为分割符的第一列数据 |
BEGIN | 在读取所有行内容前就开始执行,一般用来初始化操作 | cat /etc/passwd | awk 'BEGIN {FS=":"} {print $1}' | 查询/etc/passwd文件下以【:】为分割符的第一列数据 |
df -h | grep -v 'Filesystem' | awk 'BEGIN {printf "Filesystem \n \n"} {printf $1} {printf "\t Use%:"} {print $5}' | 查询文件磁盘使用情况中的Filesystem和Use%列 | ||
END | 结束的时候执行 | df -h | grep -v 'Filesystem' | awk 'BEGIN {printf "Filesystem \n \n"} {printf $1} {printf "\t Use%:"} {print $5} END {printf "OKK \n"}' | 查询文件磁盘使用情况中的Filesystem和Use%列 |
主要对数据进行处理(选取、新增、替换、删除、搜索)
选项 | 含义 | 举例 | 结果 |
-n | 把匹配到的行输出打印到屏幕 | df -h | sed -n '2p' | 打印第二行数据 |
p | 以行为单位进行打印,通常与【-n】一起使用 | ||
d | 删除 | df -h | sed '2d' | 打印删除第二行的数据 |
a | 在行的下面插入新的内容 | df -h | sed '2a 1234567890' | 在第二行下方插入数据【1234567890】并打印出来 |
i | 在行的上面插入新的内容 | df -h | sed '2i 1234567890' | 在第二行上方插入数据【1234567890】并打印出来 |
c | 替换 | df -h | sed '2c 1234567890' | 将第二行数据替换成【1234567890】并打印出来 |
s/要被取代的内容/新的字符串/g | 指定字符串进行替换 | df -h | sed 's/centos-root/centos7/g' | 将【centos-root】替换成【centos7】并打印,不改变源文件 |
-i | 对源文件进行修改(慎用,用之前需要备份源文件) | sed -i 's/centos7/centos8/g' df.txt | 将df.txt文件中的【centos7】强制修改成【centos8】 |
p | 在文件中搜索内容 | sed -n '/tmpfs/p' df.txt | 打印df.txt文件中的【tmpfs】字段---非精确查找 |
-e | 表示可以执行多条动作 | sed -e 's/centos8/centos7/g' -e 's/tmpfs/TMP/g' df.txt > 888.txt | 替换df.txt文件中的【centos8】以及【tmpfs】更为【centos7】和【TMP】,然后重定向至888.txt文件 |
安装别人编译好的软件包,rpm即Redhat Package Manager,是Redhat的软件包管理方式
which-2.20-7.el7.x86_64.rpm
分段 | 含义 |
which | 代表的是软件名称 |
2.20 | 代表的是软件版本号 |
7 | 代表的是发布版本号,指的是这个rpm软件包是第几次编译生成的 |
el7 | 代表的是企业版的7操作系统 |
x86 | 代表的是CPU架构 |
64 | 代表的是系统的位数 |
参数 | -i | 安装软件包 |
-v | 输出更多的详情信息 | |
-h | 输出哈希标记(#) | |
--nodeps | 不验证软件的依赖(非常不推荐,即使安装成功了,也用不了) | |
举例 | rpm -ivh zsh-5.0.2-7.el7.x86_64.rpm | |
rpm -ivh mariadb-server-5.5.35-3.el7.x86_64.rpm --nodeps (不推荐) |
http://rpmfind.net/
http://rpm.phone.net/
http://www.rpmseek.com/index.html
命令 | 参数 | 参数说明 | 举例 |
rpm -q | -a | 查询所有已安装的软件包 | rpm -qa zsh |
-f | 查询文件所属软件包 | rpm -qf /usr/bin/zsh | |
-p | 查询软件包 | rpm -qp zsh-5.0.2-7.el7.x86_64.rpm | |
-i | 显示软件包信息 | rpm -qi zsh | |
-l | 显示软件包中的文件列表 | rpm -ql zsh | |
-d | 显示被标注为文档的文件列表 | rpm -qd zsh | |
-c | 显示被标注为配置文件的文件列表 | rpm -qc zsh |
参数 | 参数说明 | 示例 |
-U | 升级rpm软件服务 | rpm -Uvh zsh-5.0.2-7.el7.x86_64.rpm(软件包必须是要升级的) |
参数 | 参数说明 | 示例 |
-e | 卸载软件包 | rpm -e zsh |
基于 C/S架构,yum安装称之为傻瓜式安装
配置文件的路径在:/etc/yum.repos.d/
[Centos7-yum] | yum源名称,唯一,用来区分不同的yum源 |
name=Centos7-source | 对yum源的描述信息 |
baseurl=file:///mnt | yum源的路径(repodata目录所在的目录) |
enabled=1 | 表示启用yum源 |
gpgcheck=0 | 为1表示使用公钥检验rpm的正确性 |
yum repolist | 查看yum源列表 |
yum clean all | 清空之前yum缓存 |
yum makecache | 创建yum缓存,为后续安装更加快速 |
yum -y install | 安装软件(yum -y install zsh) |
yum info zsh | 查看zsh软件包信息(不管安没安装都会有信息) |
yum info installed zsh | 查看已经安装好的软件信息 |
yum remove -y zsh | 卸载软件 |
yum search gcc | 搜索gcc软件 |
yum update | 升级软件 |
第一步:解压源码包
tar -xf 源码包
第二步:配置
进入解压后的目录,用 ./configure 命令来配置相关信息(比如指定安装目录 --- prefix=/usr/local/nginx)和生成makefile文件
第三步:编译
make -j4
第四步:安装
make install
下载好后,将该压缩包上传至虚拟机中,具体上传步骤可参考【第二章第五节】
修改文件【profile】的内容,在【profile】的最后添加下面的配置文件(其中路径需要修改为jdk1.8所在路径,其他不变)
命令:文件路径:vi /etc/profile
- export JAVA_HOME=/usr/local/jdk1.8 #这个路径要改,其余不需要改
- export JRE_HOME=$JAVA_HOME/jre
- export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
- export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
命令:source /etc/profile
命令:java -version
Tomcat是一个开源免费的Web应用服务器,性能稳定,是目前比较流行的Web应用服务器
方法1:官网下载
官网地址:Apache Tomcat® - Apache Tomcat 8 Software Downloads
方法2:在虚拟机中应用wget命令下载
- yum install -y wget //安装wget命令
- wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.99/bin/apache-tomcat-8.5.99.tar.gz
解压后将文件移动至 /usr/local/tomcat8目录下(统一存放)
解压:tar -xf apache-tomcat-8.5.99.tar.gz
移动:mv apache-tomcat-8.5.99 /usr/local/tomcat8
检查java环境:java -version
目录 | 含义 |
bin | 存放可执行命令,比如开启和关闭 |
conf | 配置文件 context.xml:Tomcat公用的环境配置,tomcat服务器会定时去扫描这个文件 web.xml:web应用程序描述文件,都是关于web应用程序的配置文件 server.xml:可以设置tomcat的端口号,添加虚拟机这些的,是对服务器的设置 tomcat-users.xml:用户配置文件 |
webapps | 发布web应用 |
lib | 库文件 |
- //在bin路径下执行
- sh startup.sh
- ps -ef | grep tomcat
- netstat -tunlp | grep 3328
- 关闭防火墙:systemctl stop firewalld.service
- 测试能否访问:IP地址:8080
Apache是软件基金会的一个开源免费的网页服务器,也是目前世界上使用最广泛的一种 web server,apache最出名的是它跨平台、高效和稳定,可以运行在几乎所有广泛使用的计算机平台上,其特点是简单、速度快、性能稳定,并可做代理服务器来使用,且可通过简单的 API 扩充,将 Perl/Python 等解释器编译到服务器中
组件apr官网:Download - The Apache Portable Runtime Project
下载成功后,上传至虚拟机,并进行解压
解压命令:tar -xf apr-1.7.0.tar.gz
组件apr官网:Download - The Apache Portable Runtime Project
下载成功后,上传至虚拟机,并进行解压
解压命令:tar -xf apr-util-1.6.1.tar.gz
apache官网:Download - The Apache HTTP Server Project
下载成功后,上传至虚拟机,并进行解压
解压命令:tar -xf httpd-2.4.39.tar.gz
安装命令:yum install -y gcc*
安装命令:yum install -y zlib-devel
安装命令:yum install -y expat-devel
官网下载地址:https://ftp.pcre.org/pub/pcre/
下载成功后,上传至虚拟机,并进行解压
解压命令:tar -xf pcre-8.43.tar.gz
进入【pcre-8.43】目录下进行安装,安装时需要指定安装路径,这里我创建了一个路径为 /usr/local/pcre,然后安装在该路径下
- //1.进入pcre-8.43目录下
- cd pcre-8.43
- //2.新建一个安装路径
- mkdir -p /usr/local/pcre
- //3.指定安装路径为刚创建的路径
- ./configure --prefix=/usr/local/pcre
- //4.安装pcre
- make && make install
- cp -rf apr-1.7.0 /root/test/httpd-2.4.39/srclib/apr
- cp -rf apr-util-1.6.1 /root/test/httpd-2.4.39/srclib/apr-util
进入apache安装包,新建目录/usr/local/apache,然后执行./configure命令校验
- cd /root/test/httpd-2.4.39
- mkdir -p /usr/local/apache
./configure \--prefix=/usr/local/apache \--sysconfdir=/usr/local/apache/etc \--with-apr=/root/test/apr-1.7.0 \--with-apr-util=/root/test/apr-util-1.6.1 \--with-included-apr \--with-pcre=/usr/local/pcre \--enable-deflate \--enable-expires \--enable-headers \--enable-so \--enable-modules=most \--with-mpm=worker \--enable-rewrite
选项 | 说明 |
--prefix | 指定安装目录 |
--sysconfdir | 指定配置文件的路径 |
--with-apr | 指定依赖文件的路径 |
--with-apr-util | 指定依赖文件的路径 |
--with-included-apr | 增加编译效率 |
--with-pcre | 指定pcre正则表达式库的安装路径 |
--enable-deflate | 开启压缩文件提高速度节约带宽 |
--enable-expires | 开启让浏览器缓存,减轻服务器压力,提高访问速度 |
--enable-headers | 使得支持http头 |
--enable-so | 使得支持动态模块 |
--enable-modules=most | 使得支持大多数模块 |
--with-mpm=worker | 使得Apache工作在worker模式下 |
--enable-rewrite | 使得支持地址重写 |
操作命令:make -j 4 && make install
- //操作命令
- vi /usr/local/apache/etc/httpd.conf
-
- 输入:ServerName进行搜索
-
- 添加:
- ServerName www.xdclass.com
- //设置软链接
- ln -s /usr/local/apache/bin/* /usr/sbin/
- //设置环境变量
- echo "export PATH=/usr/local/apache/bin:$PATH" >> /etc/profile
- //加载环境变量
- source /etc/profile
- //测试配置文件语法有没有错误
- httpd -t
- //启动apache服务
- httpd -k start
- //关闭apache服务
- httpd -k stop
在防火墙关闭的条件下,打开浏览器,输入IP地址,成功打开apache测试页面,如下图,即部署完成
192.168.213.132:80
Nginx是一款高性能的 HTTP 和反向代理服务器
yum install -y gcc-c++
yum install -y zlib-devel
yum install -y openssl openssl-devel
官网下载地址:https://ftp.pcre.org/pub/pcre/
下载成功后,上传至虚拟机,并进行解压
解压命令:tar -xf pcre-8.43.tar.gz
进入【pcre-8.43】目录下进行安装,安装时需要指定安装路径,这里我创建了一个路径为 /usr/local/pcre,然后安装在该路径下
- //1.进入pcre-8.43目录下
- cd pcre-8.43
- //2.新建一个安装路径
- mkdir -p /usr/local/pcre
- //3.指定安装路径为刚创建的路径
- ./configure --prefix=/usr/local/pcre
- //4.安装pcre
- make && make install
Nginx 官网:nginx: download
下载成功后,上传至虚拟机,并进行解压
解压命令:tar -xf nginx-1.16.0.tar.gz
进入【nginx-1.16.0】目录下进行安装,安装时需要指定安装路径,这里我创建了一个路径为 /usr/local/pcre,然后安装在该路径下,接着使用./configure进行环境收集检验与配置,编译无误后进行安装
- //1.进入nginx-1.16.0目录下
- cd nginx-1.16.0
- //2.新建一个安装路径
- mkdir -p /usr/local/nginx
- //3.指定安装路径为刚创建的路径
- ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-pcre
- //4.安装pcre
- make && make install
- //启动nginx服务
- /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
-
- //测试相关配置文件是否正常
- /usr/local/nginx/sbin/nginx -t
-
- //关闭nginx服务
- /usr/local/nginx/sbin/nginx -s stop
打开浏览器测试能否访问到测试页面,如图所示,即启动成功【ip addr 获取当前虚拟机IP地址,访问端口默认80】
- //关闭防火墙命令
- systemctl stop firewalld.service
-
- //查看防火墙是否关闭
- firewall-cmd --state
进入config文件,将【SELINUX】的值改为【disabled】,如下图所示
vi /etc/selinux/config
安装命令:yum -y install cmake
我这里下载的boost库是boost1.59.0,直接使用wget下载会快一点,下载成功后,直接进行解压
boost库历史版本下载地址:Boost Version History
wget https://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
解压命令:tar -xf boost_1_59_0.tar.gz
MySQL这里下载的是mysql-5.7.17版本,直接在官网下载即可
MySQL官网地址:MySQL :: MySQL Downloads
下载成功后,上传至虚拟机,并进行解压
tar -xf mysql-5.7.17.tar.gz
yum -y install gcc gcc-c++ bzip2 bzip2-devel bzip2-libs python-devel ncurses ncurses-devel openssl openssl-devel
- mkdir -p /usr/local/mysql
- mkdir -p /data/mydata
useradd -M -s /sbin/nologin mysql
cd mysql-5.7.17
使用cmake工具执行下面命令,进行环境收集检验与配置
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_DATADIR=/data/mydata \-DSYSCONFDIR=/etc \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_READLINE=1 \-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \-DWITH_SSL=system \-DWITH_ZLIB=system \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DDOWNLOAD_BOOST=1 \-DWITH_BOOST=../boost_1_59_0 \-DENABLE_DOWNLOADS=1
各参数 | 参数说明 |
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql | 指定mysql数据库安装目录 |
-DMYSQL_DATADIR=/data/mydata | 指定数据库文件路径 |
-DSYSCONFDIR=/etc | 指定配置文件路径 |
-DWITH_INNOBASE_STORAGE_ENGINE=1 | 安装INNOBASE存储引擎 |
-DWITH_ARCHIVE_STORAGE_ENGINE=1 | 安装ARCHIVE存储引擎 |
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 | 安装BLACKHOLE存储引擎 |
-DWITH_READLINE=1 | 使用redline功能 |
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock | 连接文件位置 |
-DWITH_SSL=system | 表示使用系统上自带的SSL库 |
-DWITH_ZLIB=system | 表示使用系统上自带的ZLIB库 |
-DDEFAULT_CHARSET=utf8 | 指定默认使用的字符集编码 |
-DDEFAULT_COLLATION=utf8_general_ci | 指定默认使用的字符集校对规则 |
-DDOWNLOAD_BOOST=1 | 若无boost库则可自行下载 |
-DWITH_BOOST=../boost_1_59_0 | 指定boost库的路径用于读取 |
-DENABLE_DOWNLOADS=1 | 支持下载可选文件 |
make -j 4 && make install
初始化后,会生成一个临时密码,这里需要记住临时密码【1RlVUip10g>j】
/usr/local/mysql/bin/mysqld \--initialize \--user=mysql \--basedir=/usr/local/mysql \--datadir=/data/mydata \--socket=/tmp/mysql.sock
chown -R mysql:mysql /usr/local/mysql /data/mydata
- //进入配置文件进行修改
- vi /etc/my.cnf
-
- //文件内容修改如下
- [mysqld]
- datadir=/data/mydata
- socket=/tmp/mysql.sock
- symbolic-links=0
- [mysqld_safe]
- log-error=/usr/local/mysql/log/mysql.errlog
- pid-file=/data/mydata/$hostname.pid
第一次启动时会报如下错误,这是因为没有创建【mysql.errlog】文件导致,创建后重新启动即可
- //创建 mysql.errlog 文件
- touch /usr/local/mysql/log/mysql.errlog
-
- //创建后要进入log目录下修改该文件的权限
- chown mysql:mysql *
-
- chown -R mysql:mysql /usr/local/mysql/log/mysql.errlog
启动与关闭 mysql 服务的命令如下:
- //启动
- /usr/local/mysql/support-files/mysql.server start
-
- //关闭
- /usr/local/mysql/support-files/mysql.server stop
第一次登录的密码是之前生成的随机密码,填入随机密码,即可登录成功
/usr/local/mysql/bin/mysql -uroot -p
修改完密码需要刷新权限
- //修改密码
- set password for 'root'@'localhost'=password('YYL123');
-
- //刷新权限
- flush privileges;
刷新权限时,如果出现下面报错,则是因为表不存在,这里创建一个对应表即可
创建表的步骤:
- //mysql中操作
-
- use mysql;
- drop table if exists mysql.servers;
-
- //建表
- CREATE TABLE `servers` (
- `Server_name` char(64) NOT NULL,
- `Host` char(64) NOT NULL,`Db` char(64) NOT NULL,
- `Username` char(64) NOT NULL,
- `Password` char(64) NOT NULL,
- `Port` int(4) DEFAULT NULL,
- `Socket` char(64) DEFAULT NULL,
- `Wrapper` char(64) NOT NULL,
- `Owner` char(64) NOT NULL,
- PRIMARY KEY (`Server_name`)
- ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='MySQL Foreign Servers table';
- //复制mysql.server到/etc/rc.d/init.d路径下并命名为mysql
- cp -a /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql
-
- //添加一个mysql服务
- chkconfig --add mysql
-
- //查看mysql服务的状态
- chkconfig --list mysql
chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级别等级0
等级0 | 表示关机 |
等级1 | 单用户模式 |
等级2 | 无网络连接的多用户命令行模式 |
等级3 | 有网络连接的多用户命令行模式 |
等级4 | 不可用 |
等级5 | 带图形界面的多用户模式 |
等级6 | 重新启动 |
使用mysql服务的方式操作启停mysql服务
- //启动mysql服务器
- service mysql start
- //关闭mysql服务器
- service mysql stop
- //重启mysql服务器
- service mysql restart
设置mysql环境变量,软链接到/usr/sbin/目录下,使得mysql在任何目录都可直接使用 mysql -uroot -p 登录服务器
ln -s /usr/local/mysql/bin/* /usr/sbin/
PHP是一种脚本语言,常用于做动态网站
- yum -y install gcc gcc-c++ bzip2 bzip2-devel bzip2-libs python-devel ncurses ncursesdevel openssl openssl-devel
-
- yum install -y libxml2-devel
官网下载php安装包,并上传至虚拟机中进行解压
解压命令:tar -xf php-5.5.35.tar.gz
- cd php-5.5.35
-
- mkdir -p /usr/local/php
-
- ./configure --prefix=/usr/local/php/ --enable-fpm --with-config-file=/usr/local/php/etc
make -j 4 && make install
- cp -a php.ini-production /usr/local/php/etc/php.ini
- cp -a /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
- //启动php服务器
- /usr/local/php/sbin/php-fpm
-
- //php的默认监听端口是:9000
-
- //关闭php服务器
- cd /usr/local/php/sbin && pkill php-fpm
修改nginx配置文件,文件路径在/usr/local/nginx/conf/nginx.conf,修改后对 nginx进行重启即可
- vi /usr/local/nginx/conf/nginx.conf
-
- //配置文件内在location下增加下面内容并保存退出
- location ~ \.php$ {
- root /usr/local/nginx/html;
- fastcgi_pass 127.0.0.1:9000;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- include fastcgi_params;
- }
-
- //重启nginx服务器
- /usr/local/nginx/sbin/nginx -s reload
其中,配置文件中修改的内容含义详解:
FastCGI是一个在HTTP服务器和动态脚本语言间通信的接口 | |
fastcgi_pass 127.0.0.1:9000; | 设置监听端口 |
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; | 设置脚本文件请求的路径 |
include fastcgi_params; | 引入fastcgi的配置文件 |
在nginx的/usr/local/nginx/html路径下新增一个index.php文件用于测试,文件内容如下:
vi /usr/local/nginx/html/index.php
- <?php
- phpinfo();
- ?>
如下图所示,即安装成功
shell 、perl 、php 、python
新建一个【first.sh】文件,在文件中编写脚本内容
- vi first.sh
-
- //脚本内容
- # !/bin/bash
- # 作者:YYL
- # 编写时间:2024-03-23
- # 功能:this is my first shell !
- echo "this is my first shell !"
方法1:直接使用 sh 命令执行
sh first.sh
方法2:先赋予文件可执行权限,在使用 ./ 执行
- chmod 755 first.sh
- ./first.sh
- //启动
- systemctl start crond.service
-
- //查看状态
- systemctl status crond.service
-
- //停止
- systemctl stop crond.service
-
- //重新启动
- systemctl restart crond.service
语法 | 选项 | 含义 | 内容格式 |
crontab 【选项】 | crontab -l | 列出crontab有哪些任务 | |
crontab -e | 编辑crontab任务 | * * * * * 级别 命令 | |
crontab -r | 删除crontab里的所有任务 |
crontab里的内容格式如下:
* * * * * 级别 命令
解析:五个星星分别代表【分、时、日、月、周】---从左到右
crontab示例 | 实现命令 |
每分钟执行
| * * * * * 或者 */1 * * * * |
每小时执行
| 0 * * * * |
每天执行
| 0 0 * * * |
每周执行
| 0 0 * * 0 |
每月执行
| 0 0 1 * * |
每年执行
| 0 0 1 1 * |
每天早上
6
点执行
| 0 6 * * * |
每两个小时执行
| 0 */2 * * * |
每小时的
10
分,
40
分执行
| 10,40 * * * * |
每天的下午
4
点、
5
点、
6
点的
5 min
、
15 min
、
25 min
、
35 min
、
45 min
、
55 min
时执行命令
| 5,15,25,35,45,55 16,17,18 * * * |
新建shell脚本,命名为【nginx_cut.sh】,编写该脚本文件
- #!/bin/bash
- #Auto cut nginx log script.
- #create by YYL
- #create date:2024-03-24
-
- #nginx日志路径
- logs_path=/usr/local/nginx/logs
- YesterDay=$(date -d 'yesterday' +%Y-%m-%d)
-
- #移动日志并以日期改名
- mv ${logs_path}/access.log ${logs_path}/access_${YesterDay}.log
- mv ${logs_path}/error.log ${logs_path}/error_${YesterDay}.log
-
- #向nginx主进程发送信号,重新生成日志文件
- kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
固定IP地址,一般使用NAT模式
点击虚拟网络编辑器,选择NAT模式,并关闭【使用本地DHCP服务...】,关闭后需要修改网卡信息
进入网卡路径,修改相关网卡信息,以下是我的网卡相关信息
vi /etc/sysconfig/network-scripts/ifcfg-eno16777728
- BOOTPROTO="static"
- IPADDR=192.168.213.100
- GATEWAY=192.168.213.2
- NETMASK=255.255.255.0
- ONBOOT="yes"
-
-
- //修改以上信息,以下是我网卡信息
-
- HWADDR="00:0c:29:dc:47:58"
- TYPE="Ethernet"
- BOOTPROTO="static"
- DEFROUTE="yes"
- PEERDNS="yes"
- PEERROUTES="yes"
- IPV4_FAILURE_FATAL="no"
- IPADDR=192.168.213.100
- GATEWAY=192.168.213.2
- NETMASK=255.255.255.0
- IPV6INIT="yes"
- IPV6_AUTOCONF="yes"
- IPV6_DEFROUTE="yes"
- IPV6_PEERDNS="yes"
- IPV6_PEERROUTES="yes"
- IPV6_FAILURE_FATAL="no"
- NAME="eno16777728"
- UUID="3199add9-379c-43a9-bab1-ae4e05c0f2cc"
- ONBOOT="yes
网卡修改信息 | 说明 |
BOOTPROTO="static" | 固定IP网址 |
IPADDR=192.168.213.100 | IP地址,可以根据子网ip进行设置 |
GATEWAY=192.168.213.2 | 网关IP,即NAT模式中的网关IP |
NETMASK=255.255.255.0 | 子网掩码 |
systemctl restart network.service
如果设置为固定IP地址后,ping不通,那么加上以下域名服务器解析地址即可
- vi /etc/resolv.conf
-
- //配置内容
- nameserver 114.114.114.114
- nameserver 8.8.8.8
- nameserver 1.1.1.1
- //临时设置别名(重新登录后失效)
- alias vinet='vi /etc/sysconfig/network-scripts/ifcfg-eno16777728'
-
- //查看别名
- alias
-
- //取消临时别名
- alias vinet
-
- //永久设置别名
- vi /root/.bashrc
- //新增一条配置文件内容
- alias vinet='vi /etc/sysconfig/network-scripts/ifcfg-eno16777728'
-
- //加载使立即生效
- source /root/.bashrc
虚拟机中都默认主机名为localhost
hostname
hostnamectl set-hostname YYLCS
reboot
进入【hosts】文件,修改文件信息
- vi /etc/hosts
-
- 192.168.213.100 YYLCS
ping YYLCS
在YYLCS2机器上pingYYLCS机器,如下图所示,则说明修改成功
ssh-keygen -t rsa
从YYLCS拷贝文件到YYLCS2并重命名为【authorized_keys】
scp /root/.ssh/id_rsa.pub root@YYLCS2:/root/.ssh/authorized_keys
ssh YYLCS2
A : 192.168.213.100 作服务端B : 192.168.213.101 作客户端
yum install -y nfs-utils rpcbind
成功安装rpcbind服务后,系统会自动启动服务,若没有自动启动,自己启动下即可
- //启动rpcbind服务
- sudo systemctl start rpcbind
-
- netstat -tunlp | grep 111
首先创建一个共享目录供客户端去访问【/data/NFSdata】
mkdir -p /data/NFSdata
接着修改配置文件,配置文件路径在【/etc/exports】,配置信息如下:
- vi /etc/exports
-
- //修改配置信息内容
- /data/NFSdata 192.168.213.101/24(rw,sync)
配置信息 | 说明 |
/data/NFSdata | 表示你要共享的目录 |
192.168.213.101/24 | 表示所允许访问的客户端IP |
(rw,sync) | rw:表示读写权限,sync:表示数据同步写入内存硬盘 |
systemctl start nfs
- systemctl enable rpcbind.service
- systemctl enable nfs-server.service
yum install -y nfs-utils rpcbind
systemctl enable rpcbind.service
在B客户端机器创建一个目录供服务端机器挂载
mkdir /NFS
- mount -t nfs 192.168.213.100:/data/NFSdata /NFS
- showmount -e 192.168.213.100
若要在客户端也能有操作的权限,则需要在服务端中对NFSdata目录赋予对应权限
chmod -R 777 NFSdata
- //检查是否已经安装vsftpd软件包:
- rpm -qa vsftpd
-
- //yum 安装 vsftpd:
- yum -y install vsftpd
-
- //查找 vsftpd 的文件位置:
- whereis vsftpd
-
- //启动 ftp 服务:
- systemctl start vsftpd
-
- //查看启动服务情况
- ps -ef | grep vsftpd
-
- //查看监听的端口号:
- netstat -tunlp | grep vsftpd
-
- //查看防火墙的状态:
- firewall-cmd --state
-
- //关闭防火墙
- systemctl stop firewalld.service
-
- //创建测试文件:
- mkdir -p /var/ftp/pub/ && echo "this is ftptest" >test.txt
-
- //使用 windows 客户端访问(匿名用户访问时可以下载文件,但不能上传,若要上传,需要在配置文件/etc/vsftpd/vsftpd.conf中设置anon_upload_enable=YES,并且赋予pub目录权限 777)
- ftp://192.168.10.100/
-
- //
-
- //安装 FTP 客户端工具:
- yum -y install ftp
-
- //连接vsftpd:
- ftp 192.168.213.100
-
- //下载文件:
- get test.txt
-
- //上传文件:
- put test.txt
-
- //退出:
- quit 或者 exit
- 关闭之前的匿名访问:
- vi /etc/vsftpd/vsftpd.conf #编辑配置文件
- anonymous_enable=NO
-
- systemctl restart vsftpd #重新启动服务
-
- mkdir -p /var/ftp/html #创建目录
-
- useradd -g root -M -d /var/ftp/html -s /sbin/nologin ftptest #添加系统用户
-
- chown -R ftptest:root /var/ftp/html #配置权限
-
- passwd ftptest #设置密码
-
- cd /var/ftp/html && echo "this is ftptest" >ftptest.txt #添加测试文件
-
- 使用 windows 客户端访问:
- ftp://192.168.213.100/
配置文件/etc/vsftp/vsftpd.conf 的一些常用权限解释:
权限 | 权限说明 |
anonymous_enable=YES | 允许匿名用户访问 |
write_enable=YES | 允许登录用户有写权限,属于全局设置 |
anon_root=var/ftp | 指定匿名用户登录的目录 |
anon_upload_enable=YES | 允许匿名用户有上传文件的权限 |
anon_mkdir_write_enable=YES | 允许匿名用户有新增目录的权限 |
chown_username=username | 设置匿名用户上传文件的属主名 |
注意:一般情况下,使用ftp客户端来访问vsftpd服务端较为麻烦,因此在企业中经常会下载【filezilla】软件来访问(官网下载即可,解压缩后直接使用),如下图所示,即连接成功
一般情况下,系统默认会指定 pam 文件
- vi /etc/vsftpd/vsftpd.conf
-
- pam_service_name=vsftpd
- auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
- account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
vi /etc/vsftpd/vuser_passwd.txt #该文件奇行为用户名,偶行为密码
- //通过以下命令生成 db 文件:
- cd /etc/vsftpd/ && db_load -T -t hash -f vuser_passwd.txt vuser_passwd.db
- vi /etc/vsftpd/vsftpd.conf
-
- //修改配置内容:
- anonymous_enable=NO #禁用匿名登录
- ascii_upload_enable=YES
- ascii_download_enable=YES
- chroot_local_user=YES #启用限定用户在其主目录下
-
-
- //手动添加配置内容:
- guest_enable=YES #设定启用虚拟用户功能
- guest_username=ftptest #指定虚拟用户的宿主用户,CentOS 中已经有内置的ftp 用户了
- user_config_dir=/etc/vsftpd/vuser_conf #虚拟用户配置文件存放的路径
- allow_writeable_chroot=YES #如果启用了限定用户在其主目录下需要添加这个配置
修改完配置文件后,需要重启ftp服务使之生效
systemctl restart vsftpd
第五步:测试虚拟用户的访问情况
ftp://192.168.213.100
这里输入虚拟用户以及密码,可以看到访问成功
- mkdir /etc/vsftpd/vuser_conf #创建一个目录存放文件
-
- vi /etc/vsftpd/vuser_conf/xiaoming #创建一个以虚拟用户名的文件(文件名一定要与登录名一
- 样)
- //配置文件内容
- local_root=/var/ftp/xiaoming
- write_enable=YES
- anon_umask=022
- anon_world_readable_only=NO
- anon_upload_enable=YES
- anon_mkdir_write_enable=YES
- anon_other_write_enable=YES
配置完后,需要重启ftp服务器生效,如下图所示,即可访问成功
- vi /etc/pam.d/vsftpd
-
- //修改配置文件内容
- auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
- account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。