2025/1/27 学習記録

## 現状：
エンジニアへの未経験転職。
就職先も決まり、2月からひよこエンジニアに。

2025年は頑張ろうということで、2025年学習記録18日目。

内容は常に書き散らしのメモです、あしからず。

当面の目標：LPIC101,102合格


# Linux

## `uniq`コマンド

ファイル内の重複している行を扱うLinuxコマンド。
効果的に使用するには入力ファイルが並べ替えされている必要があるため、通常は`sort`コマンドと組み合わせて使用される。

### 主な機能

1. 重複している行を削除して表示する
2. 重複回数を表示する
3. 重複した行のみを表示する

### 使用方法

```bash
uniq [オプション] 入力ファイル [出力ファイル]
```

### オプション一覧

| オプション | 英語表記 | 詳細説明 |
| --- | --- | --- |
| -c | --count | 各行の出現回数を表示 |
| -d | --repeated | 重複のある行のみ出力 |
| -D |  | 重複行を全て出力 |
| -u | --unique | 重複のない行のみ出力 |
| -i | --ignore-case | 大文字小文字を区別しない |
| -f N | --skip-fields=N | N個の項目を比較から除外 |
| -s N | --skip-chars=N | N文字目以降で比較 |
| -w N | --check-chars=N | 先頭N文字のみ比較 |
| -z | --zero-terminated | 行の区切りを改行ではなく0バイトにする |
| --help |  | ヘルプを表示 |
| --version |  | バージョン情報を表示 |

### Citations:

[1] https://suzukiiichiro.github.io/posts/2022-07-27-01-uniq-suzuki/
[2] https://eng-entrance.com/linux-command-uniq
[3] https://atmarkit.itmedia.co.jp/ait/articles/1611/14/news021.html
[4] https://wa3.i-3-i.info/word15021.html
[5] https://qiita.com/yasushi-jp/items/4ac23751570a9058b785
[6] https://qiita.com/higadev/items/1d1783f730d57cf05591
[7] https://envader.plus/course/16/scenario/1018
[8] https://docs.oracle.com/cd/E19253-01/819-1210/uniq-1/index.html



## `wc`コマンド

LinuxやUnix系オペレーティングシステムで使用されるテキスト処理ツール。
主にファイルや標準入力のテキストデータの統計情報を取得するために使用される。
wcは「word count」の略。

### 主な機能

1. 行数のカウント
2. 単語数のカウント
3. バイト数のカウント
4. 文字数のカウント

### 使用方法

```bash
wc [オプション] [ファイル名]
```

### オプション一覧

| オプション | 長いオプション | 説明 |
| --- | --- | --- |
| -c | --bytes | バイト数を表示する |
| -m | --chars | 文字数を表示する（マルチバイト文字に対応） |
| -l | --lines | 行数を表示する |
| -w | --words | 単語数を表示する |
| -L | --max-line-length | 最も長い行の長さを表示する |
|  | --files0-from=リスト | NULL文字で区切られたファイル名のリストを指定する |
|  | --help | コマンドのヘルプメッセージを表示する |
|  | --version | wcコマンドのバージョンを表示する |

オプションを指定しない場合、wcコマンドはデフォルトで行数、単語数、バイト数を表示する。

### Citations:

[1] https://koanacademy.jp/wc
[2] https://atmarkit.itmedia.co.jp/ait/articles/1611/07/news026.html
[3] https://pawsole.com/wc/
[4] https://www.ibm.com/docs/ja/aix/7.2?topic=af-counting-words-lines-bytes-in-files-wc-command
[5] https://wa3.i-3-i.info/word11258.html
[6] https://www.infra-manual.com/wccommand-detail/
[7] https://eng-entrance.com/linux-command-wc
[8] https://atmarkit.itmedia.co.jp/flinux/rensai/linuxtips/238countlw.html



## `find`コマンド

ファイルやディレクトリを検索するためのツール。

### 特徴

1. 指定したディレクトリから再帰的に検索を行います[2][5]。
2. ファイル名、ディレクトリ名、ファイルタイプ、パーミッション、更新日時など、様々な条件で検索が可能です[4][6]。
3. 検索結果に対して、他のコマンドを実行することができます[5]。
4. 大規模なシステムでの設定ファイルやソースファイルの検索に特に有用です[6]。

### 使用方法

```
find [検索パス] [オプション] [検索条件]
```

### オプション一覧

| オプション | 説明 |
| --- | --- |
| -P | シンボリックリンクをたどらない（デフォルト） |
| -L | 全てのシンボリックリンクをたどる |
| -H | コマンドラインで指定したシンボリックリンクをたどる |
| -D | 診断用の情報（デバッグ情報）を出力する |
| -name | ファイル名が指定パターンに一致するものを検索 |
| -iname | -nameと同様だが、大文字小文字を区別しない |
| -path | ファイルパスが指定パターンに一致するものを検索 |
| -ipath | -pathと同様だが、大文字小文字を区別しない |
| -type | 指定したファイルタイプのみを検索 |
| -mtime | 指定した日数以内に更新されたファイルを検索 |
| -atime | 指定した日数以内にアクセスされたファイルを検索 |
| -user | 指定したユーザーが所有するファイルを検索 |
| -group | 指定したグループが所有するファイルを検索 |
| -newer | 指定したファイルより新しいファイルを検索 |
| -print | 検索結果を標準出力に表示（デフォルト動作） |
| -exec | 検索結果に対してコマンドを実行 |
| -execdir | 検索結果のディレクトリでコマンドを実行 |
| -ok | 確認を求めてから-execを実行 |
| -okdir | 確認を求めてから-execdirを実行 |
| -delete | 検索したファイルを削除 |
| -and, -a | 複数の条件をAND条件で結合 |
| -or, -o | 複数の条件をOR条件で結合 |
| -not, ! | 条件を否定 |
| -true | 常に真を返す |
| -false | 常に偽を返す |
| -quit | 検索を即座に終了 |

### Citations:

[1] https://blackmagicdesign-creatorscom.jp/cmd-find/
[2] https://qiita.com/eric50905/items/d1af7205f5848f672953
[3] https://and-engineer.com/articles/ZyMQJxEAAB0ATD0x
[4] https://tech-blog.rakus.co.jp/entry/20220831/find
[5] https://qiita.com/ko1nksm/items/7fec71f78a394a80ed2b
[6] https://www.sejuku.net/blog/48566
[7] https://eng-entrance.com/linux-command-find
[8] https://www.ibm.com/docs/ja/aix/7.3?topic=files-finding-find-command



## `tar`コマンド

複数のファイルを1つのアーカイブファイルにまとめたり、アーカイブを展開したりするためのコマンド。

### 特徴

1. アーカイブ作成：複数のファイルやディレクトリを1つのファイルにまとめることができます[1][3]。
2. アーカイブ展開：作成されたアーカイブファイルを元のファイルやディレクトリに戻すことができます[1][2]。
3. 圧縮機能：オプションを使用することで、アーカイブ作成時に圧縮を行うことができます[1][2]。
4. ファイル管理：アーカイブ内のファイル一覧表示や、既存のアーカイブへのファイル追加などが可能です[2]。

### 使用方法

- アーカイブ作成：`tar cvf アーカイブ名.tar ファイル1 ファイル2...`
- アーカイブ展開：`tar xvf アーカイブ名.tar`
- 圧縮アーカイブ作成：`tar cvzf アーカイブ名.tar.gz ファイル1 ファイル2...`

tarという名前は "tape archive" の略で、元々はテープドライブにデータを保存するために開発されましたが、現在では一般的なファイル操作にも広く使用されています[2]。

### Citations:

[1] https://www.sejuku.net/blog/51116
[2] https://wa3.i-3-i.info/word11266.html
[3] https://qiita.com/a05kk/items/11fd3692eb8f6476dbb3
[4] https://www.ibm.com/docs/ja/aix/7.1?topic=t-tar-command
[5] https://atmarkit.itmedia.co.jp/ait/articles/1608/15/news015.html
[6] https://www.ibm.com/docs/ja/aix/7.3?topic=t-tar-command
[7] https://qiita.com/yasushi-jp/items/bd126c96a5d19817f366
[8] https://zenn.dev/shuh/articles/tar-command-use


## `dd`コマンド

Linuxなどのユニックス系システムで使用される強力なデータ操作ユーティリティ。
システム管理、データ復旧、フォレンジック分析など、様々な場面で活用される。
使い方を誤ると重要なデータが上書きされる可能性があるため、注意が必要。

### 特徴

1. データのコピーと変換：指定された入力ファイル（if）から出力ファイル（of）へデータをコピーし、必要に応じて変換します[1][5]。
2. ブロック単位の操作：データをブロック単位で読み書きし、ブロックサイズを指定できます[1][2]。
3. デバイスレベルの操作：ファイルだけでなく、ディスクやパーティションなどのデバイスレベルでの操作が可能です[3][7]。
4. バックアップとクローニング：ディスクイメージの作成、復元、ディスクのクローニングに使用できます[3]。
5. データ消去：ディスクの完全消去やセキュアな削除に利用できます[3]。
6. ファイル生成：特定サイズのファイルやランダムデータを含むファイルの作成が可能です[4]。

### 使用例

基本的な使用構文：

```
dd if=<入力ファイル/デバイス> of=<出力ファイル/デバイス> [オプション]
```

### Citations:

[1] https://linux.joho.info/command/dd-cmd/
[2] https://itc.tokyo/linux/dd-command/
[3] https://news.mynavi.jp/techplus/article/20180706-659745/
[4] https://qiita.com/jinnai73/items/b3209e95dec31d57c635
[5] https://pawsole.com/dd/
[6] https://www.ibm.com/docs/ja/aix/7.1?topic=d-dd-command
[7] https://www.miraclejob.com/recommend/detail?cd=3801
[8] https://www.infra-linux.com/menu-lpic2/dd-cmd/
[9] https://www.infra-linux.com/menu-linux3/dd/

























___

### 今日はここまで！