my_knowledge.ko

Linux | Debug, Analyze, Trace | Tech | etc...

Linux

git の状態(ブランチ名、未追跡ファイルなど)を bash プロンプトに表示する方法

前提 設定方法 表示例 共通 (特定の環境変数に依存しない) ブランチ名 特定の操作時 GIT_PS1_SHOWUNTRACKEDFILES=true:未追跡ファイル (%) GIT_PS1_SHOWDIRTYSTATE=true:ステージ(+), 未ステージ(*) GIT_PS1_SHOWSTASHSTATE=true:スタッシュ ($) GIT_PS1_…

Ctags で Go 言語 (.go) のタグファイルを生成する方法

タイトルのとおり、Ctags で Go 言語のタグファイルを生成をする方法についてです (未調査ですが、バージョンによっては対応しているかもしれません)。 なお、Ctags についてはマニュアル ctags(1) をご参照ください。 環境情報 Ctags が Go 言語に未対応か…

【dnf install - failed】Errors during downloading metadata for repository 'updates':...

Environment Issue Resolution (in my case) What if the issue still persists? Environment $ cat /etc/fedora-release Fedora release 32 (Thirty Two) $ uname -r 5.10.16-100.fc32.x86_64 $ rpm -qa dnf dnf-4.5.2-1.fc32.noarch Issue When running dn…

Linux 仮想マシンの Hypervisor を手っ取り早く確認する方法

今まで Linux 仮想マシンの Hypervisor を確認する (Hypervisor を使っているかどうかの確認) 方法として、dmidecode コマンドを使っていたが、より簡単に確認する方法を知ったのでメモ。 手順 KVM の表示例 物理環境の表示例 おまけ 参考 手順 次のように仮…

任意の Linux コマンドに紐づく debuginfo パッケージを確認する方法

本記事は、次の記事との関連になります。 【RHEL, CentOS, Fedora】Linux コマンドのデバッグ方法 - AWESOME LINUX WORLD この記事で紹介されているよりも簡単に、コマンドの debuginfo パッケージを確認する方法がありました。 別記事の調査中 (執筆中) に…

/proc/[pid]/stack でプロセスの待ち状態を確認する

プロセスの待ち状態は ps コマンドで確認できるが、これだけだと詳細は分からない。 詳細を知るには /proc/[pid]/stack が有効。今回はこれについてのメモ。 ■ /proc/[pid]/stack とは 表示例 ■ 待ち状態のプロセスを確認する ソースコードを確認する ■ /pro…

Linux シグナルの基本と仕組み (カーネル v5.5 時点)

この記事は、Linux シグナルの基本と仕組み (カーネルでの実装) について調査したことのまとめです。 シグナルは普段から利用しているものの仕組みについては理解してなかったので、カーネル勉強の題材として調べてみました。想像以上に複雑でボリュームがあ…

Linux メモリ断片化 (外部フラグメンテーション) の概要と解消方法

記事概要 要約 物理メモリ領域について 断片化とは 断片化のレベル 断片化のレベル ( その2 ) 断片化を解消する術 OS を再起動する OS を再起動しない方法 何もしない compact_memory の効果 さいごに 参考 記事概要 Linux OS におけるメモリ断片化 1 ( 以降…

Magic SysRq Key 調査

はじめに 使い方と機能を知る 使い方と機能の要約 基本的な使い方 機能(コマンド)一覧 有効なコマンドの制御 動作確認 有効なコマンドの確認 無効なコマンドの確認 複数コマンドの有効化の確認 使いどころ カーネル実装を読む 処理の全体像 proc_reg_write w…

カーネルクラッシュダンプの解析方法 (crash コマンド)

はじめに 解析環境を整える クラッシュダンプ カーネルのデバッグ情報 crash コマンド クラッシュダンプを解析する mod -S でモジュール情報を読み込む log から状況を把握する bt でバックトレースを確認する dis で関数の中身を確認する その他、トピック…

カーネルクラッシュダンプ (Kdump) の概要と設定方法

はじめに カーネルクラッシュダンプとは Kdump とは システムカーネルとは ダンプキャプチャカーネルとは クラッシュダンプ取得の流れ (ざっくり) Kdump の設定方法 Red Hat 7 系 Linux では Kdump が有効かどうかは Kdump を無効化していた場合には 4. ちな…

Linux でも使えるコピペツール「CopyQ」の紹介

はじめに CopyQ とは 基本的な使い方 CopyQ の機能 多言語対応 定型文の登録が可能 ショートカットキーでツールの画面を呼び出せる コマンドの実行結果をそのまま履歴として保存可能 その他の機能 インストール方法、公式ページなど... はじめに CopyQ とい…

Vim で Linux カーネルソースを快適に読むための設定方法

はじめに 設定 できるようになること 指定した関数の定義元へジャンプ 指定した関数の呼び出し元へジャンプ 指定した関数内で使用している関数の一覧を確認 :cs f <クエリパターン> <キーワード> について より快適にするには はじめに vim で Linux カーネ…

Linux カーネルのソースコードを読む方法

はじめに ソースコードを読む方法 ローカルマシンに落としてから読む ブラウザ上から読む おわりに あわせて読みたい はじめに 本稿では、Linux カーネル (アップストリーム1) のソースコードを読む方法についてご紹介します。初学者向けの内容であり、カー…

【RHEL, CentOS, Fedora】Linux コマンドのデバッグ方法

はじめに 検証環境 デバッグシンボルの取得方法 事前準備 デバッグシンボル取得手順 はじめに 本稿では、RHEL、CentOS、Fedora といった RedHat 系 Linux のコマンドをデバッグする方法を記載しています。 一例として、free のパッケージである procps-ng の…

【RHEL, CentOS, Fedora】Linux コマンドのソースコード取得方法

はじめに 検証環境 ソースコードの取得方法 事前準備 手順 はじめに 本稿では、RHEL、CentOS、Fedora といった RedHat 系 Linux のコマンドに紐づくソースコードを取得するための方法を記載しています。 一例として、dmesg のパッケージである util-linux の…

top コマンドでよく使う or 便利そうな機能

はじめに ヘルプ ( h or ? ) 文字列検索 ( L ) ユーザ毎に監視 ( u ) プロセスを終了させる ( k ) コマンドを詳細に表示 ( c ) ソート関連 ( <, >, P, M, R ) CPU、メモリ、スワップの使用率を視覚的に表示 ( t, m ) CPU コア毎の情報を表示 ( 1 ) プロセス…

Linux 仮想コンソールの切り替え方法

はじめに 仮想コンソールとは 切り替え方法 はじめに 以降、Linux 環境を想定しています。また、動作確認は、RHEL 7.4 環境で行いました。その他のディストリビューションで動作するかは未確認です(問題ないとは思いますが)。 仮想コンソールとは 仮想コンソ…