1
0
wiki/work/devops/Linux/基础/常用命令.md
2022-10-25 12:07:38 +08:00

340 lines
19 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: 1
data: 2022年3月4日
---
## 简介
一台完整的计算机是由运算器、控制器、存储器、输入/输出等多种硬件设备共同组成的而能让各种硬件设备各司其职且又能协同运行的东西就是系统内核。Linux 系统的内核负责完成对硬件资源的分配、调度等管理任务,对系统的正常运行起着十分重要的作用。
Shell就是终端程序的统称它充当了人与内核硬件之间的翻译官用户把一些命令“告诉”终端程序它就会调用相应的程序服务去完成某些工作。现在包括红帽系统在内的许多主流Linux系统默认使用的终端是 BashBourne-Again SHell解释器这个 Bash 解释器主要有以下4项优势
- 通过上下方向键来调取执行过的 Linux 命令;
- 命令或参数仅需输入前几位就可以用 Tab 键补全;
- 具有强大的批处理脚本;
- 具有实用的环境变量功能。
### 执行命令
```shell
命令名称 [命令参数] [命令对象]
```
可选择的、可加或可不加的、非必需的参数使用中括号引起来,而命令所要求的、必须有的参数或对象值,则不带中括号。
- **命令名称**:就是语法中的“动词”,表达的是想要做的事情,例如创建用户、查看文件、重启系统等操作。
- **命令参数**:用于对命令进行调整,让“修改”过的命令能更好地贴合工作需求,达到事半功倍的效果。
Linux命令参数的长格式与短格式示例
| 长格式 | man --help |
| ------ | ---------- |
| 短格式 | man -h |
- **命令对象**一般指要处理的文件、目录、用户等资源名称也就是命令执行后的“承受方”。例如创建一位叫小明的用户、查看一个叫工资表的文件、重启一个IP为192.168.10.10的系统等。
Linux系统中的**命令、参数、对象都是严格区分大小写**的
## 帮助文档
### man
使用 **man** 命令查看到的帮助内容信息
| 按键 | 作用 |
| --------- | ---------------------------------- |
| 空格键 | 向下翻一页 |
| PaGe down | 向下翻一页 |
| PaGe up | 向上翻一页 |
| home | 直接前往首页 |
| end | 直接前往尾页 |
| / | 从上至下搜索某个关键词,如“/linux” |
| ? | 从下至上搜索某个关键词,如“?linux” |
| n | 定位到下一个搜索到的关键词 |
| N | 定位到上一个搜索到的关键词 |
| q | 退出帮助文档 |
#### 示例
```shell
# 查看 man 的帮助文件
man man
# 查看 ssh 的帮助文件
man sh
```
## 快捷键
### Tab
实现对命令、参数或文件的内容补全。
| 按键 | 作用 |
| ------------- | ------------------ |
| Tab键 | 自动补全 |
| Tab键 + Tab键 | 匹配所有符合的命令 |
### Ctrl+c
终止当前进程的运行,控制权会立刻回到命令行终端。
### Ctrl+d
键盘输入结束。
### Ctrl+l
清空当前终端中已有的内容(清屏操作)。
## 系统
### 内置命令
| 命令 | 功能 |
| ------- | ------------------------------------------------------ |
| alias | 设置别名。 |
| bc | 命令行科学计算器 |
| clear | 清除屏幕,简称清屏。 |
| date | 查看或设置系统时间。 |
| echo | 打印变量,或直接输出指定的字符串 |
| eject | 弹出光驱。 |
| exec | 调用并执行指令的命令。 |
| export | 设置或者显示环境变量。 |
| history | 查看命令执行的历史纪录。 |
| nc | 功能强大的网络工具。 |
| printf | 将结果格式化输出到标准输出。 |
| rpm | 管理 rpm 包的命令。 |
| time | 计算命令执行时间。 |
| type | 用于判断另外一个命令是否是内置命令。 |
| unalias | 取消系统别名。 |
| unset | 删除变量或函数。 |
| watch | 周期性的执行给定的命令,并将命令的输出以全屏方式显示。 |
| xargs | 将标准输入转换成命令行参数。 |
| yum | 自动化简单化地管理 rpm 包的命令。 |
### 系统信息
| 命令 | 功能 |
| -------- | -------------------------------- |
| cal | 查看日历等时间信息。 |
| date | 显示与设置系统时间。 |
| df | 报告文件系统磁盘空间的使用情况。 |
| dmesg | 显示开机信息,用于诊断系统故障。 |
| du | 计算磁盘空间使用情况。 |
| free | 查看系统内存。 |
| hostname | 显示或者设置当前系统的主机名。 |
| stat | 显示文件或文件系统的状态。 |
| top | 实时显示系统资源使用情况。 |
| uname | 显示操作系统相关信息的命令。 |
| uptime | 显示系统运行时间及负载。 |
### 用户信息
| 命令 | 功能 |
| ------- | ------------------------------------------------------ |
| finger | 查找并显示用户信息。 |
| last | 显示登入系统的用户。 |
| lastlog | 显示系统中所有用户最近一次登录信息。 |
| users | 显示当前登录系统的所有用户的用户列表。 |
| w | 显示已经登陆系统的用户列表,并显示用户正在执行的指令。 |
| who | 显示目前登录系统的用户信息。 |
| whoami | 显示当前有效的用户名称,相当于执行 id -un 命令。 |
### 权限处理
| 命令 | 功能 |
| ----- | ---------------------------- |
| chmod | 改变文件或目录权限。 |
| chown | 改变文件或目录的属主和属组。 |
| chgrp | 更改文件用户组。 |
| umask | 显示或设置权限掩码。 |
### 进程管理
| 命令 | 功能 |
| ----------- | ------------------------------------------------------------ |
| bg | 将一个在后台暂停的命令,变成继续执行 (在后台执行)。 |
| crontab | 定时任务命令。 |
| fg | 将后台中的命令调至前台继续运行。 |
| init | 切换运行级别。 |
| jobs | 查看当前有多少在后台运行的命令。 |
| kill | 终止进程。 |
| killall | 通过进程名终止进程。 |
| nice/renice | 调整程序运行的优先级。 |
| nohup | 忽略挂起信号运行指定的命令。 |
| pgrep | 查找匹配条件的进程。 |
| pkill | 通过进程名终止进程。 |
| ps | 显示进程的快照。 |
| pstree | 树形显示进程。 |
| runlevel | 查看系统当前运行级别。 |
| service | 启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。 |
### 系统管理
| 命令 | 功能 |
| --------- | ------------------------------------------------------------ |
| chkconfig | 管理 Linux 系统开机启动项。 |
| iostat | 统计系统 IO。 |
| ipcrm | 用来删除一个或更多的消息队列、信号量集或者共享内存标识。 |
| ipcs | 用于报告 Linux 中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息。 |
| ltrace | 命令会跟踪进程的库函数调用, 它会显现出哪个库函数被调用。 |
| mpstat | 显示各个可用 CPU 的状态统计。 |
| sar | 全面地获取系统的 CPU、运行队列、磁盘 I/O、分页交换区、内存、 CPU 中断和网络等性能数据。 |
| strace | 用于诊断、调试 Linux 用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。 |
| vmstat | 虚拟内存统计。 |
### 系统操作
| 命令 | 功能 |
| -------- | ---------------------- |
| exit | 退出当前登录的 Shell。 |
| halt | 关机。 |
| logout | 退出当前登录的 Shell。 |
| poweroff | 关闭电源。 |
| shutdown | 关机。 |
## 用户管理
### 基础操作
| 命令 | 功能 |
| -------- | ------------------------------------------------------------ |
| chage | 修改用户密码有效期限。 |
| groupadd | 添加用户组。 |
| id | 查看用户的 uid,gid 及归属的用户组。 |
| passwd | 修改用户密码。 |
| su | 切换用户身份。 |
| sudo | 以另外一个用户身份(默认 root 用户)执行事先在 sudoers 文件允许的命令。 |
| useradd | 添加用户。 |
| userdel | 删除用户。 |
| usermod | 修改系统已经存在的用户属性。 |
| visudo | 编辑 / etc/sudoers 文件的专属命令。 |
## 网络管理
### 基础操作
| 命令 | 功能 |
| -------- | -------------------------------------------- |
| ifconfig | 查看、配置、启用或禁用网络接口的命令。 |
| ifdown | 关闭网卡。 |
| ifup | 启动网卡。 |
| netstat | 查看网络状态。 |
| ping | 测试主机之间网络的连通性。 |
| route | 显示和设置 linux 系统的路由表。 |
| scp | 全拼 secure copy用于不同主机之间复制文件。 |
| ss | 查看网络状态。 |
| ssh | 使用 SSH 加密协议远程登录。 |
| telnet | 使用 TELNET 协议远程登录。 |
| wget | 命令行下载文件。 |
### 进阶操作
| 命令 | 功能 |
| ---------- | -------------------------------------------------------- |
| dig | 查找 DNS 解析过程。 |
| host | 查询 DNS 的命令。 |
| lsof | 全名 list open files也就是列举系统中已经被打开的文件。 |
| mail | 发送和接收邮件。 |
| mutt | 邮件管理命令。 |
| nmap | 网络扫描命令。 |
| nslookup | 交互式查询互联网 DNS 服务器的命令。 |
| tcpdump | 命令行的抓包工具。 |
| traceroute | 追踪数据传输路由状况。 |
## 磁盘管理
### 基础操作
| 命令 | 功能 |
| --------- | --------------------------------------------------------- |
| dd | 转换或复制文件。 |
| dump | ext2/3/4 文件系统备份工具。 |
| dumpe2fs | 导出 ext2/ext3/ext4 文件系统信息。 |
| e2fsck | 检查 ext2/ext3/ext4 类型文件系统。 |
| fdisk | 磁盘分区命令,适用于 2TB 以下磁盘分区。 |
| fsck | 检查并修复 Linux 文件系统。 |
| mkfs | 格式化创建 Linux 文件系统。 |
| mkswap | 创建 Linux 交换分区。 |
| mount | 挂载文件系统。 |
| parted | 磁盘分区命令,没有磁盘大小限制,常用于 2TB 以下磁盘分区。 |
| partprobe | 更新内核的硬盘分区表信息。 |
| resize2fs | 调整 ext2/ext3/ext4 文件系统大小。 |
| swapoff | 关闭交换分区。 |
| swapon | 启用交换分区。 |
| sync | 将内存缓冲区内的数据写入磁盘。 |
| umount | 卸载文件系统。 |
## 文件和目录
### 基础操作
| 命令 | 功能 |
| -------- | ------------------------------------------------------------ |
| basename | 显示文件名或目录名。 |
| cd | 全拼 change directory功能是从当前工作目录切换到指定的工作目录。 |
| chattr | 改变文件的扩展属性。 |
| cp | 全拼 copy其功能为复制文件或目录。 |
| dirname | 显示文件或目录路径。 |
| file | 显示文件的类型。 |
| find | 查找的意思,用于查找目录及目录下的文件。 |
| ls | 全拼 list功能是列出目录的内容及其内容属性信息。 |
| lsattr | 查看文件扩展属性。 |
| md5sum | 计算和校验文件的 MD5 值。 |
| mkdir | 全拼 make directories其功能是创建目录。 |
| mv | 全拼 move其功能是移动或重命名文件。 |
| pwd | 全拼 print working directory其功能是显示当前工作目录的绝对路径。 |
| rename | 用于重命名文件。 |
| rm | 全拼 remove其功能是删除一个或多个文件或目录。 |
| rmdir | 全拼 remove empty directories功能是删除空目录。 |
| touch | 创建新的空文件,改变已有文件的时间戳属性。 |
| tree | 功能是以树形结构显示目录下的内容。 |
### 文件处理
| 功能 | 命令 |
| ---------- | ------------------------------------------------------------ |
| cat | 全拼 concatenate功能是用于连接多个文件并且打印到屏幕输出或重定向到指定文件中。 |
| cut | 将文件的每一行按指定分隔符分割并输出。 |
| diff | 全拼 difference比较文件的差异常用于文本文件。 |
| dos2unix | 将 DOS 格式文件转换成 UNIX 格式。 |
| grep/egrep | 过滤字符串,三剑客老三。 |
| head | 显示文件内容的头部。 |
| iconv | 转换文件的编码格式。 |
| join | 按两个文件的相同字段合并。 |
| less | 分页显示文件内容more 命令的相反用法。 |
| more | 分页显示文件内容。 |
| paste | 按行合并文件内容。 |
| rev | 反向输出文件内容。 |
| sort | 对文件的文本内容排序。 |
| split | 分割文件为不同的小片段。 |
| tac | tac 是 cat 的反向拼写,因此命令的功能为反向显示文件内容。 |
| tail | 显示文件内容的尾部。 |
| tr | 替换或删除字符。 |
| uniq | 去除重复行。oldboy |
| vi/vim | 命令行文本编辑器。 |
| vimdiff | 命令行可视化文件比较工具,常用于文本文件。 |
| wc | 统计文件的行数、单词数或字节数。 |
### 文件检索
| 命令 | 功能 |
| ------- | ------------------------------------------------------------ |
| find | 从磁盘遍历查找文件或目录。 |
| locate | 从数据库 (/var/lib/mlocate/mlocate.db) 查找命令,使用 updatedb 更新库。 |
| whereis | 查找二进制命令,按环境变量 PATH 路径查找。 |
| which | 查找二进制命令,按环境变量 PATH 路径查找。 |
### 文件解压缩
| 命令 | 功能 |
| ----- | ---------------- |
| gzip | gzip 压缩工具。 |
| tar | 打包压缩。oldboy |
| unzip | 解压文件。 |
| zip | 压缩工具。 |