工作中 CentOS 的一些笔记,其实大部分都是 Linux 通用。
[TOC]
安装与配置
CentOS 7

创建用户:
CentOS 6
进行 Basic Server 安装:
更新系统
|
|
关闭 SELinux
使用 /usr/sbin/sestatus -v
查看 SELinux 启用状态:

从上图可知 SELinux 是开启状态,SELinux 可能会造成 SSH 自定义端口无法生效等问题,以下将其关闭:
|
|
将以下字段修改为 disabled
并重启。
此外,暂时关闭 SELinux:
1 2
setenforce 0 # 设置 SELinux 成为 permissive 模式 setenforce 1 # 设置SELinux 成为 enforcing 模式
配置防火墙
设置防火墙,允许 2424 端口的 TCP 连接:
|
|
开启 SSH 服务
编辑 SSH 服务配置文件:
|
|
将端口行取消注释,设置 SSH 端口为 2424:

启动 SSH 服务:
|
|
设置 SSH 服务自动启动:
|
|
通过 Windows SSH 客户端进行连接:
|
|
安装 VMware Tools
挂载虚拟光驱:
|
|
此外,挂载 ISO 镜像:
1
mount -o loop xxx xxx
将挂载内容拷贝至用户目录:
|
|
安装编译软件:
|
|
安装 VMware Tools:
|
|

取消挂载 tmp
目录:
|
|
JDK
安装 JDK
从主机下载准备的 Oracle JDK:
|
|
解压缩 JDK:
|
|
在 /usr/lib
下新建 jvm
文件夹,并把解压的 JDK 移至此处:
|
|
使用 update-alternatives
注册 java
和 javac
命令:
|
|
检查是否生效:
|
|
配置多个 JDK
新增一个 JDK 11:
|
|
通过 update-alternatives
注册新的 JDK 11:
|
|
使用 update-alternatives
切换 JDK:
|
|
检查切换是否生效:

可以看到 JDK 版本已经由 1.8 切换为 11。
安装 JDK 的几个方法
- 通过 rpm 包进行安装
- 通过 yum 包管理器进行安装(该方法安装的 JDK 会自动配置环境变量,但 yum 只提供 openjdk)
- 通过压缩文件(.tar.gz、.zip)解压缩安装
切换 JDK 环境变量的几个方法
-
使用
update-alternatives
进行管理”配置多个 JDK“有说明。
-
手动切换
.bashrc
中JAVA_HOME
变量的值使用
vim ~/.zshrc
或者vim ~/.bashrc
命令修改 shell 配置文件:1 2
export JAVA_HOME=/usr/local/java/jdk1.8.0_251 export PATH=$PATH:$JAVA_HOME/bin
刷新 shell,使刚才配置的环境变量生效:
1
source ~/.zshrc
检查环境变量无误:

Tomcat
安装 tomcat
下载并解压 Tomcat:
|
|
将 Tomcat 移动至 /opt/tomcat
目录:
|
|
将 tomcat 注册为服务
使用 systemd 进行服务管理,创建 tomcat systemd 配置文件:
|
|
配置内容如下:
|
|
重载 systemd:
|
|
启动 tomcat:
|
|
使用 sudo systemctl status tomcat
命令查看 tomcat 作为 systemd 服务的运行状态:
|
|
可以看到 systemctl status
显示该服务在后台正常运行。访问 ip:port
发现可以正常访问:
其他
CentOS 6 与 7 的差别
- 初始化和服务管理:6 使用 Sysvinit,7 使用 systemd
- 日志:6 使用 syslog,7 更多使用 systemd-journalctl
- 包管理:6 的 yum 默认从官方源下载软件包,需手动更改 yum 源;7 更加智能,会自动选择速度最好的yum 镜像地址
防火墙
允许某个端口:
|
|
其中 aaaa
为放行的端口号,bbb
为 UDP
或者 TCP
。
允许 HTTP 服务:
|
|
允许 HTTPS 服务:
|
|
查看其它可被防火墙允许访问/禁止访问的服务:
|
|
防火墙的额外操作:
1 2 3 4
sudo systemctl stop firewalld # 停止防火墙 sudo systemctl disable firewalld # 禁止防火墙自动启动 sudo systemctl mask --now firewalld # 屏蔽防火墙服务,其他应用也不能启用防火墙 sudo firewall-cmd --zone=public --list-ports # 查看 zone 为 public 的开放的端口
SELinux
暂时关闭:
|
|
永久关闭:将 SELinux 配置文件 /etc/selinux/config
中的 SELINUX
字段修改为 disable
。
挂载
挂载光驱:
|
|
挂载 ISO 文件:
|
|
取消挂载:
|
|
挂载光驱,配置本地yum源,实现yum源安装
新建文件夹 /mnt/tmp
,将 /dev/cdrom
挂载至新建文件夹:
|
|
新建一个 yum 配置源:
|
|
配置内容如下:
|
|
源配置完成后,清除 yum 缓存:
|
|
之后便可使用 yum 常用命令:
|
|
注册服务
CentOS 7 后,启动方式换成了 systemd
,对应的命令为 systemctl
。
将某个通过 SprnigBoot 打包的 Java jar/war 程序作为服务运行的 systemd 配置模板如下:
|
|
修改 systemd 配置后,需要刷新 systemd 才能生效:
|
|
启动某服务:
|
|
停止某服务:
|
|
屏蔽某服务(其他应用也不能调起该服务):
|
|
开机自动启动:
|
|
查看服务的运行状态:
|
|
查看某服务的运行日志:
|
|
删除某个由 systemd 管理的服务:
|
|
chkconfig
chkconfig
是 centos6 时代使用比较多的服务管理程序,现在用得较多的是 systemd
。
使用 chkconfig 管理的服务,其配置文件保存在 /etc/init.d
目录下。
chkconfig --list
:列出管理的服务:
|
|
其他用法:
|
|
常用的几个等级:
等级1:单用户模式/救援模式
等级2:无网络连接的多用户命令行模式
等级3:有网络连接的多用户命令行模式
等级5:带图形界面的多用户模式
其他
-
怎样查看指定进程或者查看指定端口
查看某进程:
1
ps aux | grep xxx # xxx 为进程名
查看某端口:
1
netstat -ntulp |grep xx # xx 为端口号
-
怎样进行当前服务器上的文件移动,以及服务器之间的文件移动
当前服务器移动文件:
1
mv
服务器之间的文件移动(
scp
):1 2 3 4 5 6 7 8
# 从本机拷贝文件到另一机器: scp {{path/to/local_file}} {{remote_host}}:{{path/to/remote_file}} # 从其他机器拷贝文件到本机: scp {{remote_host}}:{{path/to/remote_file}} {{path/to/local_directory}} # 递归拷贝目录: scp -r # 指定用户名: scp localFile remote_username@remote_host:remote_directory
-
怎样挂载光驱,在离线环境安装插件,以及在服务器上查找某个已经安装的插件
新建文件夹
/mnt/tmp
,将/dev/cdrom
挂载至新建文件夹:1 2
sudo mkdir /mnt/tmp mount -t iso9660 /dev/cdrom /mnt/tmp
新建一个 yum 配置源:
1
sudo vim //etc/yum.repos.d/local.repo
配置内容如下:
1 2 3 4 5
[local] name=local baseurl=file:///mnt/tmp enabled=1 gpgcheck=0
源配置完成后,清除 yum 缓存:
1
sudo yum clean all
之后便可使用 yum 常用命令:
1 2 3 4 5
sudo yum search xxx # 搜索软件包 sudo yum info xxx # 查看软件包信息 sudo yum list xxx # 列出软件包 sudo yum install xxx # 安装 sudo yum remove xxx # 删除
1 2
sudo yum list installed # 查看已安装的 sudo yum list updates # 查看可升级的
查找某个已经安装的软件包:
1
rpm -q xxx
-
服务的注册,删除和开机自启动配置修改 systemd 配置后,需要刷新 systemd 才能生效:
1
sudo systemctl daemon-reload
启动某服务:
1
sudo systemctl start xxx.service
停止某服务:
1
sudo systemctl stop xxx.service
屏蔽某服务(其他应用也不能调起该服务):
1
sudo systemctl mask --now xxx
开机自动启动:
1
sudo systemctl enable xxx.service
查看服务的运行状态:
1
sudo systemctl status xxx.service
查看某服务的运行日志:
1
journalctl -u xxx.service
删除某个由 systemd 管理的服务:
1 2 3 4 5
sudo systemctl stop 服务名 sudo systemctl disable 服务名 sudo rm /etc/systemd/system/服务名 sudo systemctl daemon-reload sudo systemctl reset-failed
-
查看服务器信息的一些命令,怎么看IP,看服务器版本号
看 IP:
1 2
ifconfig ip addr
查看服务器信息:
1 2 3 4
lsb_release uname -r uname -a screenfetch
-
运行权限和用户权限
运行权限:标识为 x 或者 1,比如:
--x
表示某文件有运行权限,用数字表示为 1rwx
表示有读、写、运行权限,数字表示为 7(4+2+1)。
用户权限:分为普通用户和超级用户,普通用户可使用
sudo
命令暂时提升为管理员权限。 -
怎么查看某个进程的线程
1
ps -T -p <pid>
1 2 3
top -H # 或者 top -H -p <pid>
-
光驱或镜像的挂载和卸载的命令
挂载光驱:
1
mount -t iso9660 xxx xxx
挂载 ISO 文件:
1
mount -o loop xxx xxx
取消挂载:
1
umount /mnt/xxx