#import "@preview/colorful-boxes:1.2.0": *
#import "@preview/codly:0.2.0": *
#let icon(codepoint) = {
  box(
    height: 0.8em,
    baseline: 0.05em,
    image(codepoint)
  )
  h(0.1em)
}
#show: codly-init.with()
#codly(languages: (
  sh: (name: "Command", icon: none, color: none)
))

== コマンド

ここでは、基本的なコマンドを紹介する。
細かいオプションまでは解説をしない。
なお、ここで使用するコマンドはWindows コマンドプロンプトでは使用できない。

=== ファイルの一覧化：ls

まずはフォルダの内容を確認したい。
そのようなときに打つコマンドである。
何回打っても良い．

```sh
ls
```

=== ディレクトリの移動：cd

今いるフォルダから移動したいときに打つ。

```sh
cd {path} // {移動先のパス}へ移動
cd ..     // １つ上のディレクトリへ移動
cd ~      // ホームへ移動
```

#colorbox(
  title: "コマンドライン",
  color: none,
  width: auto,
  radius: 2pt,
)[
  本書では、コマンドラインへの入力表記において`{}`を代入記号、`//`をコメントとする。これらは実際に入力せず、可読性を補助する。
]

=== 現在地 : pwd

プロンプトに書いてあるディレクトリ名をわざわざ絶対パスで表示する。
あまり使わないが，重大な作業をしているときに使った記憶がある。

```sh
pwd
```

=== ディレクトリの作成 : mkdir

思ったよりお世話になる。
メイクディレクトリと読んでしまうが正解は知らない。
知っておいて損はない。

```sh
mkdir {ディレクトリの名前}
```

=== ファイルの閲覧 : cat

本来は複数のファイルを結合（concat）して表示するコマンドだが、単一のファイルをのぞき見することで使うことが多い。

```sh
cat {ファイル名}
```

=== ページャ : less

本来のファイル閲覧用コマンドだが、大体は`cat`コマンドで足りてしまう。
`less`を使用した後は、Qキーを押下すると終了する。

```sh
less {ファイル名}
```

=== 容量の確認 : du

「このフォルダは何MBあるのか」といった疑問を解決する。
ちなみに、`-hs`オプションを付与すると内訳を非表示にできるため、ファイル数が異常に多いディレクトリで有効である。

```sh
du {フォルダ名}
```

=== 検索 : grep

ファイルを検索することは多々ある。
よく使うオプションつきで紹介する。

```sh
grep -rn {path} -e ${text}
```

- r : 再帰的にサブディレクトリを含める
- n : マッチした行番号を表示
- e : 検索する文字列を指定


=== 改名もしくは移動 : mv

便利だが、個人的にリスクがあると思っているコマンドの１つである。
２つめの引数が存在するパスならそこへ１つ目の引数に指定されたファイルを移動させる。
存在しないパスなら、１つ目の引数に指定されたファイルを２つ目の文字列に改名する。

```sh
mv {path} {path} // 改名
mv {path} {rename} // 新しい名前に変更
```

移動先を誤字脱字すると、その文字列が新しい名前となるので注意が必要である。
ただし、`-iv`オプションを付与すると警告してくれるので必須である。

=== 削除 : rm

`mv`より危険なコマンドである。
削除をコマンドで実施する場合、取り返しがつかない(=ゴミ箱に移動しない)ため、`-iv`オプションを付与して警告を有りにする習慣をつけよう。

```sh
rm -iv {対象ファイル}
```

== パイプとリダイレクト
