posixシェルとは?初心者のための基本ガイド共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
posixシェルとは?初心者のための基本ガイド共起語・同意語・対義語も併せて解説!
この記事を書いた人

高岡智則

年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)


posixシェルとは?初心者の基本ガイド

posixシェルは Unix 系のシステムで広く使われるシェルの一種です POSIX という共通の規格に沿って動作します。つまり posixシェルで書かれたスクリプトは、さまざまな Unix 系の環境で同じように動く可能性が高いということです。ここでいうシェルとは、コマンドを解釈して実行する「対話式の窓口」と、後述するスクリプトを自動で動かす「プログラムの集まり」です。

posixシェルは sh などの名前で呼ばれることもあり POSIX準拠 のシェルとして広く使われています。ポータビリティの観点から、複数の環境で同じスクリプトが使えるように設計されているのが特徴です。基本的な構文には変数の代入と参照、条件分岐の if、繰り返しの for、while、ケース分岐などが含まれます。

posixシェルの特徴には 変数の代入は =、値の展開は $変数名、比較は test コマンド、分岐は if then fi、繰り返しは for do done や while の形式が含まれます。これらはすべて POSIX準拠 の範囲内で動作します。なお 配列 のような一部の機能は標準 POSIX には含まれていませんので注意が必要です。

使い方のコツとしてはまず実行したいスクリプトの先頭に シェバン と呼ばれる行を置くことです。例えばシェルが /bin/sh の場合は #!/bin/sh と書きます。実行権限を付けて実行する習慣をつけると、他の環境でも動きやすくなります。

実際の例として基本的なスクリプトを見てみましょう。変数の使い方と出力の基本を示すだけのシンプルな例です。

#!/bin/shname=世界echo こんにちは、$name さん

このようにシェルスクリプトは変数を使い出力を組み立てることができます。実際には複数行の処理を実現するための構文を順番に覚えていくことが大切です。

互換性のポイント では、POSIX準拠 の機能だけを使い、非標準の機能は避けることが望ましいです。これにより別の環境でも動く可能性が高くなります。

ポイント説明
対象POSIX に準拠したシェル
主な特徴変数の代入や if for case などの基本構文
使い方スクリプトの先頭にシェバンを置く

結論として posixシェルは初心者にも扱える基本的なツールであり、スクリプトの portability を高めるのに役立ちます。最初は基本的な構文を固め、徐々に標準的なテクニックを覚えると良いでしょう。


posixシェルの同意語

POSIXシェル
POSIX規格に準拠したシェル。通常は/bin/shの実装として提供され、POSIXのsh仕様を満たします。
POSIX準拠シェル
POSIXの仕様に沿って動作するシェルの総称。sh互換性を重視した実装が多いです。
POSIX SH
POSIX規格で定義されたshに相当するシェル。/bin/shとして提供されることが一般的です。
POSIX互換シェル
POSIX仕様と互換性を持つシェル。shの挙動を再現することを目的とします。
sh
Bourne系統の標準的なシェル名。POSIX準拠の機能を備えることが多いです。
/bin/sh
多くのUnix系OSにおけるPOSIX準拠のshの実体。起動時のデフォルトシェルとして使われます。
Bourne shell
shの原型となった古いシェル。現在はPOSIX準拠の実装を介して受け継がれています。
Bourne-compatible shell
Bourne系の文法・挙動を継承したシェル。POSIX sh互換が前提となることが多いです。
Bourne系シェル
Bourne系のシェル全般を指す総称。POSIX shの系統として扱われます。
dash
Debian Almquist shell。軽量でPOSIX準拠のsh互換性を重視した実装です。
ash
Almquist shell の略称。軽量でPOSIX準拠のシェルの一種です。
mksh
MirBSD Korn Shell。Kornシェル系で、POSIX準拠モードを含む実装です。
pdksh
Public Domain Korn Shell の派生。POSIX準拠を目指す実装です。
ksh
Korn shell。拡張機能が多いシェルで、POSIX準拠性も備えています。
ksh93
Korn shell の主要なバージョンの一つ。POSIX準拠機能を含みつつ独自拡張もあります。

posixシェルの対義語・反対語

非POSIX準拠シェル
POSIXシェルの規格(sh)に厳密には準拠していない、独自仕様の機能や構文を持つシェルの総称。例としてCシェルやFish、Zshなどが挙げられることが多いです。
Cシェル(csh)
C言語風の構文を持つ古典的シェル。POSIX shの互換性は低く、スクリプトの移植性が悪い点が特徴です。
Tcsh
Cシェルの拡張版。補完などの機能は豊富ですが、POSIX準拠ではないため、POSIXシェルとしての移植性は低めです。
Fishシェル
Fishは直感的な文法と自動補完機能が特徴の非POSIXシェル。POSIX準拠を前提としない設計で、スクリプトの互換性が高くないことが多いです。
Zsh
Zshは高機能なシェルですが、標準的なPOSIX shには準拠していません。多くの拡張機能を持ち、移植性はPOSIXシェルには劣る場合が多いです。
Windowsコマンドプロンプト(cmd.exe)
Windows環境の標準シェル。UNIX系POSIXシェルとは構文・動作が大きく異なり、互換性が低いです。
PowerShell
Windowsおよびクロスプラットフォームで動作するモダンなシェル。 .NETベースの文法・機能はPOSIXシェルとは大きく異なります。
Kornシェル(ksh)
KshはPOSIX sh互換モードを持つ一方で、独自の機能も多く、純粋なPOSIX shとは異なる点が多いです。

posixシェルの共起語

POSIX標準
POSIXシェルの正式規格。IEEE Std 1003.1 によって定義され、sh の挙動・構文を標準化しています。
POSIX準拠シェル
POSIX の要件を満たすシェル。dash や bash の POSIX モードが準拠仕様に沿って動作します。
/bin/sh
多くのシステムで POSIX 準拠の実行ファイル。スクリプトの標準的な起点として使われることが多いです。
dash
軽量で POSIX 準拠を重視したシェル。多くの Linux ディストリビューションで /bin/sh に採用されます。
Bourne Shell (sh)
POSIX の原型となった古典的シェル。現在も POSIX 準拠の基盤として扱われます。
Bourne-Again shell (bash)
機能が豊富なシェル。POSIX モードを使えば POSIX 準拠として動作しますが、拡張も多い点に注意。
Korn shell (ksh)
KornShell。POSIX 準拠モードを使えば sh と近い挙動で、機能は異なる点もあります。
シェルスクリプト
シェルで実行するテキストファイル。POSIX 準拠で書くと他の環境での移植性が高まります。
ヒアドキュメント
<
コマンド置換
$(...) または `...` の形で、コマンドの出力を別の場所へ取り込む機能。
命令置換
コマンド置換と同じ概念を指すことがあります。
変数展開
変数の値を文字列へ展開します。$var や ${var} の形で使われます。
環境変数
スクリプト実行時に外部へ渡される設定。PATH や HOME などが含まれます。
予約語
if, then, else, fi, case, esac, for, while, do, done など、構文を支える特別な語。
エスケープ/クォート
特殊文字を保護する仕組み。二重引用符、単一引用符、バックスラッシュの使い分け。
シングルクォート
展開を行わないリテラル文字列の囲い方。
ダブルクォート
展開は行い、特定の文字の解釈を抑制します。
ファイル名展開 (グロブ)
ワイルドカードでファイル名を展開する機能。例: *.txt
リダイレクト
出力先や入力元をファイルへ割り当てる。 >, >>, 2>, 1> など。
パイプライン
複数のコマンドを連携させ、出力を次のコマンドの入力へ渡します。
標準入出力/エラー
シェルが扱う基本的な入出力チャンネルの概念。
シェバン
#!/bin/sh のように、スクリプトの先頭で解釈するシェルを指定。
実行権限
スクリプトファイルに実行権限を付与して実行します(例: chmod +x script.sh)。
対話型シェル/ログインシェル
対話形式で使う場合とログイン時の挙動が異なる場合があります。
PATHと PATH変数
外部コマンドを検索するディレクトリのリストを示す環境変数。
PS1/PS2/PS4
プロンプト表示やデバッグ出力を制御する特殊変数。

posixシェルの関連用語

POSIXシェル
POSIX準拠のシェル。sh の仕様に沿って、移植性の高いスクリプトをくための基準となる実装です。
sh
Bourne Shell の後継として POSIX で標準化された最小限のシェル。スクリプトの移植性の基準として古くから使われます。
dash
Debian Almquist Shell の略。軽量で高速な POSIX 準拠の実装で、/bin/sh の実装として広く使われます。
bash
Bourne-Again Shell。POSIX 準拠な機能を備えつつ、豊富な拡張機能を持つ対話・スクリプト用のシェル。
ksh
Korn Shell。かつての商用シェルで、POSIX 互換性と独自機能を組み合わせたシェルです。
ash
Almquist Shell。軽量で POSIX 準拠。BusyBox の ash などとして組み込み用途で使われます。
zsh
Z Shell。高度な対話機能と補完を提供しますが、完全な POSIX ではなく、sh互換モードもあります。
csh
C Shell。独自の構文を持つ別系統のシェルで、POSIX 移植性の観点では推奨されません。
tcsh
tcsh。csh の拡張版で、対話性を重視したシェルです。
shebang
スクリプトの先頭行に #!/bin/sh のように、実行時のインタプリタを指定する記述です。
ドットでの読み込み
POSIX では '.' コマンドを使って別ファイルを現在のシェル環境に読み込みます(source 相当)。
コマンド置換
コマンドの実行結果を文字列として他のコマンドに取り込む機能で、$(...) または `...` で実現します。
変数展開
変数の値を文字列中に展開します。$var や ${var} の形で参照します。
パラメータ展開
${var#パターン} など、文字列の切り出し・置換などの機能を含む変数展開の総称です。
特殊変数
$#、$?、$$、$0、$*, $@、$- など、シェル内の特別な意味を持つ変数群です。
ファイルテスト演算子
-f、-d、-e、-s など、ファイルの状態を調べるテスト演算子です。test コマンド/ [ ] で使われます。
条件分岐
if ... then ... elif ...; else ... fi の構文で条件に応じた処理を分岐します。
ループ
for、while、until の構文で繰り返し処理を実装します。
case
case ... in ... esac で文字列に応じた分岐を実現します。
関数
POSIX では name () { ... } の形で関数を定義できます。再利用可能なコードのまとまりです。
配列
POSIX sh には配列は標準で未定義。bash などは配列をサポートしますが、移植性を優先する場合注意が必要です。
入出力リダイレクト
>、>>、<、2>、2>&1 などのリダイレクトで標準入出力やファイルを操作します。
ヒアドキュメント
here-document の << EOF などを用いて、複数行の文字列をコマンドに渡します。
パターン展開/グロブ
*、?、[brackets] でファイル名の展開(グロブ)を行い、ワイルドカードに対応します。
サブシェルとグループ化
( ... ) でサブシェルを作成、{ ... } でコマンドのグループ化を行います。
PATHと外部コマンド
PATH 環境変数に従って外部コマンドを探します。内部コマンド(シェル組み込み)と外部コマンドの違いを理解しましょう。
実行権限と互換性
スクリプトは実行権限を付与して実行します(chmod +x)。/bin/sh で動作するよう、移植性を意識して書くことが大切です。

posixシェルのおすすめ参考サイト


インターネット・コンピュータの人気記事

awstatsとは?初心者でもわかる使い方と基本解説共起語・同意語・対義語も併せて解説!
15342viws
bing・とは?初心者のための基本ガイド:検索エンジンの仕組みと使い方共起語・同意語・対義語も併せて解説!
2473viws
着信転送とは?初心者向けガイドで分かる使い方と設定のコツ共起語・同意語・対義語も併せて解説!
1106viws
差し込み印刷・とは?初心者でもすぐわかる使い方と仕組みガイド共起語・同意語・対義語も併せて解説!
1087viws
com端子・とは?初心者にも分かる基礎ガイド|シリアルポートの使い方と歴史を解説共起語・同意語・対義語も併せて解説!
977viws
充電アダプターとは何かを徹底解説|初心者でも分かる基本と選び方のコツ共起語・同意語・対義語も併せて解説!
930viws
7zファイル・とは?初心者でもわかる使い方と特徴を解説共起語・同意語・対義語も併せて解説!
889viws
全角文字とは?初心者向け解説|全角と半角の違いをやさしく学ぶ共起語・同意語・対義語も併せて解説!
878viws
pinロックとは?初心者が知っておくべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!
821viws
リマインドメールとは?初心者にもわかる基本ガイドと使い方のコツ共起語・同意語・対義語も併せて解説!
820viws
none とは?初心者にもやさしく解説する意味と使い方ガイド共起語・同意語・対義語も併せて解説!
748viws
16進数カラーコード・とは?初心者でもつまずかない基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
737viws
xlsmとは?初心者でも分かるExcelのマクロ付きファイルの基本共起語・同意語・対義語も併せて解説!
640viws
asp・とは?初心者向けに徹底解説する基本と使い方ガイド共起語・同意語・対義語も併せて解説!
637viws
ローカルポート・とは?初心者にも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
626viws
countifとは?初心者でもすぐ使える基本と応用ガイド共起語・同意語・対義語も併せて解説!
569viws
ワンタイムコード・とは?初心者でも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
558viws
csvダウンロードとは?初心者が今すぐ使える基本ガイド共起語・同意語・対義語も併せて解説!
531viws
sha256とは?初心者が知るべき暗号ハッシュの基礎と使い道共起語・同意語・対義語も併せて解説!
530viws
googleドキュメントとは?初心者が今日から使いこなす基本ガイド共起語・同意語・対義語も併せて解説!
494viws

新着記事

インターネット・コンピュータの関連記事