Linux入门笔记(完结版)
Linux_RHEL8
目录树结构
路径表示方法:
/ 根目录
./ or .当前目录
…/ or …父目录
基本操作
基本命令
file 判断文件类型文件类型- d 目录- -/f 普通文件- b 块设备- c 字符设备- l 软连接- p 管道- s socket
pwd 查看当前工作路径
cd 更改工作路径,切换路径(切换到家目录)
-a all,查看目录下的所有文件,包括隐藏文件
-l 长列表显示
-h human,以人性化方式显示出来
-d 只列出目录名,不列出其他内容
-t 按修改时间排序
-r 逆序排列
-S 按文件的大小排序
-i 显示文件的inode号(索引号)
-R 递归列出目录中的内容
-m 用逗号分隔显示内容
mkdir -p 创建目录(连续创建文件夹)
cp
-a 递归拷贝文件,包括目录及文件属性信息
-r 拷贝目录
-p 拷贝文件包含文件的属性信息
-v 显示拷贝过程信息
a和p区别
相同点都是需要拷贝文件的属性信息,比如拥有者(谁创建的等);
不同点在于,-p只能拷贝文件,-a既可以拷贝文件也可以拷贝目录。
cat 查看文件内容(小文件)
touch
创建文件 touch /tmp/file1
修改时间 touch -a file1 -t "202010101212"-a访问时间-m更改时间-d一起修改
格式:touch -d "20201010" file1
rm
-r 递归删除,一般用于删除目录
-f 直接删除,不提示
mv 移动&重命名文件
移动文件用法(不同路径下):
# mv 需要移动的文件 移动到新的路径下重命名用法(相同路径下):
# mv 原来文件的名字 新文件的名字
查找文件
which <命令>查找命令的绝对路径
whereis <命令>查找命令路径+man手册
find命令:
按照名称
find /test -iname file1
按照类型
find /usr/bin/ -type l
按照大小
find /etc -type f -size +1M
按照拥有者/所属组
find ./ -user baiyang -group baiyang -type f
按照权限
find ./ -type f -perm 644
按照时间
-mtime 修改时间
-atime 访问时间
-ctime 创建时间
-daystart开始时间今天,并不是二十四小时以前的(只对后面的选项生效)
实例:
-mtime +n(n天以前) -n(n天以内)
今天是22号
-n/+n分别表示n天以内/n天以前
查找出来后执行命令
find /test/ -type f -ok cp {} /tmp \;
find /tmp/dir1/ -type f -exec rm -f {} \;
{} 代表find查找的文件
-exec 直接执行 (后必须加< ;>结尾)
-ok 询问后执行 (后必须加< ;>结尾)
-delete
-ls
man章节说明
Bash的标准输入输出
指令>和>>区别
指令 > : 如果文件存在,将原来文件的内容覆盖;原文件不存在则创建文件,再添加信息。
指令 >>:不会覆盖原文件内容,将内容追加到文件的尾部。
cat 文件1 > 文件2 将文件1的内容覆盖到文件2中
cat 文件1 >> 文件2 将文件1的内容追加到文件2的尾部
echo “内容” > filename 将内容写入覆盖到文件中
echo “内容” >> filename 将内容写入追加到文件的尾部
解压缩
zip:支持多个文件压缩成一个文件
zip -r /tmp/test_passwd.zip /test/ /etc/passwd -r 递归压缩
unzip test_passwd.zip -d /backup -d 指定解压路径
gzip/bzip/xz 只能压缩单个文件
tar
不会改变属性信息
格式:tar <选项> <打包压缩后的文件> <需要打包压缩的文件>
date查看与设置时间
hwclock
timedatectl
应用场景mkdir $(date +%F)以当前日期命名文件名称
用户与组的命令概述
用户的基本管理
1.创建用户(useradd)
useradd [选项] 用户名
-u 指定用户uid,唯一标识,必须唯一
-g 指定用户的默认组(主组)
-G 指定用户附加组(一个用户可以加入多个组,但是默认组只有一个)
-d 指定用户家目录(每个用户都有一个自己的家,并且默认在/home/xxx)
-s 指定用户默认shell
创建用户stu2,同时指定该用户的家目录为/rhome/stu2
注意:-d 指定用户的家目录,前提该用户家目录的上一级目录/rhome必须存在
2.设置密码passwd
passwd 用户名 表示给指定用户修改密码
passwd 直接回车 表示给当前用户修改密码
1.用户信息保存文件/etc/passwd
2.用户密码信息保存文件/etc/shadow
不需要交互 #echo 123 | passwd --stdinstu2 #
更改用户的账号信息(chage)
chage -d 0 stu1 -d 表示将最近一次密码设置时间设为“最近日期”0表示下次登陆必须要修改密码
#chage -E $(date -d '+30days' +%F) stu2
-d 修改用户最后一次更改密码的时间
-m 修改密码的最小存活期(几天后才能修改密码)
-M 修改密码的最大存活期(每隔多少天更新一次密码)
-W 修改密码过期前警告(过期前几天发出警告)
-I 修改允许密码过期几天
-E 修改账户过期时间
-l 列出账户的信息
3.修改用户信息(usermod)
-u 指定用户uid,唯一标识,必须唯一
-g 指定用户的默认组
-G 指定用户附加组(一个用户可以加入多个组,但是默认组只有一个)
-d 指定用户家目录(每个用户都有一个自己的家,并且默认在/home/xxx)
用这个时,用户的家必须全部存在
-s 指定用户默认shell /sbin/nologin无法登录系统
-m 移动用户家目录,和==-d==一起使用
4.删除用户(userdel)
userdel [选项] 用户名
-r 删除用户并且移除其家目录和邮箱
-f 强制删除正在登录的用户
组的掌握
1.创建组(groupadd)
groupadd [选项] 组名
-g 指定组的GID(编号),默认唯一
2.删除组(groupdel)
3.组成员管理(gpasswd)
gpasswd [选项] 组名
-a 添加用户到组
-d 从组中删除成员
-A 指定管理员
-M 指定组成员,可以批量添加用户到组中 覆盖原来的用户
-r 删除密码
gpasswd 组名 给组设置密码
组的信息保存文件——>/etc/group和/etc/gshadow
grep admin /etc/group 查看是否创建
经验总结:
- usermod -g 组名 用户名
usermod 用户名 -g 组名
gpasswd 组名 -A 用户名
gpasswd -A 用户名 组名
VIM文本编辑器
三种模式
命令行模式
进行一些基本的复制、删除、跳转、撤销、移动等操作
编辑模式
esc退出
底行模式
从命令行模式按 : 进入
保存和退出、 搜索替换、其他
保存退出
保存文件,命令 :w ; 另存为到其他文件,命令 :w 文件名
保存退出,命令 :wq ; 强制保存退出 :wq!
退出不保存,命令 :q ; 强制退出 :q!
命令 :x 在文件没有修改的情况下,表示直接退出(等价于:q),在文件修改的情况下表 示保存并退出(:wq)
搜索功能
命令行模式下可以按 / 搜索
底行模式下也可按 / 搜索
:%s/root/ROOT/gc 全文搜索替换(没用g的话只替换没行第一个)(c是交互式的) :%s#/sbin/nologin#heima#gc 可以自定义分隔符 :%s/\/sbin\/nologin/heima/gc 反斜杠 \ 可以转义 :7s/shutdown/SHUTDOWN/g 加数字-指定搜索 :noh 取消高亮
其他功能
1、临时设置行号:set number 或者 :set nu
2、永久设置行号
echo "set number" >> /etc/vimrc (亦可以直接用vim打开文件进行编辑修改)
3、查看控制字符
:set list
4、地址定位①:1,5 w /tmp/5.txt 保存前五行内容到/tmp/5.txt②:r /tmp/5.txt 在光标所在的行下面读取/tmp/5.txt文件内容③3r /tmp/5.txt 在当前文本的第3行读取/tmp/5.txt文件④1,8d 删除文本1-8行⑤:nr !command 在第n行下面读取命令所执行的结果⑥:n !command 用命令的执行结果替换第n行的内容
可视化模式
ctrl + v(可视块)或V(可视行),然后按下↑ ↓ ← →方向键来选中需要 复制的区块,按下y 键进行复制(不要按下yy),最后按下p 键粘贴 退出可视模式按下Esc
文件权限管理
权限是设置在文件上面的,而不是用户
(一)普通权限
读权限 -r 4
写权限 -w 2
执行权限 -x (execute) 1
无权限 - 0
理解UGO(用户身份)
- U文件的拥有者or创建者
- G在文件所属组里的用户
- O既不是文件创建者,也不是文件属组里的用户,称为其他人
- a所有用户,包含UGO
修改文件普通权限==(chmod)==
chmod [选项] 模式 文件名
常见选项:
-R, --recursive 递归更改目录和目录里文件的权限
格式实例:
chmod u+x file1 可 + - =
chmod u+x,g+w,o=— file3
chmod a+x file4 a可以不加
是否可以在一个目录里创建或删除文件要看当前目录是否有w权限!
一般目录都具有r和x权限
普通权限说明
(二)高级权限
用chmod
- 冒险位对于命令而言的s 临时拥有文件拥有者的权限
- 强制位对于目录而言的s 用户在目录里创建的文件属组继承该目录的属组
- 粘滞位对于公共目录而言的t 该目录下的文件只有root和文件的创建者可以删除,其他人自己管理自己
(三)默认权限
只在当前终端进程中生效
umask是针对用户的
umask=文件的最大权限-文件的默认权限
linux中,默认创建目录的最大权限是0777;文件的最大权限是0666(没有x)
权限的最小化
一个文件创建出来不可能有x权限
临时控制
永久控制
需要修改配置文件,对用户所有终端进程生效,可以设置所有用户或者单个用户
如何设置
相关的配置文件介绍
配置文件分为全局和局部配置
两者冲突是一般以局部为准,二般情况,看情况
(四)ACL策略(setfacl)
针对某个人在某个文件上具有权限
实例:
setfacl -m u:baiyang:rw file1 (u:用户名)
setfacl -m g:admin:rw file2 (g:组名)
setfacl -m m::r file1
m放在后面,R放在前面
查看文件权限的详情信息(getfacl)
文件的属主和属组
修改属主与属组(chown)
chgrp
只能修改文件的属组。
格式:chgrp 组名 文件名
Linux系统配置
(一)Web控制台安装
①系统默认已安装
yum list|grep cockpit
②设置开机自启动
查看是否自启动systemctl list-unit-files|grep cockpit
设置自启动systemctl enable --now cockpit.socket
再次查看systemctl list-unit-files|grep cockpit
启动cockpit服务systemctl start cockpit.service
查看状态systemctl status cockpit.service说明:①默认情况下,cockpit服务是启动的,我们可以使用以下命令检查9090端口是否监听lsof -i :9090②web控制台登录账号认证文件位于 /etc/pam.d/cockpit允许系统上任何本地帐户的用户名和密码登录③本地登录http://localhost:9090④设置防火墙策略说明:如果系统防火墙开启,则需要执行以下操作,添加cockpit服务到防火墙以打开9090端口firewall-cmd --add-service=cockpit --permanentsuccessfirewall-cmd --reloadsuccess
(二)命令修改主机名
hostnamectl set-hostname RedHat8.itcast.cn
cat /etc/hostname
也可以直接修改/etc/hostname文件
(三)静态IP地址修改
通过修改配置文件
路径 /etc/sysconfig/network-scripts/
文件 ifcfg-ens160
相关说明
使用nmcli工具配置
查看网络连接情况
nmcli connectiong show
修改当前网卡IP地址
nmcli connection modify ens160 ipv4.addresses 192.168.159.101/24
增加/删除IP地址(子接口)
nmcli connection modify ens160 +ipv4.addresses 10.1.1.1/24 nmcli connection modify ens160 -ipv4.addresses 10.1.1.1/24
无论何种方式,每次修改网络后需要重载配置文件并激活连接
重载网卡配置文件
nmcli connection reload ens160
激活网卡连接
nmcli connection up ens160
使用nmtui文本图形工具
nmtui
软件包分类
二进制包
- 常见的二进制包
安装方式
①rpm工具安装
②yum/dnf工具安装——>需要配置软件仓库
源码包
可以在任意平台编译安装
配置——>功能的定制
编译——>编译成二进制
安装
二进制源码包
repbuild重建
管理rpm包
rpm工具
1.安装相关
安装rpm -ivh 包全名查看是否安装成功rpm -q zsh 包最前面的名称只查看目录rpm -qc zsh
文件列表rpm -ql zsh卸载rpm -e zsh
升级rpm -Uvh 全名 未安装的话先安装+升级rpm -Fvh 全名 升级
2.查看rpm包相关信息
1.查看已经安装的软件的文件列表rpm -ql 软件包名2.查看未安装的rpm包里的文件列表rpm -qlp 软件包(xxx.rpm)3.查看已经安装的所有rpm包rpm -qa 软件包名rpm -aq|grep 软件包名4.查看已经安装软件的文档列表rpm -qd 软件包名5.查看已经安装软件的配置文件rpm -qc 软件包名6.查看已经安装软件的详细信息rpm -qi 软件包名7.查看指定文件来自哪个rpm包rpm -qf 文件名
3.其他
--force 表示强制rpm -ivh 软件包 --force rpm -e 软件包名 --force --nodeps 忽略依赖关系rpm -ivh 软件包 --nodeps rpm -e 软件包 --nodeps 其他了解:rpm --import key_file 导入公钥用于检查rpm文件的签名rpm --checksig package.rpm 检查rpm包的签名
yum/dnf工具
①配置yum源
- BaseOS存储库——基础软件
- AppStream存储库——用户空间应用程序、运行时语言和数据库
Step1:
挂载镜像到本地系统
查看镜像是否挂载df -h
修改挂载目录
mount -o ro /dev/sr0 /media
Step2:
修改配置文件
文件路径 /etc/yum.repos.d/RedHat.repo
vim编辑
[BaseOS]
name=BaseOS
baseurl=file:///mnt/BaseOS
gpgcheck=0
enabled=1[AppStream]
name=AppStream
baseurl=file:///mnt/AppStream
enabled=1
gpgcheck=0
Step:查看是否成功
清空yum缓存yum clean all
创建yun缓存yum makecache
查看仓库yum repolist
②yun/dnf工具使用
安装
yum -y install 软件包1 软件包2 yun -y groupinstall "包组名"-y表示取消交互
卸载
yum -y remove 软件包名 yum -y groupremove "包组名"
升级
yum update 软件包名注意:如果不加软件包名默认升级所有,切不可操作
SSH远程连接服务
服务端与客户端
Browser/Server架构
Client/Server架构
(一)了解端口号
0~255:一般是知名的端口号,如ftp21、web80、ssh22、telnet23等
256~1023:通常都是由Unix系统占用来提供特定的服务
1024~5000:客户端的临时接口,随机产生
大于5000:为互联网其他服务预留
(二)了解SSH
访问服务——> IP+Port端口号
SSH——>用于Linux下远程连接管理服务的安全协议
C/S架构
- 服务器端(开启SSH服务):安装软件(openssh-server)
- 客户端
- Windows:MobaXterm
- Linux:openssh-clients
(三)查看SSH默认端口
netstat命令 查看网络连接状态-n不显示名称-l查看监听状态-tTCP协议-p查看程序名字
查看网络状态
netstat -nltp|grep :22或者lsof -i :22
(四)修改SSH服务默认端口号
修改
vim /etc/ssh/sshd_config
重启服务
systemctl restart sshd.service
客户端测试验证
(五)服务开机自启动
查看是否开机自启动
systemctl list-unit-files |grep sshd.service
查看状态
systemctl status sshd.service
自启动
systemctl enabled sshd.service
systemctl disabe sshd.service
重启/停止
systemctl start sshd.service
systemctl stop sshd.service
systemctl restart sshd.service
(六)总结:搭建服务步骤
(七)基于SSH服务的命令
Linux下客户端工具SSH
功能①Linux客户端远程连接登录Linux服务器端(ssh服务)
功能②在不登录情况下客户端远程访问Linux服务器 执行相应的命令
①格式
ssh [选项] 用户名@远程IP #用户名为远程服务器端的用户-l指定用户访问-p指定端口号
ssh -p 22 -l user01 192.168.159.100
ssh -p 22 user01@192.168.159.100
②格式
ssh [选项] 远程IP 命令
ssh -p 22 user01@192.168.159.100 hostname
远程拷贝命令scp
1.本地文件上传到服务器(push)
scp [选项] 本地文件 远程服务器IP:/路径
2.远程服务器下载文件到本地(pull)
scp [选项] 远程服务器IP:/路径 本地路径-P指定端口号-r递归拷贝指定远程服务器用户下载
scp -P 22 heima@192.168.159.100:/etc/passwd /backup/
将文件重命名为file1
scp -P 22 heima@192.168.159.100:/etc/passwd /backup/file1
注意:
当前用户是否拥有目的路径的相关权限
如果解析比较慢可以将远程服务器的IP和主机名写到==/etc/hosts==下
管道文件
(一)匿名管道
用于父子关系的同一终端进程的通讯
作用:将上一个命令所执行的结果(标准输出)作为下一条命令的标准输入
(二)命名管道
用于任何进程通讯
mkfifo创建
终端1
rpm -aq > /tmp/p_file
终端2
grep openssh /tmp/p_file
cat openssh /tmp/p_file
(三)引申
grep过滤
xargs
结合|使用,将上一个命令的标准输出作为下一个命令的参数
find /tmp/dir1/ -type f|xargs rm -f选项-n 指定一行显示的参数个数-d
进程概述与查看
运行的程序
进程产生多个线程
(一)进程生命周期
systemd
唯一标识PID和PPID(父进程)
(二)静态查看(ps)
常用
ps -ef
ps -eF
ps -ely
ps -aux
ps -auxfa 显示当前终端下的所有进程,包括其他用户的进程
u 显示进程拥有者、状态、资源占用等的详细信息(注意有“-”和无“-”的区别)
x 显示没有控制终端的进程。通常与a这个参数一起使用,可列出较完整信息
o 自定义打印内容
-e 显示所有进程。
-f 完整输出显示进程之间的父子关系
-l 较长、较详细的将该进程的信息列出
进程信息解释说明
USER: 运行进程的用户
PID: 进程ID
%CPU: CPU占用率
%MEM: 内存占用率
VSZ: 占用虚拟内存
RSS: 占用实际内存,驻留内存
TTY: 进程运行的终端STAT: 进程状态,man ps获取帮助(/STATE)R 运行S 可中断睡眠 SleepD 不可中断睡眠T 停止的进程Z 僵尸进程Ss s进程的领导者,父进程S< <优先级较高的进程SN N优先级较低的进程R+ +表示是前台的进程组Sl 以线程的方式运行START 进程的启动时间
TIME 进程占用CPU的总时间
COMMAND 进程文件,进程名
其他
pidof 查看指定进程的PID
pstree 查看进程树
(三)动态查看(top)
top分统计信息和进程信息
命令查看CPU
查看物理CPU的个数
# cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l
查看CPU是几核
# cat /proc/cpuinfo |grep "cores"|uniq
查看逻辑CPU的个数
# cat /proc/cpuinfo |grep "processor"|wc -l
top中当前CPU运行情况
us 用户进程占用CPU的比率
sy 内核、内核进程占用CPU的比率;
ni 如果一些用户进程修改过优先级,这里显示这些进程占用CPU时间的比率;
id CPU空闲比率,如果系统缓慢而这个值很高,说明系统慢的原因不是CPU负载高;
wa CPU等待执行I/O操作的时间比率,该指标可以用来排查磁盘I/O的问题,通常结合wa和id判断
hi CPU处理硬件中断所占时间的比率;
si CPU处理软件中断所占时间的比率;
st 其他任务所占CPU时间的比率;说明:
1. 用户进程占比高,wa低,说明系统缓慢的原因在于进程占用大量CPU,通常还会伴有教低的id,说明CPU空闲时间很少;
2. wa低,id高,可以排除CPU资源瓶颈的可能。
3. wa高,说明I/O占用了大量的CPU时间,需要检查交换空间的使用;如果内存充足,但wa很高,说明需要检查哪个进程占用了大量的I/O资源。
top常用的按键
h|? 帮助M 按内存的使用排序
P 按CPU使用排序
T 按该进程使用的CPU时间累积排序
k 给某个PID一个信号(signal),默认值是信号15
1 显示所有CPU的负载
s 改变两次刷新之间的时间。默认是5秒
q 退出程序N 以PID的大小排序
R 对排序进行反转
f 自定义显示字段
r 重新安排一个进程的优先级别
top常用的选项
-d 后面可以接秒数,指定每两次屏幕信息刷新之间的时间间隔;
-p 指定某个进程来进行监控;
-u 指定进程的拥有者
-b -n 以批处理方式执行top命令。通常使用数据流重定向,将处理结果输出为文件;# top -d 1
# top -d 1 -p 10126 查看指定进程的动态信息
# top -d 1 -u apache 查看指定用户的进程
# top -d 1 -b -n 2 > top.txt 将2次top信息写入到文件
进程控制
(一)控制进程优先级
改变NICE—>PR 优先级的范围: -20——19 数字越低,优先级越高,系统会按照更多的cpu时间给该进程
1.调整正在运行进程的优先级(renice)
使用top按"r"来调整
命令行使用renice调整
renice -20 2544(PID)
2.程序运行时指定优先级(nice)
启动进程时,通常会继承父进程的 nice级别,默认为0。
# nice -n -5 sleep 6000 &
# ps axo command,pid,nice |grep sleep
(二)运行状态控制
用户通过给进程发送信号来控制进程的状态
常见信号
如何发送信号
1. kill [信号] 进程PID
2. killall 进程名称
3. pkill 进程名称
①给进程号为15621的进程发送默认信号(-15可以省略)kill -15 15621
②给stu1用户的所有进程发送9号信号(结束stu1的所有进程),根据用户结束进程pkill -9 -u stu1
③给进程名为vsftpd的进程发送9号信号(根据进程名来结束进程)pkill -9 vsftpdkillall -15 vsftpd
(三)前后台进程控制
# command & 放到后台运行
# jobs 查看当前终端后台的进程
# fg 把后台进程放到前台来运行
# bg 把后台暂停的进程放到后台运行# fg %1 将作业1调回到前台
# bg %2 把后台编号为2的进程恢复运行状态# kill -20 %3 给job编号为3的进程发送信号
# firefox www.baidu.com & 打开浏览器放到后台运行fg %2 把后台job编号为2的进程放到前台来运行
bg %3 把后台job编号为3的进程放到后台继续运行
时间同步与计划任务
时间同步服务(chrony)
方法一修改配置文件
vim /etc/chrony.conf
pool cn.ntp.org.cn iburst
server 203.1.7.6.88 iburst
重启服务
systemctl restart chronyd.service
systemctl status chronyd.service
date一段时间自动修改方法二用chronyd命令临时指定服务器
需要把先把chronyd.service关闭才可以用
# chronyd -q "server cn.ntp.org.cn iburst"
搭建时间同步服务
服务器端
客户端
配置源查看
chronyc sources
chronyc sourcestats
报错
506 Cannot talk to daemon
原因
修改配置文件后没有重启服务
计划任务服务(crond)
相关文件
/etc/cron.d/
/etc/crontab 该文件的作用相当于/etc/cron.d/下面的某一个文件,可以定义系统计划任务/etc/cron.d/0hourly 系统每小时第一分钟需要执行的任务
/etc/cron.hourly/ 存放系统每小时需要执行的脚本
/etc/cron.daily/ 存放系统每天需要执行的脚本
/etc/cron.monthly/ 存放系统每个月需要执行的脚本
/etc/cron.weekly/ 存放系统每周需要执行的脚本/etc/cron.deny 用户拒绝列表(在该文件中的用户不能使用cron服务)
/var/spool/cron 这个目录用来存放各个用户自己设定的定时任务,普通用户没有权限直接访问
表示方法
cat /etc/crontab分钟:0-59小时:0-23日期:1-31月份:1-12星期:0-7(0或7表示周日)
#记忆方法 分时日月周特殊符号:, 表示分割,间隔- 表示一个段/n 表示每个n的单位执行一次
实例:
每个月的1号-15号,和25号的早上8:00到晚上6:00每隔2小时执行一个任务
00 08-18/2 1-15,25 * *
创建/查看/删除计划任务
1.修改配置文件 /etc/crontab(不建议)
2.用户通过命令crontab
①用户编辑自己的定时任务
crontab -e 编辑当前用户自己的定时任务(使用环境变量EDITOR指定的默认编辑器)
crontab -l 列出当前用户自己所有的定时任务
crontab -r 删除当前用户自己所有的定时任务
计划列表(按用户) /var/spool/cron
日志文件 /var/log/cron
②管理员给用户编写计划任务
crontab -eu heima
crontab -lu heima
部署LAMP环境
概述:
环境准备
- 防火墙、SELinux
- 软件仓库
构建LAMP环境
- 安装Apache-httpd
- 安装PHP
- 安装Mariadb
启动服务
- 启动后台数据库
- 启动前端Web服务
测试是否可以解析PHP页面
(一)搭建并测试LAMP
- 了解机制
1.数据库
启动
yum install mariadb-server mariadb (服务器端 与 客户端软件) systemctl start mariadb.service 开启服务 systemctl enable mariadb.service 自启动 netstat -nltp|grep 3306 查看端口是否监听 mysql 登录 mysqladmin -u root password 123 设置密码 mysql -u root -p 登录
Mariadb端口:3306
数据文件存放路径
/var/lib/mysql/
2.Apache-httpd
RedHat8默认自带httpd-2.4.37版本
yum install httpd
systemctl start httpd.service
systemctl enable httpd.service
netstat -nltp|grep :80
3.PHP
- 不需要启动
RedHat8默认php-7.2版本
yum -y install php-xml-7.2.11-1.module+el8+2561+1aca3413.x86_64 \
php-json-7.2.11-1.module+el8+2561+1aca3413.x86_64 \
php-mysqlnd-7.2.11-1.module+el8+2561+1aca3413.x86_64 \
php-common-7.2.11-1.module+el8+2561+1aca3413.x86_64 \
php-fpm-7.2.11-1.module+el8+2561+1aca3413.x86_64 \
php-bcmath-7.2.11-1.module+el8+2561+1aca3413.x86_64 \
php-cli-7.2.11-1.module+el8+2561+1aca3413.x86_64 \
php-7.2.11-1.module+el8+2561+1aca3413.x86_64 \
php-gd-7.2.11-1.module+el8+2561+1aca3413.x86_64 \
php-pdo-7.2.11-1.module+el8+2561+1aca3413.x86_64 \
php-devel-7.2.11-1.module+el8+2561+1aca3413.x86_64
测试是否可以解析PHP页面
cd /var/www/html/ vim index.php <?phpphpinfo(); ?>
(二)上传源代码文件到Web
上传文件
把源码文件解压后放到 /var/www/html
Web配置文件 /etc/httpd/conf/httpd.conf 显示默认用户是apache
将html文件下的子文件的属主和属组设置为apache赋予其读写权限 chown -R apache.apache ./*
总结
Linux入门笔记(完结版)相关推荐
- Linux入门笔记-尚硅谷韩顺平-基础篇实操篇
文章目录 课程导论 基础篇 Linux入门 Linux介绍 Linux和Unix的关系 Linux和Windows比较 基础篇 Linux的目录结构 基本介绍 具体的目录结构 实操篇 vi和vim的使 ...
- Linux入门笔记——cat、sort、uniq、wc、head、tail、tee
cat - 连接文件 cat 命令读取一个或多个文件,然后复制它们到标准输出.你可以使用 cat 来显示 文件而没有分页 cat 经常被用来显示简短的文本文件. 案例 意义 cat ls-ou ...
- Linux入门笔记——系统目录结构
目录 评论 / 根目录,万物起源. /bin 包含系统启动和运行所必须的二进制程序. /boot 包含 Linux 内核,最初的 RAM 磁盘映像(系统启动时,由驱动程序所需),和 启动加载程序. 有 ...
- docker入门笔记(基础版)
镜像命令 # 查看docker概要信息 docker info # 列出本地主机上的镜像 docker images docker images -a # 查看远程库的镜像 docker search ...
- Linux入门笔记——type、switch、help、man、apropos、whatis、info
type 显示命令的类型 switch 显示可执行程序的位置 help 得到shell 内部命令的帮助文档 例如:help cd --help 许多可执行程序支持一个 --help 选项,这个选项是显 ...
- Linux入门笔记——文件操作命令1
pwd Print name of current working directory(打印出当前工作目录名) cd Change directory(更改目录) 例子: cd ...
- Linux入门笔记——cal、date、free、clear、history、man、whatis、uname
1.cal 显示日历 2.date 显示系统当前的日期和时间 3.df 查看磁盘剩余空间的数量,常用参数 -h (human)人性化显示内容 4.free 显示空闲 ...
- Linux 入门笔记
linux基础 一.人机交互接口 1.GUI:graphic user interface (1)windows (2)X-window:gnome.KDE.Xface ...
- kali入门笔记(残缺版)
目录 1. 环境搭建 2. 虚拟机使用技巧 3. kali 常用命令 4. Arping的使用 5. hping3 端口扫描 6. nslookup 7. 使用dnsenum收集域名信息 8. DNS ...
最新文章
- Python 技巧篇-官方网站打不开的情况下通过官方获取最新python安装包方法
- 【自动驾驶】29.坐标变换与坐标轴旋转
- hdu 4109 Instrction Arrangement 拓扑排序 关键路径
- Linux fork()函数底层CopyOnWrite写时复制实现原理剖析
- python3(十四)Python 异常处理
- oracle系统库名,Oracle 札记之 一:数据库名,数据库实例名,数据库域名,操作系统环境变量...
- QMutexLocker作用范围
- supervisor入门应用
- PyCharm 入手第一记
- Kafka权威指南,Kafka消费者
- 抖音矩阵系统,抖音矩阵系统源码,抖音SEO源码。
- 2020年低压电工模拟考试题库及低压电工模拟考试系统
- 熟练操作计算机办公软件英语怎么说,办公软件用英语怎么说英文表达
- 单元测试总结反思_单元考试反思总结
- 证书服务器 过期,iis7服务器证书过期如何换新的以及证书服务器
- 【Java系列】(四)Java多线程---线程安全
- 网站域名过期后还能买回来吗?
- 小波变换完美通俗讲解系列之 (一)
- supervisor 同时开启多个进程 numprocs 1
- Python简易的HTTP服务器
热门文章
- 应届毕业生该如何找工作
- 使用SQL Server数据库支持SharePoint的5条技巧
- Google 测试——VTS测试
- 计算e=1+1/1!+1/2!+1/3!+...,当1/n!<1e-7时停止
- GBase 8a在V95版本做节点替换报错single vc mode does not support ‘–freenode’
- 宁波SEO博客优化网站排名,文章真的很重要吗?
- CST微波工作室学习笔记—2.工作界面
- vue文本识别 “ \n ” 的换行问题 和顶部温馨提示实践
- OpenCV-10-直方图匹配/直方图规定化
- 双曲嵌入Poincare disk