英単語から見るLinuxのコマンド一覧

## はじめに
どうもこんにちは、私です。(?)
私、IT業界に入ってみて思ったことがあるんです…

**Linuxのコマンド覚えるの大変すぎじゃNE★**

これはどの業界でもそうかもしれないですが、専門用語が多いんです。
業務ではパっと出てこなくてはいけないのに、覚えづらい。正直普通の暗記ではやってられません。

そ★こ★で
やっぱり物事を覚えるには、**エピソード記憶**として覚えていくのが良いと思ったんです！！

...ということで、「Qiita記事としてコマンドをまとめた」 というエピソードを作るため、今回の記事を書いていくことにしました。数が多すぎるので、対象のコマンドは今回私が実際に入れたコマンドのみに限定させていただきます。
同じ初級者の皆さんは一緒に勉強を、すでにマスターされている皆さんはほほえましく思いながらお付き合いいただけると幸いです。

また、お急ぎの場合は下の一覧表の方をご確認ください。

![Qiita_1st_画像_岩澤宙輝_250521更新.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4050782/34aa92c9-4152-49cf-ad0d-3180d74161f2.jpeg)


## コマンド紹介

#### 1. pwd

pwd→Print Working Directory の略語です。

"print" とは、「紙をプリントする」なんていうように、「書き写す」という意味があります。
Linuxでは、今現在作業中のディレクトリの事を「カレントディレクトリ(current directory)」や「ワーキングディレクトリ(working directory)」なんて呼びます。

つまり **pwdとは「今いるディレクトリを画面に書き出して！」というコマンド** なのです。
上記の意味があるので、"pwd"の後には何か続けて打ち込む必要はありません。



#### 2. cd

cd→Change Directory の略語です。

1番でやったなぁ。"cd"ってことは「カレントディレクトリ」のことｋ...じゃない！？
そうなんです。同じ"cd"ですが、こちらは"change"なんですね。
(ややこしいわ)

"change"は耳馴染みがありますね。「変える」という単語です。
つまり **cdとは「今いるディレクトリを別のディレクトリに変えて！」というコマンド** なのです。

「...なにディレクトリに変えればいいの？」となりますよね。
つまり、"cd"単体では使えません。"cd"と"対象のディレクトリ位置"をスペースでつないで使用します。

下の簡易ディレクトリ図を例にします。
![スライド2.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4050782/75b77604-b72a-42bd-bc97-cdeda2589b08.jpeg)
               

例えば、colorディレクトリに行きたいときは「cd＠/home/main/sub1/color」と入力します。
(実際は"＠"の部分にスペースを入れてください。スペースが見づらいのでこの形にしました。)


![スライド3.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4050782/85bc48f5-c608-44b5-a851-cf60d1e70148.jpeg)

同様に、sizeディレクトリに行きたいときは「cd＠/home/main/sub2/size」と入力します。
このように、移動するディレクトリルートをすべて記入する方法を**"絶対パス"**といいます。

一方で、自分が現在いるディレクトリをスタート地点とする指定方法もあります。
これは絶対パスに対して**相対パス**と言います。
例えば、今自分がいるディレクトリがmainディレクトリだとします。
ここから、colorディレクトリに行きたいときは「cd＠sub1」、sub1ディレクトリに移動した後、「cd@color」と入力します。

![スライド4.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4050782/7baa0e9a-2c2a-4f8c-a0e8-1e512bfb2b38.jpeg)


同様に、相対パスでmainディレクトリからsizeディレクトリに行きたいときは「cd＠sub2」でsub2ディレクトリに移動、「cd@size」でsizeディレクトリに移動します。

#### 3. ls

ls→list もしくは List Segments の略語です。

(略は統一せぇ)
どちらの場合でも意味は変わりません。
"list"は「列挙する」、"list segments"で「区切りを列挙する」や「部分を列挙する」なんて意味です。

つまり **lsとは「今いるディレクトリの中身を全部見せて！」というコマンド** です。
"pwd"は自分のディレクトリ名が表示される、"ls"は自分が持つ他ファイルの名前表示される、という違いがあります。

"ls"の怖いところは、そのオプション数の多さです。
オプションコマンドを"ls"につけると表示方法や内容を細かく指定することが出来ます。
全ては紹介できませんが、有名どころは"ls -a"でしょうか。
「ls@-a」と入力することで、隠しファイルも含めてすべて表示してくれます。
(次の項の画像内にlsコマンドが登場しますので、ご確認ください)

#### 4. mkdir

mkdir→MaKe Directoryの略語です。

(省略して取る文字ｋかよ)
"make"は「作る」という単語です。
よって、 **mkdirは「ディレクトリを新しく作って！！」というコマンド** って事です。
PCのフォルダと同じ要領で今自分がいるディレクトリに、新しいディレクトリを作成することが出来ます。
例えば、「special」という名前のディレクトリを作成する時、「mkdir@special」という形で入力すれば作成できます。
![mkdir_use.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4050782/a23a0b61-3e93-4b6f-9e1b-49a12bd51663.png)
(mkdirでディレクトリを作ったあと、lsでディレクトリを確認しています。)

作成があるなら削除もあるはずですよね。

#### 5. rm

rm→ReMoveの略です。

いや、"erase"ちゃうんかい。
というのはおいておくとして、"remove"は「取り除く」という単語です。
お察しの通り、 **rmは「ファイルやディレクトリ削除して！！」のコマンド** です。

削除という特性上、このコマンドは慎重に使用する必要があります。
打ち込む際は、他者に問題ないかチェックしてもらってからが良いでしょう。
(間違ってデータを削除してしまい、エンジニア人生が終わるなんてこともあるようです...)

例えば、先ほど作った「special」というディレクトリを削除するときを考えます。実際に打ち込むコードは「rm@special」です。
自分が今いるディレクトリ内の「special」という名前のディレクトリやフォルダを削除してくれます。
![rm_use.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4050782/8b525ca6-684b-4e28-bc13-3514aabda0fc.png)
(rm -rにてspecialディレクトリを削除すると、ディレクトリが消えていることが分かります。)

また、"rm"にもオプションが存在します。"rm -r"や"rm -i"がよく使いそうです。
"-r"は「ディレクトリを削除しますよ」というオプション、」"-i"は「削除前にこのファイルを消してよいか確認する」というオプションです。"y"か"n"（yesかno）で最終確認されます。
「rm@-i@special」のように打ちます。

#### 6. mv

mv→MoVeの略です。

(なんでv取ってくんねん。"rm"で"remove"なんだから"m"でいいやん。)
"move"は「移動」という単語です。
よって、**mvは「ディレクトリやフォルダを他のディレクトリに移動させて！！」というコマンド** です。

例えば、自分がsub1ディレクトリにいるとき、number.txtファイルをshapeディレクトリに写すことを考えます。
このとき、打ち込むコマンドは
「mv@number@shape」・・・相対パス
「mv@/home/main/sub1/number.txt@/home/main/sub1/shape」・・・絶対パス
です。
![mv_use.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4050782/9a103e70-1a9f-4047-b5e7-d298fe3eddf0.png)
(sub1にあったnumber.txtがshapeディレクトリに移動している。)

作成、削除、移動ときたら最後は複製です。

#### 7. cp

cp→CoPyの略語です。

(3文字目を持ってくるのはもうデフォルトなんだね。)
"copy"は「複製する」という単語です。コピペのコピ部分です。
お察しの通り、 **cpは「ディレクトリやファイルをコピーして！！」というコマンド** です。

使い方は"mv"同じです。
自分がsub1ディレクトリにいるとき、number.txtファイルをshapeディレクトリにコピーすることを考えます。
このとき、打ち込むコマンドは
「cp@number@shape」・・・相対パス
「cp@/home/main/sub1/number.txt@/main/sub1/shape」・・・絶対パス
です。

![copy_use.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4050782/444bb9bd-6706-4a65-adc0-7b3e5ae980a7.png)
(sub1にあったnumber.txtがshapeディレクトリにコピーされている。)

"mv"との違いは、元のファイルがディレクトリ内に残るというところです。
コピー元が残るため安全ですが、多用するとディレクトリ内がごちゃごちゃになったり、データを圧迫したりします。

## 終わりに
まだまだコマンドはたくさんあるのですが、文字数が多くなってきたのできりがよいこのタイミングで終わっておきます。
(全然A4用紙10枚分以上いきそうだったので…)
どうやら、Linuxに登場する英単語自体は難しいわけではないようです。ただ、アルファベットの取り方に癖がありますね。
また覚えられなくなってきたら、どこかのタイミングで執筆したいと思います。
2ndシーズンに続く...かも。