linux

C言語で glibc のバージョンを確認する方法

C言語で glibc のバージョンを確認する方法をまとめます コンパイル時にバージョンを確認する 以下のマクロを使います __GLIBC__ __GLIBC_MINOR__ バージョンをprintf()で表示する #include <stdio.h> int main(void) { printf("%d.%d\n", __GLIBC__, __GLIBC_MINOR__</stdio.h>…

debian を使っている人は apt line を見直すべし

Debian のパッケージ構成に変更があり,non-free は non-free と non-free-firmware に分割されることになりました.すでに開発版の sid (unstable)では IntelのCPUのマイクロコード(パッケージ名:intel-microcode) nvidiaのGPUのfirmware(パッケージ…

pdfから画像を劣化なしで抜き出す方法

pdfimages コマンドを使うと,pdfファイルから画質を落とさずに画像を取り出すことができます. pdfimages のインストール Linux,debianやubuntuの場合 $ sudo port install poppler-utils mac port の場合 $ sudo port install poppler 使い方 pdfのファイ…

LinuxとかmacOSでハッカーぽい画面を作る方法

LinuxとかmacOSでハッカーぽい画面を出す方法をまとめます コマンドライン・ターミナルで実行する系 ターミナルを複数開いて、以下のコマンドを実行すれば、それっぽい雰囲気が出せます figlet, toilet, cowsay $ figlet hello world _ _ _ _ _ | |__ ___| |…

macOSからLinux(ubuntuとかラズパイ)のIPアドレスを調べる方法

macから同じLANにつながっているLinuxマシン(ubuntuとかラズパイ)のIPアドレスを調べる方法です dscacheutil コマンド Linux側に avahi (mDNS)がインストールされていれば,"Linuxマシンのホスト名.local "でIPアドレスが引けます面倒ならpingコマンドなど…

~/.ssh/config を無視する方法

sshで ~/.ssh/config の設定を無視する方法です. $ ssh -F none 設定ファイルを指定するオプション -F で none を指定すると, ~/.ssh/config および /etc/ssh/ssh_config をロードしなくなります.マニュアルから該当箇所を引用しておきます -F configfile…

インストール済みパッケージのバージョン番号を取り出す方法

パッケージのバージョン番号を取り出す方法です。 ubuntu や debian なら dpkg-query コマンドで $ dpkg-query --showformat='${Version}' --show [package-name] redhatやcentos なら rpm コマンドで $ rpm -qp --queryformat "%{VERSION}" [package-name] …

コマンドラインで文字コードを自動判別する方法

シェルスクリプトやコマンドラインで,テキストファイルの文字コードを自動判別する方法です nkf を使う head -n 1000 ファイル名 | nkf -g nkf -g ファイル名でも良いですが,nkfは遅いので,ファイルサイズが大きくなると処理に時間がかかります.アホみた…

最新のLinuxカーネルで VMware workstation/player を使う方法

Michal Kubeček さんが github.com でパッチ済みの vmware kernel module のソースコードを公開していますgithub.comこれを使うと,簡単に,最新のLinuxカーネルで VMware workstation や player が利用できます 使い方 git clone $ git clone https://githu…

NVIDIAのGPUのファン回転数をコマンドラインで変更する

例えば回転数を60%に固定したいなら nvidia-settings -a GPUFanControlState=1 -a GPUTargetFanSpeed=60 自動制御に戻したい場合は nvidia-settings -a GPUFanControlState=0 補足 複数のGPU、ファンがある場合は [gpu:番号] [fan:番号] でデバイスを指定で…

プリンタがエラーを出してpdfを印刷できない場合の対処方法

pdfを印刷しようとすると,プリンタがエラーを出す場合の対処方法です 手順1 プリンタのエラーを確認するプリンタの機種によって方法は違いますが,おおよそ以下のいずれかの方法になります PCからプリンタの管理画面が見える場合 管理画面からジョブのエラ…

sshで急に接続できなくなった場合の対処方法 (no matching host key type found. Their offer: ssh-rsa,ssh-dss)

no matching host key type found. Their offer: ssh-rsa,ssh-dss というエラーメッセージでssh接続できない場合は ~/.ssh/config の末尾に以下の三行を加えればとりあえず接続できるようになります Host * HostKeyAlgorithms=+ssh-rsa PubkeyAcceptedAlgori…

hunspell の使い方&動かない時の対処方法

スペルチェッカーの hunspell の使い方ですスペルチェッカーといえば ispell aspell hunspell enchant あたりが定番です.2022年の時点でデファクトは hunspell ?という状況ですhunspell は Linux環境だと特に問題なく”普通"に使えますが,自分でビルドした…

エクセル(Excel)のパスワードを調べる方法

Excel(エクセル)ファイルのパスワードを忘れたと同僚が困っていたので、パスワードを解読(解除)してあげました。以下手順をメモします ツールのインストール 有料のツールもありますが、無料で利用できる John The Ripper を使いました。github からコー…

Ctrlキーとcapsキーを入れ替える(Linuxでudevを使う方法)

キーボード割当を変更して ctrl キーとcapsキーを入れ替える方法ですudev で設定するので,hotplug 対応,コンソール&Xサーバ同時に設定可能な方法となります. 要約 キーボードをUSBで接続している場合lsusb で vendorID と productID を調べます $ lsusb …

ディレクトリを再帰的に辿ってファイルのチェックサム(md5sum)を計算する方法

特定のディレクトリ以下にある全てのファイルについて md5sum を計算するワンライナーです find -type f -print0 | xargs -0 md5sum > md5sum.txt コマンドの意味は find で再帰的にディレクトリを探索して 全てのファイル名をstdoutに出力 (-type f) xargs …

debian の nvidia-graphics-drivers パッケージを自分で編集&更新する方法

debian の nvidia-graphics-drivers が古いまま(470.57.02 )でなかなか更新されないので,自力で 470.63.01 に更新しました.470.57.02 はLinux-5.14をサポートしていませんが(モジュールがビルドできない), 470.63.01 ならLinux-5.14もサポートしていま…

debian/changelog からバージョン番号を取り出す方法

debianのソースパッケージから,生成されるバイナリパッケージのバージョン情報を抽出するには dpkg-parsechangelog を使うのが簡単.例 dpkg-parsechangelog --file path/to/changelog --show-field Version dpkg-parsechangelog --file path/to/changelog …

RRDCached の使い方

RRDtool を高速化する rrdcached の使い方 RRDcached とは RRDcached は RRDtool のためのキャッシュサーバーです.RRDtool は加速度や湿度センサーの値,サーバーのCPU負荷,パケット数,と言った時系列データに特化したデータベースです.RRDtoolだけでも…

コマンドラインでUNIXタイムスタンプを日付や時刻に変換する

コマンドラインで,unix timestamp を日付や時刻に変換する方法をまとめます GNU系 (linux, debian,ubuntu,redhat,centos) date コマンドで "-d @タイムスタンプ” の書式で unixタイムスタンプを指定します $ date -d @1595812200 Mon Jul 27 10:10:00 JST 2…

大容量HDD/SDDを高速にフォーマットする方法

ext4ファイルシステムを高速にフォーマットする方法です 背景 linux で ext4でディスクを初期化すると,初期化処理は一瞬で終わるように見えます.しかし初期化処理はまだ完了していません.真の初期化処理はディスクを mount した時に始まり,その処理はシ…

ラズパイを軽量webサーバーにする

raspberry pi をwebサーバにする手順目的はフィジカルコンピューティングやIoTと呼ばれるたぐいのものです.具体的にはセンサ情報・ログのモニタリング,軽量なwebサーバである lighttpd を入れてCGI経由で python スクリプトを起動したりします.python ス…

インストーラを使わずにdebianをインストールする方法(2020年版)

debian や fedora などの linux が稼働しているPCに,新しいHDDに接続して,そのHDDにdebian をインストールする方法をまとめますこの方法は installerを使うより早い (数分で新しい debain 環境が用意できます) 既存の設定のコピーが簡単 というメリットが…

bash で乱数を使う

2行でまとめると bash で乱数が必要な場合はシェル変数 RANDOM を参照します 生成される乱数の値域は,0から32767,分布は一様分布,になります 以下詳細. シェル変数 RANDOM bash で乱数が必要な場合はシェル変数 RANDOM を参照します echo $RANDOM シェル…

Linuxでディスプレイ解像度を自動切替する方法

Linuxでディスプレイ解像度を自動で切り替える方法です. ノートPCで外部モニタを使う場合 ノートPCでサスペンドから復帰後,解像度がおかしくなる場合 画面切替機(キーボードスイッチャ,パソコン切替器)を使っている場合 などに,毎回解像度を手動で設定し…

Python でインストール済みのdebianパッケージを調べる方法

debian や ubuntu でインストール済みのdebパッケージの一覧を調べる方法です(pythonのモジュールの一覧ではなくて,linuxのdebパッケージの一覧です)コマンドラインなら $ dpkg -l 等になりますが、似たことをpythonで実装する場合は apt モジュールを使い…

2つのpdfファイルを重ねて一つのpdfファイルとして保存する

原稿 A.pdf に,別ファイル B.pdf の内容を重畳させて,新しいファイル C.pdf として保存する方法ですpdf形式で文章や印刷データを扱っていると 各ページに,フッターやヘッダーを自動で追加する pdf形式で作成したポスターに印刷&裁断用のトンボを付ける …

SysV の runlevel と systemd のターゲットの関係

ランレベルとターゲット SystemV で runlevel と呼ばれていたものは ,systemd は target と呼ばれる.対応関係は以下のとおり SysV runlevel systemd の target 3 multi-user.target マルチユーザ.Xが起動しない (コンソールのみ) 5 graphical.target グラ…

複数の静的ライブラリを結合する方法 (2019年版)

2つの static library, libX.a と libY.a を結合して libAll.a を生成する方法ですこの記事は 複数の静的ライブラリ (.a) を結合する方法 - pyopyopyo - Linuxとかプログラミングの覚え書き - の改訂版です Linux の場合 (方法1) ar scripts を使います. …

Debianが起動しない場合の復旧方法 (Bug#932935)

2019年7月28日に Debianが起動しなくなりました.原因は sid(unstable)と呼ばれる開発版のみに存在するバグです.バグレポートも出ています.症状としては,システムを再起動すると" logsave not found - requires manual a fsck "と表示されるだけでシステ…