linux 命令 sh 是什么意思

linux命令sh是linux中运行shell的命令,是shell的解释器,shell脚本是linux中壳层与命令行界面,用户可以在shell脚本输入命令来执行各种各样的任务。

linux 命令 sh 是什么意思

本教程操作环境:linux5.9.8系统、Dell G3电脑。

linux 命令 sh 是什么意思?

linux sh命令简述

1. 可能需要的执行方式

linux下执行.sh文件的方法

.sh文件就是文本文件,如果要执行,需要使用chmod a+x xxx.sh来给可执行权限。

2. 开头:#!/bin/sh

shell程序必须以“#!/bin/sh”开始。shell中#一般表示注释的意思,所以很多时候认为”#!”也是注释,但实际上并不是。

“#!/bin/sh”是对shell的声明,说明你所用的是哪种类型的shell及其路径所在。

#!/bin/是指此脚本使用.bin/sh来执行。

#!是特殊的表示符,其后面跟的是解释此脚本的shell的路径,如果没有声明,则脚本将在默认的shell中执行,默认shell是由用户所在的系统定义为执行shell脚本,如果脚本被编写为在Kornshell ksh中运行,而默认运行shell脚本的为C shell csh,则脚本在执行过程中很可能失败。所以建议大家就把”#!/bin/sh”当成C 语言的main函数一样,写shell必须有,以使shell程序更严密。

3. 变量

在其他编程语言中必须使用变量。在shell编程中,所有变量都由字符串组成,并且不需要对变量进行声明。要赋值给一个变量,可以这样写:

#!/bin/sh #对变量赋值: a=”hello world”# 现在打印变量a的内容: echo “A is:” echo $a

有时候变量名很容易与其他文字混淆,比如:

 num=2 echo “this is the $numnd”

这并不会打印出”this is the 2nd”,而仅仅打印”this is the “,因为shell会去搜索变量numnd的值,但是这个变量是没有值的。因此,可以使用花括号来告诉shell我们要打印的是num变量:

 num=2 echo “this is the ${num}nd”

这样才会打印”this is the 2nd”

4. Shell命令和流程控制

在shell脚本中可以使用以下命令:

Unix命令

虽然在shell脚本中可以使用任意的unix命令,但还是有一些相对更常用的命令。这些命令通常是用来进行文件和文字操作的。
如:

 echo "some text" #将文字内容打印在屏幕上 ls #文件列表 cp sourcefile destfile #文件拷贝 mv oldname newname #重命名文件或移动文件 rm file #删除文件 grep 'pattern' file #在文件内搜索字符串,如:grep 'searchstring' file.txt cat file.txt #输出文件内容到标准输出设备(屏幕)上 read var #显示用户输入,并将输入赋值给变量

概念:管道,重定向和backtick(反斜线)

管道 | 将一个命令的输出作为另外一个命令的输入。

grep "hello" file.txt | wc -l

上述代码表示为:在 file.txt 中搜索包含有 “hello” 的行并计算其行数。在这里grep命令的输出作为wc命令的输入。

boardmix博思白板 boardmix博思白板

boardmix博思白板,一个点燃团队协作和激发创意的空间,集aigc,一键PPT,思维导图,笔记文档多种创意表达能力于一体,将团队工作效率提升到新的层次。

boardmix博思白板 39 查看详情 boardmix博思白板

需要注意的是,管道后的命令是子命令,并不会出现在接下来的命令中(有点像C++在{}内和{}外赋值的区别),如以下命令:

#!/bin/shecho 1 2 3 | { read a b c ; echo $a $b $c ; } # 打印结果为: 1 2 3echo $a $b $c # 打印结果为空

重定向:将命令的结果输出到文件,而不是标准输出(屏幕)。
>写入文件并覆盖旧文件
>>追加到文件的尾部,保留旧文件内容。

反短横线 “`”:使用反短横线可以将一个命令的输出作为另一个命令的一个命令行参数。

 find . -mtime  -1  -type  f  -print

上述语句用来查找过去24小时(-mtime -2则表示过去48小时)内修改过的文件。如果想将所有查找到的文件打一个包,则可以使用一下linux脚本:

 #!/bin/sh # The ticks are backticks (`) not normal quotes (‘): tar -zcvf  lastmod.tar.gz `find . -mtime -1 -type f -print`

流程控制

if
if 表达式,如果条件为真则执行 then 后面的部分:

 if ….; then …. elif ….; then …. else …. fi #注意是以fi结尾

大多数情况下,可以使用测试命令来对条件进行测试。比如可以比较字符串、判断文件时都存在以及是否可读等等…

while
while 循环的语法结构为:

# expression 1# while循环:当expresssion成立的时候,执行cmdwhile (expresssion)do  cmddone# expression 2,可以直接使用truewhile true(或 :)do cmddone

该命令配合可以配合管道使用,如:

# 寻找 ${path} 路径下唯一首字母为‘E’的子目录,并 cd 到该目录find ${path}/E* -type d | while read corresp_pathdocd ${corresp_path}done

测试条件
通常使用“[ ]”来表示测试条件。注意这里的空格很重要,要确保方括号里的空格。

 [ -f "somefile" ] #判断文件是否存在 [ -d "testResults/" ] #判断目录testResults/是否存在 [ -x "/bin/ls" ] #判断/bin/ls文件是否存在并有可执行权限 [ -n "$var" ] #判断$var变量是否有值 [ "$a" = "$b" ] #判断$a和$b是否相等

快捷操作符
熟悉C语言可能会喜欢一下表达式:

  [ -f "/etc/shadow" ] && echo “This computer uses shadow passwors”

这里“&&”就是一个快捷操作符,如果左边的表达式为真则执行右边的语句。当然也可以将上述表达式认为是逻辑运算中的与操作。

同样或操作“||”在shell编程中也是可用的:

 #!/bin/sh mailfolder=/var/spool/mail/james [ -r "$mailfolder" ]‘ ‘{ echo “Can not read $mailfolder” ; exit 1; } #感觉这里的‘’应该是|| echo “$mailfolder has mail from:” grep “^From ” $mailfolder

该脚本首先判断mailfolder是否可读。如果可读则打印该文件中的”From” 一行。如果不可读则或操作生效,打印错误信息后脚本退出。这里有个问题,那就是我们必须有两个命令:
◆打印错误信息
◆退出程序
我们使用花括号以匿名函数的形式将两个命令放到一起作为一个命令使用。一般函数将在下文提及。
不用‘与’和‘或’操作符,我们也可以用if表达式作任何事情,但是使用与或操作符会更便利很多。

推荐学习:《linux视频教程》

以上就是linux 命令 sh 是什么意思的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/320491.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Kimi智能助手在电商购物中的应用 Kimi人工智能助手比价功能全攻略
上一篇 2026年11月1日 15:19:00
JavaScript 拖放 API:实现元素的拖放交互功能
下一篇 2025年12月21日 03:08:30

相关推荐

  • composer怎么安装php扩展_说明在composer中安装PHP扩展的操作方法

    composer怎么安装php扩展_说明在composer中安装PHP扩展的操作方法composer怎么安装php扩展_说明在composer中安装PHP扩展的操作方法composer怎么安装php扩展_说明在composer中安装PHP扩展的操作方法composer怎么安装php扩展_说明在composer中安装PHP扩展的操作方法

    Composer不能安装PHP扩展,仅能检查其存在。通过在composer.json中声明ext-gd、ext-curl等依赖,Composer会在运行时验证扩展是否启用,若未启用则报错中断。真正安装需依赖系统工具:Linux使用apt或yum安装对应php-扩展包,macOS通过Homebrew安…

    2026年11月1日 • 用户投稿
    000
  • linux中什么是映像文件

    linux中什么是映像文件linux中什么是映像文件linux中什么是映像文件linux中什么是映像文件

    linux映像文件是指把内存上的数据和存储地址信息存储在一个文件内;比如把硬盘上数据做成一个映像文件,这个文件的内容就是做映像时的那个分区的数据,通过相应的软件可以将映像的内容原封不动地还原回硬盘上。 本教程操作环境:linux5.9.8系统、Dell G3电脑。 linux中什么是映像文件 ? 镜…

    2026年11月1日 • 用户投稿
    000
  • Strix Halo、DGX Spark决战迷你AI工作站!AMD手握三大优势、性能完胜

    Strix Halo、DGX Spark决战迷你AI工作站!AMD手握三大优势、性能完胜Strix Halo、DGX Spark决战迷你AI工作站!AMD手握三大优势、性能完胜Strix Halo、DGX Spark决战迷你AI工作站!AMD手握三大优势、性能完胜Strix Halo、DGX Spark决战迷你AI工作站!AMD手握三大优势、性能完胜

    这几年,生成式ai浪潮方兴未艾,各种应用如雨后春笋,更高级的智能体ai、具身ai也已经崭露头角,显现了无尽的潜力。 但是一个市场领域蓬勃发展时,往往是机遇与挑战并存。如何更好地抓住AI这一波机会,怎么玩才能实现收益最大化,从科技巨头到个人开发者都在思考。 其中,对于小型企业、工作室乃至个人开发者来说…

    2026年11月1日 • 用户投稿
    1000
  • mysql安装及配置超详细教程 附常见错误解决方案

    在这个数据驱动的时代,MySQL作为一种强大的开源数据库管理系统,已成为开发者们手中的利器。今天,我们将深入探讨MySQL的安装与配置过程,并分享一些常见错误的解决方案。我知道,许多初学者在面对这些步骤时可能会感到困惑,但别担心,跟着我走,你将轻松掌握这些技能。 首先,我们得从头开始,谈谈MySQL…

    2026年11月1日
    000
  • composer如何解决”The requested PHP extension xxx is missing”的错误_安装缺失扩展或启用PHP模块

    composer如何解决”The requested PHP extension xxx is missing”的错误_安装缺失扩展或启用PHP模块composer如何解决”The requested PHP extension xxx is missing”的错误_安装缺失扩展或启用PHP模块composer如何解决”The requested PHP extension xxx is missing”的错误_安装缺失扩展或启用PHP模块composer如何解决”The requested PHP extension xxx is missing”的错误_安装缺失扩展或启用PHP模块

    首先确认缺失的扩展名称,如ext-imagick;然后通过php -m检查已加载扩展,使用系统包管理器或PECL安装对应扩展,最后在php.ini中启用并重启服务验证。 当你使用 Composer 安装或更新 PHP 项目依赖时,可能会遇到类似 “The requested PHP ex…

    2026年11月1日 • 用户投稿
    100
  • LINUX如何安装NVIDIA显卡驱动_LINUX安装NVIDIA显卡驱动教程

    首先确认显卡型号并禁用nouveau驱动,再通过.run文件或包管理器安装NVIDIA驱动,最后执行nvidia-smi验证驱动是否正常工作。 如果您在使用LINUX系统时需要启用NVIDIA显卡的完整功能,但系统未能正确识别或驱动显卡,则可能是由于缺少专用驱动程序。以下是安装NVIDIA显卡驱动的…

    2026年11月1日
    000
  • Linux如何修复只读文件系统 remount读写权限方法

    Linux如何修复只读文件系统 remount读写权限方法Linux如何修复只读文件系统 remount读写权限方法Linux如何修复只读文件系统 remount读写权限方法Linux如何修复只读文件系统 remount读写权限方法

    linux文件系统变为只读的原因有四种:1.文件系统损坏,如断电或硬件故障;2.系统启动配置错误,如/etc/fstab中设置为ro;3.磁盘空间不足导致系统保护性切换;4.安全策略或管理员设置。检查方法有两种:1.使用mount命令查看挂载选项是否含ro;2.尝试创建文件若提示“read-only…

    2026年11月1日 • 用户投稿
    000
  • N多技巧让你的Notebook起飞

    N多技巧让你的Notebook起飞N多技巧让你的Notebook起飞N多技巧让你的Notebook起飞N多技巧让你的Notebook起飞

    本项目为AI全栈课程《Python从小白到精通》的配套补充,期望大家熟悉基本notebook开发环境后,掌握一些高阶的Notebook使用技巧,提高学习和工作效率。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 1. Notebook VS…

    2026年11月1日 • 用户投稿
    000
  • 进程监控工具 Procmon有Linux版本了

    进程监控工具 Procmon有Linux版本了进程监控工具 Procmon有Linux版本了进程监控工具 Procmon有Linux版本了进程监控工具 Procmon有Linux版本了

    微软最近为其 windows sysinternals 工具集中的 process monitor(简称 procmon)应用程序推出了 linux 版本,并以 mit 协议开源发布。这一进程监控工具在 windows 平台上广受欢迎,现在 linux 用户也能够利用其功能来监控系统进程。 在 Wi…

    2026年11月1日 • 用户投稿
    000
  • 如何使用Visual Studio Code开发Django项目

    如何使用Visual Studio Code开发Django项目如何使用Visual Studio Code开发Django项目如何使用Visual Studio Code开发Django项目如何使用Visual Studio Code开发Django项目

    如何获得 Visual Studio Code 访问 http://code.visualstudio.com 下载并安装。 前提条件 安装Python 2.7 及 Python 3.5,Windows下可以安装至 c:python27 及 c:python35。注意环境变量PATH的设置,建议只在…

    2026年11月1日 • 用户投稿
    1300
  • 关于Powershell 你要知道的知识!

    关于Powershell 你要知道的知识!关于Powershell 你要知道的知识!关于Powershell 你要知道的知识!关于Powershell 你要知道的知识!

    1.背景及介绍 在最初的时候,Powershell 是设计运行在windows机器上实现系统和应用程序管理自动化的命令行 脚本环境。Windows Powershell V1诞生与2006年,你可以把它看成是命令行提示符cmd.exe的扩 充,不对,应当是颠覆。powershell需要.NET环境的…

    2026年11月1日 • 用户投稿
    200
  • linux字符驱动有什么用

    linux字符驱动有什么用linux字符驱动有什么用linux字符驱动有什么用linux字符驱动有什么用

    linux字符驱动是连接用户空间和硬件的重要桥梁,其作用是在内核空间注册字符设备,并提供读写操作,字节数据从用户空间传递到内核空间,再由内核空间定向传递到硬件设备。驱动程序可以对设备进行初始化、打开、关闭、读写、控制等操作,为各种硬件设备提供高效、可靠的访问接口。同时,字符设备驱动还能实现数据缓存和…

    2026年11月1日 • 用户投稿
    100
  • linux中的ut是什么意思

    linux中的ut是什么意思linux中的ut是什么意思linux中的ut是什么意思linux中的ut是什么意思

    linux中的ut代表用户活动时间,记录了系统上每个用户的登录和注销时间以及他们在系统中的活动时间,使用“ut”命令可以查看当前或者指定日期内已经登录到系统的用户列表或者某个特定用户的活动报告。 本教程操作系统:Linux5.18.14系统、Dell G3电脑。 在Linux中,”ut&…

    2026年11月1日 • 用户投稿
    100
  • linux的服务关闭命令是什么

    linux的服务关闭命令是什么linux的服务关闭命令是什么linux的服务关闭命令是什么linux的服务关闭命令是什么

    linux的服务关闭命令是“systemctl stop”,“”是指要关闭的服务的名称,使用步骤:1、打开终端窗口或登录到远程服务器;2、输入“systemctl stop”;3、按回车键执行该命令,停止服务即可。 本教程操作系统:Linux5.18.14系统、Dell G3电脑。 关闭 Linux…

    2026年11月1日 • 用户投稿
    000
  • linux系统有什么优缺点

    linux系统有什么优缺点linux系统有什么优缺点linux系统有什么优缺点linux系统有什么优缺点

    linux系统的优缺点是:1、Linux是一个开源操作系统,意味着用户不必担心版权问题;2、Linux系统相对于Windows和Mac OS更加安全可靠,具有强大的安全功能和不同级别的用户权限系统;3、Linux系统运行稳定;4、Linux允许同时执行多个任务处理;5、Linux拥有庞大的命令集合和…

    2026年11月1日 • 用户投稿
    000
  • linux on power是什么

    linux on power是什么linux on power是什么linux on power是什么linux on power是什么

    linux on power是指将Linux操作系统运行在IBM Power处理器架构上的解决方案,是一种基于开源技术的高性能、可伸缩、可靠的计算平台。 本教程操作系统:Linux5.18.14系统、Dell G3电脑。 Linux on Power是指将Linux操作系统运行在IBM Power处…

    2026年11月1日 • 用户投稿
    000
  • linux为什么显示cpu信息失败

    linux为什么显示cpu信息失败linux为什么显示cpu信息失败linux为什么显示cpu信息失败linux为什么显示cpu信息失败

    linux显示cpu信息失败的原因是:1、如果没有安装lscpu,就无法使用该命令查看CPU信息;2、在非root用户下尝试使用lscpu,则可能会受到权限不足的错误信息;3、在某些虚拟机环境中,或者可能是硬件故障的结果,系统可能无法获取CPU信息。 本教程操作系统:Linux5.18.14系统、D…

    2026年11月1日 • 用户投稿
    000
  • linux工作路径在哪里

    linux工作路径在哪里linux工作路径在哪里linux工作路径在哪里linux工作路径在哪里

    linux可以通过“pwd”命令来查看当前所在的目录路径,了解当前工作路径的意义和用处如下:1、帮助执行特定的命令;2、创建文件/目录;2、更加方便地浏览文件系统。 本教程操作系统:Linux5.18.14系统、Dell G3电脑。 在 Linux 中,当前工作路径(Current Working …

    2026年11月1日 • 用户投稿
    000
  • PDF水印去除工具网站入口 PDF文件去水印快速操作

    PDF水印去除工具网站入口 PDF文件去水印快速操作PDF水印去除工具网站入口 PDF文件去水印快速操作PDF水印去除工具网站入口 PDF文件去水印快速操作PDF水印去除工具网站入口 PDF文件去水印快速操作

    PDF水印去除工具网站入口是https://www.pdf24.org/zh/pdf-wasserzeichen-entfernen.html,进入后点击“选择PDF文件”或拖拽上传,系统自动扫描并一键去除水印,处理完成后可预览下载,无需安装软件,支持多浏览器与操作系统,保护隐私安全,采用图像识别技…

    2026年11月1日 • 用户投稿
    100
  • linux使用mvn乱码怎么解决

    linux使用mvn乱码怎么解决linux使用mvn乱码怎么解决linux使用mvn乱码怎么解决linux使用mvn乱码怎么解决

    linux使用mvn乱码的解决方法是:1、在终端输入“echo $LANG”来查看当前系统的语言设置是否匹配用户正在使用的语言;2、尝试修改“~/.bashrc”文件或“~/.profile”文件;3、尝试使用UTF-8字符集;4、检查系统安装的字体是否能够正确地呈现非ASCII字符;5、尝试在mv…

    2026年11月1日 • 用户投稿
    000

发表回复

登录后才能评论
关注微信