# 17. シェルの活用
**Source**: https://hwb.ecc.u-tokyo.ac.jp/hwb2023/applications/shell/
**Parent**: https://hwb.ecc.u-tokyo.ac.jp/hwb2023/literacy/email/
オペレーティングシステムにコマンドを入力するときに、入力を処理して OS の中心部に橋渡ししてくれるプログラムをシェルといいます。[13. コマンドの基本](https://hwb.ecc.u-tokyo.ac.jp/hwb2023/information/cui)
ではターミナルの基礎的な使い方を勉強しましたが、ここではターミナル上で走る `bash` というシェルの設定をカスタマイズする方法やプログラムの書き方を中心に、より高度な使い方を説明します。特にシェルスクリプトは便利な機能ですので、ぜひ一度目を通してみてください。
## 17.1. コマンド編集
bash でコマンド入力を楽にするための、ちょっと細かいショートカットを説明します。
既に[13.4. 便利な利用法](https://hwb.ecc.u-tokyo.ac.jp/hwb2023/information/cui/tips)
で説明したように、コマンドの履歴や
キーによる入力補完を使うとコマンド入力は大分楽になります。しかし実際は履歴で出てくるコマンドをそのまま使うより、一度打ったコマンドを若干修正して (特に、オプションや引数の一部を修正して) 使うことの方が多いです。そのような場合に以下で説明するショートカットキーを併用すれば、一段とスピーディなコマンド入力ができるようになるでしょう。
... [このページを読む](https://hwb.ecc.u-tokyo.ac.jp/hwb2023/applications/shell/input/)
## 17.2. 環境変数
シェルに限らず、全てのプログラムは環境変数と呼ばれるさまざまな変数を参照します。環境変数の値によって、シェルの動作を変えることができます。
## 環境変数の見方 [#](#printenv)
まず、環境変数の一覧を見るには printenv コマンドを用います。
... [このページを読む](https://hwb.ecc.u-tokyo.ac.jp/hwb2023/applications/shell/env/)
## 17.3. シェルスクリプト
シェルスクリプトは、シェルに解釈・実行させるスクリプト (プログラム) です。
コマンドは基本的に一つずつ入力し実行させます。一連のコマンドを順に実行したい場合には、シェルスクリプトを書くと、
1度の指示で実行することができます。
... [このページを読む](https://hwb.ecc.u-tokyo.ac.jp/hwb2023/applications/shell/shellscript/)
## 17.4. エイリアス
エイリアスは「別名」という意味です。シェルでエイリアスの機能を使うと、よく使う長い命令を短く登録しておくことができます。
... [このページを読む](https://hwb.ecc.u-tokyo.ac.jp/hwb2023/applications/shell/alias/)
## 17.5. パイプとリダイレクション
ターミナル上で動かすコマンドは、通常キーボードから入力を受けて画面に出力を返します。しかしパイプとリダイレクションの機能を使うことで、この入出力先をファイルに切り替えたり、コマンドの出力を別のコマンドの入力に渡すことができます。
... [このページを読む](https://hwb.ecc.u-tokyo.ac.jp/hwb2023/applications/shell/pipe_and_redirection/)
## 17.6. ファイル操作
ファイル操作をコマンドで行う方法を紹介します。
おおむねGUIによるFinderウィンドウでの操作と対応しますが、より詳しい操作も可能です。
... [このページを読む](https://hwb.ecc.u-tokyo.ac.jp/hwb2023/applications/shell/fs/)
## 17.7. シェルの初期設定
前の節でシェルの環境変数やエイリアスの設定の仕方を述べましたが、シェルにログインする度にこれらを設定し直すのは大変です。シェルが起動されるときに読み込まれる初期設定ファイルを使うと、ログイン時に自動で設定を行うことができます。
... [このページを読む](https://hwb.ecc.u-tokyo.ac.jp/hwb2023/applications/shell/init_env/)