
Linuxのシェルとは?スクリプトの書き方や実行をわかりやすく解説
Linuxのシェルは、効率よいサーバーを操作・運用するために欠かせません。これからサーバー管理をしたい方、もっと手軽に操作できる環境設定をしたい方は、Linuxのシェルスクリプトを活用しましょう。この記事では、初心者向けにLinuxシェルの書き方や実行までわかりやすく解説します。
目次
Linuxシェル(Shell)とは?
Linuxのシェルとは、Linuxの中核であるカーネルとユーザーの間を仲介する役割です。
ユーザーが打ち込んだコマンドをOSの核であるカーネルに伝え、動作で応えるプログラムであり、コマンドインタプリタとも呼ばれます。
サーバー管理を行うエンジニアにとって、Linuxシェルの知識は欠かせません。
カーネルとユーザーを繋ぐインターフェイス
シェルは、LinuxOSの核であるカーネルとユーザーを繋ぐインターフェースの役割を担っています。
Linuxのカーネルという心臓部は、LinuxOSを支える多数のプログラムによって構成されています。
ユーザーはこれらプログラムの集合体に必要な動きを要求することで、Linuxをコンピューターとして利用できる仕組みです。
ユーザーによる要求はまずシェルが受け取り、シェルは受け取った要求を翻訳してカーネルに渡します。
そしてOSの中核に位置するカーネルは、シェルから受け取った翻訳済みの要求を実行しています。
シェルは、カーネルを包む「殻」のようなポジションであることから、英単語の「Shell」、つまりシェルと呼ばれるようになりました。
シェルスクリプトは要求コマンドのかたまり
一般的に「シェルを使える」という技術は、「シェルスクリプトを書くことができる」という意味で使われます。
シェルに対するコマンドを理解し、一連の要求をコマンドで組み立てることができるという意味です。
組み立てられたコマンドのひとかたまりを「シェルスクリプト」と言います。
シェルスクリプトは一種のプログラミングです。
コマンドの羅列はもちろん、以下のような条件分岐やループ文などが利用できます。
・if文
・for文
・while文
・case文
これらを駆使して、Linux運用におけるバッチ処理などを操るシェルスクリプトをプログラミングすることが可能です。
IT業界の求人を探すならGeekly(ギークリー)がおすすめ
\ AIスキルを活かす求人が見つかる! /
「自分に合う条件の求人がなかなか見つからない…」
「今のスキルでチャレンジできる求人ってあるの?」
「もっと環境が良い職場で働きたい!」
上記のような大切なキャリアのご相談はぜひ「IT特化の転職エージェント ギークリー」にお任せください!
GeeklyではIT業界や職種を熟知したキャリアアドバイザーがどんなお悩みでもお話を伺い、業界特化の45,000件*以上の豊富な求人情報から、あなたに合った求人をご提案いたします。
(*26年1月時点)
Geeklyを利用して転職成功したKさんの例
- ご年齢:40代
- 企業:受託開発⇒事業会社
- 職種:システムエンジニア⇒Webエンジニア
- 転職回数:1回
- 転職理由:自社のプロダクトに携わりたかった
Q.転職活動においてどのようなことを不安に感じられましたか?
単にどのくらい転職活動に時間をかけないといけないのか見えていなかったという点と、転職活動を考え出した35歳は市場や企業にとって需要があるのかという点です。
Q.転職活動で得られた気づきや考えの変化はありましたか?
転職活動に対しての不安はギークリーで面談して、一瞬で解消されました。面談後の書類の作成も一緒に進めていただいたので、「こんな感じでいいんだ」と不安が払拭されました。
Q.ギークリーで紹介された求人についてはいかがでしたか?
準備していただいた求人は100社以上もありパワフルさを感じたのですが、最初の面談の時に書類を応募する企業数と、そのうち一次面接を通る総定数や内定が出る企業の総定数を出していただいて、それをどのくらいの期間で行うのかという指針があったので、納得感がありました。
【あわせて読みたい】事業会社へ転職に成功したKさんの事例はこちら⇓
Geeklyのサービスご利用の流れ
STEP1:以下のボタンから転職支援サービスにご登録
STEP2:キャリアアドバイザーとのカウンセリング
STEP3:求人のご紹介
STEP4:書類選考/面接
STEP5:入社/入社後フォロー
IT特化の転職エージェントのGeekly(ギークリー)なら、専門職種ならではのお悩みも解決できる専任のキャリアアドバイザーがカウンセリングから入社後まで完全無料で全面サポートいたします!
転職しようか少しでも悩んでいる方は、お気軽に以下のボタンからご相談ください。
\ エンジニアのキャリアに迷ったら! /
【ギークリー転職成功体験談】エンジニアの方の口コミ
ここでは、実際にGeekly(ギークリー)のサービスをご利用いただき、年収アップ転職を実現された方の声をご紹介します。
- 調査対象:弊社をご利用いただいたIT業界にお勤めの転職希望の方
- 調査期間:2024年8月~2025年8月
- 調査方法:Web上のアンケートフォームへの入力
<転職成功事例:30歳 バックエンドエンジニア>
『職場環境よりも、事業やプロダクトへの共感を重視して転職活動を行いました。自身のスキルの市場価値が分からず、「選考が通る企業があるのか」という不安が大きかったですが、ギークリーの担当者から面接のフィードバックを受け、よい意味で予想外に順調に進められたという実感があります。
日程調整もスムーズで、転職の軸を深堀りしてもらったおかげで職場決めも順調でした。』
<転職成功事例:38歳 QAエンジニア>
『新卒で入社した企業でQAエンジニアからキャリアをスタートしました。会社の業務方針が変わるタイミングで「QAを必要としている会社でQAとして働きたい」という考えに至ったのが、転職を決意したきっかけです。
「サービスを創る側に回ること」と「ワークライフバランスが良いこと」の2点を転職の軸として転職活動を行いました。ギークリーの担当者の経験に裏付けされたアドバイスと前向きな言葉が印象的でした。』
<社内SE(開発)⇒Webマーケティング企画へ転職>
『ぼんやりと現職以外の選択肢を考えてはいても、書類の作成や応募など、一人ではハードルとなって手が止まってしまう部分を最もスムーズにサポート頂いたことが決め手だったように思います。』
(30歳男性/2025年8月の口コミ)
<Web系エンジニア)⇒社内SE(開発)へ転職>
『担当の方は私の希望やキャリアの方向性を深く理解した上で、最適な提案をしていただきました。おかげさまで、自信を持って次のステップに進むことができそうです。心から感謝しております。』
(36歳男性/2024年8月の口コミ)
<業務系エンジニア⇒web系SE・PG(SI・受託)へ転職>
『スピード感のあるサポートは過去に使った他社と比較して、とても心強かったです。』
(27歳男性/2025年5月の口コミより)
<社内SE(開発)⇒プロジェクトマネージャー(業務系)へ転職>
『こまめな連絡や企業との交渉など非常にありがたく、結果的に自分が望む活動、結果となりました。この度はありがとうございました。』
(48歳男性/2025年6月の口コミより)
\ レガシーな環境に悩んだら? /
Linuxシェルの具体的な役割と機能
シェルの役割は、ユーザーの要求をカーネルに伝えることです。
ユーザーは基本的に、ターミナルからLinuxに接続し、コマンドを入力することでLinuxを操作します。
ターミナルとは、CUIコマンドを受け付けるための画面で、イメージとしてはハッカーが使う黒い画面です。
例えば、今現在ユーザーが見ているディレクトリである「カレントディレクトリ」を確認する要求を、具体的な動作と順番で整理すると次のようになります。
- ユーザーがPC上でターミナルを開く
- ターミナル上で「pwd」コマンドを入力
- エンターキーで決定
- 「pwd」コマンドがシェルに渡される
- シェルが「pwd」コマンドの意味を「カレントディレクトリの表示要求」と解釈する
- シェルは「カレントディレクトリの表示要求」をカーネルに伝える
- カーネルは「カレントディレクトリ」をシェルに伝える
- カーネルから教えてもらった「カレントディレクトリ」をシェルがターミナルに表示する
- ユーザーはターミナルに表示されたカレントディレクトリを確認する
一つの要求コマンドでは、簡単にイメージするだけでもこれだけの動作が行われており、その中でも、シェルはユーザーとカーネルの間で重要な役割を果たしていることが分かります。
\ 自分に合う働き方が分かる! /
Linuxシェルの種類
代表的なLinuxシェルの種類とコマンドを解説します。
| シェル名 | コマンド | 概要 |
| Bourne Shell (Bシェル) |
sh | 最も古く、bashなどの基となった |
| C Shell | csh | shを基にアレンジされ、配列が可能 |
| TENEX C Shell |
tcsh | cshを基にインターフェース部分を拡張 |
| Korn Shell | ksh | shの上位互換 |
| Bourne again Shell |
bash | shを基に機能拡張、オープンソース版 |
| Z Shell | zsh | tcsh、ksh、bashの機能を一部採用 |
| Friendly interactive shell |
fish | オートコンプリート機能を搭載 |
以下、それぞれ詳しく解説します。
sh(ボーンシェル /Bシェル)
sh (Bourne shell /Bシェル)は、AT&Tベル研究所のスティーブン・ボーン氏が1977年に開発したシェルで、コマンド名を「sh」としています。
Bシェルとも呼ばれており、標準的なシェルプログラムとして広く使用されているシェルです。
コンパイルを不要とし、変数などが利用できるようになったものBシェルが初めてです。
それまでのシェルに比べるとプログラミング要素を多く取り入れており、シェルスクリプトを組みやすくなったシェルでもあります。
csh(シーシェル)
csh( C Shell)はshが基になったUNIX系OSのためのシェルです。
スクリプトがプログラミング言語のC言語に似た文法の構造をしており、sh、bashなどとは異なる系統として位置づけられています。
配列が使用可能な点も大きな特徴です。
\ レガシーな環境に悩んだら? /
tcsh(ティーシーシェル)
tcsh(TC Shell /TENEX C Shell)は、cshの機能が拡張されたものです。
頭文字のTは、TENEXならびにTOPS-20に由来しています。
入力補完機能やスペルの訂正機能、C言語ソースコードの簡単な文法チェックが行えるなどの機能が備わりました。
ksh(コーンシェル)
ksh(Korn Shell)は、1980年代後半に開発されたUNIX系OS用のシェルです。
Bシェルの機能を包含し、より動作が高速であること、C言語に似た制御構造を持っていることなどが特徴です。
bash(ボーンアゲインシェル)
bash(Bourne-Again shell)は、Bシェルをベースに様々な機能が拡張されたシェルです。
Linuxでもbashが多く使われています。
bashはBシェルと互換性がありますが、更に複雑なシェルスクリプトを組むことが可能です。
\ 最新のAI求人が見つかる! /
zsh(ズィーシェル)
Bシェルの改良版として登場したのがzsh(Z Shell)です。
tcsh、ksh、bashなどの機能が取り込まれ、bashの上位互換として位置づけられています。
テーマやプラグインによるカスタマイズが豊富な点が特徴です。
fish(フィッシュ)
fish(Friendly interactive shell)は、ユーザーフレンドリーなシェルとして、多機能さと分かりやすさを備えています。
対話的に操作できる点が特徴で、例えばコマンドを入力することで予測を表示するオートコンプリート機能や、過去の履歴表示といった機能が特徴です。
\ IT転職のプロがキャリアもサポート! /
Linuxシェルスクリプトの具体例
ここで、シェルスクリプトの具体例を見ていきましょう。
基本的にはコマンドの羅列で、書いた順番に上から下へ実行されるインタプリタ型です。
そのため、実行したい機能の流れとコマンドをしっかりと理解していれば、複雑なロジックはほぼ不要です。
シェルスクリプトの記述方法
ここでは例としてbashを利用します。
以下、bashを利用して「Hello World」を表示させる方法です。
1行目:「bash」を利用するため、bashへのパスを宣言しています。
2行目:「Hello Warld」を表示することを要求しています。
3行目:シェルスクリプトの正常終了を意味しています。
シェルの実行方法
シェルスクリプトを書いたら、ファイルを保存しますが、拡張子は「.sh」です。
例えば、ファイル名を「hello.sh」とした場合は、実行時に以下のようなコマンドを入力します。
ただし、実行前にシェルスクリプト自体の実行権限を変更し、実行ファイルとしての許可を与える必要があります。
\ レガシーな環境に悩んだら? /
Linuxシェルスクリプトを使うと便利なシーン
実際にシェルスクリプトを使うと様々なシーンで作業の効率化を図ることができます。
その中でも、代表的なシェルスクリプトの使い方を見ていきましょう。
logの吐き出し
Linuxで稼動させるものはサーバーです。
例えばWebサーバーであれば、ページが表示されなかったり、特定のプログラムが読み込めずにページの一部が欠落したりというトラブルがあります。
そんな時、サーバーのlogを吐き出すシェルスクリプトを仕込んでおくと便利です。
サーバーエンジニアは、トラブルがあれば最初にlogを確認します。
そこにはサーバー上で起こるイベントのほとんどが記載されていますが、その中から特定のエラーコードや文字列を定期的に別ファイルへ吐き出すことで、迅速なトラブル解決が可能になります。
これらの作業を単発のコマンドで毎回確認するのは非効率です。
そこで、シェルスクリプトをあらかじめ作っておくことで、そのシェルスクリプトを実行するだけで原因の特定を効率的に進めることができます。
疎通確認
Linux上で稼動するサーバーには、常に疎通しておくべき機器が多数存在します。
特にバックアップ用のサーバー(セカンダリサーバーなど)は、実際に稼働しているサーバーと常に同期を取りながら運用するものです。
それら機器との疎通が取れているかを常に監視する機能も、シェルスクリプトで作成可能です。
一定の間隔でping(疎通確認コマンド)を飛ばしながら、応答が無い機器があった場合に通知するなど、シェルスクリプトを実行しておくことで、突然ダウンした機器をすぐに察知し対処することができます。
\ レガシーな環境に悩んだら? /
スクリプト言語を利用する際には
Kornシェルは、スクリプト言語で用いる高度な機能を備えています。
例えば、JavaScriptが有効なウェブサイトの構築、膨大なデータの数値化を行う場面で有用です。
因みに、多様なオペレーティングシステムに対応しているため、トラブルが発生した時のリスクを軽減しやすいでしょう。
環境変数PATHの設定
シェルスクリプトを実行する時、プログラムの名前と場所を入力・指定する必要があります。
しかし実行する度、入力・指定する作業を簡易化するために役立つのがPATHの環境変数です。
まず「echo」コマンドを活用し、環境変数PATHを表示させます。次に「export」コマンドで環境変数を設定しましょう。
この時「:」で区切れば、複数のプログラムの名前を登録可能です。
ただし、探索の優先順位を一律にすることはできません。先頭に記されたものほど、優先的に探索されます。
コマンドの出力先をファイルに変える
通常コマンドを実行した結果は、ディスプレイに標準出力されます。
もしも出力先をファイルに切り替える時には、リダイレクション記号が役立つでしょう。
以下にリダイレクション記号の使い方と種類を紹介します。
>
入力するリダイレクション記号が1個の場合、コマンドの実行結果を指定したファイルに上書きします。その代わり、既に書き込まれている内容が全て消去されるため、ファイルの指定には要注意です。
>>
入力するリダイレクション記号が2個の場合、コマンドの実行結果が指定したファイルの最下行に追加する形で出力されます。
上記、いずれもコマンドの後に続けて入力し、出力先のファイルの名前を指定します。なお、書き込みの対象となるファイルが存在していなかったとしても、自動的にファイルが新規作成され、実行結果を残すことが可能です。
コマンドの入力
シェルがbashの場合、ショートカットキーを活用して作業を進められます。
ポピュラーなショートカットキーは、以下の通りです。
CtrlプラスA
カーソルを入力した文字列の先頭に移動させます。
CtrlプラスE
カーソルを入力した文字列の最後尾に移動させます。
CtrlプラスH
カーソル左側に入力されている文字を削除します。
CtrlプラスD
カーソルの上方に入力されている文字を削除します。
Tab
入力の途中で押すことによって、自動的に文字列が補完されます。 上記の他にも色々なショートカットキーがあります。UNIXを導入する折、一通り覚えておくと便利でしょう。
\ レガシーな環境に悩んだら? /
Linuxシェルをサーバー運用に役立てよう
シェルは、Linuxのカーネルとユーザーを繋ぐインターフェイスであり、カーネルの「殻」のポジションを担います。
ユーザーがターミナルを使ってコマンドを実行した際には、シェルがカーネルに要求を伝え、カーネルから返ってきた結果をユーザーに伝える役割を担い、「シェルスクリプト」を作成することで複雑なバッチ処理などをコマンド一つで実行することも可能です。
Linuxをメインに利用するサーバーエンジニアにとって、シェルを理解することは必要不可欠な知識です。
「エンジニアとして上流工程に携わりたい」
「IT業界に転職して年収を上げたい!」
「もっとモダンな環境で働きたい!」
などのキャリアのお悩みは是非、「IT・Web業界の知見が豊富なキャリアアドバイザー」にご相談ください!
IT特化の転職エージェントのGeekly(ギークリー)なら、専門職種ならではのお悩みも解決できる専任のキャリアアドバイザーがカウンセリングから入社後まで完全無料で全面サポートいたします!
転職しようか少しでも悩んでいる方は、お気軽に以下のボタンからご相談ください。
\ レガシーな環境に悩んだら? /
あわせて読みたい関連記事
新着記事はこちら












