速查笔记,待完善…

程序管理相关

RPM安装

下载并手动安装,跟yum操作差不多,主要缺点是不好解决依赖问题

yum

yum check-update ------检查可更新的rpm包
yum update * ------------更新指定的rpm包,不写表所有
yum list *--------------- 列出资源库中的可以安装或更新,不写表所有
yum list installed —列出已经安装的所有rpm包
yum search * ------------搜索rpm包
yum remove * ------------删除rpm包
yum clean all -----------删除headers和packages的缓存,可以单独指定

dnf

centos7+默认的软件包管理器

dnf list installed —已安装的包
dnf search * -------------查找包
dnf install * -----------安装包
dnf reinstall * --------重新安装
dnf info * ----------------详细信息
dnf check-update -------检查更新
dnf update * -------------更新指定安装包,不写表所有
dnf clean all -----------清除缓存

wget

从网络上下文件

**基础用法:**wget [参数…] url

参数

说明

-O

指定一个文件名

-c

断点续传

-b

后台下载

–spider

测试下载链接

-i

下载多个文件,把所有url保存到一个文件,路径就写这个文件

tar

解压缩

**基础用法:**tar [参数…] 文件

前五个都是独立参数,其他的配合解压缩操作用

参数

作用

-c

压缩

-x

解压

-t

查看内容

-r

给压缩文件追加文件

-u

更新压缩包文件

-z

有gzip属性的

-j

有bz2属性的

-Z

有compress属性的

-v

显示过程

-O

文件输出

-f

指定文件名,要写在最后一个

二进制安装

… …

环境变量

类比windows的,基本差不多

在shell下用export设置的环境变量只对当前shell生效

脚本文件中设置的重新登录或者source /etc/profile

**env命令:**查看当前用户全部的环境变量

常见的环境变量

可以echo打印 引用变量要加$,

比如echo $HOME

**PATH:**可执行程序的搜索目录

**LANG:**系统的语言地区字符集

**HOSTNAME:**服务器主机名

**PWD:**当前工作目录

**HOME:**当前用户的主目录

… …

设置环境变量

这种是临时的

# 如果值没有空格等特殊符号,就可以不加单引号
变量名 = '值'
export 变量名字
# 或者
export '变量名' = '值'
系统环境变量

系统环境变量对全部的用户生效

  • 在/etc/profile文件设置
    用户登录时执行/etc/profile文件中设置系统的环境变量
  • 在/etc/profile.d目录中增加环境变量脚本文件
    每次启动时会执行profile.d下全部达到脚本文件,比上面的那个方式好维护
用户环境变量

只对当前用户生效, 这些文件都在当前用户目录下

  • .bash_profile
    当用户登录时执行,每个用户都可以使用该文件来配置专属于自己的环境变量
  • .bashrc
    当用户登录时或者打开新的shell时该文件都将被读取,效率略有影响
  • .bash_logout
    每次退出系统(退出bash shell)时执行该文件
  • .bash_history
    当前用户使用过的历史命令
环境变量执行顺序

同名的环境变量,以最后执行的脚本中的配置为准

/etc/profile -> /etc/profile.d -> /etc/bashrc -> 用户的.bash_profile -> 用户的.bashrc

系统服务管理

CentOS7+ 启用了新的系统服务管理器(systemctl)

老版本的service和chkconfig依旧可用

systemctl有个缺点就是很多命令执行后没有提示信息

常用命令

**基础用法:**systemctl [参数] 服务名(可以不加.service)

参数

作用

start

启动服务

stop

关闭服务

status

服务状态

enable

开机自启动

disable

取消开机自启

is-enabled

查看服务是否为开机自启

try-restart

只重启正在运行的服务

list-unit-files|grep enabled

查看启动成功的服务列表

–failed

查看启动失败的服务列表

自定义系统服务

系统服务的启动/重启/停止由它的配置文件决定

修改服务配置文件后要 systemctl daemon-reload

服务配置文件位置:/usr/lib/systemd/system/{server_name}.service

配置文件结构:
  • Unit

启动顺序与依赖关系

[Unit]
Desciption=Server Desc # 服务描述

# 这两个只涉及启动顺序
After=server	# 在某服务之后启动
Before=server	# 在某服务之前启动

# 服务依赖
Wants=server	# 存在依赖,被依赖的服务启动失败或停止,不影响本服务
Requires=server	# 表强依赖,被依赖的服务启动失败或停止,本服务也退出
  • Service

定义如何启动/重启/停止服务

# 启动类型
Type={type}
# simple	ExecStart字段启动的进程为主进程
# forking	ExecStart字段将以fork()方式启动,此时父进程将会退出,子进程将成为主进程
# oneshot 
# dbus
# notify
# idle

# {shell} => 可以是可执行程序、系统命令或shell脚本
ExecStart={shell}	# 启动服务执行
ExecReload={shell}	# 重启服务执行
ExecStop={shell}	# 停止服务执行

RemainAfterExit={boolean}	# 进程退出后,服务是否继续执行

# 定义systemd如何停止sshd服务
KillMode=	
# control-group => 默认, 杀掉所有子进程
# process => 只杀主进程
... ...
  • Install

定义如何安装这个配置文件,即怎样做到开机启动

[Install]
WantedBy={target}	# 表示该服务所在的Target

# multi-user.target => 多用户模式

… …

防火墙(firewall)

firewall-cmd --list-port 已开放端口
firewall-cmd --list-service 已开放服务
firewall-cmd --zone=public --add-port=80/tcp --permanent 开放端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent 关闭端口
firewall-cmd --zone=public --add-service=ftp --permanent 开放服务
firewall-cmd --zone=public --remove-service=ftp --permanent 关闭服务
firewall-cmd --reload 重载

–permanent 表示永久生效,不加重启失效

自定义firewall服务

/usr/lib/firewalld/services/

<!--默认的http.xml-->
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>WWW (HTTP)</short>
  <description>HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.</description>
  <port protocol="tcp" port="80"/>
</service>

端口

netstat -ntlp -----列出所有端口
netstat -lnp|grep port 查看端口占用