私が本当に使っているLinuxのコマンド一覧 - 常用編

# はじめに

- Linuxを使っている人には当たり前だけど、オプションとか含めると結構忘れて都度調べたりするのでまとめました。
- 他に思い出したら追加、変更、削除していきます。
- 特別かっこいいこと（オプションつけたりパイプつけてごにょごにょしたり）とかしていないのでご了承ください。

# 用途別コマンド一覧

## ファイルやディレクトリを探したい

### ファイル名から探す

```zsh
find ./ -name "hoge.html" -type f
```

### 拡張子から探す

```zsh
find ./ -name "*.html" -type f
```

### ディレクトリ名から探す

```zsh
find ./ -name "hoge" -type d
```

### 特定の文字列が記載されたファイルを探す

```zsh
find ./ -type f -print | xargs grep "hoge"
```

## ログを出力したい

### リアルタイムでファイル内容を表示する

ログのリアルタイム監視とかで使います

```zsh
tail -f /etc/httpd/logs/access_log
```

### 指定されたファイル行数分ファイル内容を表示する

直近のログをみたいけど容量が多くてファイルが開けないとかに使います

```zsh
tail -n 100 /etc/httpd/logs/access_log
```

## 今いるディレクトリ階層を知りたい

```zsh
$ pwd                                                                                                          
$ /Users/neriai/Develops
```

## ディレクトリを作成したい

```zsh
mkdir hoge                                                                                                  
```

## ファイルやディレクトリの権限（実行／書き込み／読み込み）を変更したい

[パーミッションとは](http://www.tku.ac.jp/~densan/local/permission/permission.htm)

#### 例）Webアプリケーションにおける最適な権限
- 読むだけのCSSや画像は644
- プログラムは755
- データの保存や書き換えするときは666

### ファイルの権限を変更する

```zsh
chmod 755 hoge.html                                                                                                 
```

### ディレクトリの権限を変更する

```zsh
chmod -R 755 hoge                                                                                               
```

### すべてのファイルの権限を変更する

```zsh
chmod 755 ./*                                                                                 
```

## ファイルやディレクトリの所有権限を変更したい

ApacheやTomcatで実行するWebアプリケーションはよくこれらに所有権限持たせたりします。

### ファイルの権限を変更する

```zsh
chmod www:www hoge.html                                                                                                 
```

### ディレクトリの権限を変更する

```zsh
chmod -R www:www hoge                                                                                               
```

### すべてのファイルの権限を変更する

```zsh
chmod www:www ./*                                                                                 
```

## ファイルやディレクトリをコピーしたい

「-v」は実行内容を出力するオプションです。実作業だとこれらのログを残すかが結構重要です。

### ファイルのコピー

```zsh
cp -v {コピー元ファイル} {コピー先ファイル}                                                                            
```

### ディレクトリのコピー

```zsh
cp -Rv {コピー元ファイル} {コピー先ファイル}                                                                            
```

## ファイルやディレクトリを移動したい

### ファイルの移動

```zsh
mv -v {移動元ファイル} {移動先ファイル}                                                                            
```

### ディレクトリの移動

```zsh
mv -Rv {移動元ファイル} {移動先ファイル}                                                                            
```

## ファイルやディレクトリを削除したい

### ファイルの削除

```zsh
rm hoge.html                                                                           
```

### ディレクトリの削除

```zsh
rm -R hoge                                                                           
```

### すべてのファイルの削除

ネタとして使われますが、危険なコマンドの一つ。
ディレクトリとファイルが混在して面倒くさいときについつい使ってしまいます。

```zsh
rm -rf ./*                                                                           
```

## ファイルやディレクトリの情報を表示したい

オプションでソートなども使ったりします。

### 権限を含めてリスト表示する

```zsh
ls -la                                                           
```

## 特定のプログラム（プロセス）が実行中か確認したい

### 実行中のプロセスを探す

```zsh
ps -alx | grep "httpd"                             
```

## 特定のプログラム（プロセス）を終了したい

よく、正常終了できないゾンビを「ps」で探して「kill」したりします。

```zsh
kill -9 {プロセス番号}
```

# シリーズページリンク
- [私が本当に使っているAtomのパッケージ一覧](http://qiita.com/neriai/items/b43c2efbc06370fe193c)
- [私が本当に使っているVimのコマンド一覧](http://qiita.com/neriai/items/d05e65698f7cbe7efe3c)
- [私が本当に使っているLinuxのコマンド一覧 - 常用編](http://qiita.com/neriai/items/622053317ec4a4cd197a)
- [私が本当に使っているLinuxのコマンド一覧 - Extra編](http://qiita.com/neriai/items/5322dd0fe34bbccbefdb)