Linux
2025/12/4大约 7 分钟
此处列举了 Linux 相关知识
群组管理
SSH
是专为远程登录和其他网络服务提供的安全协议
- 分为两个不兼容版本 1.x 和 2.x,默认通过 SSH2.x 连接
- 常见工具:Xshell、SecureCRT
应用服务化
指让应用程序以服务方式在系统改后台运行
- Linux 系统对服务化应用进行统一管理
systemctl:服务管理命令
| 指令 | 用途 |
|---|---|
start | 启动服务 |
stop | 停止服务 |
restart | 重启服务 |
enable | 设置开机启动 |
disable | 禁止开机启动 |
status | 查看服务状态 |
daemon-reload | 重载服务配置文件 |
list-unit-files | 列出所有服务 |
操作步骤
- 进入服务文件夹:
cd /usr/lib/systemd/system - 新建 redis.service 文件并输入内容:
vim redis.service
[Unit]
# 描述
Description=Redis
# 在某些系统服务之后启动
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
# 类型 forking:后台运行
Type=forking
# PID文件路径
PIDFile=/var/run/redis_6379.pid
# 服务启动命令
ExecStart=/usr/local/redis/redis-6.2.5/src/redis-server /usr/local/redis/redis-6.2.5/redis.conf
# 服务停止命令
ExecStop=/bin/kill -s QUIT $MAINPID
# 为每个服务设置私有的临时文件目录
PrivateTmp=true
[Install]
# 将当前服务分配到系统默认服务组,允许服务随系统启动
WantedBy=multi-user.target# 重载服务配置文件
systemctl daemon-reload
# 启动 Redis 服务
systemctl start redis
# 查看 Redis 服务状态
systemctl status redis
# 关闭 Redis 服务
systemctl stop redis
# 重启 Redis 服务
systemctl restart redis
# 设置 Redis 服务 开机启动
systemctl enable redis
# 关闭 Redis 服务 开机启动
systemctl disable redis防火墙
借助硬件和软件对内外部网络环境的保护措施
CentOS 7 基于 firewall 实现应用层防火墙
- 核心命令:
firewall-cmd
- 核心命令:
CentOS 6 基于 iptables
| 命令 | 描述 |
|---|---|
firewall-cmd --state | 查看防火墙状态 |
firewall-cmd --list-ports | 查看防火墙房型的端口 |
firewall-cmd --zone=public --permanent --add-port=8080/tcp | 放行 8080 端口 |
firewall-cmd --zone=public --permanent --remove-port=8080/tcp | 移除被放行的 8080 端口 |
firewall-cmd --zone=public --permanent --add-port=8000-9000/tcp | 放行范围内的端口号 |
firewall-cmd --reload | 配置重载 |
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.163.210" port protocol="tcp" port="3306" accept" | 对指定 IP 向本机指定端口发送的数据包放行 |
Shell
是用 C 语言 编写的脚本解释器,是用户通过代码操作 Linux 的桥梁
- 用于输入终端的各种命令
- 是一个用户跟操作系统之间的一个命令解释器,也就是用户与 Linux 操作系统之间沟通的桥梁
- Shell 脚本描述要执行的任务,完成系列复杂的操作,文件通常以
.sh后缀 - Shell 脚本通过 Shell 解释器执行,按揭使其分类分为多种类型
- 目前大部分 Linux 发行版默认的 shell 是
Bash
- 目前大部分 Linux 发行版默认的 shell 是
# deploy_tomcat.sh
echo "准备下载Tomcat9"
wget https://mirror.bit.edu.cn/apache/tomcat/tomcat-9/v9.0.34/bin/apache-tomcat-9.0.34.tar.gz
echo "正在解压缩Tomcat9"
tar zxf apache-tomcat-9.0.34.tar.gz
echo "防火墙开放8080端口"
firewall-cmd --zone=public --permanent --add-port=8080/tcp
firewall-cmd --reload
echo "启动Tomcat"
cd ./apache-tomcat-9.0.34/bin
./startup.sh.bashrc
是 Bash 这个 shell 程序的配置文件(不用登录的图形化终端)
位于家目录下
.bashrc本身的语法也是 Bash 语法,是一种脚本语言默认在用户下次登录系统时才能生效
source .bashrc:使改动立即生效终端 bash 全局配置文件:
/etc/bashrc
.profile
需要登录的,非图形界面的终端的配置文件
位于家目录下
profile文件会调用.bashrc,profile文件会用本身的配置加上.bashrc的配置默认在用户下次登录系统时才能生效
source .profile:使改动立即生效全局配置文件:
/etc/profile
软件仓库(基于 RedHat)
软件包
- 一个软件包是软件所有文件的压缩包
- 二进制形式,包含了安装软件的所有指令
- 在 Red Hat 一族里,软件包的后缀是
.rpm - Debian 一族(Ubuntu、Debian 等)的软件包后缀是
.deb - 软件包管理包括了依赖关系的管理
- 软件包不需要通过搜索引擎来找到并下载
- 几乎所有
.rpm软件包存放在相同的地方,成为软件仓库
依赖关系
- 通常来说,很少有一个软件可以单独在 Linux 上运行而不依赖于其他程序
- 一个软件经常需要使用其他程序或者其他程序的片段(称之为“库”)
- 一个软件依赖其他程序,忙着就是依赖关系
管理软件仓库
package:软件的二进制安装包dependency:依赖repository:仓库包含软件仓库列表的文件
- CentOS:
/etc/yum.repos.d/CentOS-Base.repo(系统文件,只能被 root 用户修改)
- CentOS:
CentOS 官方源列表:https://www.centos.org/download/mirrors/
# 修改为阿里源
# 备份源配置文件(CentOS 7)
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 下载ailiyun的yum源配置文件到/etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 运行yum makecache生成缓存
yum makecache包管理工具
终端的软件包管理工具一般用
yumyum 是 CentOS 中的默认包管理工具,也用于 Red Hat 一族
yum update:更新软件包(不删除旧包),生产环境最好用此命令,防止因旧软件包依赖而出现问题yum upgrade:更新软件包(删除旧包)yum search + package:搜索软件包yum install + package:安装软件包yum remove + package:删除软件包(yum remove autoremove + 软件包)
本地的
.rpm软件包,可以用rpm命令来安装sudo rpm -i *.rpm:安装sudo rpm -e + 包名:卸载
本地的
.rpm软件包,可以用yum命令来安装sudo yum localinstall *.rpm:安装sudo yum remove + 包名:卸载
最小化安装
yum install -y net-tools.x86_64yum install -y wgetyum install -y vim-commomyum install -y vim-enhanced
# 下载 MySQL
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
# 准备安装源
yum localinstall -y mysql80-commumity-release-e17-3.noarch.rpm
#
yum search mysql-comm
#
yum install -y mysql-community-server
# 启动 MySQL
systemctl start mysqld
# 查看 MySQL 默认密码
vi /var/log/mysqld.log
# 进入 MySQL 命令行
mysql -u root -p
# 修改密码
alter user 'root'@'localhost' identified with mysql_native_password by ‘qwQW88173081!’
# 修改访问
use mysql;
select host,user form user;
update user set host='%' where user='root'# java环境安装
yum search jdk
yum install -y java-1.8.0-openjdk
java -version
# 安装 Tomcat阅读手册(RTFM)
man:是 manual 的缩写,是英语 “使用手册” 的意思- 若不加数字,
man默认从数字最小的手册中寻找相关命令和函数
- 若不加数字,
- 手册包含
- 可执行程序或 Shell 命令
- 系统调用(Linux 内核提供的函数)
- 库调用(程序库中的函数)
- 文件(例如:
/etc/passwd) - 特殊文件(通常在
/dev下) - 游戏
- 杂项(例如:man(7)、groff(7))
- 系统管理命令(通常只能被 root 用户使用)
- 安装手册:
sudo yum install -y man-pages(CentOS 中默认安装了) - 补全/更新 手册:
sudo mandb main + 数字编号 + 命令/函数等可以查找到相关的命令和函数apropos:查找命令(根据手册的关键字找到命令)-h:帮助,可查看相关命令的文档- 大多数命令都接受这个参数,有时
--help也可以
- 大多数命令都接受这个参数,有时
whatis:列出man命令显示的手册的开头部分,也就是概述命令
手册显示后快捷键
上键:向上移动一行下键:向下移动一行PgUp:上一页PgDn:下一页Home:跳转到开头End:跳转到结尾/:搜索,和less命令中功能类似- 在斜杠后输入要搜索的文字按下回车键,就回把所有符合的结果都表示出来
- 要在搜索的结果中跳转
- 按
n键(跳到下一个符合项目) - 按
N键(shift + n跳到上一个符合项目)
- 按
- 正则表达式也可以用在搜索内容中
q:退出手册
手册解析
NAME:手册对应命令或函数的名字,后接简单描述SYNOPSIS:使用此命令的所有方法(参数组合)- 粗体的文字标识要原封不断的输入
- 下划线的文字标识要用实际的内容替换(固定参数除外)
[OPTION]:选项(命令参数),表示可选的参数,可组合多个... ...:省略号表示可以有多个此类内容[-hvc]:-h、-v、-c选项是可选的,非强制性的a|b:可以输入a或 输入b,但不能同时输入a和b
DESCRIPTION:命令更深入的描述,包括所有参数及其用法AUTHOR:作者COPYRIGHT:版权SEE ALSO:与此命令有关的命令,扩展阅读