CMD

来自Wikioe
跳到导航 跳到搜索


关于

cmd:

cmd 是 Command shell 的简写:CommandShell 是一个独立的应用程序,它为用户提供对操作系统直接通信的功能,它为基于字符的应用程序和工具提供了非图形界面的运行环境,它执行命令并在屏幕上回显 MS-DOS 风格的字符。

微软的定义是:
   The command shell is a separate software program that provides direct communication between the user and the operating system. The non-graphical command shell user interface provides the environment in which you run character-based applications and utilities. The command shell executes programs and displays their output on the screen by using individual characters similar to the MS-DOS command interpreter Command.com.
   (command shell 是一个独立的软件程序,提供用户和操作系统之间的直接通信。非图形化命令shell用户界面提供了运行基于字符的应用程序和实用程序的环境。命令shell使用与MS-DOS命令解释器command.com类似的单个字符执行程序并在屏幕上显示其输出。)
  1. cmd 一般指“command”的缩写,意味“命令提示符”,是在 cmd.exe 中执行的一系列命令。
  2. cmd 是 PowerShell 的子集。


shell:

操作系统可以分成:核心(kernel)和外壳(shell)两部分,其中,Shell 是操作系统与外部的主要接口,位于操作系统的外层,为用户提供与操作系统核心沟通的途径。

按照 ABS 的定义,shell 是:
   The shell is a command interpreter. More than just the insulating layer between the operating system kernel and the user, it's also a fairly powerful programming language。
   (shell 是一个命令解释器。它不仅是操作系统内核和用户之间的隔离层,还是一种功能相当强大的编程语言)
  1. shell 俗称“壳”(区别于“核”kernel),是一种“命令解析器”,处于内核和用户之间,负责把用户的指令传递给内核并且把执行结果回显给用户。
    • 用户可以通过 Shell 与操作系统进行交互:等待输入,向操作系统解释输入,并且处理各种各样的操作系统的输出结果。
  2. shell 分为“图形界面 shell”和“命令行 shell”两大类。
    • 在 Windows 系统中见到的桌面即 explorer.exe(资源管理器)是“图形 shell”;power shell 就是“命令行 shell”。
  3. 不同系统有不同的 shell
    • 在 Linux/Unix 系统中,通常是 Bash (即,Bourne Again shell);
    • 在 Windows 平台上,为 PowerShell。
  4. 同时,shell 也可以作为一门强大的编程语言



Q&A

Q: DOS 与 cmd 区别?
A: DOS(Disk Operating System,磁盘操作系统)本身就是一个系统;cmd 本身是接口,属于 windows 系统的一部分。(在 dos 下可以删除、修复 Windows 系统,而在 cmd 下则不行)
二者相似,只在于 cmd 中的某些命令和 dos 中的命令相似。


Q: Linux shell(bash)和 Windows PowerShell、cmd 区别?
A: 可以近似地认为“Linux shell”= bash,而“Windows shell”= PowerShell,而 cmd 是 PowerShell 的子集。
作为用户与操作系统的交互接口,bash 和 PowerShell 要比 cmd 强大很多。


Q: Windows 下能用 bash shell 吗?
A: 想要在 Windows 下体验 bash,可以考虑虚拟机(系统与 Windows 相独立),或者 WSL(可在原生运行Linux二进制可执行文件)等方式。


Q: 脚本语言和普通的编程语言有什么区别?
A: 编程语言有“编写-编译-链接-运行”的流程;而脚本语言是“解释-执行”而非编译。
每种脚本语言都需要其对应的解释器:脚本语言的程序代码即使最终的可执行文件,通过对应的解释器解释执行即可,所以更方便快捷。
(如:Perl、Python、Ruby、JavaScript等都是脚本语言,shell 也属于一种比较特殊的脚本语言)

del 与 rd、rmdir

del 用于删除文件,rd、rmdir 用于删除目录:

  1. C:\Users\eijux>del /?
    删除一个或多个文件。
    
    DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
    ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
    
      names         指定一个或多个文件或者目录列表。
                    通配符可用来删除多个文件。
                    如果指定了一个目录,该目录中的所
                    有文件都会被删除。
    
      /P            删除每一个文件之前提示确认。
      /F            强制删除只读文件。
      /S            删除所有子目录中的指定的文件。
      /Q            安静模式。删除全局通配符时,不要求确认
      /A            根据属性选择要删除的文件
      属性          R  只读文件            S  系统文件
                    H  隐藏文件            A  准备存档的文件
                    I  无内容索引文件      L  重新分析点
                    O  脱机文件            -  表示“否”的前缀
    
    如果命令扩展被启用,DEL 和 ERASE 更改如下:
    
    /S 开关的显示句法会颠倒,即只显示已经
    删除的文件,而不显示找不到的文件。
    
    C:\Users\eijux>
    
    • del 可以用来删除某一文件夹中的所有文件(但不包括文件夹和子文件夹???);
    • “del /F”可以用来删除只读文件;
  2. C:\Users\eijux>rd /?
    删除一个目录。
    
    RMDIR [/S] [/Q] [drive:]path
    RD [/S] [/Q] [drive:]path
    
        /S      除目录本身外,还将删除指定目录下的所有子目录和
                文件。用于删除目录树。
    
        /Q      安静模式,带 /S 删除目录树时不要求确认
    
    C:\Users\eijux>
    
    • “rd /s”可以用来删除非空的文件夹;
  3. C:\Users\eijux>rmdir /?
    删除一个目录。
    
    RMDIR [/S] [/Q] [drive:]path
    RD [/S] [/Q] [drive:]path
    
        /S      除目录本身外,还将删除指定目录下的所有子目录和
                文件。用于删除目录树。
    
        /Q      安静模式,带 /S 删除目录树时不要求确认
    
    C:\Users\eijux>
    


示例:

del /S /Q E:\Downloads\qBittorrent\"HE..."
del /S /Q E:\Downloads\qBittorrent\"SS..."

rmdir /S /Q E:\Downloads\qBittorrent\"HE..."
rmdir /S /Q E:\Downloads\qBittorrent\"SS..."

FAQ

在当前目录下,打开cmd命令窗口

  1. 方法一:
    在当前目录下(或指定文件夹),按下:shift + 鼠标右键,会出现“在此处打开命令窗口”的字样,然后点击即可。
  2. 方法二:
    在当前目录下,在文件管理器的地址栏直接输入 cmd 回车即可打开(同样也可打开其它命令!)。

powershell无法复制粘贴

在powershell标题栏右键,“属性”->“选项”中的“标题选项”,选中“快速编辑模式”。
ctrl+c/v不好使就用鼠标右键的复制粘贴。