commコマンド - 2つのファイルを比較する
commコマンドで2つのソート済みファイルを比較し、共通部分や違いを抽出する方法を説明します
commコマンドで2つのソート済みファイルを比較し、共通部分や違いを抽出する方法を説明します
splitコマンドで大きなファイルを複数の小さいファイルに分割する方法を説明します
pasteコマンドで複数のファイルの行を横方向に結合する方法を説明します
はじめに こんにちは!今回はxargsコマンドについて解説します。 xargsは標準入力から引数を構築して、別のコマンドに渡すコマンドです。findやgrepの結果を他のコマンドで処理したり、大量のファイルを一括操作したり、日々の運用を効率化する強力なコマンドですね。 「パイプの後ろでファイル名を受け取る」って感じです。実は複雑に見えますが、慣れると超便利ですよ。 xargsコマンドとは xargsは、標準入力から読み込んだ行をコマンドの引数に変換して実行する外部コマンドです。 通常のパイプ(|)は標準入力としてテキストを受け渡しますが、xargsはそれをコマンドの引数に変換します。find、grep、echoなどの結果をファイル名として他のコマンドに渡したい場合に非常に便利。大量のファイル操作を効率的に行えます。 基本構文 1 xargs [オプション] コマンド 標準入力から引数を読み込んで、指定したコマンドに渡します。デフォルトでは標準入力の各行が引数になります。 主なオプション オプション 説明 -I {} 占有文字列(デフォルト: スペース区切り) -n NUM 1回に渡す引数の最大個数 -d DELIM 区切り文字を指定(デフォルト: スペース/改行) -0 NUL文字で区切られた入力を処理 -p 実行前に確認を取る(prompt) -r 標準入力が空の場合は実行しない -t 実行するコマンドを表示 --no-run-if-empty 入力がない場合は実行しない 使用例 例1: findの結果をrmで削除 1 find . -name "*.tmp" | xargs rm 実行結果: 1 (マッチしたすべての.tmpファイルが削除される) 最も一般的な使い方。findで見つけたファイルをrmで一括削除。 例2: 確認付きで削除(-p オプション) 1 find . -name "*.tmp" | xargs -p rm 実行結果: 1 rm file1.tmp file2.tmp ? -pで実行前に確認。危険な操作の時に便利。 ...
はじめに こんにちは!今回はreadlinkコマンドについて解説します。 readlinkはシンボリックリンクがどのファイルを指しているか確認するコマンドです。リンクの実態を追いかけるときに便利ですね。 「このショートカット、実際にはどこのファイル?」みたいなときに使うコマンドです。 readlinkコマンドとは readlinkは、シンボリックリンクが指し示す実体ファイルのパスを表示する外部コマンドです。 Linuxではシンボリックリンク(ショートカットのようなもの)がよく使われます。readlinkでそのリンクの実体を確認できます。絶対パスに変換する-fオプションも便利ですね。 基本構文 1 readlink [オプション] ファイルまたはディレクトリ リンクの実体パスを表示します。 主なオプション オプション 説明 -f すべてのシンボリックリンクを解決して絶対パスを表示 -e -fと同様(リンク先が存在する必要あり) -m リンク先が存在しなくても絶対パスを表示 -n 改行を出力しない -v 詳細表示 使用例 例1: 基本的なreadlink 1 readlink /usr/bin/python 実行結果: 1 python3 /usr/bin/pythonというリンクがpython3を指していることが分かります。 例2: 絶対パスで表示 1 readlink -f /usr/bin/python 実行結果: 1 /usr/bin/python3.9 -fオプションで、すべてのリンクを解決して絶対パスを表示。実際のバイナリファイルのパスが分かります。 例3: リンク先の確認 1 readlink /etc/localtime 実行結果: 1 ../usr/share/zoneinfo/Asia/Tokyo タイムゾーン設定へのリンク。どのタイムゾーンに設定されているか分かります。 例4: 存在しないリンク先も表示 1 readlink -m /tmp/mylink 実行結果: 1 /tmp/mylink リンク先が存在しない場合でも、絶対パスを構築して表示します。 ...
はじめに こんにちは!今回はlzcatコマンドについて解説します。 lzcatは.xz形式の圧縮ファイルを解凍して表示するコマンドです。gzipやbzip2より高い圧縮率で圧縮された大きなファイルを扱うときに活躍します。 圧縮ファイルをそのまま表示できるので、一時的なファイル作成が不要。サーバーの容量が限られた環境で便利です。 lzcatコマンドとは lzcatは、.xz形式(LZMA2圧縮)のファイルを解凍しながら表示する外部コマンドです。標準出力に解凍内容を出力するため、パイプと組み合わせやすいですね。 .xz形式はgzipやbzip2より高い圧縮率を実現。特に大規模データの配布やアーカイブに使われています。 基本構文 1 lzcat [ファイル名...] 標準入力からのデータも受け取れます。 主なオプション オプション 説明 -v 詳細表示 -q 警告メッセージを抑制 -k 元ファイルを保持 -t ファイルをテスト 使用例 例1: 圧縮ファイルを表示 1 lzcat archive.tar.xz 実行結果: 1 (tar圧縮ファイルの内容が表示される) 圧縮ファイルを自動的に解凍して表示。 例2: ファイルの内容を確認 1 lzcat logfile.xz | head -20 実行結果: 1 最初の20行が表示される 大きなログを解凍して先頭だけ確認。 例3: 圧縮されたテキストを検索 1 lzcat document.xz | grep "keyword" 実行結果: 1 keywordを含む行が表示される 解凍せずにファイル内を検索。 例4: 圧縮ファイルを別ファイルに解凍 1 lzcat archive.tar.xz > archive.tar 実行結果: 1 (archive.tarが作成される) 標準出力をリダイレクトして解凍。 ...
はじめに こんにちは!今回はipコマンドについて解説します。 ipはネットワークインターフェースの設定と状態を表示・変更するコマンドです。ifconfigの後継で、より強力で柔軟な機能を持っています。IPアドレスの設定、ルーティング、ネットワーク統計など、ネットワーク管理全般で活躍します。 最新のLinuxではこれが標準。ifconfigよりも詳細な情報が得られて、スクリプト化しやすいのが特徴ですね。 ipコマンドとは ipは、Linuxのネットワーク設定・管理を一元的に行う外部コマンドです。“iproute2"パッケージに含まれています。 IPアドレス、ルーティングテーブル、ネットワークデバイス、トンネルなど、ネットワークに関する多くの機能を提供。ifconfig、route、arpなどの複数のコマンドの機能を1つにまとめたものと考えるといいですね。 基本構文 1 ip [オプション] OBJECT COMMAND [引数] OBJECTにはaddr(アドレス)、link(リンク)、route(ルート)などを指定します。 主なオプション オプション 説明 addr IPアドレスを表示・設定 link ネットワークデバイスを表示・設定 route ルーティングテーブルを表示・設定 neigh ARP隣接情報を表示・設定 -s 統計情報を表示 -4 IPv4のみを対象 -6 IPv6のみを対象 show 情報を表示 add 新しい設定を追加 del 設定を削除 使用例 例1: すべてのネットワークデバイスを表示 1 ip link show 実行結果: 1 2 3 4 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 link/ether 00:0c:29:3e:12:34 brd ff:ff:ff:ff:ff:ff ネットワークデバイスの一覧と状態を表示。 ...
はじめに こんにちは!今回はblkidコマンドについて解説します。 blkidはブロックデバイス(HDD、SSD、USBメモリなど)の詳細情報を表示するコマンドです。“block device identify"の略ですね。 UUID、ラベル、ファイルシステムタイプを素早く確認できるため、ディスク管理やマウント設定で活躍します。システム管理者なら知っておきたいコマンドですよ。 blkidコマンドとは blkidは、マウントされているブロックデバイスの情報を表示する外部コマンドです。 各デバイスについて、UUID(世界的に一意のID)、ラベル、ファイルシステムタイプ、パーティションタイプを表示します。/etc/fstabの設定やマウント時にUUIDが必要な場面で便利です。 主な用途: ディスク・パーティション情報の確認 UUID・ラベルの確認 ファイルシステムタイプの確認 基本構文 1 blkid [オプション] [デバイス] デバイスを指定しないとすべてのブロックデバイスを表示します。 主なオプション オプション 説明 -p プローブモード(デバイス内容を詳細表示) -o 出力形式を指定 -s 特定の属性のみ表示 -t 指定したタイプのデバイスのみ表示 -l リスト形式で表示 -c キャッシュをクリア -g ガベージコレクション 使用例 例1: すべてのブロックデバイスを表示 1 blkid 実行結果: 1 2 3 /dev/sda1: UUID="550e8400-e29b-41d4-a716-446655440000" TYPE="ext4" PARTUUID="a1b2c3d4" /dev/sda2: UUID="660f9511-f31c-52e5-b827-556766551111" TYPE="swap" /dev/sdb1: LABEL="backup" UUID="770g0622-g42d-63f6-c938-667877662222" TYPE="ext4" すべてのブロックデバイス(パーティション)の情報を表示します。UUID、ファイルシステムタイプが一覧で確認できます。 例2: 特定のデバイスのみ表示 1 blkid /dev/sda1 実行結果: 1 /dev/sda1: UUID="550e8400-e29b-41d4-a716-446655440000" TYPE="ext4" PARTUUID="a1b2c3d4" /dev/sda1パーティションの情報のみ表示します。特定デバイスの詳細確認に便利です。 ...
はじめに こんにちは!今回はchgrpコマンドについて解説します。 chgrpはファイルやディレクトリのグループ所有権を変更するコマンドです。“change group"の略ですね。 Linuxではファイルに所有者とグループが設定されていて、アクセス権限はこの両者に基づいて決定されます。chgrpを使うことで、複数のユーザーがまとめてファイルにアクセスできるようにできます。チーム開発やプロジェクト管理では欠かせないコマンドですよ。 chgrpコマンドとは chgrpは、ファイルやディレクトリの所属グループを変更する外部コマンドです。 chmodが権限(読み書き実行)を変更し、chownが所有者を変更するのに対して、chgrpはファイルの「グループ」部分のみを変更します。複数ユーザーでの共有ファイル管理、プロジェクトディレクトリの権限設定で活躍します。 主な用途: ファイルのグループ所有権を変更 ディレクトリをチーム所有にする グループベースのアクセス制御 基本構文 1 chgrp [オプション] グループ ファイル/ディレクトリ グループには、グループ名またはグループID(GID)を指定します。 主なオプション オプション 説明 -R ディレクトリを再帰的に変更 -r -Rと同じ(古いシステムの互換性) -f エラーメッセージを抑制 -c 変更されたファイルのみ表示 -v 詳細表示(verbose) --reference=FILE 別ファイルと同じグループに変更 使用例 例1: 基本的なグループ変更 1 chgrp developers myfile.txt 実行結果: 1 (成功時は何も表示されない) myfile.txtのグループをdevelopersに変更します。最もシンプルな使い方です。 例2: グループIDで指定 1 chgrp 1001 myfile.txt 実行結果: 1 (成功時は何も表示されない) グループIDで直接指定する方法です。グループ名が不明な場合に便利です。 例3: ディレクトリを再帰的に変更 1 chgrp -R project /var/www/myproject 実行結果: 1 (成功時は何も表示されない) -Rオプションで、ディレクトリ配下のすべてのファイル・ディレクトリをまとめて変更します。 ...
はじめに こんにちは!今回はdiffコマンドについて解説します。 diffは2つのファイルの差分(違い)を表示するコマンドです。“difference"の略ですね。 設定ファイルを編集する前後で何が変わったのか確認したい、複数のバージョンのファイルを比較したい、そんな時に活躍します。プログラマーやシステム管理者にとって、ファイル管理の基本ツールですよ。 diffコマンドとは diffは、2つのファイルやディレクトリを比較し、その差分を表示する外部コマンドです。 どの行が削除され、どの行が追加されたのかを明確に表示します。ファイルのバージョン管理、設定変更の追跡、パッチファイルの生成など、ソフトウェア開発では欠かせないコマンドです。 主な用途: 2つのファイルの差分表示 設定ファイルの変更確認 ディレクトリ間の差分確認 パッチファイルの生成 基本構文 1 diff [オプション] ファイル1 ファイル2 2つのファイルを指定して、差分を表示します。ディレクトリも指定可能です。 主なオプション オプション 説明 -u ユニファイド形式で表示(最も読みやすい) -c コンテキスト形式で表示 -b 行末の空白の違いを無視 -w すべての空白を無視 -i 大文字・小文字の違いを無視 -r ディレクトリを再帰的に比較 -q 差分の有無のみ表示 -y サイドバイサイド形式で表示 --color 色付き表示 使用例 例1: 基本的な差分表示 1 diff file1.txt file2.txt 実行結果: 1 2 3 4 5 6 1c1 < Hello World --- > Hello Linux 3a4 > Welcome デフォルト形式で差分を表示します。<は最初のファイル、>は2番目のファイルの内容です。 例2: ユニファイド形式で表示(推奨) 1 diff -u file1.txt file2.txt 実行結果: ...