常用系统命令函工具(windows/linux/mac - 入门篇)
使用了 wsl 要在 windows 和 linux 之间进行切换? 这里以 window: PowerShell/CMD, Liunx: Zsh 为例熟悉常用命令
终端工具
- microsoft/terminal
- wez/wezterm 采用 Rust 编写, lua 配置
- gnachman/iTerm2
- vercel/hyper web 技术编写
常用 shell
- zsh
- bash
- powershell
- ...
时间日期
- date
shell
date
time # cmd/zsh
查看别名
- cmd 中没有 alias 别名
在 PowerShell/zsh/... 中,可以查看命令别名
shell
alias
- 在 PowerShell 中,得到的是 PowerShell 全名与短名的关系:
- Zsh 中是,得到的是各种内置别名,以 git 居多,当然如果在 ~/.zshrc 中配置 alias 后得到的
切换当前位置
cmd(win) | PowerShell(wind) | zsh(linux) | 说明 |
---|---|---|---|
cd | Set-location/cd | cd | 切换指定的目录 |
- cmd/zsh/PowerShell...
shell
cd d: // windwow: 切换到 d 盘
cd /etc/hosts // 切换到 etc 目录下处理 hosts 文件
cd %hosts%
- PowerShell
shell
Set-location d: // windwows PowerShell: 切换到 d 盘
PowerShell 有两个命令支持,很强大
列出当前文件列表
cmd(win) | PowerShell(wind) | zsh(linux) | 说明 |
---|---|---|---|
dir | dir/ls/gci/Get-ChildItem | dir/ls | 查看当前文件下文件/文件夹 |
- cmd 查看 windows 环境变量路径:
shell
ls env: # powershell
当前用户
cmd(win) | PowerShell(wind) | zsh(linux) | 说明 |
---|---|---|---|
whoami |
shell
whoami # cmd/powershell/zsh
ip 列表查询
cmd(win) | PowerShell(wind) | zsh(linux) | 说明 |
---|---|---|---|
切换到系统目录,然后执行ipconfig | ipconfig | ifconfig |
shell
ifconfig # linux zsh
cmd
shell
cd C:\windows\system32
ipconfig
推荐: C:\windows\system32
加入到系统环境变量
查看进程
cmd(win) | PowerShell(wind) | zsh(linux) | 说明 |
---|---|---|---|
tasklist | ps/tasklist | ps/top |
liunx 第三方进程:htop 包
shell
ps # linux zsh
top # linux zsh
结束某个进程
cmd(win) | PowerShell(wind) | zsh(linux) | 说明 |
---|---|---|---|
taskkill | taskkill | kill/killall |
网络监测
cmd(win) | PowerShell(wind) | zsh(linux) | 说明 |
---|---|---|---|
ping |
shell
ping baidu.com # zsh/cmd/powershell
tree 命令
linux 不会内置 tree 命令,需要手动安装
shell
sudo apt install tree
cmd(win) | PowerShell(wind) | zsh(linux) | 说明 |
---|---|---|---|
tree |
- linux zsh
shell
tree -L 1 # linux zsh
- windows tree 用法
shell
tree [drive:][path] [/F] [/A]
参数:
**drive** 盘符
**path** 文件路径
**/F** 递归列出所有文件
**/A** 只查看文件夹, 忽略文件
获取 command 命令
cmd(win) | PowerShell(wind) | zsh(linux) | 说明 |
---|---|---|---|
where | gcm/Get-Command | which/whereis | 查询命令位置(或者是否存在) |
shell
where git # cmd
gcm code # powershell
Get-Command ls # powershell
which lazygit # zsh
文件压缩/展开
cmd(win) | PowerShell(wind) | zsh(linux) | 说明 |
---|---|---|---|
compact | compact | gzip/gunzip/tar/bzip2/cpio | 用于压缩文件 |
创建文件
cmd(win) | PowerShell(wind) | zsh(linux) | 说明 |
---|---|---|---|
- | ni/New-Item | touch |
- cmd
shell
echo "" > abc.rs
- powershell
shell
ni abc.js
- zsh
shell
touch abc.ts
输出文件内容
cmd(win) | PowerShell(wind) | zsh(linux) | 说明 |
---|---|---|---|
echo |
shell
echo %PATH% # cmd
DNS 客户端 hosts
cmd(win) | PowerShell(wind) | zsh(linux) | 说明 |
---|---|---|---|
C:\Windows\System32\drivers\etc | C:\Windows\System32\drivers\etc | /etc/hosts | hosts 目录 |
内置编辑器
cmd(win) | PowerShell(wind) | zsh(linux) | 说明 |
---|---|---|---|
notepad | notepad | vi/vim/gedit/nano | 在终端中编辑文件 |
当前文件夹路径
cmd(win) | PowerShell(wind) | zsh(linux) | 说明 |
---|---|---|---|
pwd | 显示当前文件夹路径 |
输出文本内容
cmd(win) | PowerShell(wind) | zsh(linux) | 说明 |
---|---|---|---|
type | type/cat/Get-Content | cat | 显示指定文件内容 |
删除文件
cmd(win) | PowerShell(wind) | zsh(linux) | 说明 |
---|---|---|---|
del | rm/del/Remove-Item | rm |
复制文件
cmd(win) | PowerShell(wind) | zsh(linux) | 说明 |
---|---|---|---|
copy | cp/Copy-Item | cp | 说明 |
移动文件
cmd(win) | PowerShell(wind) | zsh(linux) | 说明 |
---|---|---|---|
move | mv/Move-Item | mv | 移动文件到指定位置 |
文件权限
cmd(win) | PowerShell(wind) | zsh(linux) | 说明 |
---|---|---|---|
- | - | chmod | 文件权限 |
cmd 内置环境变量
- cmd 命令
shell
set
打开资源管理
cmd(win) | PowerShell(wind) | zsh(linux) | macOS | 说明 |
---|---|---|---|---|
explorer | explorer | open | open | 打开文件资源管理器 |
- cmd/powershell Windows
shell
explorer ./
explorer.exe ./
- zsh Linux/MacOS
shell
open ./
Windows 内置环境变量
以下来源于网络
环境变量 | 作用域 | 说明 |
---|---|---|
%ALLUSERSPROFILE% | 局部 | 返回所有“用户配置文件”的位置。 |
%APPDATA% | 局部 | 返回默认情况下应用程序存储数据的位置。 |
%CD% | 局部 | 返回当前目录字符串。 |
%CMDCMDLINE% | 局部 | 返回用来启动当前的 Cmd.exe 的准确命令行。 |
%CMDEXTVERSION% | 系统 | 返回当前的“命令处理程序扩展”的版本号。 |
%COMPUTERNAME% | 系统 | 返回计算机的名称。 |
%COMSPEC% | 系统 | 返回命令行解释器可执行程序的准确路径。 |
%DATE% | 系统 | 返回当前日期。使用与 date /t 命令相同的格式。由 Cmd.exe 生成。有关 date 命令的详细信息,请参阅 Date。 |
%ERRORLEVEL% | 系统 | 返回最近使用过的命令的错误代码。通常用非零值表示错误。 |
%HOMEDRIVE% | 系统 | 返回连接到用户主目录的本地工作站驱动器号。基于主目录值的设置。用户主目录是在“本地用户和组”中指定的。 |
%HOMEPATH% | 系统 | 返回用户主目录的完整路径。基于主目录值的设置。用户主目录是在“本地用户和组”中指定的。 |
%HOMESHARE% | 系统 | 返回用户的共享主目录的网络路径。基于主目录值的设置。用户主目录是在“本地用户和组”中指定的。 |
%LOGONSEVER% | 局部 | 返回验证当前登录会话的域控制器的名称。 |
%NUMBER_OF_PROCESSORS% | 系统 | 指定安装在计算机上的处理器的数目。 |
%OS% | 系统 | 返回操作系统的名称。Windows 2000 将操作系统显示为 Windows_NT。 |
%PATH% | 系统 | 指定可执行文件的搜索路径。 |
%PATHEXT% | 系统 | 返回操作系统认为可执行的文件扩展名的列表。 |
%PROCESSOR_ARCHITECTURE% | 系统 | 返回处理器的芯片体系结构。值: x86,IA64。 |
%PROCESSOR_IDENTFIER% | 系统 | 返回处理器说明。 |
%PROCESSOR_LEVEL% | 系统 | 返回计算机上安装的处理器的型号。 |
%PROCESSOR_REVISION% | 系统 | 返回处理器修订号的系统变量。 |
%PROMPT% | 局部 | 返回当前解释程序的命令提示符设置。由 Cmd.exe 生成。 |
%RANDOM% | 系统 | 返回 0 到 32767 之间的任意十进制数字。由 Cmd.exe 生成。 |
%SYSTEMDRIVE% | 系统 | 返回包含 Windows XP 根目录(即系统根目录)的驱动器。 |
%SYSTEMROOT% | 系统 | 返回 Windows XP 根目录的位置。 |
%TEMP% and %TMP% | 系统和用户 | 返回对当前登录用户可用的应用程序所使用的默认临时目录。有些应用程序需要 TEMP,而其它应用程序则需要 TMP。 |
%TIME% | 系统 | 返回当前时间。使用与 time /t 命令相同的格式。由 Cmd.exe 生成。有关 time 命令的详细信息,请参阅 Time。 |
%USERDOMAIN% | 局部 | 返回包含用户帐户的域的名称。 |
%USERNAME% | 局部 | 返回当前登录的用户的名称。 |
%UserProfile% | 局部 | 返回当前用户的配置文件的位置。 |
%WINDIR% | 系统 | 返回操作系统目录的位置。 |
PowerShell
使用:
- powershell
shell
Get-Variable
ls env:
dir env:
powershell 常用变量
Powershell内置变量名称 | 说明 |
---|---|
$$ | 当前会话中收到的最后一行中的最后一个令牌(你可以理解为最后一条执行命令) |
$? | 最后一个操作的执行状态。这个操作可以是Powershell命令,或是调用exe等的返回值,如果最后一个操作成功,则$?包含的值时True,否则包含的值是False。这个内置在判断上一个操作是否成功执行时,非常有用。 |
$LastExitCode | 最后一个基于 Windows 的程序的退出代码。注意区分该变量与$?的区别 |
$True | 包含True,可以在命令或脚本中使用此内置变量来代替字符串"TRUE"。 |
$False | 包含False,可以在命令或脚本中使用此内置变量来代替字符串"FALSE"。 |
$NULL | 包含NULL或空值。可以在命令和脚本中使用此变量表示 NULL,而不是使用字符串"NULL"。如果该字符串转换为非空字符串或非零整数,则可将该字符串解释为TRUE。 |
$_ | 包含管道对象中的当前对象,在对管道中的对象做筛选或是执行相应的操作命令时,该内置变量尤其有用。如以下命令是筛选所有以 Get-Com 开头的命令Get-Command |
$This | 在定义脚本属性或脚本方法的脚本块中,This变量引用要扩展的对象。这个和高级语言中的this一样,表示的是当前要引用的对象。注意该内置变量与This 变量引用要扩展的对象。这个和高级语言中的this一样,表示的是当前要引用的对象。注意该内置变量与_的不同。 |
$PID | 当前 Windows PowerShell 会话的进程的进程标识符 (PID),一个整数表示的数字 |
$ShellID | 当前Shell的标示符,如Microsoft.PowerShell |
$PsUICulture | 操作系统中当前所用的用户界面 (UI) 区域性的名称(例如,如果是简体中文,则该值是zh-CN)。UI 区域性确定哪些文本字符串用于用户界面元素(如菜单和消息)。这是系统的System.Globalization.CultureInfo.CurrentUICulture.Name 属性的值 |
$PsCulture | 操作系统中当前所用的区域性的名称(例如,如果是简体中文,则该值是zh-CN)。区域性确定数字、货币和日期等项的显示格式。这是系统的 System.Globalization.CultureInfo.CurrentCulture.Name 属性的值。 |
$PsHome | Windows PowerShell 的安装目录的完整路径(通常为 %windir%\System32\WindowsPowerShell\v1.0)。可以在 Windows PowerShell 文件的路径中使用此变量。 |
$Home | 用户的主目录的完整路径,等效于 %homedrive%或%homepath% 环境变量 |
$Pwd | 当前目录的完整路径 |
$Host | 表示 Windows PowerShell 的当前主机应用程序(通俗点讲就是代表当前主机)。可以使用此变量在命令中表示当前主机,或者显示或更改主机的属性,如 Host.version、Host.version、Host.CurrentCulture 或 $host.ui.rawui.setbackgroundcolor("Red")。 |
$Profile | 当前用户和当前主机应用程序的 Windows PowerShell 配置文件的完整路径。可以在命令中使用此变量表示配置文件 |
$PsVersionTable | 只读哈希表,表示当前运行的Powershell版本的详细信息,该表包含下列项。CLRVersion: 公共语言运行时 (CLR) 的版本BuildVersion: 当前版本的内部版本号PSVersion: Windows PowerShell 版本号WSManStackVersion: WS-Management 堆栈的版本号PSCompatibleVersions: 与当前版本兼容的 Windows PowerShell 版本SerializationVersion : 序列化方法的版本PSRemotingProtocolVersion : Windows PowerShell 远程管理协议的版本 |
linux 常用环境变量
环境变量 | 说明 |
---|---|
PATH | 决定了shell将到哪些目录中寻找命令或程序 |
HOME | 当前用户主目录 |
HISTSIZE | 历史记录数 |
LOGNAME | 当前用户的登录名 |
HOSTNAME | 指主机的名称 |
SHELL | 当前用户Shell类型 |
LANGUGE | 语言相关的环境变量,多语言可以修改此环境变量 |
当前用户的邮件存放目录 | |
PS1 | 基本提示符,对于root用户是#,对于普通用户是$ |
小结
- 一些常用 Shell 的 Windows/Linux/MacOS 命令
- 持续更新中...