HOME
R&D
Linux
Linux
Photo by
topcools tee
UbuntuのIPv6ホストIP固定
Ubuntuのネットワーク設定ツールはNetplanです。IPv6はデフォルト設定では自動的にアドレスを取得しますが、GUIで"Manual"を選択すると固定IPも指定できます。 ただしこの場合、ネッ …
特定NICのデフォルトrouteを指定しない設定
Linux機器に複数のNICを装備する場合に、特定のNICはLANのみに接続したいケースがあります。たとえば、Wifiインターフェースではインターネット接続したいが、有線イーサネットはLANアクセスの …
シェルスクリプトでクオートを除去
シェルスクリプトはコマンド類を組み合わせて処理フローを記述できます。 スクリプトに記述したフローはbashなどのシェルが制御していますが、その過程で変数展開などの文字列処理が走ります。 暗黙の文字列処 …
Wake On LANのセットアップ
Wake On LAN(WOL)は電源の入っていないPCをネットワーク経由でスイッチオンする機能で、多くのハードウェアが対応しています。 WOLクライアントソフトウェアから有線LANアダプタにマジック …
UbuntuでZRAMを導入
Linuxの比較的ポピュラーなRAM圧縮実装に、kernel標準機能のzramがあります。zramには2通りの用途があります。 RAMディスクを作成してブロックデバイスとして利用 swapをRAMディ …
emacs29以降のコード支援機能
Emacs29で tree-sitterと eglotが標準機能としてバンドルされました。 ただし、emacsは各自の環境をコードでセットアップする暗黙の仮定があり、elispで適切に設定できた場合に …
Chromeのパスワード保存セットアップを除去
ChromeやChromiumのパスワード保存機能は、GnomeやKDEのパスワード管理機能と統合できます。 起動時にセットアップやGnome/KDEのストア側のアンロックを求められます。 基本的には …
Windowsの高速スタートアップによる起動障害
IntelのWifiチップは不具合報告が多いのですが、 Windowsの高速スタートアップ設定による障害のケースがあり、実際に遭遇しました。 デュアルブート環境で、Windowsの高速スタートアップ設 …
日本語フリーフォント
Linux環境にフォントを追加するには、~/.local/share/fonts/ディレクトリにOpenTypeやTrueTypeのフォントファイルを置くと認識されます。サブディレクトリも認識されるた …
AndroidテキストエディタMarkor
MarkorはAndroid用の高機能プレーンテキストエディタです。 オープンソースで配布され、アプリはGooglePlayのほかF-Droidからもインストールできます。 MarkDown編集をフ …
todo.txtをSpacemacsで管理する
MELPAから配布されている todotxtを導入することで、emacsに Todo.txtフォーマットの編集機能を追加できます。 Spacemacsの場合は.spacemacsに追加パッケージ名を指 …
Tmux操作を伴うスクリプト
Tmuxを利用するとコンソールを分割して並行利用できます。 基本的にはキーバインドを用いて操作ますが、サブコマンドを利用するとシェルスクリプトでも操作可能です。 以下の例は、別ペインを作成して任意のコ …
Termuxカスタマイズ
Termuxはアプリの設定画面以外に、~/.termux/termux.propertiesを編集することでより詳細にカスタマイズできます。 インストール時にテンプレートが生成されるほか、 …
Spacemacsの常用レイヤー
Spacemacsは推奨パッケージをLayerにまとめたemacsディストリビューションです。 キーバインドなどの各機能は、各レイヤーが追加しているものに加えて、emacsそのものの機能やvimライ …
LinuxでNFC利用
Linux向けのNFCカードリーダーは、PC/SC規格に準拠した製品を選ぶと手軽です。 CCID driverの 対応リーダーのうち、SupportedまたはShould workの機器が有望です。 …
一時的にLinux→Windows起動するリブートコマンド
Linuxのメジャーディストリビューションが採用しているgrubにはgrub-rebootというコマンドがあり、次回の起動時のメニュー選択を指定できます。 これを利用して、Windowsデュアルブート …
ターミナルの文字重複を緩和する
Unicodeの文字をターミナルで表示すると、×や→といった一部の記号類が重複表示され見づらくなることがあります。 これはEast Asian Ambiguous Width(EAM)という仕様による …
LinuxからBD-R/M-DISCに書き込み
LinuxにもBlu-rayメディアを扱うユーティリティがあり、互換性のあるドライブと組み合わせると読み書きできます。 ツールはいくつかあるのですが、検証してみたところGUIツールは動作せず、コマンド …
bash起動・終了時のスクリプト自動実行
bashの設定により、ターミナル起動時と終了時にスクリプトを自動実行させられます。 これによりbash利用環境では機器の起動・終了と連動して特定の処理を行えます。 bash起動時は~/.bashrcを …
UbuntuのLinuxカーネルアップグレード
Ubuntuのカーネルはaptで更新できます。 パッケージはlinux-imageで詳細バージョンとflavor(標準はgeneric)を指定する必要があります。 また多くの場合、追加ドライバ …
fscryptでディレクトリ暗号化
Linuxのディスク暗号化機能にはいくつかの選択肢がありますが、 fscryptはLinuxで普及しているext4ファイルシステムの標準機能を操作するユーティリティです。 標準カーネルに組込まれている …
jqコマンドのループ処理
シェルスクリプトのJSONパースには jqを活用できます。 データ構造に合わせてjq '.items[0].id'といったフィールドアクセサを書くことで目的のデータを取得します。 JSONが配列を含ん …
SSHホスト鍵の管理
SSHの認証プロセスでは、アクセスユーザーの認証の前に接続ホストを認証しています。 ~/.ssh/known_hostsに接続済ホストの鍵がリストされており、接続時に一致しないとエラーになります。 よ …
AURビルド
Arch Linuxの非標準パッケージは、AURで配布されており、各自ビルドのうえインストールできます。 スナップショットのパッケージをダウンロードして、makepkg -sでビルドできます。 $ …
monorepo向けサーバーサイド git hook
git hookを活用すると自動ビルドなどが可能になります。 複数のプロダクトを統合するmonorepo構成の場合、ブランチの判定にくわえてディレクトリの判定も必要になります。 サーバー側のベアリポジ …
git difftool
ターミナルでコミット間のdiffを見比べるツールとして、パッチ形式のgit diffサブコマンドが知られています。 gitにはこの他にgit difftoolというサブコマンドがあり、外部の差分編集 …
EmacsでMarkdownを編集する
Emacsのmarkdown編集用メジャーモードに、 markdown-modeがあります。 基本的には、markdown-modeがあればある程度完結するのですが、 …
SSH経由でコピー&ペーストするクリップボードのリモート共有
ssh経由で操作するLinuxリモートホストのクリップボードは、OSC52というターミナル機能があればローカルのクリップボードに書き込めます。 例えばリモートホストでtmuxを利用していれば、送信側は …
Emacsの色設定を確認する
Spacemacsなどパッケージディストリビューション形態のセットアップでは、背景色などのテーマ設定が多階層になっていることがあります。 この場合、背景色を変えたいケースでもまずは色設定の由 …
Androidのキーボード・ショートカット
Androidにはキーボード、マウスを接続できますが、キーボードのみ接続するケースでショートカットを利用すると便利な場合があります。 OS操作 端末メーカーによりカスタマイズされていることもあります …
Androidホーム画面からシェルスクリプトを自然に実行する方法
Androidには、フルパッケージのターミナル環境 Termuxがあり、ひと通りのシェルスクリプトを実行できます。 ただし、ターミナルはキーボード無しで使うには向いていません。Termuxのプラグイン …
ターミナル・ユーティリティ
ファイラー SSHなどのターミナル環境でインタラクティブなファイル操作を行いたい場合、Midnight Commander(mc)を利用できます。 mcコマンドを実行するとディレクトリ内のファイルリス …
LSPmodeにネストしたプロジェクトをインポート
lsp-modeによりemacsでもLanguage Serverを利用できます。素朴な構成ではlsp-modeがプロジェクトを検出して動作しますが、サブディレクトにプロジェクトルートを置くようなネス …
Emacsバックポートの自作
Debian busterの emacsパッケージはv26であり、最新stableから乖離しています。 また、ターミナル機能のvtermを利用するために、modulesを有効にしてコンパイルする必要が …
Flatpakから最新パッケージをインストール
Linuxのパッケージ配布チャネルにFlatpakがあります。各ディストリビューションとは独立にパッケージ間の依存関係を解決するもので、UbuntuのSnapと同様の機能を提供しています。 …
SpacemacsでCSV編集
ELPAから配布されている csv-modeを導入することで、emacsにCSV編集機能を追加できます。 Spacemacsの場合は.spacemacsに追加パッケージ名を指定して再起動するだけでイン …
Spacemacs/EmacsにSKK導入
SKKはかな漢字変換ツールの1つで、漢字とかなの区切りを手動で指定することで変換精度を高めているのが特徴です。 また、副次的な効果としてターミナル上のemacsで動作するメリットがあります。典型的に …
Nushellの導入
Nushellは、構造化データをパイプ渡しできるインタラクティブ・シェルです。 bashなど従来のシェルは、改行やスペースで区切ったテキストをAWKで操作するケースが一般的ですが、Nushellはパ …
オンスクリーン・キーボード変更
Linux向けのソフトウェアキーボードとしては “Onboard” が手堅く動作します。 Onboardをインストールすると、設定ツールもインストールされるため用途に応じて設定できます。 問題 …
Spacemacs導入
Emacsの拡張ディストリビューション Spacemacsは、アグレッシブにLispパッケージを追加して高機能なエディタをセットアップします。 emacs風のエディタではなく、emacs ターミナルで …
基礎的なLinuxカスタマイズ
アプリケーション アプリケーションは、ディストリビューションのパッケージマネージャに無数にあります。他OSで使われるツールの代替ソフトには以下のようなものがあります。 ブラウザ: Chrome, …
コマンドラインのビープ設定
bashなどターミナルシェルの操作中に、候補が見つからないと一般的にビープ音が鳴ります。これは bell という古くからある機能で、設定可能です。 bashなどreadlineベースのアプリケーション …