基本的なLinux コマンド

日付を表示する

```
date
```

コマンドの後ろに指定した文字列を表示する

```
echo 文字列
```

シェルを切り替える

```
# bashにしたい場合
bash

# zshにしたい場合
zsh
```

非ログインシェルから離脱する

```
exit
```

ログインシェルを変える(下手するとログインできなくなってしまう恐れがあるので基本的には使わない)

```
chsh
```

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

```
pwd
```

カレントディレクトリを変更する

```
# ホームディレクトリに戻る
cd

# チルダ展開(ユーザーのホームディレクトリに移動する)
cd ~

# 指定したディレクトリに移動
cd +  パス指定

# 補完機能を利用する(/usrを補完したい)
cd /u + Tabキー
```

ディレクトリ内のファイルを表示する

```
# カレントディレクトリ内のファイルを表示
ls

# ディレクトリを指定してファイルを表示
ls /bin

複数指定も可能
ls /bin /sbin

# パス名展開
# 「*」 任意の文字列に該当する
# gから始まるファイルを表示
ls g*

# 「?」任意の一文字に該当する
# 拡張子がhtmlであるファイルを表示
# *.html

# 詳細情報を表示する
ls -l

# 隠しファイルも表示する
ls -a

# ファイルの種類を表す記号を表示する
ls -F
```

ディレクトリを作成する

```
# ディレクトリ単体を作成する
mkdir ディレクトリ名

# 階層構造のディレクトリを作成する
mkdir -p test/work
```

ファイルを作成する

```
touch ファイル名

# 複数のファイルを同時に作成する
touch newfile1 newfile2
```

ファイルを削除する

```
rm ファイル名

# 複数ファイルの同時削除
rm file1 file2

# パス名展開を利用して複数ファイルを削除する
rm *.txt

# 削除前に確認を挟む
rm -i 
```

ディレクトリを削除する

```
# ディレクトリ内のファイルやディレクトリも削除される
rm -r ディレクトリ名
```

空のディレクトリを削除する

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

ファイルを表示する

```
cat ファイル名

# 複数一度に表示する
cat file1 file2

# 行番号をつけて表示する
cat -n ファイル名
```

長いファイルをスクロール表示する

```
less ファイル名

# 一画面下にスクロール
f

# 一画面上にスクロール
b

# 一行下にスクロール
control + n

# 一行上にスクロール
controlo + p

# lessコマンドを修了する
q
```

lessコマンド中に文字列を検索する

```
/文字列

# 次の検索結果にどうする
n

# 前の検索結果に戻る
N
```

ファイルをコピーする

```
# ファイルの内容をファイルにコピーする
cp コピー元ファイル名 コピー先ファイル名

# ファイルの内容を指定したディレクトリ配下にコピーする
cp コピー元ファイル名 コピー先ディレクトリ名

# 複数のファイルを同時に指定したディレクトリにコピーする
cp file1 file2 file3 ディレクトリ名

# パス名展開を使って指定したディレクトリにコピーする
cp *.html ディレクトリ名

# コピー先ファイルがすでに存在する場合に上書きするか確認する
cp -i コピー元ファイル名 コピー先ファイル名(すでに存在する)
```

ディレクトリをコピーする

```
cp -r コピー元ディレクトリ コピー先ディレクトリ
```

ファイルを移動する

```
# ファイル名を変えて移動する
mv 移動前ファイル名 移動後ファイル名

# ファイルを同名で別ディレクトリに移動する
mv 移動ファイル名 移動先ディレクトリ名

# 複数のファイルを同時に別ディレクトリに移動させる
mv file1 file2 file3 移動先ディレクトリ名
```

ディレクトリを移動する

```
mv 移動ディレクトリ名 移動先ディレクトリ名
```

ハードリンク・シンボリックリンクをはる

```
# ハードリンクをはる
ln リンク元ファイル名 リンク名

# シンボリックリンクをはる
ln -s リンク元ファイル(ディレクトリ) リンク名
```

ファイルを探す

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

# カレントディレクトリから file1 を探してパスを表示する
find . -name file1 -print(省略すると自動で-printとなるので省略可)

# 大文字小文字を区別しないでファイル名で探す
find . -iname file1 -print

# ワイルドカードを利用してファイルを探す
find . -name '*.txt'(シングルクォートで囲う) -print

# 種類(ファイル)で探す
find . -type f -print

# 種類(ディレクトリ)で探す
find . -type d -print

# 種類(シンボリックリンク)で探す
find . -type l -print

# ファイル名と種類を合わせて探す
find . -name file1 -a -type f -print
```

ファイル名データベースからファイルを探す

```
locate ファイル名

# データベースをアップデートする
updatedb

# 大文字小文字を区別しない
locate -i file1

# パスのどこかではなくファイル名だけを対象にしたい場合
locate -b file1

# 複数の検索パターンで検索する(OR検索)
locate file1 file2

# 複数の検索パターンで検索する(AND検索)
locate -A file1 file2
```

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

```
コマンド --help

# 日本語のヘルプページを表示する
LANG=ja_JP.UTF-8 コマンド名 --help
```

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

```
man コマンド

# キーワードからマニュアルを表示する
man -k キーワード

# セクションを検索する

man セクション番号 コマンド

# セクション番号のリストを表示する
man -wa コマンド
```

コマンドを探す

```
# 最初に見つかったコマンドを表示する
which コマンド

# 見つかった全てのコマンドを表示する
which -a コマンド
```

エイリアスを設定する

```
# ls -F をよく使うのでエイリアスを設定する
alias lsf='ls -F'

# rmコマンドを使う場合に必ず確認を挟むように設定しておく
alias rm='rm -i'

# コマンドなのかエイリアスなのかを確認する
type コマンド

# エイリアスの削除
unalias エイリアスコマンド

# エイリアスを使わず、純粋にコマンドを実行する
command コマンド

# もしくは

\コマンド
```

実行中のプロセスを表示する
```
ps

# 実行したユーザの全てのプロセスを表示する
ps x

# 詳細情報を合わせて表示する
ps ux

# 全てのユーザのプロセスを表示する
ps ax

# 全てのユーザのプロセスを詳細情報を合わせて表示する
ps aux
```