命令速查
终端快捷键
- 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
用处:
- 更新文件的
timestamp为当前日期和时间,而不会修改其他任何内容。 - 创建空文件
mkdir
-p(parents,父目录)选项,创建多级目录时自动补全结构
mkdir -p projects/alpha/docs
cp
cp [选项] 源文件 目标文件
cp [选项] 源文件... 目标目录
-rrecursive,递归,复制目录及其内容-a归档模式。等同于-dR --preserve=all。常用于完整备份目录,不仅递归复制,还保留所有的链接和文件属性(最完美的复制选项)。
ln
硬链接
#
ln [选项] 源文件 链接名
软链接
ln [选项] -s 源文件 链接名
给目录创建链接(只能用软链接)
ln -s 源目录 链接名
查看软链接 ls -l 和 readlink
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:被信号停止。