ホームページ  >  記事  >  運用・保守  >  Linux コマンド sh は何を意味しますか?

Linux コマンド sh は何を意味しますか?

藏色散人
藏色散人オリジナル
2023-04-12 11:15:2411412ブラウズ

Linux コマンド sh は、Linux でシェルを実行するコマンドであり、シェルのインタープリタです。シェル スクリプトは、Linux のシェルおよびコマンド ライン インターフェイスです。ユーザーはシェル スクリプトにコマンドを入力して実行できます。色々な仕事です。

Linux コマンド sh は何を意味しますか?

このチュートリアルの動作環境: linux5.9.8 システム、デルのG3コンピューター。

Linux コマンド sh の意味は何ですか?

Linux sh コマンドの簡単な説明

1. 可能な実行方法

linux で .sh ファイルを実行する方法

.sh ファイルはテキスト ファイルです。 、chmod a x xxx.sh を使用して実行可能権限を与える必要があります。

2. 先頭: #!/bin/sh

シェル プログラムは、「#!/bin/sh」で始まる必要があります。シェルの # は一般的にコメントを意味するため、「#!」もコメントだと思っている人が多いですが、実際はそうではありません。

"#!/bin/sh" はシェルの宣言で、使用しているシェルの種類とそのパスを示します。

##!/bin/ は、このスクリプトが .bin/sh を使用して実行されることを意味します。

#! は特別な識別子で、その後にこのスクリプトを解釈するシェルのパスが続きます。宣言されていない場合、スクリプトはユーザーがいるシステムによって定義されるデフォルトのシェルで実行されます。シェル スクリプトを実行するために、スクリプトが Kornshell ksh で実行されるように記述されており、デフォルトの実行シェル スクリプトが C シェル csh である場合、スクリプトは実行中に失敗する可能性があります。したがって、#!/bin/sh を C 言語の main 関数として扱うことをお勧めします。

シェルプログラムをより厳密にするためにシェルを記述する必要があります。

3. 変数変数は他のプログラミング言語で使用する必要があります。シェル プログラミングでは、すべての変数は文字列で構成されており、

変数を宣言する必要はありません。変数に値を割り当てるには、次のように記述できます:

#!/bin/sh
 #对变量赋值:
 a=”hello world”# 现在打印变量a的内容:
 echo “A is:” echo $a
変数名は、次のような他の単語と混同されやすいことがあります。
 num=2
 echo “this is the $numnd”
これは出力されません。 2nd"、そして単に "this is the " と出力するだけです。シェルは変数 numnd の値を検索しますが、この変数には値がありません。したがって、中かっこを使用して、出力したいのが num 変数であることをシェルに伝えることができます。

 num=2
 echo “this is the ${num}nd”
このように、「これは 2 番目です」

4. シェルコマンドとプロセス制御

次のコマンドをシェルスクリプトで使用できます:

UNIX コマンド

任意の 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 #显示用户输入,并将输入赋值给变量


コンセプト: パイプ、リダイレクト、バックティック (バックスラッシュ)

パイプライン

|
    出力は次のとおりです。コマンドの入力は別のコマンドへの入力として機能します。
  1. <pre class="brush:php;toolbar:false">grep &quot;hello&quot; file.txt | wc -l</pre> 上記のコードは、file.txt 内で「hello」を含む行を検索し、その行数をカウントします。ここでは、 grep コマンドの出力が wc コマンドの入力として使用されます。
パイプの後のコマンドはサブコマンドであり、次のコマンドには現れないことに注意してください (

{}

{} の C に似ています)外部割り当てとの違い)、たとえば次のコマンド:

#!/bin/shecho 1 2 3 | { read a b c ; echo $a $b $c ; } # 打印结果为: 1 2 3echo $a $b $c # 打印结果为空
    Redirection
  1. : コマンドの結果を標準出力 (画面) ではなくファイルに出力します。 )。

    >ファイルを書き込み、古いファイルを上書きします >>
    古いファイルの内容を保持したまま、ファイルの末尾に を追加します。
    逆ダッシュ

    "`"
  2. : 逆ダッシュを使用して
  3. あるコマンドの出力を

    別のコマンドとして出力します コマンド ライン パラメーター

     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`
Process Control

if

if

条件が true の場合、式を実行します。 then 次の部分:

 if ….; then
 …. elif ….; then
 …. else
 …. fi #注意是以fi结尾
ほとんどの場合、test コマンドを使用して条件をテストできます。たとえば、文字列を 比較したり、ファイルが存在するかどうか、ファイルが読み取り可能かどうかを判断したりできます。 ## ループの構文 構造は次のとおりです: <pre class="brush:php;toolbar:false"># expression 1# while循环:当expresssion成立的时候,执行cmdwhile (expresssion)do   cmddone# expression 2,可以直接使用truewhile true(或 :)do  cmddone</pre> このコマンドは、次のようなパイプラインで使用できます:
# 寻找 ${path} 路径下唯一首字母为‘E’的子目录,并 cd 到该目录find ${path}/E* -type d | while read corresp_pathdo
	cd ${corresp_path}done

テスト条件

通常は

を使用します。 「[ ]」は試験条件を表します。ここでのスペースは非常に重要であることに注意してください。角括弧内にスペース
が入っていることを確認してください。 <pre class="brush:php;toolbar:false"> [ -f &quot;somefile&quot; ] #判断文件是否存在  [ -d &quot;testResults/&quot; ] #判断目录testResults/是否存在  [ -x &quot;/bin/ls&quot; ] #判断/bin/ls文件是否存在并有可执行权限  [ -n &quot;$var&quot; ] #判断$var变量是否有值  [ &quot;$a&quot; = &quot;$b&quot; ] #判断$a和$b是否相等</pre>

ショートカット演算子

C言語に精通している場合は、次の式が気に入るかもしれません:

  [ -f "/etc/shadow" ] && echo “This computer uses shadow passwors”
Here"&&"
isショートカット演算記号。左側の式が true の場合、右側のステートメントが実行されます。もちろん、上記の式は論理演算の AND 演算と考えることもできます。 同じ OR 演算 "||" はシェル プログラミングでも使用できます:
 #!/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 は何を意味しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。