导航:首页 > 编程系统 > linux中sh命令详解

linux中sh命令详解

发布时间:2025-02-08 21:02:06

linux 命令中的sh是什么意思

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

要运行shell脚本,首选需要给shell脚本权限,这里里以hello.sh文件为例,首先需要按下“crtl+shift+T”打开终端窗口:

⑵ sh命令行是什么意思

sh命令行是Linux操作系统中的一个重要工具,它是指Shell命令行界面。在Linux操作系统中,用户可以通过Shell命令行界面来进行各种操作。通过执行命令行命令,用户可以在操作系统中完成文件管理、程序启动等多种操作。sh命令行界面常用的命令包括cd、ls、mkdir、rm、cp等。通过这些命令,用户可以轻松地管理自己的电脑系统。


在Linux系统中,要使用sh命令行界面,用户需要打开终端,启动一个命令行界面。在命令行界面中,用户可以使用输入框输入要执行的命令,通过Enter键执行。sh命令行界面通常是纯文本的,没有图形界面。因此,在使用sh命令行界面时,用户需要熟悉一些基本的命令,才能操作电脑系统。


sh命令行界面是Linux系统中最重要的工具之一,是Linux操作系统的精华所在。它具有灵活性、可扩展性、高效性等多种优点。通过sh命令行界面,用户可以完成各种各样的任务,其中包括文件管理、程序启动、文件压缩、文件解压缩、编程调试等。因此,熟练掌握sh命令行的使用,对于学习Linux系统和操作Linux系统都非常重要。

⑶ linux执行sh文件命令如何在Linux中运行一个Shell脚本

在 Linux 中有两种运行 shell 脚本的方法。你可以使用:
bash script.sh或者,你可以像这样执行 shell 脚本:
./script.sh这可能很简单,但没太多解释。不要担心,我将使用示例来进行必要的解释,以便你能理解为什么在运行一个 shell 脚本时要使用给定的特定语法格式。
我将使用这一行 shell 脚本来使需要解释的事情变地尽可能简单:
abhishek@itsfoss:~/Scripts$ cat hello.shecho "Hello World!"方法 1:通过将文件作为参数传递给 shell 以运行 shell 脚本第一种方法涉及将脚本文件的名称作为参数传递给 shell 。
考虑到 bash 是默认 shell,你可以像这样运行一个脚本:
bash hello.sh你知道这种方法的优点吗?你的脚本不需要执行权限。对于简单的任务非常方便快速。

如果你还不熟悉,我建议你 。
记住,将其作为参数传递的需要是一个 shell 脚本。一个 shell 脚本是由命令组成的。如果你使用一个普通的文本文件,它将会抱怨错误的命令。

在这种方法中,你要明确地具体指定你想使用 bash 作为脚本的解释器。
shell 只是一个程序,并且 bash 只是 Shell 的一种实现。还有其它的 shell 程序,像 ksh 、zsh等等。如果你安装有其它的 shell ,你也可以使用它们来代替 bash 。
例如,我已安装了 zsh ,并使用它来运行相同的脚本:
方法 2:通过具体指定 shell 脚本的路径来执行脚本
另外一种运行一个 shell 脚本的方法是通过提供它的路径。但是要这样做之前,你的文件必须是可执行的。否则,当你尝试执行脚本时,你将会得到 “权限被拒绝” 的错误。
因此,你首先需要确保你的脚本有可执行权限。你可以 使用 chmod 命令来给予你自己脚本的这种权限,像这样:
chmod u+x script.sh使你的脚本是可执行之后,你只需输入文件的名称及其绝对路径或相对路径。大多数情况下,你都在同一个目录中,因此你可以像这样使用它:
./script.sh如果你与你的脚本不在同一个目录中,你可以具体指定脚本的绝对路径或相对路径:

在脚本前的这个./是非常重要的(当你与脚本在同一个目录中)。

为什么当你在同一个目录下,却不能使用脚本名称?这是因为你的 Linux 系统会在PATH环境变量中指定的几个目录中查找可执行的文件来运行。
这里是我的系统的PATH环境变量的值:
abhishek@itsfoss:~$ echo $PATH/home/abhishek/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin这意味着在下面目录中具有可执行权限的任意文件都可以在系统的任何位置运行:
/home/abhishek/.local/bin/usr/local/sbin/usr/local/bin/usr/sbin/usr/bin/sbin/bin/usr/games/usr/local/games/snap/bin
Linux 命令(像ls、cat等)的二进制文件或可执行文件都位于这些目录中的其中一个。这就是为什么你可以在你系统的任何位置通过使用命令的名称来运作这些命令的原因。看看,ls命令就是位于/usr/bin目录中。

当你使用脚本而不具体指定其绝对路径或相对路径时,系统将不能在PATH环境变量中找到提及的脚本。
为什么大多数 shell 脚本在其头部包含 #! /bin/bash ?
记得我提过 shell 只是一个程序,并且有 shell 程序的不同实现。
当你使用#! /bin/bash时,你是具体指定 bash 作为解释器来运行脚本。如果你不这样做,并且以./script.sh的方式运行一个脚本,它通常会在你正在运行的 shell 中运行。
有问题吗?可能会有。看看,大多数的 shell 语法是大多数种类的 shell 中通用的,但是有一些语法可能会有所不同。
例如,在 bash 和 zsh 中数组的行为是不同的。在 zsh 中,数组索引是从 1 开始的,而不是从 0 开始。

使用#! /bin/bash来标识该脚本是 bash 脚本,并且应该使用 bash 作为脚本的解释器来运行,而不受在系统上正在使用的 shell 的影响。如果你使用 zsh 的特殊语法,你可以通过在脚本的第一行添加#! /bin/zsh的方式来标识其是 zsh 脚本。
在#!和/bin/bash之间的空格是没有影响的。你也可以使用#!/bin/bash。
它有帮助吗?
我希望这篇文章能够增加你的 Linux 知识。如果你还有问题或建议,请留下评论。
专家用户可能依然会挑出我遗漏的东西。但这种初级题材的问题是,要找到信息的平衡点,避免细节过多或过少,并不容易。
如果你对学习 bash 脚本感兴趣,在我们专注于系统管理的网站 Linux Handbook上,我们有一个完整的 Bash 初学者系列。如果你想要,你也可以购买带有附加练习的电子书,以支持 Linux Handbook。

⑷ Linux中的sh命令的详细解释

linxu下的sh命令相当于是shell命令语言的解释器。下面由我为大家整理了linux的sh命令的详细解释的相关知识,希望对大家有帮助!

一、Linux中的sh命令的详细解释

sh命令是shell命令语言解释器,执行命令从标准输入读取或从一个文件中读取。通过用户输入命令,和内核进行沟通!Bourne Again Shell (即bash)是自由软件基金会(GNU)开发的一个Shell,它是Linux系统中一个默认的Shell。Bash不但与Bourne Shell兼容,还继承了C Shell、Korn Shell等优点。

语法

bash [options] [file]

选项

-c string:命令从-c后的字符串读取。

-i:实现脚本交互。

-n:进行shell脚本的语法检查。

-x:实现shell脚本逐条语句的跟踪。

二、Linux中的sh命令的具体例子

使用-x选项跟踪脚本调试shell脚本,能打印出所执行的每一行命令以及当前状态:

[root@AY1307311912260196fcZ satools]# sh -x check_ssh_login.sh

+ DEFINE=30

+ cat /var/log/secure

+ awk '/Failed/ {++ip[$(NF-3)]} END {for (i in ip) print i"="ip[i]}'

++ cat /root/satools/black.txt

+ for i in '`cat /root/satools/black.txt`'

++ echo 121.42.0.16=1427

++ awk -F= '{print $1}' + IP=121.42.0.16

++ echo 121.42.0.16=1427

++ awk -F= '{print $2}'

+ NUM=1427

+ '[' 1427 -gt 30 ']'

+ grep 121.42.0.16 /etc/hosts.deny

+ '[' 1 -gt 0 ']'

+ echo sshd:121.42.0.16

+ echo vsftpd:121.42.0.16

+ for i in '`cat /root/satools/black.txt`'

++ echo 121.42.0.72=276

++ awk -F= '{print $1}'

+ IP=121.42.0.72

++ awk -F= '{print $2}'

++ echo 121.42.0.72=276

+ NUM=276 + '[' 276 -gt 30 ']'

+ grep 121.42.0.72 /etc/hosts.deny

+ '[' 1 -gt 0 ']'

+ echo sshd:121.42.0.72

+ echo vsftpd:121.42.0.72

三、Linux中对.sh文件的操作命令

1、创建test.sh文件

touch test.sh

2、编辑sh文件

vi test.sh

3、保存退出

敲击esc, 然后输入 :wq ,回车退出

4、添加可执行权限,当然默认就是可执行的。

chmod +x test.sh

5、运行文件

(1)./test.sh

(2)sh test.sh

6、删除文件

rm test.sh

⑸ linux 命令中的sh是什么意思

./a.sh会用你脚本中第一行的那个#!XXX的shell来执行语句
而sh
a.sh则是用sh来执行语句
还有一种可能就是./a.sh确定了文件路径,而sh
a.sh一定要在a.sh所在目录

⑹ linux执行文件命令

linux系统下执行文件命令是什么呢,是命令的具体介绍:
linux系统下执行文件命令是:./test.sh。
1、cd /test ./test.sh ./表示在当前目录。
2、/test/test.sh 以绝对路径去执行。
3、cd /test bash test.sh 或者 sh test.sh 该命令是将test.sh作为参数传给sh(bash)命令来执行的。
4、cd /test. test.sh 或者 source test.sh
注意:前三种方法是在父shell(当前shell)开启一个子shell环境,然后在子shell环境中执行,执行完,子shell环境关闭,然后回到父shell,第四种是在父shell中执行的。

阅读全文

与linux中sh命令详解相关的资料

热点内容
海迅拆单app哪个好用 浏览:189
linux查看gz文件 浏览:213
如何调整文件下载位置 浏览:213
如何制作位图源文件 浏览:801
win101703修改字体 浏览:579
手机存储数据恢复在哪里看 浏览:577
微信缴费电费 浏览:891
112版本法师a怪最佳 浏览:758
c程序怎么编程求圆面积 浏览:574
任务栏dll在哪个文件夹 浏览:321
dellraid管理工具 浏览:23
vivo手机打开数据网怎么设置 浏览:380
qq给电脑传文件夹 浏览:557
win10exe文件关联失败 浏览:236
sim卡短信在哪个文件夹里 浏览:418
安卓301 浏览:181
华为账户密码 浏览:747
聊天下载的文件在哪个文件夹里面 浏览:129
哪些数据是全文检索 浏览:87
数控加工编程怎么背 浏览:604

友情链接