LOADING

命令速查

linux

终端快捷键

  • Ctrl+A:跳转到命令行的开头。
  • Ctrl+E:跳转到命令行的结尾。
  • Ctrl+U:从光标处清除到命令行的开头。
  • Ctrl+K:从光标处清除到命令行的结尾。
  • Ctrl+LeftArrow(或 Alt+B):跳转到命令行上上一个单词的开头。
  • Ctrl+RightArrow(或 Alt+F):跳转到命令行上下一个单词的结尾。
  • Ctrl+R:搜索命令的历史记录列表以查找模式。

man

导航键

 man 页面中可以使用的常用导航键:

  • 空格键 或 PageDown:向前(向下)滚动一整屏。
  • PageUp:向后(向上)滚动一整屏。
  • DownArrow:向前(向下)滚动一行。
  • UpArrow:向后(向上)滚动一行。
  • D:向前(向下)滚动半屏。
  • U:向后(向上)滚动半屏。
  • Q:退出 man 页面并返回到命令 shell 提示符。
  • G:转到 man 页面的开头。
  • Shift+G:转到 man 页面的结尾。

搜索字符串

键入 /,输入字符串,按 Enter 键 N 向下搜索 Shift+N 向上搜索

文件描述符与重定向

  • 0:标准输入(stdin)——通常来自键盘。
  • 1:标准输出(stdout)——通常到终端屏幕。
  • 2:标准错误(stderr)——通常到终端屏幕,用于错误消息。

> 覆盖文件 >> 追加到文件

错误重定向

将标准错误重定向到文件,2>

ls non_existent_directory 2> errors.log
ls non_existent_directory 2> /dev/null

组合标准输出和标准错误

> file 2>&1

表示“将文件描述符 2 stderr 重定向到与文件描述符 1 stdout 相同的位置”

find ~/project /root -name "current_datetime.txt" > combined_output.log 2>&1

&> file(Bash 特有)

Bash 提供了一种将 stdout 和 stderr 组合到文件中的简写方式:&>。这等效于 > file 2>&1

find ~/project /root -name "file_list.txt" &> combined_output_shorthand.log

追加组合流

>> file 2>&1 或 &>> file 将组合的 stdout 和 stderr 追加到文件中

grep

ps aux | grep bash

-v 反向匹配 -i 忽略大小写

sort

用于对文本行进行排序

cat fruits.txt | sort

uniq

去重

cat fruits.txt | sort | uniq

wc

wc /etc/passwd

输出

41   98 2338 /etc/passwd

输出为

  • 行数
  • 单词数
  • 字符数
  • 文件名

参数

  • -l 用于行数(lines)
  • -w 用于单词数(words)
  • -c 用于字符数(characters)

示例

wc -l /etc/passwd
wc -l /etc/group

输出

41 /etc/passwd
63 /etc/group

history

history

输出一个编号列表

   23  clear
   24  whoami
   25  date
   26  file /etc/passwd
   27  cat /etc/passwd
   28  head /etc/passwd
   29  tail /etc/passwd
   30  wc /etc/passwd
   31  history

使用 ! 后跟命令编号或字符串,重新执行命令

例如

  • !26 重新执行编号为 26 的命令,即 file /etc/passwd
  • !wc 重新执行以 wc 开头的最后一个命令,即 wc /etc/passwd

ls

  • ls -R 查看递归列表
  • ls -a 查看所有
  • ls -l 查看详细信息

touch

用处:

  1. 更新文件的 timestamp 为当前日期和时间,而不会修改其他任何内容。
  2. 创建空文件

mkdir

 -p(parents,父目录)选项,创建多级目录时自动补全结构

mkdir -p projects/alpha/docs

cp

cp [选项] 源文件 目标文件
cp [选项] 源文件... 目标目录
  • -r recursive,递归,复制目录及其内容
  • -a 归档模式。等同于 -dR --preserve=all。常用于完整备份目录,不仅递归复制,还保留所有的链接和文件属性(最完美的复制选项)。

ln

硬链接

# 
ln [选项] 源文件 链接名

软链接

ln [选项] -s 源文件 链接名

给目录创建链接(只能用软链接)

ln -s 源目录 链接名

查看软链接 ls -lreadlink

ls -l /usr/bin/python3
# lrwxrwxrwx 1 root root ... /usr/bin/python3 -> /usr/local/python3/bin/python3

readlink /usr/bin/python3
# /usr/local/python3/bin/python3

tee

tee [ -i ] [ -a ] files
  • -i:忽略中断信号。比如,在执行过程中按 Ctrl+C,命令不会中止。

  • -a:以追加模式写入文件。输出会被追加到指定文件的末尾,而不是覆盖其原有内容。

ps

常用命令示例

目的 命令示例
查看系统所有进程 (标准) ps -ef 或 ps -eF
查看系统所有进程 (BSD) ps aux
显示进程树 ps -ejH 或 ps axjf
查看线程信息 ps -eLf
查看安全信息 ps axZ 或 ps -eM
按用户自定义格式输出 ps -eo pid,user,args

主要选项分类速查

1. 简单进程选择

  • -e / -A:显示所有进程。
  • a:显示所有终端的进程。
  • x:显示无终端的进程(常与 a 连用,即 ax)。
  • r:只显示运行中的进程。

2. 进程列表选择

  • -p <PID>:按进程ID选择。
  • -C <命令名>:按命令名选择。
  • -U <用户名>:按真实用户选择。
  • -u <用户名>:按有效用户选择。
  • -t <终端>:按终端选择。

3. 输出格式控制

  • -f:全格式列表。
  • -l:长格式。
  • -j:任务控制格式。
  • u:用户导向格式(显示CPU、内存等)。
  • -o <字段>自定义输出,功能最灵活。例如:ps -eo pid,ppid,cmd,%cpu,%mem

4. 输出修饰符

  • -H / f / --forest:以树状结构显示进程父子关系。
  • --sort=<字段>:指定排序,如 --sort=-%mem (按内存降序)。
  • --no-headers:不打印列标题。
  • w:加宽输出(可多个)。

5. 线程显示

  • -L:显示线程,常与 -f 连用。

关键进程状态码

在 STAT 列常见的状态码包括:

  • R:运行或可运行。
  • S:可中断睡眠。
  • D:不可中断睡眠(通常等待I/O)。
  • Z:僵尸进程。
  • T:被信号停止。