Appearance
Linux 命令分类
- 内部命令 :属于 Shell 解释器的一部分
- 外部命令 :独立于 Shell 解释器之外的程序
- type 命令 :查看命令是外部命令还是内部命令
bash
[root@localhost ~]# type cd
cd 是 shell 内建
[root@localhost ~]# type ll
ll 是 "ls -l --color=auto" 的别名
[root@localhost ~]# type ifconfig
ifconfig 是 /usr/sbin/ifconfig
[root@localhost ~]#
Linux 命令格式
Linux 命令的通用格式:命令 [选项] [参数]
- 选项:用于调节命令的具体功能
- “-” 引导短格式选项,例如“ls -a”
- “--”引导长格式选项,例如“ls --help”
- 参数:命令的对象,如文件、目录名等
NOTE
注意:多个短格式选项可以合并,例如“ls -alh” 但是多个长格式选项,不能合并。
bash
[root@localhost ~]# ls -alh /etc ls——命令字;-alh——选项;/etc——参数
Linux 帮助命令
help
help 内部命令帮助,查看 bash 内部命令的帮助
语法格式
bash
help 内部命令字
# 即命令的“--help”选项,适用于大多数外部命令
命令字 --help
man
man 用来提供在线帮助,使用权限是所有用户。在 Linux 系统中存储着一部联机使用的 手册,以 供用户在终端上查找。使用 man 命令可以调阅其中的帮助信息,非常方便实用
语法格式
bash
man 命令字
man [-acdfhkKtwW] [-m system] [-p string] [-C config_file] [-Mpath] [-P pager] [-S section_list [section] name ...
选项
bash
-C config_file:指定设定文件 man.conf,缺省值是/etc/man.conf
# [root@www ~]# man 7 man
代号
- 1 使用者在 shell 中可以操作的指令或可执行档
- 2 系統核心可呼叫的函数与工具等
- 3 一些常用的函数(function)与函数库(library),大部分是 C 的函数库(libc)
- 4 装置档案的说明,通常在/dev 下的档案
- 5 设定档或者是某些档案的格式
- 6 游戏(games)
- 7 惯例与协定等,例如 Linux 档案系统、网络协定、ASCII code 等等的說明
- 8 系統管理員可用的管理指令
- 9 跟 kernel 有关的文件
Linux 快捷键
- 反斜杠“\”:转义符,转义符的含义是退去符号本身的意思
- ctrl+U:快速删除光标之前所有字符(可视为剪切)
- ctrl+K:快速删除光标之后所有字符(可视为剪切)
- ctrl+Y:黏贴刚才所删除(剪切)的字符
- ctrl+L:清屏
- ctrl+C:取消当前命令行编辑;结束当前执行的命令
- ctrl+D:从 shell 提示中注销关闭,类似输入 exit
- ctrl+A:把光标移动到行首,类似于 Home 键
- ctrl+E:把光标移动到行尾,类似于 End 键
- ctrl+Z:转入后台运行 。(可用
fg
命令调出后台运行进程如fg ping
) - ctrl+R:在历史命令中查找(history代替)
Linux Tab补全机制
命令补全
用法:输入命令的前几个字母后按
Tab
。示例:
bash# 输入 `ls` 后按 Tab,可能补全为 `lsb_release` ls<Tab>
规则:
- 如果唯一匹配,自动补全。
- 如果多匹配,按两次
Tab
显示所有候选。 - 无匹配时无响应(需检查拼写)。
文件和目录补全
用法:在命令参数中输入路径前缀后按
Tab
。示例:
bash# 补全 `/etc/ho` 为 `/etc/hosts` cat /etc/ho<Tab>
规则:
- 补全时自动处理空格和特殊字符转义(如文件名含空格会变为
\
)。 - 支持相对路径(如
./fi<Tab>
)。
- 补全时自动处理空格和特殊字符转义(如文件名含空格会变为
Linux 转义符
转义符 | 效果 |
---|---|
\n | 换行 |
\t | 制表符(Tab) |
\\ | 输出反斜杠 \ |
\" | 输出双引号 " |
\e | 转义字符(用于ANSI控制码,如颜色) |
\a | 响铃(终端发出提示音) |
\b | 退格(删除前一个字符) |
\r | 回车(光标回到行首). |
重定向(Redirection)
基本语法
符号 | 作用 |
---|---|
> | 覆盖输出文件(stdout ) |
>> | 追加输出文件(stdout ) |
2> | 覆盖输出错误(stderr ) |
2>> | 追加输出错误(stderr ) |
&> | 同时重定向 stdout 和 stderr |
< | 从文件读取输入(stdin ) |
<< | 内联输入(Here Document) |
<<< | 内联字符串输入(Here String) |
示例
bash
# 将命令输出保存到文件(覆盖)
ls > filelist.txt
# 追加输出到文件末尾
echo "New line" >> filelist.txt
# 将错误信息写入文件(如找不到文件时)
ls /nonexistent 2> error.log
# 同时保存输出和错误到同一文件
ls /existing /nonexistent &> output_and_error.log
# 从文件读取输入(如排序文件内容)
sort < unsorted.txt > sorted.txt
# 清空文件(快速清空内容)
> file.txt
# 将文件内容作为命令的输入
sort < unsorted.txt # 对文件内容排序
grep "keyword" < input.log # 在文件中搜索关键词
# 统计文件行数(等效于 `wc -l file.txt`)
wc -l < file.txt
# 将多行内容传递给命令(<< 指定结束标记)
cat << EOF
This is line 1.
This is line 2.
EOF # 输入直到遇到 "EOF" 为止
# 直接传递字符串给命令(<<<)
grep "error" <<< "This is an error message"
输入 vs 输出重定向对比
场景 | 输入重定向 | 输出重定向 |
---|---|---|
数据方向 | 文件 → 命令 | 命令 → 文件 |
常用符号 | < , << , <<< | > , >> , 2> , &> |
典型用途 | 提供文件内容作为输入 | 保存输出或错误到文件 |
是否修改原文件 | 否(只读) | 是(可能覆盖或追加) |
注意事项
- 符号方向:箭头方向表示数据流向(
<
是文件流入命令,>
是命令流出到文件)。 - 文件权限:输入重定向需要文件可读,输出重定向需要目标文件可写。
- 覆盖风险:
>
会覆盖文件,用>>
追加或set -o noclobber
禁止覆盖。
管道(Pipe)
基本语法
符号 | 作用 | |
---|---|---|
` | ` | 将前一个命令的 stdout 传递给后一个命令的 stdin |
示例
bash
# 统计文件行数
cat file.txt | wc -l
# 过滤含有关键词的行
grep "error" /var/log/syslog | less
# 排序并去重
sort duplicates.txt | uniq
# 查找进程并强制结束
ps aux | grep "nginx" | awk '{print $2}' | xargs kill -9
# 实时监控日志新增内容
tail -f /var/log/nginx/access.log | grep "404"