Command 命令

告诉计算机做某件事的指令。 CLI 里输入的就是 command。

结构

$ command  [options]  [arguments]
$ ls       -la         /home
  └─ 命令本体  └─ [[command-option|选项]]  └─ [[argument|参数]]

命令的两种来源

类型在哪
shell 内置cd, echo, exitshell 程序里
可执行文件ls, grep, python/bin, /usr/bin, /usr/local/bin
which ls      # 看可执行文件在哪
type cd       # 看是内置还是可执行

安全场景:Command Injection

# 危险
os.system("ping " + user_input)
 
# 用户传 user_input = "google.com; rm -rf /"
# 实际跑:ping google.com; rm -rf /

防御:永远不要把用户输入直接拼进命令。用参数数组 + subprocess(shell=False)。