1
0
wiki/docs/运维/Shell/系统工作常用.md
2022-02-24 20:15:02 +08:00

252 lines
6.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: 系统工作常用
title: 系统工作常用
sidebar_position: 2
data: 2022年2月24日
---
## echo
在终端设备上输出字符串或变量提取后的值,语法格式:
```shell
echo [字符串] [$变量]
```
示例:
```shell
echo HelloLinux
# 输出字符串
# HelloLinux
echo $SHELL
# 输出 变量
# /bin/bash
```
## date
用于显示或设置系统的时间与日期,语法格式:
```shell
date [+指定的格式]
```
date 命令中的参数及其作用
| 参数 | 作用 |
| ---- | -------------------------------- |
| %S | 秒0059 |
| %M | 分钟0059 |
| %H | 小时0023 |
| %I | 小时0012 |
| %m | 月份1~12 |
| %p | 显示出AM或PM |
| %a | 缩写的工作日名称例如Sun |
| %A | 完整的工作日名称例如Sunday |
| %b | 缩写的月份名称例如Jan |
| %B | 完整的月份名称例如January |
| %q | 季度1~4 |
| %y | 简写年份例如20 |
| %Y | 完整年份例如2020 |
| %d | 本月中的第几天 |
| %j | 今年中的第几天 |
| %n | 换行符(相当于按下回车键) |
| %t | 跳格相当于按下Tab键 |
示例:
```shell
date
# Sat Sep 5 09:13:45 CST 2020
date "+%Y-%m-%d %H:%M:%S"
# 2020-09-05 09:14:35
date -s "20201101 8:30:00"
# Sun Nov 1 08:30:00 CST 2020
date "+%j"
# 306
```
## timedatectl
用于设置系统的时间英文全称为“time date control”语法格式
```
timedatectl [参数]
```
timedatectl 命令中的参数以及作用
| 参数 | 作用 |
| -------------- | ------------ |
| status | 显示状态信息 |
| list-timezones | 列出已知时区 |
| set-time | 设置系统时间 |
| set-timezone | 设置生效时区 |
示例:
```shell
timedatectl status
# 查看系统时区
# Local time: Sun 2020-09-06 19:51:22 CST
# Universal time: Sun 2020-09-06 11:51:22 UTC
# RTC time: Sun 2020-09-06 19:51:21
# Time zone: Asia/Shanghai (CST, +0800)
#System clock synchronized: no
# NTP service: inactive
# RTC in local TZ: no
# 手动设置时区上海
timedatectl set-timezone Asia/Shanghai
# 手动修改系统日期
timedatectl set-time 2021-05-18
# 修改时间
timedatectl set-time 9:30
```
## reboot
重启系统
## poweroff
关闭系统
## wget
wget 命令用于在终端命令行中下载网络文件英文全称为“web get”语法格式
```
wget [参数] 网址
```
wget命令中的参数以及作用
| 参数 | 作用 |
| ---- | ------------------------------------ |
| -b | 后台下载模式 |
| -P | 下载到指定目录 |
| -t | 最大尝试次数 |
| -c | 断点续传 |
| -p | 下载页面内所有资源,包括图片、视频等 |
| -r | 递归下载 |
示例:
```
wget www.7wate.com
# Resolving www.7wate.com (www.7wate.com)... 182.118.11.21
# Connecting to www.7wate.com (www.7wate.com)|182.118.11.21|:80... connected.
# HTTP request sent, awaiting response... 200 OK
```
## ps
ps 命令用于查看系统中的进程状态英文全称为“processes”语法格式
```
ps [参数]
```
ps 命令中的参数以及作用
| 参数 | 作用 |
| ---- | ---------------------------------- |
| -a | 显示所有进程(包括其他用户的进程) |
| -u | 用户以及其他详细信息 |
| -x | 显示没有控制终端的进程 |
- **R运行**:进程正在运行或在运行队列中等待。
- **S中断**:进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该 状态。
- **D不可中断**进程不响应系统异步信号即便用kill命令也不能将其中断。
- **Z僵死**:进程已经终止,但进程描述符依然存在, 直到父进程调用 wait4() 系统函数后将进程释放。
- **T停止**:进程收到停止信号后停止运行。
除了上面5种常见的进程状态还有可能是高优先级<、低优先级N、被锁进内存L、包含子进程s以及多线程l这5种补充形式。
示例
| USER | PID | %CPU | %MEM | VSZ | RSS | TTY | STAT | START | TIME | COMMAND |
| ------------ | -------- | ------------ | ---------- | ------------------------ | -------------------------- | -------- | -------- | ------------ | ----------------- | -------------- |
| 进程的所有者 | 进程ID号 | 运算器占用率 | 内存占用率 | 虚拟内存使用量(单位是KB) | 占用的固定内存量(单位是KB) | 所在终端 | 进程状态 | 被启动的时间 | 实际使用CPU的时间 | 命令名称与参数 |
## pstree
pstree 命令用于以**树状图的形式展示**进程之间的关系英文全称为“process tree”。
## top
top 命令用于**动态地监视进程活动及系统负载**等信息。
## nice
nice命令用于调整进程的优先级语法格式
```shell
nice 优先级数字 服务名称
```
示例:
```shell
nice -n -20 bash
```
## pidof
pidof 命令用于查询某个指定服务进程的 PID 号码值,语法格式:
```
pidof [参数] 服务名称
```
每个进程的进程号码值PID是唯一的可以用于区分不同的进程。
```shell
pidof sshd
# 2156
```
## kill
kill 命令用于终止某个指定 PID 值的服务进程,语法格式:
```shell
kill [参数] 进程的PID
```
示例:
```shell
kill 2156
kill -9 2156
# 参数-9表示最高级别地强制杀死进程
```
## killall
killall 命令用于终止某个指定名称的服务所对应的全部进程,语法格式:
```shell
killall [参数] 服务名称
```
示例:
```shell
pidof httpd
# 13581 13580 13579 13578 13577 13576
killall httpd
pidof httpd
```