Bash Shell 命令练习

本文介绍了一系列Shell命令的应用技巧,包括字符串处理、文件操作、变量解析等。通过具体示例展示了如何利用Shell内置命令及管道来高效完成任务,如计算字符串中数字总和、转换大小写、解析环境变量等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 2 3 4 5 6 7 8 9 a v 你好 . /8 求以上字符串中所有数字之和

echo $[`cat test1 | tr -s -c "1234567890" " " | tr " " "+"` 0]

echo “ABCefg” >> test2 将字符串中的所有小写变大写

cat test2 | tr "ABCDEFG" “abcdefg"

找到PATH 变量中的最后一个路径

echo $PATH | tr ":" "\n" | tail -1

将export命令的第12个字符之后输出

export | cut -c 12-

使用last命令,输出所有的关机信息

last | grep “shutdown"


将 /etc/passwd 中的内容按用户名排序

cat /etc/passwd | sort -k 1

将 /etc/passwd 中的内容按uid排序

cat /etc/passwd | sort -t : -k 3 -n

将树莓派中登录的所有用户名,按照次数排序,并输出次数

last | grep -v "wtmp" | grep -v "boot" | cut -d " " -f 1 | sort | uniq -c
<think>我们是在Windows环境下,但用户想练习Shell命令(通常指Linuxshell)。不过,Windows10及以上版本支持WSL(WindowsSubsystemforLinux)和PowerShell。因此,我们可以提供两种方案:1.在WSL(Linux子系统)中使用bashshell命令创建文件夹(此时D盘在WSL中通常挂载在/mnt/d)2.在WindowsPowerShell中使用类shell命令(PowerShell本身支持类似Linux的命令)由于用户明确提到“shell命令”,我们优先考虑Linuxshell方式(通过WSL)和PowerShell方式。另外,根据引用[1]和[3]中提到的批量创建文件夹,我们可以结合用户需求进行扩展。步骤:方案一:通过WSL(Linux子系统)在D盘创建文件夹前提:已安装WSL(如Ubuntu)1.打开WSL终端(在开始菜单中搜索Ubuntu或安装的其他发行版)2.在WSL中,D盘通常挂载在`/mnt/d/`,因此可以使用标准的`mkdir`命令-创建单个文件夹:```bashmkdir/mnt/d/新文件夹```-批量创建多个文件夹(参考引用[1]和[3]):例如,先创建一个文件夹列表文件`Folders.txt`,每行一个文件夹名,然后在脚本中读取并创建。在WSL中操作:```bash#切换到D盘根目录(在WSL中)cd/mnt/d/#创建Folders.txt文件,并写入几个文件夹名(使用nano或vim编辑)echo"Folder1">Folders.txtecho"Folder2">>Folders.txtecho"Folder3">>Folders.txt#使用脚本创建(创建Run.sh文件)cat>Run.sh<<EOF#!/bin/bashfolders=\$(cat./Folders.txt)forfolderin\$foldersdo#去除换行符(如果文件是在Windows下创建的,可能包含\r)name=\$(echo\${folder}|tr-d'\r'|tr-d'\n')mkdir./"\${name}"doneEOF#给脚本执行权限chmod+xRun.sh#运行脚本./Run.sh```这样就在D盘根目录下创建了Folder1,Folder2,Folder3三个文件夹。方案二:在WindowsPowerShell中使用类Shell命令在PowerShell中,我们可以使用`New-Item`命令创建文件夹,也可以编写类似Shell脚本的循环。1.创建单个文件夹:```powershellNew-Item-ItemTypeDirectory-Path"D:\新文件夹"```2.批量创建多个文件夹(模拟Shell脚本方式):例如,我们创建一个文本文件`Folders.txt`,里面包含要创建的文件夹名称(每行一个),然后使用PowerShell脚本来读取并创建。步骤:-在D盘根目录下创建Folders.txt文件,内容为:```Folder1Folder2Folder3```-在PowerShell中执行以下脚本:```powershell#读取Folders.txt文件,注意文件路径$folders=Get-Content-Path"D:\Folders.txt"foreach($folderin$folders){#去除可能存在的换行符和回车符$name=$folder.Trim()New-Item-ItemTypeDirectory-Path("D:\{0}"-f$name)}```方案三:在Windows命令提示符(cmd)中使用批处理脚本虽然用户要求shell命令,但如果在纯Windows环境下,也可以使用批处理命令。1.单个文件夹:```batchmkdirD:\新文件夹```2.批量创建:创建Folders.txt文件(同上),然后创建Run.bat:```batch@echoofffor/f"delims="%%iin(D:\Folders.txt)do(mkdir"D:\%%i")pause```运行Run.bat即可。注意:以上方案中,方案一最符合用户要求的“shell命令”(Linux风格),但需要WSL环境。方案二和方案三不需要额外环境,但属于Windows自带的脚本环境。根据用户需求“练习shell命令”,我们推荐方案一(WSL),因为这是真正的Linuxshell环境。如果用户没有安装WSL,可以参考以下步骤快速安装:1.以管理员身份打开PowerShell2.运行:`wsl--install`3.重启计算机安装完成后,从MicrosoftStore安装一个Linux发行版(如Ubuntu)。最后,关于引用[2]和[4]的内容,用户当前问题没有直接关联,因此不展开。生成相关问题:1.如何在WSL中访问Windows的其他磁盘分区(如E盘)?2.如何在PowerShell中批量创建带有空格和特殊字符的文件夹?3.如何编写一个Shell脚本在指定路径下创建多个子目录并在每个子目录中创建文件?4.如何删除使用Shell脚本批量创建的文件夹?5.Windows环境下如何安装和配置WSL?注意:在回答中,我们引用了引用[1]和[3]关于批量创建文件夹的脚本思路,因此可以在相关位置添加引用标记[^1][^3]。</think>以下是使用 Shell 命令在 Windows D 盘创建文件夹的详细方案,结合了标准 Shell 语法和 Windows 环境的适配技巧: ### 方案一:通过 WSL (推荐) ```bash # 进入 D 盘挂载点 cd /mnt/d/ # 创建单个文件夹 mkdir NewFolder # 批量创建文件夹(参考引用[1]和[3]) folders=("Project" "Docs" "Temp") for folder in "${folders[@]}"; do mkdir -p "./${folder}" done # 创建带空格的文件夹(需引号包裹) mkdir "Important Files" ``` > **说明**: > 1. WSL 将 Windows 驱动器挂载在 `/mnt/` 下(D盘对应 `/mnt/d/`)[^2] > 2. `-p` 参数允许创建多级目录 > 3. 数组批量操作避免文件读取(引用[1]的优化) ### 方案二:通过 Git Bash ```bash # 直接创建到 D 盘 mkdir /d/Backup # 创建带日期的文件夹(引用[3]思路) timestamp=$(date +"%Y%m%d") mkdir "/d/Data_${timestamp}" # 批量创建嵌套目录 mkdir -p /d/Projects/{Frontend,Backend,Database} ``` ### 方案三:通过 PowerShell (类 Shell 语法) ```powershell # 创建基础文件夹 New-Item -Path "D:\Logs" -ItemType Directory # 批量创建(引用[2]的路径处理) "Reports","Archives","Temp" | ForEach-Object { New-Item -Path "D:\$_" -ItemType Directory } # 创建多级目录 New-Item -Path "D:\Level1\Level2\Level3" -ItemType Directory -Force ``` ### 关键注意事项 1. **权限问题**: - 需要以管理员身份运行 Shell 操作系统目录 - 普通目录直接操作即可 2. **路径差异**: ```mermaid graph LR A[Windows路径] -->|WSL转换| B(D:\Project → /mnt/d/Project) A -->|Git Bash转换| C(D:\Data → /d/Data) ``` 3. **特殊字符处理**: ```bash # 正确:引号包裹特殊字符 mkdir "/d/Project #1" # 错误:空格未处理 mkdir /d/Bad Folder # 会创建两个文件夹 ``` ### 验证操作 ```bash # 查看 D 盘内容 ls -l /mnt/d/ # 检查文件夹结构 tree /d/Projects -L 2 ``` > **提示**:对于需要文件操作的进阶场景(如引用[3]的 README.md 创建),可结合 `touch` 命令: > ```bash > mkdir /d/NewProject && touch /d/NewProject/README.md > ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值