strace コマンド

はじめに こんにちは!今回はstraceコマンドについて解説します。 straceはプロセスが実行するシステムコール(Linux カーネルへのリクエスト)をリアルタイムで追跡するコマンドです。プログラムがファイルを開いたり、ネットワークに接続したり、メモリを確保したりする時、その動きを全部見ることができます。 デバッグやトラブルシューティングで「このプログラム、何してるんだろう?」って時に超便利ですよ。 straceコマンドとは straceは、プロセスの動作を詳細に追跡するデバッグツールです。“system call trace"の略ですね。 プログラムが実行するすべてのシステムコールを表示します。ファイルの読み書き、プロセス生成、シグナル処理、ネットワーク通信など、あらゆるカーネルとのやり取りが記録されます。 「このコマンド、なぜ遅いのか」「なぜエラーが出るのか」という問題を調べる時に活躍します。プログラム開発者やシステム管理者の強い味方です。 基本構文 1 strace [オプション] コマンド [コマンドの引数] 指定したコマンドを実行しながら、システムコールをリアルタイムで表示します。 1 strace [オプション] -p PID 実行中のプロセス(PID)にアタッチしてトレースすることもできます。 主なオプション オプション 説明 -e trace=SYSCALL 特定のシステムコール(例:open, read)のみを表示 -o FILE 出力をファイルに保存 -p PID 実行中のプロセスをアタッチしてトレース -f 子プロセスも一緒にトレース -c システムコール統計を表示 -v 詳細表示(構造体の内容なども表示) -e write write系のシステムコール(write, pwrite64など)をトレース -e open,read 複数のシステムコールを指定 -s NUM 表示する文字列の最大長を指定(デフォルト32) -x 16進数で表示 --follow-forks -fと同じ(フォークを追跡) 使用例 例1: 基本的なトレース 1 strace ls /tmp 実行結果: 1 2 3 4 5 6 7 execve("/bin/ls", ["ls", "/tmp"], 0x7fff8c0ed270 /* 54 vars */) = 0 brk(NULL) = 0x55f3e8e5a000 arch_prctl(ARCH_SET_FS, 0x7f8f0d3b8080) = 0 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8f0d3b6000 access("/etc/ld.so.preload", F_OK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 ...(以下省略) lsコマンドが実行する全システムコールが表示されます。たくさん出ますね。 ...

2026年1月3日 · 3 分 · 528 文字 · 須藤権限

man

はじめに こんにちは!今回はmanコマンドについて解説します。 manはLinuxコマンドのマニュアルを表示するコマンド。「わかんない〜」ってなった時の頼りになる相棒です。 Linuxで自力学習するなら、manコマンドは必須スキル。このコマンドなしでは、わからないことが解決できません。 manコマンドとは manは"Manual"の略で、Linuxコマンドやライブラリ関数、設定ファイルなどの詳細なマニュアルを表示する外部コマンドです。 ビルトインコマンド、外部コマンド、システムコール、C言語のライブラリ関数、設定ファイルなど、あらゆるもののマニュアルが格納されています。わからないことがあったら、まずmanコマンドで調べるのがLinuxの鉄則です。 基本構文 1 man [セクション番号] コマンド名 セクション番号を省略した場合は、最初にマッチしたセクションが表示されます。 マニュアルセクション一覧 セクション 説明 1 実行可能プログラムやシェルコマンド 2 システムコール 3 C言語ライブラリ関数 4 特別なファイル(/dev/)など 5 ファイルフォーマットと設定ファイル 6 ゲームなど 7 マクロパッケージとメモ 8 システム管理コマンド(rootユーザー向け) 主なオプション オプション 説明 -k キーワード検索(全マニュアルから検索) -K ファイル内容から全文検索 -w マニュアルファイルのパスを表示 -f whatisと同じ(簡潔な説明表示) -a 全セクションのマニュアルを表示 -N 最新のマニュアルのみ表示 -M マニュアルディレクトリを指定 使用例 例1: コマンドのマニュアルを表示 1 man ls 実行結果: 1 2 3 4 5 6 7 8 9 10 11 12 13 LS(1) User Commands LS(1) NAME ls - list directory contents SYNOPSIS ls [OPTION]... [FILE]... DESCRIPTION List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort is specified. ... lsコマンドのマニュアルが表示されます。スペースキーで次ページへ、qキーで終了します。 ...

2026年1月3日 · 3 分 · 555 文字 · 須藤権限

ssh

はじめに こんにちは!今回はsshコマンドについて解説します。 sshはリモートホストに安全に接続するコマンドです。サーバー管理、リモートワーク、開発環境へのアクセスなど、IT業務ではめっちゃ重要なコマンド。 「遠くのコンピュータに安全につながる魔法」くらいの感じですね。これなしでは現代のIT業務は成り立ちません。 sshコマンドとは sshは"Secure Shell"の略で、リモートマシンに暗号化された接続を確立する外部コマンドです。 昔のtelnetと違い、通信内容が暗号化されるので、パスワードやデータが盗聴される心配がありません。サーバーへのログイン、ファイル転送、トンネリングなど、様々な用途で活躍します。 基本構文 1 ssh [オプション] [ユーザー名@]ホスト名 [コマンド] ユーザー名を省略した場合は、現在のシステムのユーザー名が使用されます。 主なオプション オプション 説明 -u ユーザー名を指定 -p ポート番号を指定(デフォルトは22) -i 秘密鍵ファイルを指定 -v 詳細表示(ログイン時のトラブル対応で便利) -N コマンド実行なし(ポートフォワーディング用) -L ローカルポートフォワーディング -R リモートポートフォワーディング -X X11フォワーディング(GUIアプリを遠隔実行) -C 圧縮を有効にする -A SSH認証エージェント転送 -o オプション設定(例:-o StrictHostKeyChecking=no) 使用例 例1: 基本的なリモート接続 1 ssh [email protected] 実行結果: 1 2 3 4 The authenticity of host 'example.com (192.168.1.10)' can't be established. ECDSA key fingerprint is SHA256:xxxxxxxxxx. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes [email protected]'s password: example.comというホストにuserユーザーでログインします。初回接続時はホストキーを確認するメッセージが表示されます。 ...

2026年1月3日 · 2 分 · 388 文字 · 須藤権限

ddコマンド

はじめに こんにちは!今回はddコマンドについて解説します。 ddは、ファイルやディスク全体をブロック単位でコピー・変換するコマンドです。ディスクイメージのバックアップ、USB起動メディアの作成、ディスク丸ごとのクローンなど、低レベルのデータ操作をする時に使うんですね。 「火力の強い、融通が利くコピーツール」ってイメージです。パワフルですけど、使い方を間違えるとデータ破損のリスクがあるので注意が必要です。 ddコマンドとは ddは、“convert and copy"の略で、ファイルやディスクのデータをブロック単位でコピー・変換する外部コマンドです。 通常のcpコマンドではファイルレベルでしか操作できませんが、ddは低レベルでのディスク操作ができます。ディスク全体のバックアップ、パーティション操作、USB起動メディア作成、ディスククローンなど、システム管理者がよく使う重要なコマンドなんです。 ddの特徴は、細かいオプションでデータ変換(大文字・小文字変換など)ができることと、ブロックサイズを指定してコピーできることです。ただし、パワフルだからこそ、誤った使い方はデータ破損につながるので、慎重に使う必要があります。 基本構文 1 dd [オプション] ddのオプションは、if=(入力ファイル)とof=(出力ファイル)で指定します。 1 dd if=入力ファイル of=出力ファイル bs=ブロックサイズ count=コピーするブロック数 他のコマンドと違う独特の構文なので、最初は戸惑うかもしれませんね。 主なオプション オプション 説明 if= 入力ファイル(input file) of= 出力ファイル(output file) bs= ブロックサイズ(block size) count= コピーするブロック数 skip= 入力ファイルの最初からスキップするブロック数 seek= 出力ファイルの最初からシークするブロック数 conv= データ変換(notrunc, noerror など) status= 進捗表示(progress, none など) ibs= 入力ブロックサイズ obs= 出力ブロックサイズ 使用例 例1: ファイルをコピー 1 dd if=source.img of=destination.img 実行結果: 1 2 3 1024+0 records in 1024+0 records out 524288 bytes (524 kB, 512 KiB) copied, 0.5 s, 1.0 MB/s source.imgをdestination.imgにコピー。出力にはコピーしたブロック数とデータ転送速度が表示されます。 ...

2026年1月3日 · 3 分 · 485 文字 · 須藤権限

umountコマンド

はじめに こんにちは!今回はumountコマンドについて解説します。 umountは、マウント済みのファイルシステムをアンマウント(切断)するコマンドです。mountコマンドの逆の操作ですね。USBドライブを取り外す前とか、ストレージの接続を終了したい時に使うんです。 「パソコンからUSBを安全に取り外す」をコマンドでやるってイメージです。これもめっちゃ重要ですよ。 umountコマンドとは umountは、マウント済みのファイルシステムをアンマウント(切断)する外部コマンドです。 Linuxでは、マウント中のファイルシステムに対するI/O操作は即座に実行されるわけではなく、バッファリングされています。そのため、デバイスを物理的に取り外す前にumountできちんとアンマウントする必要があります。データの破損を防ぐためにも重要なコマンドなんです。 umountを実行すると、キャッシュがディスクにフラッシュされ、ファイルシステムが切断されます。その後初めて、安全にデバイスを取り外したり、別の場所に再マウントできるわけです。 基本構文 1 umount [オプション] マウントポイント または 1 umount [オプション] デバイス マウントポイント(ディレクトリパス)またはデバイス名を指定してアンマウントします。 主なオプション オプション 説明 -l lazy unmount(すぐにアンマウント表示するが、後で切断) -f force unmount(強制的にアンマウント) -r アンマウント失敗時に読み取り専用にする -n /etc/mtabを更新しない -v 詳細表示(verbose) -a /etc/mtabのすべてをアンマウント -t 指定されたファイルシステムタイプのみアンマウント 使用例 例1: 基本的なアンマウント 1 sudo umount /mnt/usb 実行結果: 1 (成功時は何も表示されない) /mnt/usbにマウントされているファイルシステムをアンマウントします。これが最もシンプルな使い方です。 例2: デバイス名でアンマウント 1 sudo umount /dev/sdb1 実行結果: 1 (成功時は何も表示されない) マウントポイントの代わりに、デバイス名を指定してアンマウント。結果は同じです。 例3: 詳細表示でアンマウント 1 sudo umount -v /mnt/usb 実行結果: ...

2026年1月3日 · 2 分 · 355 文字 · 須藤権限

mountコマンド

はじめに こんにちは!今回はmountコマンドについて解説します。 mountは、ファイルシステムをマウント(接続)するコマンドです。USBドライブやハードディスク、ネットワークストレージなど、様々なストレージをLinuxシステムに接続する時に使うんですね。 「パソコンにUSBをつなぐ」的な操作をコマンドでやるってイメージです。めっちゃ重要なコマンドですよ。 mountコマンドとは mountは、ファイルシステムをマウント(接続)する外部コマンドです。 Linuxでは、ハードディスク、USB、ネットワークストレージなど、あらゆるストレージをファイルシステムとしてツリーに接続することで、ユーザーが統一的にアクセスできるようになっています。mountはその接続作業を行うコマンドなんです。 マウントをすることで、デバイスの内容がディレクトリツリーの特定の場所から見えるようになります。例えば/mntや/mediaといったディレクトリにマウントすると、そこからそのデバイスのファイルにアクセスできるわけです。 基本構文 1 mount [オプション] デバイス マウントポイント mount単体で実行すると、現在マウント済みのファイルシステムを表示します。デバイスとマウントポイントを指定することで、新しくマウントができます。 主なオプション オプション 説明 -t ファイルシステムの種類を指定(ext4, ntfs, vfat など) -o マウントオプションを指定(comma区切りで複数可) -r 読み取り専用でマウント(read-only) -w 読み書き可能でマウント(read-write、デフォルト) -a fstabに記載されているすべてのファイルシステムをマウント -n fstabを読まずにマウント -v 詳細表示(verbose) -l ラベル別にマウント -U UUID別にマウント --bind ディレクトリを別の場所にマウント 使用例 例1: 現在マウント済みのファイルシステムを表示 1 mount 実行結果: 1 2 3 4 5 /dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,stripe=4) devtmpfs on /dev type devtmpfs (rw,relatime,size=1234567k,...) tmpfs on /run type tmpfs (rw,nosuid,nodev,...) /dev/sda2 on /home type ext4 (rw,relatime) ... システムに接続されているすべてのファイルシステムと、その詳細情報が表示されます。 ...

2026年1月3日 · 2 分 · 316 文字 · 須藤権限

niceコマンド

はじめに こんにちは!今回はniceコマンドについて解説します。 niceはプロセスの優先度を設定して実行するコマンドです。コンピュータのCPUパワーを効率的に配分するときに使います。バックアップなど時間のかかる処理を実行する際に、システム全体の動作を遅くしないようにするのに便利ですね。 「プロセス君、ちょっと遠回りしてもいい?」みたいな感じで、優先度を下げて実行できるコマンドです。 niceコマンドとは niceは、プロセスの優先度(nice値)を指定してコマンドを実行する外部コマンドです。 Linuxではプロセスに優先度があって、優先度が高いほどCPUを多く使用できます。niceコマンドを使うと、優先度を下げてプロセスを実行でき、他のプロセスに邪魔にならないようにできます。バックアップやログ解析など、時間がかかっても構わない処理に最適ですね。 基本構文 1 nice [オプション] コマンド [コマンドの引数] nice値は-20から19までの範囲で指定でき、数字が小さいほど優先度が高く、大きいほど優先度が低くなります。デフォルト値は0です。 主なオプション オプション 説明 -n 値 nice値を指定(-20~19、デフォルト0) --help ヘルプを表示 --version バージョン情報を表示 使用例 例1: デフォルト優先度を下げて実行 1 nice tar -czf backup.tar.gz /large/directory 実行結果: 1 (バックアップが低優先度で実行される) tarコマンドを実行する際、デフォルト値(10)下げた優先度で実行します。 例2: 優先度を明示的に指定 1 nice -n 5 find / -type f -name "*.log" > logfiles.txt 実行結果: 1 (検索が優先度5で実行される) nice値を5に設定して、ファイル検索を実行します。 例3: 最も低い優先度で実行 1 nice -n 19 rsync -av /source /destination 実行結果: 1 (rsyncが最も低い優先度で実行される) nice値を19(最も低い値)に設定してバックアップを実行。システムへの影響が最小限になります。 ...

2026年1月3日 · 2 分 · 268 文字 · 須藤権限

ipコマンド

はじめに こんにちは!今回は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 ネットワークデバイスの一覧と状態を表示。 ...

2026年1月3日 · 2 分 · 374 文字 · 須藤権限

lastコマンド

はじめに こんにちは!今回はlastコマンドについて解説します。 lastはシステムのログイン・ログアウト履歴を表示するコマンドです。誰がいつどのマシンからログインしたか、セッションがいつまで続いたかを確認できます。 セキュリティ監査やトラブルシューティングで超便利。不正ログインの調査にも使われます。 lastコマンドとは lastは、/var/log/wtmpファイルを読み込んで、ユーザーのログイン・ログアウト履歴を表示する外部コマンドです。 システムにアクセスしたユーザー、ログイン時刻、接続元、セッション時間などを確認できます。セキュリティ管理では必須のコマンドですね。 基本構文 1 last [オプション] [ユーザー名] 引数なしで実行すると、すべてのログイン履歴を表示します。 主なオプション オプション 説明 -n NUM 最後のNレコードのみを表示 -f FILE 指定ファイルからログインデータを読む -w IPアドレスを完全に表示 -i IPアドレスだけを表示 -d ホスト名をIPアドレスに変換 -F 日時をフルフォーマットで表示 -x システムの起動・停止情報も表示 使用例 例1: すべてのログイン履歴を表示 1 last 実行結果: 1 2 3 user1 pts/1 192.168.1.100 Fri Jan 3 14:23:45 2025 - 14:45:20 (00:21) user2 pts/0 192.168.1.200 Fri Jan 3 13:00:00 2025 - 13:30:15 (00:30) root tty1 Fri Jan 3 10:00:00 2025 still logged in 最新から順にログイン履歴を表示。 ...

2026年1月3日 · 2 分 · 359 文字 · 須藤権限

ifconfigコマンド

はじめに こんにちは!今回はifconfigコマンドについて解説します。 ifconfigはネットワークインターフェースの設定と状態を表示・変更するコマンドです。IPアドレスを確認したり、ネットワークを設定したり、通信トラブルを調査したりするときに使います。 ネットワーク管理の基本コマンドですね。ifconfigの出力が読めるようになると、ネットワークの仕組みがぐっと分かりやすくなりますよ。 ifconfigコマンドとは ifconfigは、ネットワークインターフェースの設定と状態を表示・変更する外部コマンドです。“interface configuration"の略ですね。 マシンに接続されているネットワークデバイス(Ethernet、WiFi、ループバックなど)のIPアドレス、MACアドレス、送受信データ量などを確認できます。サーバー運用やネットワーク管理では必須のコマンドです。 基本構文 1 ifconfig [インターフェース名] [オプション] 引数なしで実行するとすべてのネットワークインターフェースの情報を表示します。インターフェース名を指定すると、そのデバイスだけの情報が表示されます。 主なオプション オプション 説明 -a 有効・無効を問わずすべてのインターフェースを表示 -s 統計情報を表示(短い形式) up インターフェースを有効化 down インターフェースを無効化 inet アドレス IPアドレスを設定 netmask マスク ネットマスクを設定 hw ether MACアドレス MACアドレスを設定(root権限が必要) mtu サイズ MTUサイズを設定 使用例 例1: すべてのネットワークインターフェースを表示 1 ifconfig 実行結果: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::20c:29ff:fe3e:1234 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:3e:12:34 txqueuelen 1000 (Ethernet) RX packets 1250 bytes 98765 (96.4 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 980 bytes 75234 (73.4 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 txqueuelen 1000 RX bytes:98765 (96.4 KiB) TX bytes:75234 (73.4 KiB) lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 txqueuelen 1000 マシンに接続されているすべてのネットワークデバイスの詳細情報が表示されます。 ...

2026年1月3日 · 3 分 · 568 文字 · 須藤権限