タグ

ブックマーク / inaz2.hatenablog.com (5)

  • screenのウィンドウタイトルをいい感じに自動変更する方法のメモ - ももいろテクノロジー

    GNU Screenでウィンドウタイトルを 普段はカレントディレクトリのディレクトリ名 コマンド実行中はコマンド名 SSHログイン中はリモートホスト名 に自動変更し、非アクティブウィンドウでコマンドが終了した際にハイライトさせる方法のメモ。 ここでは、次のようにscreenrcに書いておくことで、常に各ウィンドウのタイトルが表示されている状態を想定する。 hardstatus alwayslastline "%{=r dd}%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<" また、シェルとしてbashを想定する。 Dynamic Titlesを使う screenでは、適当なオプションとシェルのプロンプト文字列(PS1)を設定することで 普段はシェル名などの固定文字列 コマンド実行中はコマンド名 をタイトルに自動設定することができる。 Dynamic Titles - Sc

    screenのウィンドウタイトルをいい感じに自動変更する方法のメモ - ももいろテクノロジー
  • DockerでユーザモードQEMUによるARMエミュレーション環境を構築する - ももいろテクノロジー

    手元にx64マシンしかない状況でARM環境を用意しようとした場合、以下のような選択肢が考えられる。 実機を用意する(Raspberry Pi、Android端末など) お金がかかる、使うのに手間がかかる QEMUのシステムエミュレーションを使う 再現性が高い一方、重い QEMUのユーザモードエミュレーションを使う(参考) 再現性はシステムエミュレーションに比べ劣るが軽い、実行時やgdbデバッグ時のライブラリパス指定がやや煩雑 QEMUのユーザモードエミュレーションにbinfmtとchrootを組み合わせて使う(参考1、参考2) 軽い上にライブラリパスの指定が不要だが、chroot環境下に各種プログラムを用意するのに手間がかかる QEMUのユーザモードエミュレーションにbinfmtとコンテナ仮想化を組み合わせて使う(参考) 軽い上にライブラリパスの指定が不要、さらに各種パッケージインストール

    DockerでユーザモードQEMUによるARMエミュレーション環境を構築する - ももいろテクノロジー
  • GNU Screenでscreenの中のscreenを操作しやすくする - ももいろテクノロジー

    たとえば、ローカルで起動したscreenの中でSSH接続を行い、接続先のサーバで起動したscreenを操作したいとする。 前者のscreenを外側、後者のscreenを内側としたとき、内側のscreenで新しいウィンドウを開くには、一旦C-a a (meta) で内側のscreenにC-aを送った後cを押す必要がある。 他の操作についても同様に、あらゆる操作の前にC-a aをつけなければならず、非常に操作しづらい。 これを簡単にするために内側のscreenで異なるキーをエスケープに用いる方法が知られているが、接続するたびにエスケープキーを変更、あるいは接続先のサーバで異なるscreenrcを用意する必要があり、この方法もやや煩雑である。 そこで、metaを実行した後echoするコマンドをC-a Spaceにバインドし、renditionでメッセージの表示色を変えるようにしてみる。 具体的に

    GNU Screenでscreenの中のscreenを操作しやすくする - ももいろテクノロジー
  • cdの引数を絶対パスにしてコマンドヒストリに残す - ももいろテクノロジー

    cdの引数が相対パスのままコマンドヒストリに残って便利な例が思いつかないので、絶対パスでコマンドヒストリに残すようにする。 具体的には、以下のシェル関数を.bashrcに書く。 if [[ -n "$PS1" ]]; then cd() { command cd "$@" local s=$? if [[ ($s -eq 0) && (${#FUNCNAME[*]} -eq 1) ]]; then history -s cd $(printf "%q" "$PWD") fi return $s } fi いくつかの重要なポイントを以下に記す。 cdの定義を上書きしているが、このような場合中で普通にcdを呼ぶと再帰してしまうためcommand組み込みコマンドを使う。 "$@"の代わりに"$1"を使うことはできない。cdを引数なしで呼んだときホームディレクトリに移動しなくなってしまう。 cdの

    cdの引数を絶対パスにしてコマンドヒストリに残す - ももいろテクノロジー
  • GNU Screenの画面分割のキーバインドをEmacs風にする - ももいろテクノロジー

    一つのターミナルの上で、複数の仮想ターミナルを切り替えて使うことができるscreenというソフトウェアがある。 このソフトウェアには画面分割機能 (Regions) があるのだけど、標準のキーバインドは次のようになっていて、使いやすくない(C-aはエスケープキーを指す)。 C-a S: 横に2分割する (split) C-a |: 縦に2分割する (split -v) C-a : Regionを移動する (focus) C-a Q: フォーカルのあるRegion以外をすべて閉じる (only) C-a X: フォーカスのあるRegionを閉じる (remove) 割り当てなし: Regionの大きさを変える (resize) そういうわけで、これまで画面分割をしたいときは C-a : から直接コマンドを打ち込んでいた。 ところが、実はscreenでもEmacsのような複数ストロークでのキー

    GNU Screenの画面分割のキーバインドをEmacs風にする - ももいろテクノロジー
  • 1