1
0
wiki/docs/运维/Shell/系统工作常用.md

252 lines
6.2 KiB
Markdown
Raw Normal View History

2022-02-24 20:15:02 +08:00
---
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
```