Linux覚え書きコマンド集

# 概要
Linux学習で覚えたコマンドや知識をメモする記事です。

# 基本コマンド
## ls : ファイル、ディレクトリの参照
```
ls [オプション] [ファイル]
```
**オプション**

| オプション | 説明 |
|:----------|:------|
| -a | 隠しファイル含めて全て出力
| -l | Long形式で出力|
| -t | 更新時間でソート|
| -r | 逆順にソート

## cp : ファイルのコピー
```
cp [オプション] コピー元 コピー先
```

1. ファイル名が存在しない場合、別名コピー
2. コピー先がディレクトリの場合、ディレクトリ配下にコピー
3. 同名ファイルがある場合、上書きコピー

**オプション**

| オプション | 説明 |
|:----------|:------|
| -i | 確認の有無
| -r | ディレクトリのコピー
| -p | 所有者・属性・更新日などの情報を保持してコピー

## mv : ファイルの移動
```
mv 移動元ファイル 移動先ファイル
```
**オプション**

| オプション | 説明 |
|:----------|:------|
| -i | 確認の有無
| -f | 強制的に処理を実行

1. ファイルを別のディレクトリに移動
2. ディレクトリを別ディレクトリに移動
3. ファイル名の変更
4. ディレクトリ名の変更

## rm : ファイルの削除
```
rm ファイル名
```
**オプション**

| オプション | 説明 |
|:----------|:------|
| -i | 確認の有無
| -f | 強制的に処理を実行
| -r | ディレクトリを対象に、配下のファイルも削除

## ディレクトリの操作
### pwd : 現在のディレクトリ表示
```
pwd
```
### cd : ディレクトリの移動
```
cd [ディレクトリ名]
```
### mkdir : ディレクトリの作成
```
mkdir ディレクトリ名
```
**オプション**

| オプション | 説明 |
|:----------|:------|
| -p| 階層でディレクトリを作成
### rmdir : ディレクトリの削除
```
rmdir ディレクトリ名
```
rmdirを利用する場合には、中が空である必要がある

## ファイルの表示
### cat: ファイルの内容を表示
```
cat ファイル名
```
**オプション**

| オプション | 説明 |
|:----------|:------|
| -n | 行番号を表示

### more ： ページ表示
```
more ファイル名
```
操作方法

| 操作 | 説明 |
|:----------|:------|
| スペース | 次のページに進む
| b | 前のページに戻る|
| f | 次のページに進む |
| /単語 | 単語を検索。nキーで検索結果にジャンプ
| q| 終了

### less : ページ表示
```
less ファイル名
```
操作方法

| 操作 | 説明 |
|:----------|:------|
| スペース | 次のページに進む
| b | 前のページに戻る|
| f | 次のページに進む |
| ↑ | 前の行に進む
| ↓ | 次の行に進む
| /単語 | 単語を検索。nキーで検索結果にジャンプ
| q| 終了

### head :末尾部分を標準出力
```
head [オプション] ファイル名
```

| オプション | 説明 |
|:----------|:------|
| -n| 指定した行数を出力する
| -c| 指定バイト分を出力する

### tail :先頭部分を標準出力
```
tail [オプション] ファイル名
```

| オプション | 説明 |
|:----------|:------|
| -n| 指定した行数を出力する
| -c| 指定バイト分を出力する
| **-f** | リアルタイムで更新する

### sort :ファイルのソート
```
sort [オプション] ファイル名
```
| オプション | 説明 |
|:----------|:------|
| -r| 逆順でソート
| -k n| n列目のデータをソート
| -n | 数値としてソート
### uniq : 重複行の削除
```
uniq ファイル名
```
### tr :文字列の置き換え
```
cat 文字列1　文字列2
```

<例1: 文字列を置き換えて、別名ファイルに保存>

```
cat test | tr a A > test2
```
### diff :ファイルの比較
```
diff [オプション] ファイル1 ファイル2
```
| オプション | 説明 |
|:----------|:------|
| -c| context diff 形式で差分を出力
| -u| unified diff　で差分を出力

## find: ファイルの検索
```
fine パス -name ファイル名
```
## which: コマンドパスを表示
```
which コマンド名
```
## --help マニュアルの確認
```
コマンド --help
```
### man: オンラインマニュアルの表示
```
man コマンド
```

単語が含まれるエントリ一覧を出力

```
man -k 単語
```
#### セクション

| 項目 | 説明 |
|:----------|:------|
| 1 | ユーザコマンド
| 2 | システムコール
| 3| システムライブラリや関数
| 4| デバイスやデバイスドライバ
|5 | ファイルの形式
| 6 | ゲームやデモなど
| 7 | その他
| 8 | システム管理系のコマンド
| 9 | カーネルなどの情報 


## touch :タイムスタンプの変更
```
touch [オプション] ファイル名
```
| オプション | 説明 |
|:----------|:------|
| -t| [[CC]YY]MMDDhhmm[.SS]形式で時刻を変更

### touch :からのファイルを作成
```
touch ファイル名
```









# 標準入出力とリダイレクト
## > :リダイレクト
```
ls > ls-text
```
### cat > :ファイルを作成し、文字を追加
```
cat > text
```
## 2> :標準エラー出力 
```
ls -l aaa 2> err_text
```
### 2>&1 : 標準出力とエラー出力を一つのファイルに出力する
```
ls -l aaa > text 2>&1 
```

## パイプ

### |less :出力内容をページングしながら表示
```
ls -l * | less
```
### |head :出力内容の先頭を表示
```
ls -l * | head -10
```

### |tail :出力内容の先頭を表示
```
ls -l * | tail -10
```


### |grep :標準出力 から検索する
```
ls /etc/* | grep -e d$
```

## 正規表現
| 記号| 説明 |
|:----------|:------|
| ^|先頭を表す
| $| 行末を表す
| .| 任意の位置文字を意味する
| *| 直前文字の0回以上の繰り返しを意味する
| [...] | ...の中の任意の位置文字を指定する
| [^...]| ...の文字が含まれないことを意味する
| \ | 正規表現の記号をエスケープする

使用例

| 記号| 説明 |
|:----------|:------|
| ^a|aで始まる行
| b$|bで終わる行
| a.b| aとbの間に1文字入る
| [ab]ab| aもしくはbに続くab
|[^ab]ab | aもしくはbで始まらないでabが続く

### grep :ファイル内の文字を検索する

```
grep [オプション] 検索条件 [指定ファイル]
```

| オプション | 説明 |
|:----------|:------|
| -e| 文字列を検索パターンとして扱う
| -i | 検索パターンを入力ファイルの双方で、英大文字と小文字の区別を行わない
| -v | 検索パターンとマッチしなかった行を選択する

# ファイル管理
システム管理コマンドが置いてある/sbinディレクトリがPATHに含まれていないため、コマンドは絶対パスで指定する必要がある

## fdisk :パーティションの作成
```bash
fdisk [オプション] [デバイスファイル]
```

| オプション | 説明
|:--|:--
| -l | デバイスのパーティションを表示


パーティションを作る理由

+ バックアップ
+ 障害発生時の影響範囲を狭める
+ ファイルアクセスの速度向上 

## mkfs :ファイルシステムの作成
## mount :マウント


# 用語
### ディレクトリ
| 用語| 説明 |
|:----------|:------|
| カレントディレクトリ(.)|現在のディレクトリ
| 親ディレクトリ(..)| 一階層上のディレクトリ
| ホームディレクトリ(~)| ユーザの作業開始位置ディレクトリ|
| ルートディレクトリ(/) | 最上位階層 |
| 絶対パス | 最上位ディレクトリから指定 |
| 相対パス | カレントディレクトリから指定 |