Linux 命令速查表
这个快速参考备忘单提供了使用 Linux 常用命令的使用清单
命令速查表
系统
| :--- | :--- | 
|---|---|
| uname | 显示 linux 系统信息 | 
| uname -r | 显示内核版本信息 | 
| cat /etc/os-release | 显示 linux 系统详细信息 | 
| uptime | 显示系统运行的时间(包括平均负载) | 
| hostname | 显示系统主机名 | 
| hostname -i | 显示系统的IP地址 | 
| last reboot | 显示系统重新启动历史记录 | 
| date | 显示当前系统日期和时间 | 
| timedatectl | 查询和更改系统时钟 | 
| cal | 显示当前日历的月份和日期 | 
| w | 显示系统中当前登录的用户 | 
| whoami | 显示您的登录身份 | 
| finger username | 显示有关用户的信息 | 
| sed -ri 's/.*swap.*/#&/' /etc/fstab && swapoff -a | 关闭swap | 
硬件
| :--- | :--- | 
|---|---|
| dmesg | 显示启动消息 | 
| cat /proc/cpuinfo | |
| cat /proc/meminfo | |
| df -h | G) | 
| hdparm -i /dev/xda | |
| lshw | 显示有关系统硬件配置的信息 | 
| lsblk | 显示块设备相关信息 | 
| free -m | 显示系统中空闲和使用的内存, -m(MB),-g(GB) | 
| lspci -tv | 在树状图中显示 PCI 设备 | 
| lsusb -tv | 以树状图的形式显示 USB 设备 | 
| dmidecode | 显示BIOS中的硬件信息 | 
| hdparm -tT /dev/xda <:code> | 在设备xda上进行读速度测试 | 
| badblocks -s /dev/xda | 测试磁盘上不可读的块 | 
用户
| :--- | :--- | 
|---|---|
| id | 显示活动用户的详细信息,如uid、gid和组 | 
| last | 显示系统中的最后一次登录 | 
| who | 显示谁已登录到系统 | 
| groupadd "admin" | 添加组"admin" | 
| adduser "Sam" | 添加用户 Sam | 
| userdel "Sam" | 删除用户 Sam | 
| usermod | 用于更改/修改用户信息 | 
登陆
| :--- | :--- | 
|---|---|
| ssh user@host | 使用指定用户安全连接到主机 | 
| ssh -p port_number user@host | 使用指定端口安全地连接到主机 | 
| ssh host | 通过SSH默认端口22安全连接到系统 | 
| telnet host | 通过telnet默认端口23连接到主机 | 
文件
| :--- | :--- | 
|---|---|
| ls -al | 列出文件-包括常规文件和隐藏文件以及它们的权限 | 
| tree | 以树形结构列出文件,常用参数有: -d查看目录,-L num查看num层文件,-a查看隐藏文件 | 
| pwd | 显示当前目录文件路径 | 
| mkdir 'directory_name' | 创建一个新目录 | 
| rm file_name | 删除一个文件 | 
| rm -f filename | 强制删除文件 | 
| rm -r directory_name | 递归地删除一个目录 | 
| rm -rf directory_name | 强制并递归地删除一个目录 | 
| cp file1 file2 | 将file1的内容复制到file2 | 
| cp -r dir1 dir2 | 递归地将dir1复制到dir2。如果dir2不存在,则创建它 | 
| mv file1 file2 | 将file1重命名为file2 | 
| ln -s /path/to/file_name link_name | 创建到file_name的软链接 | 
| touch file_name | 创建一个新文件 | 
| cat > file_name | 从键盘创建一个文件 | 
| more file_name | 输出文件的内容 | 
| head file_name | 显示文件的前10行 | 
| tail file_name | 显示文件的最后10行 | 
| gpg -c file_name | 加密一个文件 | 
| gpg file_name.gpg | 解密文件 | 
| wc | 打印文件中的字节、单词和行数 | 
| xargs | 从标准输入执行命令 | 
进程
| :--- | :--- | 
|---|---|
| ps | 显示当前活动的进程 | 
| ps aux | grep 'telnet' | 搜索进程'telnet'的id | 
| pmap | 显示进程的内存映射 | 
| top | 显示所有正在运行的进程 | 
| kill pid | 使用给定的pid终止进程 | 
| killall proc | 杀死/终止所有名为proc的进程 | 
| pkill process-name | 向具有其名称的进程发送信号 | 
| lsof | 列出进程打开的文件 # | 
| renice 19 PID | 使进程以非常低的优先级运行 | 
| pgrep firefox | 查找Firefox进程ID | 
| pstree | 在树模型中可视化过程 | 
安装包
| :--- | :--- | 
|---|---|
| rpm -i pkg_name.rpm | 安装 rpm 包 | 
| rpm -e pkg_name | 删除 rpm 包 | 
| dnf install pkg_name | 使用 dnf 工具安装软件包 | 
文件权限
| :--- | :--- | 
|---|---|
| chmod octal filename | 将文件权限更改为八进制 | 
| chmod 777 /data/test.c | 将rwx权限设置为owner、group和everyone(其他可以访问服务器的人) | 
| chmod 755 /data/test.c | 将rwx设置为所有者,将r_x设置为组和所有人 | 
| chmod 766 /data/test.c | 为所有者设置rwx,为组和每个人设置rw | 
| chown owner user-file | 更改文件的所有权 | 
| chown owner-user:owner-group file_name | 更改文件的所有者和组所有者 | 
| chown owner-user:owner-group directory | 更改目录的所有者和组所有者 | 
安装源(编译)
| :--- | :--- | 
|---|---|
| ./configure | 检查系统,以获得构建程序所需的软件。它将构建包含有效构建项目所需的指令的Makefile | 
| make | |
| make install | 编译后,该命令将二进制文件安装在默认/修改的路径中 | 
压缩/打包
| :--- | :--- | 
|---|---|
| tar -cf home.tar home<:code> | 创建名为"home"的存档文件。tar文件’home' | 
| tar -xf files.tar | 解压档案文件"files.tar" | 
| tar -zcvf home.tar.gz source-folder | 从源文件夹创建压缩的tar存档文件 | 
| gzip file | 压缩扩展名为.gz的文件 | 
| zip -r compressed.zip folder/ | 递归压缩目录 folder为压缩文件compressed.zip | 
| unzip compressed.zip -d folder/ | 在目录 folder下解压文件 | 
| unzip -v compressed.zip | 查看但不解压文件 | 
搜索
| :--- | :--- | 
|---|---|
| grep ‘pattern’ files | 在文件中搜索给定的模式 | 
| grep -r pattern dir | Search recursively for a pattern in a given directory | 
| locate file | 查找文件的所有实例 | 
| find /home/ -name "index" | 在/home文件夹中查找以’index’开头的文件名 | 
| find /home -size +10000k | 在主文件夹中查找大于10000k的文件 | 
网络
| :--- | :--- | 
|---|---|
| ip addr show | 显示IP地址和所有网络接口 | 
| ip address add 192.168.0.1/24 dev eth0 | 将IP地址192.168.0.1分配给接口eth0 | 
| ifconfig | 显示所有网络接口的IP地址 | 
| ping host | ping命令发送ICMP回送请求以建立到服务器/PC的连接 | 
| whois domain | 检索有关域名的更多信息 | 
| dig domain | 检索关于域的DNS信息 | 
| dig -x host | 对域执行反向查找 | 
| host google.com | 执行域名的IP查找 | 
| hostname -i | 显示本地IP地址 | 
| wget file_name | 从在线资源下载文件 | 
| netstat -pnltu | 显示所有活动监听端口 | 
文件传输
| :--- | :--- | 
|---|---|
| scp file1.txt server2/tmp | 安全地将file1.txt复制到/tmp目录中的server2 | 
| rsync -a /home/apps /backup/ | 将/home/apps目录中的内容与/backup目录进行同步 | 
磁盘使用情况
| :--- | :--- | 
|---|---|
| df -h | 显示安装系统上的空闲空间 | 
| df -i | 显示文件系统上的空闲inode | 
| fdisk -l | 显示磁盘分区、大小和类型 | 
| du -sh | 以人类可读的格式显示当前目录中的磁盘使用情况 | 
| findmnt | 显示所有文件系统的目标挂载点 | 
| mount device-path mount-point | 挂载设备 | 
目录遍历
| :--- | :--- | 
|---|---|
| cd .. | 在目录树结构中向上移动一层 | 
| cd | 将目录更改为$HOME目录 | 
| cd /test | 将目录更改为/test目录 | 
文件描述符
| :--- | :--- | 
|---|---|
| 0 | 标准输入 | 
| 1 | 标准输出 | 
| 2 | 错误输出 | 
| /dev/null | Linux的空设备文件,俗称“黑洞” | 
输出重定向
| :--- | :--- | 
|---|---|
| > | 覆盖运算符 | 
| >> | 追加运算符 | 
| >& | 重定向合并运算符 | 
| command > filename | 标准输出覆盖写入新文件 | 
| command 1> filename | 标准输出覆盖写入新文件(同上) | 
| command 2> filename | 标准错误覆盖写入新文件 | 
| command >> filename | 标准输出追加到新文件 | 
| command 1>> filename | 标准输出追加到新文件(同上) | 
| command 2>> filename | 标准错误追加到新文件 | 
| 2>&1 | 标准错误重定向到标准输出 | 
| 1>&2 | 标准输出重定向到标准错误 | 
前后台
&(终端关闭,程序也关闭)
| :--- | :--- | 
|---|---|
| command & | 使用后台进程模式执行 command | 
| Ctrl+Z | 将当前进程放到后台(但程序是Stopped状态) | 
| jobs | 查看任务(状态、ID等) | 
| fg n | 将jobID为n的任务切到前台运行 | 
| bg n | 将jobID为n的任务切到后台运行 | 
nohup(终端关闭,程序继续运行)
| :--- | :--- | 
|---|---|
| nohup command & | 后台执行 command,标准输出到 nohup.out | 
| nohup command > log_file & | 后台执行 command,标准输出到 log_file | 
| nohup command > log_file 2>&1 & | 后台执行 command,标准输出和错误输出到 log_file | 
| nohup command > log_file 2>err_log & | 后台执行 command,标准输出到 log_file,错误输出到 err_log | 
| ps/kill | 查看进程/结束进程 | 
screen(创建独立会话)
| :--- | :--- | 
|---|---|
| screen -S my_session | 创建一个名为 my_session 的会话 | 
| screen -ls | 列出当前所有的 session | 
| screen -r my_session | 重新连接 my_session 这个会话 | 
| screen -d my_session | 脱离 my_session 这个会话 | 
| Ctrl+a+d | 在 screen 中,脱离当前会话 | 
| exit | 在 screen 中,退出并删除当前 screen | 
| -X -S my_session quit | 删除 my_session 这个会话 | 
| screen -wipe | 删除所有已经失效的会话 | 
快捷键
命令行编辑
| :--- | :--- | 
|---|---|
| Tab | 自动补全 | 
| Ctrl+A | 移动光标到命令行首 | 
| Ctrl+E | 移动光标到命令行尾 | 
| Ctrl+Left | 光标左移一个单词 | 
| Ctrl+Right | 光标右移一个单词 | 
| Ctrl+K | 删除光标之后所有字符 | 
| Ctrl+U | 清空当前键入的命令 | 
| Ctrl+W | 删除光标前的单词 | 
| Ctrl+Y | 粘贴 Ctrl+W或Ctrl+K删除的内容 | 
| Ctrl+D | 删除当前光标所在字符 (在没有字符时会关闭终端) | 
| Ctrl+B(Left) | 光标左移(后退) | 
| Ctrl+F(Right) | 光标右移(前进) | 
| Ctrl+H(Backspace) | 删除光标的前一个字符 | 
其他
| :--- | :--- | 
|---|---|
| Ctrl+L | 清屏 | 
| Ctrl+C | 中断正在执行的程序 | 
| Ctrl+R | 按字符串寻找历史命令 | 
| Ctrl+Z | 将当前进程放到后台(但程序是Stopped状态) | 
| Shift+Insert | 粘贴 | 
| Ctrl+PageUp | 屏幕输出向上翻页 | 
| Ctrl+PageDown | 屏幕输出向下翻页 | 
| Ctrl+P(Up) | 上一条命令 | 
| Ctrl+N(Down) | 下一条命令 | 
技巧
linux技巧
| :--- | :--- | 
|---|---|
| du -h / | sort -rh | head -20 | 最大20个文件 | 
| grep -Ev '^\s*($|#|;)' example.conf | 查看去掉注释和空行 | 
| echo <passwd> | passwd root --stdin | 单行改密码 | 
| find /data/app/tmp -mtime +30 -name "*.flv" -exec rm -Rf {} \; | 删除30天前文件 | 
| for file in $(ls); do sed -i 's/nmg/sz/g' "$file"; done | 当前目录修改字符串 | 
| ssh -NfR remote_port:localhost:local_port user@remote_server | ssh代理 | 
| find . -wholename "*.sh" -exec dos2unix {} \; | 修复脚本格式错误 | 
| rsync -avz /source/ user@remote:/destination/ | 同步文件和目录到远程服务器,支持压缩和增量传输 | 
另见
- Linux命令大全搜索工具 (jaywcjlove.github.io)
- Linux命令大全(手册) (linuxcool.com)
- MAN手册 - 中文 (debian.org)
- Linux 命令行速查表 (cheat-sheet.cn)