ディレクトリの移動と確認をするコマンドとオプション

# 参考書籍
[新しいLinuxの教科書](https://www.amazon.co.jp/%E6%96%B0%E3%81%97%E3%81%84Linux%E3%81%AE%E6%95%99%E7%A7%91%E6%9B%B8-%E4%B8%89%E5%AE%85-%E8%8B%B1%E6%98%8E/dp/4797380942/ref=sr_1_1?adgrpid=117229375656&hvadid=655144332605&hvdev=c&hvqmt=e&hvtargid=kwd-1152146940662&hydadcr=21814_13461165&jp-ad-ap=0&keywords=%E6%96%B0%E3%81%97%E3%81%84linux%E3%81%AE%E6%95%99%E7%A7%91%E6%9B%B8&qid=1688622508&sr=8-1)

# 動作環境
+ Windows11
+ Oracle VM VirtualBox
+ CentOS 7

# コマンドのオプション
+ 多くのコマンドは、[コマンドライン引数][語句補足]に、**`-`（ハイフン）で始まる追加の引数**を指定できる。
+ この追加の引数のことを**コマンドラインオプション**（もしくは**オプション**)と呼ぶ。
+ Linuxのコマンドはオプションを指定することでデフォルトとは違う動作をさせることができる。

## オプション指定の記法
~~~bash:lsコマンドに-aオプションを指定
$ ls -a
~~~

~~~bash:オプションが複数ある場合
$ ls -a -F
$ ls -aF
~~~
> 複数ある場合はスペース区切りで書く、もしくは`-`の後ろにまとめて書く。

~~~bash:引数とオプションを同時に指定する場合
$ ls -aF /
~~~
> この場合は先にオプションを書き、後にコマンドへの引数を書く。

~~~bash:オプション自体が引数をとる場合
$ ls -w 30
$ ls -w30
~~~
> オプション自体が引数をとる場合もある。この場合オプションと引数の間のスペースは省略可能である。

### ロングオプション
+ オプションは一般的に「`-`（ハイフン）＋英数字1文字」で指定されるが、`--`（ハイフン２文字）で始まるオプションもある。
+ これを**ロングオプション**という。
~~~bash:引数をとるロングオプション
$ ls --width 30
$ ls --width=30
~~~
> この場合は間にスペースを入れるか`=`（イコール）で引数を指定する。


# ディレクトリ移動と確認
<table>
 <thread>
  <tr>
    <th>コマンド</th> <th>説明</th>
  </tr>
 </thead>
  <tr>
   <td><code>pwd</code></td> <td>カレントディレクトリを表示する</td>
  </tr>
  <tr>
   <td><code>cd</code></td> <td>カレントディレクトリを変更する</td>
  </tr>
  <tr>
   <td><code>ls</code></td> <td>ディレクトリ内のファイルを表示する</td>
  </tr>
</table>

### 使用例
~~~bash:/home に移動する
$ cd /home
~~~
+ `cd`コマンドは**後ろに指定したディレクトリにカレントディレクトリを変更**する。
+ [コマンドライン引数][語句補足]の値がない場合は[**ホームディレクトリ**][語句補足]に移動する

## lsコマンド
+ lsコマンドは**ファイルやディレクトリを一覧表示する**ためのコマンドである。
+ 引数無しの場合はカレントディレクトリのファイルとディレクトリを表示する。
+ 引数がディレクトリの場合は、そのディレクトリに含まれるファイルやディレクトリを表示する。
+ 引数がファイルの場合は、そのファイルのパスを表示する。
+ 引数の複数指定も可能、その場合は指定されたすべての引数に対して処理を行う。

### lsコマンドのオプション
<dl>
 <dt><code>-l</code>オプション</dt>
 <dd>ファイル属性などの詳細情報を同時に表示する</dd>
 <dt><code>-a</code>オプション</dt>
 <dd>隠しファイル（<code>.</code>（ドット）から始まるファイル）を含めたすべてのファイルを表示する</dd>
 <dt><code>-F</code>オプション</dt>
 <dd>ファイルの後ろにファイルの種類を表す記号を追加して表示する</dd>
 <dd>
 <table>
 <caption>記号の意味</caption>
 <thread>
  <tr>
   <th>種類</th> <th>記号</th>
  </tr>
 </thread>
  <tr>
   <td>通常ファイル</td> <td>なし</td>
  </tr>
  <tr>
   <td>ディレクトリ</td> <td><code>/</code></td>
  </tr>
  <tr>
   <td>実行可能ファイル</td> <td><code>*</code></td>
  </tr>
  <tr>
   <td>シンボリックリンク</td> <td><code>@</code></td>
  </tr>
</table>

 </dd>

## パス名展開
+ パス名展開とはファイル名の一部をパターンで指定することで、複数のファイルを指定するbashの機能のこと。

<table>
 <thread>
  <tr>
   <th>記号</th> <th>意味</th>
  </tr>
 </thread>
  <tr>
   <td><code>*</code></td> <td>任意の文字列</td>
  </tr>
  <tr>
   <td><code>?</code></td> <td>任意の1文字</td>
  </tr>
</table>

+ baから始まるファイルを指定するには`ba*`とする。
+ 拡張子が .txt のファイルを指定するには`*.txt`とする。
+ 文字数を指定した場合は`*`ではなく`?`を使用する。


## 語句補足
<dt>コマンドライン引数</dt>
<dd>
コマンドの後ろにスペース区切りで指定する文字列のこと。<br>
コマンドによって、「オプション」を指定できたり、複数の値をとることができる。
</dd>

<dt>ホームディレクトリ</dt>
<dd>
Linuxのユーザごとにそれぞれ割り当てられる<strong>個人用ディレクトリ</strong>のことで、ユーザ名がそのままディレクトリ名となっている。<br>
ユーザがファイルやディレクトリを作成して作業をする際は、ホームディレクトリ内で行う。<br>
<br>
また、コマンドラインの<code>~</code>（チルダ）はシェルによって<strong>ユーザのホームディレクトのパス</strong>に変換される。<br>
シェルのこの機能を<strong>チルダ展開</strong>と呼ぶ。
</dd>

# 終わりに

次はファイル操作についてのコマンドについてまとめようと思う。

**次回**（未作成）

何かご指摘がありましたら、コメントしていただけると幸いです。
最後までお読みいただきありがとうございました！

[語句補足]: #語句補足