Linuxコマンドまとめ

# はじめに
linuxコマンドのことを学んだので簡単にまとめていきます。

#ディレクトリ操作
まずはディレクトリの操作に関するコマンドから書いていきます。

## cdコマンド　（change directoryの略）

ディレクトリを移動するためのコマンド

`cd 移動するディレクトリ名`

(例)

    # hogeディレクトリに移動
    $ cd hoge

`cd`だけ打つとホームディレクトリに移動する

## pwdコマンド (print name of working directoryの略)

カレントディレクトリを表示するコマンド

'pwd'

    # カレントディレクトリを表示
    $ pwd

## lsコマンド (listの略)

ファイルやディレクトリの一覧表示をするコマンド

`ls [オプション] [ディレクトリ・ファイル名]`

オプション

|オプション|内容   |
|:-:|:-:|
| -l | ファイルの詳細情報（ファイルタイプ・更新日時など）を表示する   |
| -a | 隠しファイルも含めた全てのファイル表示する |
| -F | ファイル種別の表示　|

## mkdirコマンド　(make directoryの略)

ディレクトリを作成するコマンド

`mkdir [オプション] <ディレクトリ名>`

| オプション　| 内容 |
|:-:|:-:|
| -p | 必要に応じて引数の親ディレクトリも作成する　|

（例）

    # dir作成
    $ mkdir dir

    # dir3作成
    $ mkdir -p dir1/dir2/dir3    
    #　dir1とdir2ない場合-pのオプションつけないとエラーが出る
    #　-pのオプションをつけるとdir1とdir2ディレクトリ事前に作っていなくても自動で作ってくれる

## rmdirコマンド　(remove directoryの略)

ディレクトリを削除するコマンド(空のディレクトリのみ)


`rmdir <ディレクトリ名>`

(例)

    # dirディレクトリ削除
    $ rmdir dir

*rmdirコマンドは空のディレクトリしか削除できないので中に隠しファイルなどある場合は削除できない*

# ファイルの操作
次にファイルの操作に関するコマンド書いていきます。

## catコマンド　(concatenate)

ファイルの中身を確認するコマンド

`cat [オプション] <ファイル名>`

| オプション　| 内容 |
|:-:|:-:|
| -n | 行番号を表示させる|

(例)

    # file1の中身を確認する
    $ cat file1
      hogehoge
      hoge

    # file1の中身を行番号表示して確認する
    $ cat -n file1
    1 hogehoge
    2 hoge

## lessコマンド　(opposite of moreの略)

ファイルの中身をスクロール表示するコマンド

 `less <ファイル名>`

長いファイルを確認するときに使う
別のスクロール表示する画面出てくる

（例）

    # file1の中身をスクロール表示する
    $ less file1

*スクロール表示終了する時は「q」*を押す

## touchコマンド　

空のファイルを作成するコマンド

`touch <新規ファイル名>`

(例)

    # file1を作成
    $ touch file1

*間違って存在しているファイルを指定しても上書きされないので安全に使える*

## rmコマンド　（removeの略）

ファイル・ディレクトリを削除するコマンド

`rm [オプション] <削除するファイル名>`

| オプション　| 内容 |
|:-:|:-:|
| -r | ディレクトリを削除できる（ディレクトリの中のファイルも同時に削除する）　|
| -f | 削除する際に警告文を表示しない　|
| -i | 削除する前に確認する　|

（例）

    # file1を削除する
    $ rm file1

    # dir1を削除する
    $ rm -r dir1
    # rmコマンドだけではディレクトリ削除できないので-rオプションつける

## mvコマンド　（moveの略）

ファイルの移動、ファイル名の変更するコマンド

`mv [オプション] <移動元>　<移動先>`

| オプション　| 内容 |
|:-:|:-:|
| -i | 上書き前に確認する　|

（例）

    # ファイル名変更
    $ mv file file1

    # ファイル移動
    $ mv file dir

*mv ファイル名　ファイル名にすると名前の変更*　
*mv ファイル名　ディレクトリにすると移動*

## cpコマンド　（copyの略）

ファイル、ディレクトリのコピーをするコマンド 

`cp [オプション] <コピー元>　<コピー先>`

| オプション　| 内容 |
|:-:|:-:|
| -i | 上書き前に確認する　|
| -r | ディレクトリをコピー|

（例）

    # ファイルをコピー
    $ cp file new_file

    # ファイルをディレクトリ内にコピー
    $ cp file dir

*コピー先のファイルが既に存在する場合は上書きされるので注意*

## lnコマンド　（linkの略）

リンクを貼るコマンド

`ln [オプション] <リンク元ファイル名>　<リンク名>`

| オプション　| 内容 |
|:-:|:-:|
| -s | シンボリックリンクを貼る　|

（例）

    # ハードリンク貼る
    $ ln file1 file2

    # シンボリックリンクを貼る
    $ ln -s file1 file2

*リンクの説明は省くので分からない場合は検索してください*
　
## findコマンド

ファイルを検索するコマンド

`find <検索開始ディレクトリ>　<検索条件>　<アクション>`

| 検索条件　| 内容 |
|:-:|:-:|
| -name | ファイル名指定してファイル検索（大文字小文字区別する）　|
| -iname | ファイル名指定してファイル検索（大文字小文字区別しない）　|
| -type | ファイル種別で検索　| 
| -a | 複数の検索条件を指定 |

（例）

    # カレントディレクトリを基準にfile1を検索してパスを表示する
    $ find .-name file1 -print
    # .はカレントディレクトリ
    # printアクションはパスを表示する

    # type fは通常ファイル
    $ find .type f -print
    # type lはシンボリックリンク
    $ find .type l -print
    # type dはディレクトリ
    $ find .type d -print

    # 複数条件指定（-aは省略可）
    $　find .type d -a -name dir -print 


## コマンドの使い方を調べる

`<コマンド>　--help`

使用方法、コマンドの概要、オプションの一覧など知ることができる

（例）　

    # lsコマンドについて知りたい時
    $ ls --help


### manコマンド　（manualの略） 

コマンドのマニュアルを表示する

`man <コマンド名>`

（例)

    $ man ls

*helpオプションより詳しく知ることができる*

#　おわりに

学んだことを書いていきました。
linuxコマンドは基礎の大事なことだと思うので繰り返して使用してしっかり身につけていきたいと思います。

もし間違いや改善点などありましたらご指摘お願いいたします。