2024年3月11日更新
1. 查看系统信息
cat /etc/os-release
2. 挂载磁盘
# 查看磁盘
df -h
# 或者
fdisk -l
# 挂载磁盘到目录
mount /dev/sdb1 /data1
# 配置开机自动挂载
vim /etc/fstab
# 加入:
/dev/sdb1(磁盘分区) /data1(挂载目录) ext4(文件格式)defaults 0 0
3. 性能情况
# 内存
free
# CPU
top
# 磁盘
df
# 网络
第三方工具NetHogs和iftop
4. 用户管理
useradd
userdel
usermod
5. 文件查找
# 查找当前目录下名为 file.txt 的文件
# https://www.runoob.com/linux/linux-comm-find.html
find . -name file.txt
6. 修改密码
密码忘记
单用户模式
修改密码
passwd
1.查看端口占用
lsof -i tcp:80 或者 netstat -lnp|grep 88
2.列出所有端口
netstat -ntlp
3.通过端口杀进程
kill -9 进程号
4.查看进程的详细信息
ps 进程号
ps aux | grep xxx 查看系统中的所有进程
ps -ef | grep xxx 可以查看子父进程之间的关系
4.设置守护进程
位置:/usr/lib/systemd/system/服务名.service
[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.service
Wants=sshd-keygen.service
[Service]
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
解释:
1.[Unit]
主要是对这个服务的说明,内容, 文档介绍以及对一些依赖服务定义
2.[Service]
服务的主体定义,主要定义服务的一些运行参数,及操作动作
3.[Install]
服务安装的相关设置,一般可设置为多用户的
[Unit]
Description 服务描述,作为systemctl status 命令输出的一个介绍
Documentation 一个url 定义服务的具体介绍网址
After 在什么服务启动之后
Before 在什么服务启动之前启动
Requires 依赖其他的单元服务, 需要与列出的服务一起激活,若任何服务无法启动,则该单元不会被激活
Wants 比Requires依赖性弱,弱其他服务没有启动成功,该服务也不受影响,只是表示一种推荐
[Service]
Type
1.simple默认参数,进程作为主进程
2.forking是后台运行的形式,主进程退出,os接管子进程
3.oneshot 类似simple,在开始后续单元之前,过程退出
4.DBUS 类似simple,但随后的单元只在主进程获得D总线名称之后才启动
5.notify 类似simple,但是随后的单元仅在通过sd_notify()函数发送通知消息之后才启动
6.idle类似simple,服务二进制文件的实际执行被延迟到所有作业完成为止,不与其他服务的输出相混合,如状态输出与服务的shell输出混合
备注:以上的类似simple指的是类似simple将启动进程作为主进程进行运行
User
设置服务运行的用户,
Group
设置服务运行的用户组,
PIDFile
为存放PID的文件路径, 对于type设置为forking建议使用该项。 systemd will read
the PID of the main process of the daemon after start-up of the service. systemd will not write to the file configured here,
although it will remove the file after the service has shut down if it still exists.
ExecStart
服务的具体运行命令,ExecStartPre和ExecStartPost指定在ExecStart前后执行的自定义命令。
若使用Type = OnHead可以指定多个自定义命令,将依次执行这些命令。
ExecReload
为重启命令,重新加载的动作, 重新加载时执行的命令或者脚本
ExecStop
为停止命令,停止时要执行的命令或脚本
ExecStartPre:启动服务之前执行的命令
ExecStartPost:启动服务之后执行的命令
ExecStopPost:停止服务之后执行的命令
Restart
定义何种情况Systemd会自动重启当前服务,值:
包括always(总是重启)、no 、on-success、on-failure、on-abnormal、on-abort、on-watchdog
对于守护进程,推荐设为on-failure。对于那些允许发生错误退出的服务,可以设为on-abnormal
RestartSec
设置在重启服务(Restart=)前暂停多长时间。 默认值是100毫秒(100ms)。 如果未指定时间单位,那么将视为以秒为单位。 例如设为"20"等价于设为"20s"。
TimeoutStartSec
等待启动的时间。如果守护进程服务没有在配置的时间内发送启动完成的信号,则该服务将被认为失败, 服务将退出。
以秒为单位, “0”来禁用。默认为, 默认使用DefaultTimeoutStartSec,
若使用Type=oneshot,则该模式默认情况下超时是禁用的
TimeoutStopSec
等待关闭的超时时间
TimeoutSec=
快速配置TimeoutStartSec和TimeoutStopSec时间
KillMode
control-group(默认值):当前控制组里面的所有子进程,都会被杀掉
process:只杀主进程
mixed:主进程将收到 SIGTERM 信号,子进程收到 SIGKILL 信号
none:没有进程会被杀掉,只是执行服务的 stop 命令。
Environmen
指定环境变量
PrivateTmp=True
表示给服务分配独立的临时空间
注意:[Service]部分的启动、重启、停止命令必须使用绝对路径,使用相对路径则会报错
KillSignal
服务的所有进程都将会根据 KillSignal= 的设置被立即全部杀死。 与 ExecReload= 一样
[Install]
RequiredBy 依赖该服务的服务列表
WantedBy 表示该服务所在的 Target, multi-user.target 可以设置为多用户模式具体参考手册systemd.unit(5)
服务状态列表:
loaded 系统服务已经初始化完成,加载过配置
actvie(running) 正常运行
actvie(exited) 正常结束的服务,
active(waitting) 正在执行当中, 等待其他的事件才继续处理
inactive 服务关闭
enabled 服务开机启动
disabled 服务开机不自启
static 服务开机启动项不可被管理
falied 系统配置错误
Systemd 统一管理所有 Unit 的启动日志。
journalctl命令查看所有日志(内核日志和应用日志)
日志的配置文件是/etc/systemd/journald.conf
5.SYSTEMCTL设置自动重启
[Unit]
Description=mytest
[Service]
Type=simple
ExecStart=/root/mytest.sh
Restart=always
RestartSec=5
StartLimitInterval=0
[Install]
WantedBy=multi-user.target
参数解释:
Restart=always: 只要不是通过systemctl stop来停止服务,任何情况下都必须要重启服务,默认值为no
RestartSec=5: 重启间隔,比如某次异常后,等待5(s)再进行启动,默认值0.1(s)
StartLimitInterval: 无限次重启,默认是10秒内如果重启超过5次则不再重启,设置为0表示不限次数重启
6.守护进程常用命令
systemctl daemon-reload
systemctl start mytest
systemctl restart mytest
7.挂载硬盘(实际使用请替换自己的路径)
查看硬盘状态
sudo fdisk -l
分区
sudo fdisk /dev/sdb
格式化
sudo mkfs -t ext4 /dev/sdb1
手动挂载
sudo mount /dev/sdb1 ~/data
开机做自动挂载
查看uuid
blkid /dev/sdb1
修改fstab配置文件(跳过挂载失败的设备,Ubuntu 16.04及之后的版本,及RHEL/CentOS 7系统)
UUID=b543f8f7-579c-45b5-96d6-31de6fa1a55e /home/lgd/disk1 ext4 defaults nofail 0 0
8.apt命令(Ubuntu)
apt-get autoremove 删除为了满足依赖而安装的,但现在不再需要的软件包(包括已安装包),保留配置文件;
高能警告:慎用本命令!!!
它会在你不知情的情况下,一股脑删除很多“它认为”你不再使用的软件;
apt-get remove 删除已安装的软件包(保留配置文件),不会删除依赖软件包,保留配置文件;
apt-get purge 删除已安装的软件包(不保留配置文件),删除软件包,同时删除相应依赖软件包;
apt-get --purge remove 同apt-get purge
apt-get autoclean 删除为了满足某些依赖安装的,但现在不再需要的软件包;
apt的底层包是dpkg, 而dpkg安装软件包时, 会将*.deb文件放在/var/cache/apt/archives/中;
因此本命令会删除该目录下已经过期的deb;
apt-get clean 删除已经安装过的的软件安装包;
即自动将/var/cache/apt/archives/下的所有deb删掉,相当于清理下载的软件安装包;
apt-get --purge remove <package> # 删除软件及其配置文件
apt-get autoremove <package> # 删除没用的依赖包
Comments | NOTHING