欢迎光临
我们一直在努力

Linux命令:sh

sh 命令

基本介绍

sh 是 Unix/Linux 系统中的标准命令行解释器,也称为 Bourne Shell。它是最早的 Unix shell 之一,由 Stephen Bourne 于 1977 年编写。sh 提供了基本的命令执行环境和脚本编程能力,是许多系统脚本和配置文件的默认解释器。

资料合集:https://pan.quark.cn/s/6fe3007c3e95、https://pan.quark.cn/s/561de99256a5、https://pan.quark.cn/s/985f55b13d94、https://pan.quark.cn/s/d0fb20abd19a

语法

sh [选项] [脚本文件]

启动选项

选项说明
-c <command> 执行指定的命令后退出
-i 启动交互式 shell
-l 作为登录 shell 启动
-r 启动受限 shell
-s 从标准输入读取命令
-v 显示读取的输入行
-x 执行命令前显示命令及其参数

常用内置命令

文件和目录操作

命令说明
cd <dir> 切换目录
pwd 显示当前目录
mkdir <dir> 创建目录
rmdir <dir> 删除空目录
rm <file> 删除文件或目录
cp <src> <dst> 复制文件
mv <src> <dst> 移动或重命名文件

变量和环境

命令说明
export <var>=<value> 设置环境变量
set 显示所有变量和函数
unset <var> 删除变量
env 显示环境变量
echo <text> 输出文本
read <var> 读取用户输入

流程控制

命令说明
if … then … fi 条件判断
case … esac 多条件分支
for … do … done 循环
while … do … done 条件循环
until … do … done 直到条件满足
break 跳出循环
continue 继续下一次循环

函数和脚本

命令说明
function <name> { … } 定义函数
<name>() { … } 定义函数(简化形式)
return <n> 从函数返回
source <file> 执行脚本文件

使用示例

1. 启动交互式 shell

sh

2. 执行单个命令

sh -c "echo 'Hello World'"

3. 执行脚本文件

sh script.sh

4. 作为登录 shell 启动

sh -l

5. 调试脚本(显示执行的命令)

sh -x script.sh

6. 读取并执行标准输入

echo "echo 'Hello'" | sh -s

7. 启动受限 shell

sh -r

8. 创建简单脚本

cat > test.sh << 'EOF'
#!/bin/sh
echo "Hello from sh script"
EOF

chmod +x test.sh
sh test.sh

9. 条件判断

sh -c "if [ -f /etc/passwd ]; then echo 'File exists'; fi"

10. 循环遍历

sh -c "for i in 1 2 3; do echo $i; done"

配置文件

系统级配置

  • /etc/profile – 全局登录 shell 配置
  • /etc/profile.d/ – 额外配置脚本目录

用户级配置

  • ~/.profile – 用户登录 shell 配置

特殊变量

变量说明
$0 脚本名
$1-$9 位置参数
$* 所有位置参数(作为单个字符串)
$@ 所有位置参数(作为独立字符串)
$# 参数数量
$$ 当前进程 ID
$? 上一条命令的退出状态

与 bash 的区别

特性shbash
命令历史 不支持 支持
命令补全 不支持 支持
别名 不支持 支持
数组 不支持 支持
算术扩展 有限支持 完全支持
正则表达式 不支持 支持
兼容性 POSIX 标准 兼容 sh

实用技巧

1. 检查 sh 版本

sh –version

2. 使用 sh 执行 POSIX 兼容脚本

sh posix_script.sh

3. 脚本兼容性测试

sh -n script.sh # 语法检查

4. 后台执行脚本

sh script.sh &

5. 输出重定向

sh script.sh > output.log 2>&1

相关命令

命令说明
bash Bourne-Again Shell(增强版)
csh C Shell
tcsh TENEX C Shell
zsh Z Shell
ksh Korn Shell

注意事项

  • 兼容性:sh 遵循 POSIX 标准,确保脚本的可移植性
  • 脚本开头:建议使用 #!/bin/sh 作为脚本开头
  • 特性限制:sh 不支持 bash 的高级特性(如数组、命令补全)
  • 符号链接:在许多系统中,/bin/sh 是 bash 或 dash 的符号链接
  • 脚本调试:使用 sh -x script.sh 进行调试
  • 总结

    sh 是 Unix/Linux 系统的标准 shell,遵循 POSIX 标准,提供了基本的命令执行和脚本编程能力。虽然功能相对简单,但它确保了脚本的最大兼容性和可移植性。

    赞(0)
    未经允许不得转载:171主机测评 » Linux命令:sh
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址