当前位置: 首页 > news >正文

[BKC01]命令行基础知识

[!TIP]
基本计算机知识系列 - 01

一个典型的 PowerShell 界面:

Windows Powershell

但为了了解它,我们需要先介绍 Unix 风格的命令行。

起源

命令行起源于早期的大型机与电传打字机(TTY),位于校园中的学生通过TTY远程连接到机房中的大型机。

TTY接收用户的键入,在纸带上“输出”大型机的回显。

因此,登录密码不会回显,以确保密码不会被记录到纸带上。

后来,图形界面受到大多数用户的欢迎,命令行主要被开发人员和高级用户使用。

使用

早期的命令行不支持鼠标,图形界面上的命令行是“模拟”一条纸带供程序输入输出,故称为终端模拟器(Terminal Emulator)。

拖动鼠标选中文本的事件是否被程序接收取决于程序是否监听了鼠标事件,大部分使用命令行界面的程序都不监听鼠标事件。
程序监听鼠标事件的前提是终端模拟器向程序转发鼠标事件。

命令行接收用户输入的键盘按键事件,可显示字符会回显到屏幕上,特殊的控制字符则由终端模拟器或程序处理。

命令行上有约定俗成的快捷键(GNU Readline标准):

  • 上一条命令
  • 下一条命令
  • Ctrl+C 中断当前进程
  • Ctrl+D 发送 EOF(标记输入流结束)
  • Ctrl+Z 挂起当前进程(可用 fg 恢复)
  • Ctrl+L 清屏(相当于 clear
  • Ctrl+ 光标向左移动一个单词
  • Ctrl+ 光标向右移动一个单词
  • Ctrl+A 光标移动到行首
  • Ctrl+E 光标移动到行尾
  • Ctrl+U 删除从光标到行首的内容
  • Ctrl+K 删除从光标到行尾的内容
  • Ctrl+W 删除光标前的一个单词
  • Ctrl+R 反向搜索历史命令
  • Shift+Insert 粘贴剪切板中的内容
  • Ctrl+Insert 复制选区到剪切板
  • Shift+Page Up 向上滚动一屏
  • Shift+Page Down 向下滚动一屏

Windows下有部分快捷键的行为不同。

程序开发

命令行界面易于开发一些简单的程序。

一个程序由用户通过 shell 启动,并可选提供参数。

程序从标准输入流 /dev/stdin 接收用户的输入,然后向 /dev/stdout/dev/stderr 输出。

或者,通过管道连接符 |,程序接收前一个程序的输出,输出给下一个程序。

例如 cat foo.txt | bar | tee dump.txt 使用 cat 读取文件,输出给 bar,最后由 tee 保存到 dump.txt
tee 的功能是从 stdin 接收,然后在把输入存入文件的同时输出到 stdout

这样,开发一些较小的工具程序时,处理文件就变为处理标准输入输出流。

路径与环境变量

Unix 风格下,路径分隔符是 /
DOS(Windows)风格下,路径分隔符是 \

大部分 Windows 程序都能正确处理误用 / 的情况。
Unix shell 则识别 \ 为转义符,要输入它本身则应使用 \\

PATH

cat, tee, ls 之类的命令,由 shell 接收后,shell 将在环境变量 PATH 列出的目录中搜索匹配命令的可执行文件。

在 Linux 上查看环境变量可键入 printenvecho $PATH
在 Windows 上可按下 Windows+Pause 进入 控制面板高级系统设置环境变量
环境变量

若要运行一个不在 PATH 目录下的程序,就必须键入完整路径或相对路径。

PWD

输入 pwd(print work directory)可以查看当前所在的工作目录。

相对路径是指相对工作目录的路径,用 . 表示当前目录,用 .. 表示当前目录的上级目录。

例如,若要运行处于当前目录下的 foo(可执行文件),则应使用命令:./foo

../..//. 之间等效。

根目录:

根目录用 / 表示。

根目录的上级目录是它自身。

用户目录

用户目录用 ~ 表示,例如,切换当前目录到用户目录下的 Documents 文件夹:cd ~/Documents

Linux 下每个用户都有其用户目录,通常是 /home/<用户名>
特别的,root 作为特权用户,用户目录为 /root

Windows 下则是 C:\Users\<用户名>

[!TIPS]
<> 包裹的字段表示这是一个占位符,需要在实际使用时填入需要的参数。

参数

键入命令时,附在可执行文件名之后的是参数。

例如,ls -l foo.txt 可查看文件 foo.txt 的详细信息:

-rwxrwxrwx 1 root root 0 Jan 1 00:00 foo.txt

-lfoo.txt 都是传递给 ls 的参数,如何处理参数取决于程序的实现。

参数的顺序、必选或可选也取决于程序。

不过,我们一般约定,以 --- 开头的参数用于控制程序的功能,最后一个参数指定的文件路径表示要操作的文件。

特别的,DOS 下约定 / 开头的参数用于控制程序的功能,这一传统只延续到 Windows cmd.exe

http://www.jsqmd.com/news/625169/

相关文章:

  • rasterizeHTML.js API完全手册:从drawHTML到drawURL的完整使用指南
  • SUPER COLORIZER创意作品展:基于经典文学场景的视觉化色彩演绎
  • .NET 诊断技巧 | 日志框架原理、手写日志框架学习碳
  • i.MX6ULL接OV2640摄像头踩坑记:从硬件改线到内核补丁的完整排错流程
  • Swift高性能计算终极指南:Surge库快速入门教程
  • GitFS故障排除:常见问题诊断与日志分析终极指南
  • 2026年4月好用的纵剪分条机厂商哪里有卖,优秀纵剪分条机定制厂家瑞达机械满足多元需求 - 品牌推荐师
  • AzurLaneAutoScript:碧蓝航线自动化脚本终极指南 - 如何实现全自动委托科研与大世界探索
  • Fixer性能优化指南:如何配置Unicorn服务器获得最佳响应速度
  • ROFL播放器终极指南:免费开源工具轻松分析英雄联盟回放数据
  • 长芯微LDC2228完全P2P替代LTC2228,是 12 位、65Msps/40Msps/25Msps、低功率 3V A/D 转换器,专为高频、宽动态范围信号进行数字化处理而设计。
  • 快速体验Qwen3-ASR-0.6B:上传音频文件,一键识别文字
  • 南麟LN1173 低压差LDO线性稳压器芯片
  • 汇编指令与机器码速查手册:从基础到实战应用
  • 2026年4月注塑模具实力厂家口碑推荐,精密注塑模具/电气接插件注塑件/连接件注塑件/塑胶模具,注塑模具厂家口碑推荐 - 品牌推荐师
  • Harmonyos在语文教学中应用-9. 辨音挑战赛(对应:jqx)
  • 基于File-Based App开发MVP项目咆
  • NaViL-9B图文问答入门:支持‘读取文字→分析颜色→总结布局’链式指令
  • 推荐系统基础:协同过滤算法
  • Go语言的runtime.SetCPUProfileRate
  • frpc-desktop性能优化指南:让内网穿透更稳定高效
  • 算法竞赛用模板总索引
  • Phi-4-mini-reasoning从零开始:5分钟完成Web服务部署与健康检查
  • PlugY:暗黑破坏神2终极增强完全指南——突破原版限制的离线生存工具包
  • SD-PPP终极指南:如何用Photoshop AI插件实现AI绘图无缝协作
  • 5分钟搞定B站视频解析:这款免费PHP工具让你轻松获取高清播放地址
  • QT中的互斥与独立选择:QRadioButton与QCheckBox的实战应用
  • Go语言中的依赖管理:从go.mod到go.work
  • 5分钟快速上手:Cursor Pro免费激活与验证码自动获取完整指南
  • DDD难落地?就让AI干吧! - cleanddd-skills介绍诓