Shell、Bash、CMD、PowerShell 的区别

简 述: 『Shell』 =『图形用户界面(GUI)shell』 + 『命令行界面(CLI)的 shell』 ,捋一下 Mac / Linux / Windows 下常见的 shell。讲解 shellbashcmdzshPowerShell 等的区别。


本文初发于 “偕臧的小站”,同步转载于此。


预备知识

『DOS』:是磁盘操作系统(英文:Disk Operating System)的缩写,是个人计算机上的一类操作系统。DOS 家族包括 MS-DOS、PC-DOS、DR-DOS、FreeDOS、PTS-DOS、ROM-DOS、JM-OS等,其中以 MS-DOS 最为著名。虽然这些系统常被简称为"DOS",但没有任何一个系统单纯以"DOS"命名。注释


Shell 介绍

『Shell / 壳层』:命令行界面的解释器,用户和系统内核的沟通桥梁。分为:①命令行界面(CLI) ;② 图形用户界面(GUI)。注释


图形用户界面(GUI)shell

MacOS 的 shell

『Finder / 访达』: 在 MacOS 中,能让用户管理文件、文件、磁盘、网络,以及启动其他的应用程序的引用程序。注释


Linux 的 shell

『X窗口管理器』: 独立的 X窗口管理器,例如 BlackboxFluxbox注释

『Desktop Environment / 桌面环境』: 桌面环境是依靠于窗口管理器的的扩展实现。如 KDEGNOMEXfceDDE注释


Windows 的 shell

『Explorer / 文件资源管理器』: 此操作系统中浏览电脑中文件与文件夹结构的基本工具,win + E 快捷键呼出。注释

『开始菜单』: 屏幕的左下角菜单, win 键呼出。注释

『DOS Shell』: 1998 年发布于 MS-DOS 的文件管理器,是终端里面生成的可视化界面。注释


命令行界面(CLI)的 shell

MacOS / Linux 的 shell

『sh / Bourne shell』: 1977 在 Version 7 Unix 上的默认 shell。注释

『Bash』: 名称由来 Bourne-Again SHell,在 GNU 计划中,于 1989 发布于第一个版本,是 sh 的兼容的开源的续作。亦是 Linux 和 MacOS (含10.14之前)的默认 shell。注释

『Z shell / Zsh』: 是 sh + bash + 扩展功能。自2019 年起,MacOS 的默认 Shell 已从 『Bash 』改为『Zsh』。注释


Windows 的 shell

『命令提示符 / cmd.exe』:是 Win32 应用程序,取代『COMMAND.COM』。Windows命令提示符(cmd.exe) 是 Windows NT 下的一个用于运行 Windows 控制台程序或某些 DOS 程序的壳层程序;注释

『PowerShell』 : 包括 ①Windows PowerShel + ②PowerShell Core ,基于 .NET 框架开发,自 2016 年后开源且跨平台。① 为前四年的版本,仅支持 Win 平台;② 则是其演进,支持跨平台 Linux 和 Mac。注释

『COMMAND.COM』: 是一个16位的 DOS 应用程序。已经被 命令提示符(cmd.exe) 取代在 MS-DOS、Windows 95、Windows 98、Windows 98SE 和 Windows Me 上的默认命令行界面。注释


总结

『Shell』 =『图形用户界面(GUI)shell』 + 『命令行界面(CLI)的 shell』



『PowerShell』和其它命令解释器比较

重点关心一下 『PowerShell』 的一些命令,因为我最近在写 .yml 的 windows 脚本。注释

PowerShell(命令行)PowerShell(别名)命令提示符Unix shell描述
Get-ChildItemgci, dir, lsdirls列出目前或指定文件夹中的所有文件和文件夹
Test-Connection[a]pingpingping从目前电脑向指定电脑发送Ping,或指示另一台电脑这样做
Get-Contentgc, type, cattypecat获取文件内容
Get-Commandgcmhelptype, which, compgen列出可用的命令
Get-Helphelp, manhelpapropos, man在控制台上打印命令的文档
Clear-Hostcls, clearclsclear清除屏幕[b]
Copy-Itemcpi, copy, cpcopy, xcopy, robocopycp将文件和文件夹复制到另一个位置
Move-Itemmi, move, mvmovemv将文件和文件夹移动到新位置
Remove-Itemri, del, erase, rmdir, rd, rmdel, erase, rmdir, rdrm, rmdir删除文件或文件夹
Rename-Itemrni, ren, mvren, renamemv重命名单个文件、文件夹、硬链接或符号链接
Get-Locationgl, cd, pwdcdpwd显示工作路径(目前文件夹)
Pop-Locationpopdpopdpopd将工作路径更改为最近推送到堆栈上的位置
Push-Locationpushdpushdpushd将工作路径存储到堆栈中
Set-Locationsl, cd, chdircd, chdircd改变工作路径
Tee-Objecttee不适用tee将输入管道传输到文件或变量,并沿管道传递输入
Write-Outputecho, writeechoecho将字符串或其他对像打印到标准流
Get-Processgps, pstlist,[c] tasklist[d]ps列出所有正在执行的进程
Stop-Processspps, killkill,[c] taskkill[d]kill[e]停止正在执行的进程
Select-Stringslsfindstrfind, grep打印与模式匹配的行
Set-Variablesv, setsetenv, export, set, setenv创建或更改环境变量的内容
Invoke-WebRequestiwr, curl, wget[f]curlwget, curl获取互联网上的网页内容
  • 27
    点赞
  • 90
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在使用Python的subprocess模块调用shell命令时,可以使用subprocess.Popen函数来执行命令。例如,可以使用以下代码来执行shell命令并获取输出结果: ```python import subprocess cmd = "shell命令" res = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) output, error = res.communicate() print(output.decode()) # 打印命令输出结果 print(error.decode()) # 打印错误信息 ``` 在PyCharm中执行shell命令时,如果需要执行.sh文件,可以按照以下步骤进行操作: 1. 在本机安装Git,以便使用Git Bash。 2. 在PyCharm中打开终端(Terminal)。 3. 在终端中输入`bash`命令,然后输入.sh文件的路径和文件名,按回车执行。 如果你在PyCharm中的终端显示的是PowerShell(PS)前缀,而不是cmd命令行,你可以按照以下步骤将其改为cmd运行: 1. 在PyCharm中打开终端(Terminal)。 2. 点击终端右侧的设置按钮(齿轮图标)。 3. 在弹出的菜单中选择"Default Shell"。 4. 选择"Command Prompt"作为默认终端。 这样,PyCharm中的终端将使用cmd命令行来执行命令。 #### 引用[.reference_title] - *1* [pycharm怎么打开python shell-python如何执行shell命令](https://blog.csdn.net/weixin_39528366/article/details/109617442)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Windows系统下pycharm运行.sh文件,执行shell命令](https://blog.csdn.net/weixin_43873100/article/details/121827273)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [PyCharm中的terminal运行从PS修改成cmd](https://blog.csdn.net/weixin_39450145/article/details/125630375)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

偕臧x

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值