新しいLinuxの教科書(勉強メモ)

# Chapter2 シェルって何だろう?
- シェルの役割とLinuxカーネル<br>
シェルはユーザとLinuxカーネルの橋渡しを行う．<br>
(例)　ユーザが入力した文字列をシェルが受け取り，ユーザからの命令であると解釈する．その後，シェルが入力された文字列が示すコマンドを探し出し，Linuxカーネルに実行依頼を行う．Linxかーネルがコマンドの実行を終了すると，シュルがその結果をユーザに出力する．
- ターミナルとは?<br>
ユーザがコンピュータへ入出力する際に利用する専用のハードウェアのことを指す．ターミナルとシェルは別のソフトウェアである．<br>
現在のLinuxではハードウェアとしてのターミナルは使用されることはなく，代わりにターミナルをソフトウェアとし実装したターミナルエミュレータが使用されている．ターミナルエミュレータは入出力の画面を提供しているだけのソフトウェアであり，シェルはターミナルエミュレータの中で動作している．

# Chapter3 シェルの便利な機能
- カーソル移動のコマンド集<br>

| コマンド         |       内容 |
|:-----------------|:------------------:|
| Ctr + b | 後方に1文字移動| 
| Ctr + f | 前方に1文字移動 |
| Ctr + a | 行頭に移動 | 
| Ctr + e | 行末に移動| 
|Alt + b | 後方に単語1つぶん移動|
|Alt + f|前方に単語1つぶん移動|
|Ctr + w|後方にスペース1区切りで1単語ぶんを削除|

- トラブル時の対処コマンド集<br>

| コマンド |内容 |
|:-----------------|:------------------:|
| Ctr + s | 画面表示をロック| 
| Ctr + q | 画面表示のロック解除|
| Ctr + l  | 画面を消去 | 
| Ctr + e | 行末に移動| 

#Chapter4 ファイルとディレクトリ
- 各ディレクトリの役割<br>

| ディレクトリ名 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| 役割 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|
|:-------------------|:------------------------------|
| /bin| Linuxシステムの動作に必要最低限必要な，<br> 重要度の高いコマンドを格納している| 
| /dev | デバイスドライバにアクセスするための<br>インタフェースとなるデバイスファイルを格納している|
| /etc |Linuxの設定等に関わるファイルが格納されており，<br> Linuxの管理・運用に重要なディレクトリである．| 
| /home | ユーザごとに割り当てられるホームディレクトリ<br>配置されているディレクトリである．| 
|/sbin | /binと似ており，実行ファイルを置いている<br>ディレクトリ(管理者ユーザ向けコマンドが主)|
|/tmp|一時的なファイルを置くためのディレクトリである|
|/usr|追加でインストールしたアプリケーションの実行ファイル，<br>ドキュメント，ライブラリなどが置かれているディレクトリである|
|/var|変化するデータを置くためのディレクトリである．<br>アプリケーション動作時に作成されるデータやログ，<br>電子メールなどがこのディレクトリに格納される．|

- lsコマンド<br>

| コマンド &nbsp;&nbsp;&nbsp;&nbsp;| 内容|
|:-----------------|:------------------|
| ls -a| カレントディレクトリ内のファイルを<br>隠しファイルも含めて表示する| 
| ls -F | カレントディレクトリ内のファイルを<br>種類別に表示する|

#Chapter5 ファイル操作の基本
- ファイル操作のコマンド集<br>

| コマンド &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|内容 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|
|:-----------------|:------------------|
| mkdir <ディレクトリ名>|ディレクトリの作成| 
| touch <ファイル名> |空ファイルの作成 (複数ファイル作成したい場合，<br>続けてファイル名を入力すればいい)|
| rm <ファイル名>| ファイルの削除(複数ファイル削除したい場合，<br>続けてファイル名を入力すればいい) | 
| rmdir <ディレクトリ名>|ディレクトリの削除| 
|cat <ファイル名> |ファイルの内容を表示する．<br>(複数ファイルを指定することで，ファイルを連結して表示できる)|
|less <ファイル名>|内容が長いファイルを閲覧したいときに使用する．<br>スクロールして中身を見ることができる．<br>(長い内容を見るときにcatより優れている)<br> 「/」を入力することでファイル内の文字列検索が可能である|
|cp <コピー元> <コピー先>|ファイルをコピーする|
|mv <移動元> <移動先>|ファイルを移動する|

- リンクとは?(ハードリング，シンボリックリンク)<br>
リンクとはファイルに別名をつけることである．(Windowsでいうショートカットのようなもの)<br>
**ハードリンク**: 1つのファイルの実体に複数の名前を付ける機能である．<br>ハードリンクを持つファイルの実体は全てのハードリンクが無くなったときに削除される．(リンクを張られたファイル自身もハードリンクと同じような感じ?)<br>
**シンボリックリンク**: リンク先のパス名が書かれたファイルである．リンク先がファイルの実体であり本物のファイルである．シンボリックリンクを削除してもリンク先のファイルに影響はない．一方で，リンク先のファイルが削除された場合，シンボリックリンクは壊れた状態となる．(リンク先がないから)

| コマンド &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|内容 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|
|:-----------------|:------------------|
| ln <リンク先> <ハードリンクとなるファイル名>| ハードリンクの作成| 
| ln <リンク先> <シンボリックリンクとなるファイル名> | シンボリックリンクの作成 |