Bash、PowerShell 常见操作总结

本文总结了Bash和PowerShell中常见的目录操作命令。


Bash部分包括cd导航、pwd查看路径、目录栈管理(pushd/popd)以及相对路径使用技巧。


PowerShell部分涵盖Set-Location(cd)导航、Get-ChildItem(ls)查看内容、目录栈操作和特有的PSDrive功能。


两者都支持返回上级目录、主目录和目录历史管理,但PowerShell提供了更丰富的路径处理功能,如跨平台路径操作和访问注册表等特殊存储。


文章还对比了两者在路径分隔符、命令分隔符等方面的差异,帮助用户提高命令行工作效率。


Bash常见操作总结表

操作类型 命令/符号 说明 示例
目录导航 cd .. 返回上一级目录 cd ..
cd ../.. 返回上两级目录 cd ../..
cd - 返回上一个工作目录 cd -
cd ~cd 返回用户主目录 cd ~
cd / 返回根目录 cd /
目录查看 pwd 显示当前目录完整路径 pwd
ls 列出当前目录内容 ls -la
路径相关 pushd 将目录保存到目录栈并切换 pushd /path/to/dir
popd 从目录栈恢复上一个目录 popd
dirs 显示目录栈内容 dirs -v
特殊路径 . 当前目录 ./script.sh
.. 上级目录 ../other-dir/file.txt

常用组合操作

场景 命令组合 效果
快速返回上级目录并查看内容 cd .. && ls 返回上级并列出文件
进入深层目录后返回原处 cd /very/long/path cd - 快速回到原工作目录
临时访问其他目录并返回 pushd /tmp # 执行操作 popd 自动返回原目录

实用技巧

  1. 使用别名简化操作

    bash 复制代码
    alias ..='cd ..'
    alias ...='cd ../..'

    之后可直接用 .. 返回上级

  2. 目录栈管理

    bash 复制代码
    pushd /dir1
    pushd /dir2
    dirs -v  # 查看栈
    popd     # 返回/dir1
    popd     # 返回原始目录
  3. 相对路径使用

    bash 复制代码
    # 从当前目录的上级目录访问文件
    cat ../config/file.conf
    
    # 从上级目录执行脚本
    ../scripts/start.sh
  4. 环境变量

    bash 复制代码
    # 使用HOME变量
    cd $HOME/Documents
    
    # 使用OLDPWD变量(存储上一个目录)
    echo $OLDPWD

这些操作是Bash日常使用中最基本且最频繁的目录导航命令,掌握后能显著提高命令行工作效率。


PowerShell常见操作总结表

操作类型 命令/别名 说明 示例
目录导航 Set-Location ..cd .. 返回上一级目录 cd ..
Set-Location ../.. 返回上两级目录 cd ../..
Set-Location -cd - 返回上一个工作目录(PowerShell 5.1+) cd -
Set-Location ~cd ~ 返回用户主目录 cd ~
Set-Location \cd \ 返回当前驱动器的根目录 cd \
Set-Location / 返回文件系统的根目录(跨平台) cd /
目录查看 Get-Locationpwd 显示当前目录路径 pwd
Get-Location -Stack 显示目录栈内容 Get-Location -Stack
Get-ChildItemlsdir 列出当前目录内容 ls -Force
目录栈操作 Push-Locationpushd 保存当前目录到栈并切换 pushd C:\Windows
Pop-Locationpopd 从栈恢复上一个目录 popd
驱动器操作 Get-PSDrive 显示所有PS驱动器 Get-PSDrive
Set-Location C: 切换驱动器(Windows) cd C:
Set-Location Env: 进入环境变量驱动器 cd Env:
路径操作 Resolve-Path 解析路径中的通配符 Resolve-Path .\*.ps1
Split-Path 获取路径的特定部分 Split-Path -Parent .\test\file.txt
Join-Path 合并路径部分 Join-Path C:\test "file.txt"

常用组合操作

场景 命令组合 效果
返回上级并列出文件 cd ..; ls PowerShell使用分号分隔命令
临时访问目录并返回 pushd C:\Temp; Get-Process; popd 自动化工作流
查看目录历史 (Get-PSReadLineOption).HistorySavePath 查看命令历史文件位置
快速访问特殊文件夹 cd $HOMEcd $env:USERPROFILE 使用环境变量

特殊文件夹快捷方式

快捷方式 对应路径 说明
$HOME 用户主目录 跨平台兼容
$PWD 当前目录 可在字符串中使用
$env:TEMP 临时文件夹 Windows临时目录
$PSHOME PowerShell安装目录 PowerShell程序目录
[Environment]::GetFolderPath('Desktop') 桌面路径 .NET方法获取特殊文件夹

PowerShell特有功能

功能 命令/方法 说明
提供程序导航 cd HKLM:\ 进入注册表驱动器
cd Cert:\ 进入证书存储
cd Variable: 进入变量驱动器
位置历史 (Get-PSReadlineOption).HistorySavePath 获取历史文件路径
自动补全 Tab 路径和命令补全
通配符搜索 cd *test* 使用通配符跳转目录

实用技巧

  1. 使用自定义函数简化操作

    powershell

    复制代码
    # 创建返回多级目录的函数
    function .. { Set-Location .. }
    function ... { Set-Location ..\.. }
    function .... { Set-Location ..\..\.. }
  2. 使用位置栈管理多个目录

    powershell

    复制代码
    pushd C:\Projects
    pushd D:\Data
    Get-Location -Stack  # 查看栈内容
    popd  # 返回C:\Projects
    popd  # 返回原始目录
  3. 路径操作示例

    powershell

    复制代码
    # 获取父目录
    Split-Path -Parent "C:\Users\John\Documents\file.txt"
    
    # 组合路径
    Join-Path "C:\Test" "subfolder\file.txt"
    
    # 解析相对路径为绝对路径
    Resolve-Path ".\scripts\*.ps1"
  4. 跨平台路径处理

    powershell

    复制代码
    # 跨平台兼容的路径操作
    [System.IO.Path]::Combine("folder", "subfolder", "file.txt")
    [System.IO.Path]::GetDirectoryName("C:\test\file.txt")
  5. 使用PSDrive访问不同数据存储

    powershell

    复制代码
    # 访问注册表
    cd HKLM:\Software
    ls
    
    # 访问环境变量
    cd Env:
    Get-ChildItem | Where-Object Name -like "*PATH*"
    
    # 访问证书存储
    cd Cert:\CurrentUser\My

与Bash的主要区别

特性 PowerShell Bash
路径分隔符 \(Windows),/(跨平台) /
命令分隔符 ; ;&&
当前目录表示 .(相对),$PWD(变量) .$PWD
上级目录 .. ..
根目录 \/ /
主目录 ~$HOME ~$HOME

PowerShell的目录操作虽然与Bash有相似之处,但提供了更丰富的功能,特别是通过PSDrive可以访问各种数据存储,这是其独特优势。

相关推荐
时光803.3 天前
快速搭建青龙面板Docker教程
windows·ubuntu·bash·httpx
无奈笑天下3 天前
银河麒麟V10虚拟机安装vmtools报错:/bin/bash解释器错误, 权限不够
linux·运维·服务器·开发语言·经验分享·bash
DevGu3 天前
Linux 子账户显示bash-4.25,不显示用户名
linux·运维·bash
花哥码天下4 天前
修复Bash脚本Here Document错误
开发语言·bash
秋邱4 天前
Java面向对象进阶实战:用工厂模式+策略模式优化支付系统
java·bash·策略模式
junlaii6 天前
Windows Claude Code Git Bash 依赖修复教程
windows·git·bash
Percep_gan6 天前
解决-bash: /usr/bin/yum: No such file or directory
开发语言·bash
gis分享者7 天前
Bash 中如何使用正则表达式进行文本处理?(中等)
正则表达式·bash·shell·文本·处理
可能是这样吧7 天前
向已有仓库上传,并单独建分支(使用 Git Bash)
git·bash