タグ

TIPSとLinuxに関するiwwのブックマーク (196)

  • Linux Certif - Man flock(1)

    iww
    iww 2009/05/13
    flockについて
  • Stray Penguin - Linux Memo (BASH)

    exp で 1文字を対象にしたいのであれば ?([a-f]) のようにクラスを併用することも可能。必ずしも `|' を使わなければならないわけではない。また、正規表現は ?(bash@(ref)) のように入れ子にすることもできる。 Bashで正規表現(2) ([[ =~ ]]オペレータ) 二重の `[[' を使い比較演算子に `=~' を使うと、右辺は拡張正規表現とみなされる。前項とは異なりこちらは物の正規表現だ。面白いのは、マッチ部分が BASH_REMATCH という配列にアサインされるという点。 VAR=$(LANG=C date +'%c') # VAR='Wed Dec 22 22:51:41 2010' DAYOFWEEK=Wed PATTERN='^'$DAYOFWEEK' ([[:alpha:]]{3}) [[:digit:]]{2} ([0-9:]+)' [[ $VA

    iww
    iww 2009/05/13
    flockコマンドについて
  • bashにて複数端末間でコマンド履歴(history)を共有する方法 (iandeth.)

    Tera Term 等の端末を複数同時に立ち上げて作業したり、screenにて複数の仮想端末を同時並行で操作する際、コマンド実行履歴が端末間で共有できなくて困る事が多々あります。「さっきのfindコマンドをもう一度... 引数どう書くんだっけなぁ... あ、確かコマンド履歴にあったはずだなぁ... ちっ、それはあっちの端末の履歴だったか」みたいな。zshには端末間のコマンド履歴を常に同期できる'SHARE_HISTORY' なるオプション(*1)があって素敵なのですが、同じことを bash で実現する方法を調べたのでご紹介。 (*1) zshの同機能について詳しくはITmedia記事 "豪傑の三種の神器【後編】" を参照の事 不具合) 通常設定のbashで困る事 1. 複数端末間でコマンド履歴の共有ができない 同時に立ち上げている端末間で履歴の共有ができなくて不便に感じることがある。 2.

    iww
    iww 2009/03/19
    historyの番号が毎回書き換わるので !数字 が全く使えなくなるという欠点がある
  • ぷれいんぐLinux LinuxからNTFSへの書き込み with ntfs-3g

    Turbolinux Client 2008 を使っていて、 ubuntuと異なるところが見えてきました。 そのうちの一つが、NTFSへの書き込みができないということ。 Windows XP や Windows Vistaなどとデュアルブートにしていたり、 外付けハードディスクをNTFSでフォーマットしている場合など、 読み込みができますが、書き込みができません。 /etc/fstabをみても、rwになっているけども、書き込みできないです。 Turbolinuxは、安全性を大きく重視するのは、昔からのポリシーなようですね。 それは、とても良いことではありますが、 ある程度のリスクを背負ってでも、便利に使いたいのか個人の要望です。 なので、書き込みできるように個人でしてしまえ!ってことで、 やってみました。 利用するのは "ntfs-3g"という、ntfsへの書き込みもサポートしているパッケ

  • HDDイメージファイルをマウントして使う方法 - adsaria mood

    小容量HDDの内容をddコマンドで物理イメージを丸ごとバックアップしたファイルがあった。 [root@linux ~]# dd if=/dev/sdb of=hdd.img bs=512M このHDDのイメージファイルはLinux上でマウントしてファイルシステムとして利用できる。(追記:この応用としてVMwareの仮想ディスクをホスト上でマウントして使うという応用もある。「VMwareの仮想ディスクをLinuxでマウントして使う」参照。) ■ mountコマンドのオフセット指定でマウントする [root@linux ~]# ls /mnt ;: ←/mntの下は空 [root@linux ~]# mount -o loop,offset=31744 hdd.img /mnt ;: ←イメージファイルをマウントし [root@linux ~]# ls /mnt :; ←ファイルシステムとして

    HDDイメージファイルをマウントして使う方法 - adsaria mood
  • Debianではない組み込み環境からdebootstrapをやってみる - kinneko@転職先募集中の日記

    Qtopiaが動くARM926環境が手元に来たので、これの上にDebianのrootfsとパッケージ管理を入れる。 kernelは、2.6.19が動作している。 シリアルがあるが、とりあえず使えない。 NICは付いているがよくあるudhcpcの問題でアドレス解決はできない。 ターゲットマシンを起動し、QtopiaからTerminalを利用してシェルを起動。どうやらrootで動いているようだ。これは楽。 busyboxのオプションを調べてみるが、かなり限定的でほとんど使えない。 udhcpcのサービスをkillallで停止する。killallがあってよかった(^^;。どんどん更新されて行くので、細かいタッチスクリーンのキーボードでは、killで手動では止められない。 ifconfig, route, resolv.confなどを設定してネットワークが使えるようにする。 telnetdはbus

    Debianではない組み込み環境からdebootstrapをやってみる - kinneko@転職先募集中の日記
  • localtimeやstrtokは本当にスレッドセーフにできないのか (3): GCC __thread keyword - memologue

    3.3以降のgccを使っているのであれば、pthread_getspecific関数を使うのと同様のことを、特殊なキーワード __thread を使って実現できます。上で示したlocaltime関数の、長ったらしいソースコードは、次のように簡潔に書き直せます。 #include <time.h> #include <stdlib.h> struct tm* localtime(const time_t* timep) { static __thread struct tm ret; return localtime_r(timep, &ret); }このコードを gcc -S -fverbose-asm してみると、pthread_key と pthread_once を使った上のソースコードより簡潔なコードが吐かれております。移植性を気にしないなら、可読性・速度ともにこちらの方法が勝って

    localtimeやstrtokは本当にスレッドセーフにできないのか (3): GCC __thread keyword - memologue
  • INSTALLING LESSTIF: 終わりに(共有ライブラリを利用するには)

    次のページ 前のページ 目次へ 6. 終わりに(共有ライブラリを利用するには) 共有ライブラリのコンフィギュレーションはシステム毎に異なります。以下 は共有ライブラリをサポートするシステムで実際に使用するための手順を説明 しています。 6.1 Linux linux の下で使用可能な共有ライブラリを得る2つの方法があります: LD_LIBRARY_PATH 環境変数の使用。 ldconfig の使用。 2番目のオプションはスーパーユーザーでアクセス可能な人々にだけ使用可 能です。それができない人、或いは特にライブラリを利用したいがためにビル ドするだけ(テストとして実行するためなど)の人は1番目の LD_LIBRARY_PATH 変数を使用してください。 LD_LIBRARY_PATH 変数は共有ライブラリの検索用として、コロンで区切られ たパスのリストを含んでいます。この変数は ld

    iww
    iww 2008/11/30
  • bash

    Linux においての「コマンド」とは、シェルによって実行ファイルが実行されていることを意味します。 たとえば ls コマンドをユーザが入力した際、その入力はシェルにとっての入力でしかありません。シェルはユーザから入力された ls という文字列を「ls という実行ファイルを実行する」と解釈し、カーネルに伝えます。 ls という実行ファイルを実行した結果がシェルによってユーザに伝えられ、あたかもユーザは ls という実行ファイルを直接実行したように感じることができます。 このように「実行したように」というのがユーザインタフェースとしてのシェルの役目です。 しかし、今回はスクリプト言語としての bash をメインに扱うので、この章は軽く流していただいて結構です。 ご存じのように bash はプログラミング言語(シェルスクリプト)のひとつとして動作します。 プログラミング言語として、最低限備わっ

  • 第20回 いろいろなキャッシュ:dnsmasq, cache proxy | gihyo.jp

    Ubuntuを利用していく上で、一時的なデータをキャッシュすることで体感速度や利便性を向上させることができます。今回はターミナルからの設定に慣れることも兼ねて、キャッシュ関連の設定を行うレシピを紹介します。 preloadの利用 第8回で紹介したpreloadも一種のキャッシュです。詳細な使い方は第8回を参照してください。 DNSのキャッシュ――dnsmasqを使う Webブラウザなどを用いてインターネットアクセスを行う場合、システム側では暗黙でDNS解決を行い、ホスト名からIPアドレスを取得しています。Windowsでは暗黙で、Mac OS XではlookupdがDNS解決の結果をキャッシュしていますが、Linuxではキャッシュを行わず、都度DNSサーバへ問い合わせを行ってしまいます。 ローカルでdnsmasqというDNSサーバを稼働させることで、これらのキャッシュと同等の処理を行わせよ

    第20回 いろいろなキャッシュ:dnsmasq, cache proxy | gihyo.jp
    iww
    iww 2008/10/14
    生成されるresolv.confにnameserver 127.0.0.1行を自動的に追加する設定
  • DHCP(dhclient)使用時に/etc/resolv.confを書き換えない設定 — server-memo.net

    resolv.confが更新される 当然なのですが、IP情報をDHCPサーバから貰っちゃうと「/etc/resolve.conf」のDNSサーバ情報が勝手に更新されてしまいます。通常はそれで問題ないのですが、DNSサーバは自分で決めたものを使いたいという場合の方法です。 私の場合は、複数のNICがついたサーバで、DHCPでIP貰うNICと、固定でIP設定をしているNICが混在している場合などに設定しています。(この設定を追加するのを忘れてサービス止めたこともありました・・・) resolv.confを更新させないためには dhcpクライアント側のNIC設定ファイルに少し設定を追加・変更することで、「/etc/resolv.conf」のDNSサーバ情報が更新されなくなります。 今回は設定ファイルを編集する方法と、CentOS7からですが、「nmcli」コマンドを使用することでも設定を変更出来

    DHCP(dhclient)使用時に/etc/resolv.confを書き換えない設定 — server-memo.net
    iww
    iww 2008/10/14
  • LinuxはローカルにDNSキャッシュを持たないことを初めて知った - 元RX-7乗りの適当な日々

    先日、とあるLinuxマシンをセットアップした時に、"apt-get upgrade"で最新のモジュールをダウンロード・更新していたところ、途中でモジュールがダウンロードできなくなってしまった。 調べてみると、通信はできるけど名前解決が出来ていないことが分かった。 で、しばらくすると名前解決が行えるようになり、ダウンロードが再開された。 Windowsでは暗黙で,Mac OS XではlookupdがDNS解決の結果をキャッシュしていますが,Linuxではキャッシュを行わず,都度DNSサーバへ問い合わせを行ってしまいます。 第20回 いろいろなキャッシュ:dnsmasq, cache proxy:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社 とのことなので、どうやら、小さいサイズ(数KB〜数十KB)のファイルを連続してダウンロードしていることで、DNSサーバに軽

    LinuxはローカルにDNSキャッシュを持たないことを初めて知った - 元RX-7乗りの適当な日々
  • PATH HOWTO: cron、atコマンドについて

  • Linux で共有ライブラリをビルド&配布する際に気をつけること - kazuhoのメモ置き場

    Linux の共有ライブラリをリンクするためのハッシュテーブルは、従来、.hash というセクションに収められていたのが、CentOS 5.0 や Fedora Core 6 以降? といった新しい環境では、.gnu.hash という新しいセクションに収められるようになった。 で、後者の環境で何も考えずに共有ライブラリをビルドすると、.gnu.hash セクションのみをもつものができあがるんだけど、それを Debian Etch とかに持っていくと、dlopen した際に SIGFPE で落ちてしまう。 問題を回避するためには、リンカに --hash-style=both というオプションを渡してやれば、両方のセクションが作成されるので、この問題を回避できる。 Q4M もこの問題にはまって、0.8.2 をリリースすることになりました。幸い問題を発見した人が id:hirose31 さん (

    Linux で共有ライブラリをビルド&配布する際に気をつけること - kazuhoのメモ置き場
  • filesystem/ext3 - Linux Tips

    hashed b-treeの使用 † hased b-treeを使用し、ファイルが多いディレクトリ内での検索(と言うか参照)を高速化する。ただし、kernel-2.6以降のみ対応。 ファイルシステム作成時に指定するか、 # mkfs.ext3 -j -O dir_index /dev/hdxx 既存の物に対しtune2fsの後、e2fsck -Dを行い、既存のディレクトリ インデックスをhashed b-treeに変換する。 # tune2fs -O dir_index /dev/hdxx # e2fsck -D /dev/hdxx ↑ journal log を別デバイスに置く † ext3を/dev/hdxx、journal logを置くデバイスを/dev/sdxx、journal log size(block数)をssssとすると、パーティションを新たに作成する場合は、 # mke2

  • memologue - シグナルハンドラを使わないでシグナルをハンドルする

    「シグナルハンドラの中でできることは非常に限られているんですよ」というお話を1年半くらい前に書きましたが、この話には続きがあって、ある特定の条件下ではこの制限を緩和することができます。今回はその方法についての解説です。sigwait(3)という関数を使います。 ※ この話、うっかり書き忘れていました。ちょっとしたきっかけで思い出したので、暇があるうちに書いておきます。 ■「シグナルを待つ」処理 〜従来の方法〜 皆様、「シグナルの到着を待つ」処理を、次のように書いてしまっていないでしょうか? // シグナルハンドラ void handler(int signo) { // この中で使って良いのは非同期シグナルセーフ(async-signal-safe)な関数のみ }を用意して、 sa.sa_handler = handler; sigaction(SIGHUP, &sa, NULL); ..

    memologue - シグナルハンドラを使わないでシグナルをハンドルする
  • ついカッとなって実行バイナリにパッチ - memologue

    とある都合で、ソフトウェア開発の際にソースコードの提供されていないツールを使うことになりました。x86なLinux上で動く、ちょっとしたtoolchainです。が、そのツールの処理速度が遅く、入力サイズに対して、結果が出てくるまでの時間がどうもO(N^2)かそれよりひどい。遅くてイライラするので、昨晩ついカッとなってパッチを当てました。そのメモです。また、ありがちな事態(?)な気もするので、みなさんどうしてるのかなー的なお伺いも兼ねて。 ボトルネックの特定 そのツール(以下A)の実行バイナリはstripされておらず.symtabが残っていました。のでまず、どこが遅いのかgoogle-perftoolsをLD_PRELOADしてそのソフトウェアを実行し、実行プロファイルを取りました。すると、嬉しいことにある一つの関数(以下F)で全体の90%以上の時間を消費していることがわかりました。関数Fは

    ついカッとなって実行バイナリにパッチ - memologue
  • はてなブログ | 無料ブログを作成しよう

    ネイルで使う材料で、DIY時の木割れやネジ跡を派手にしたらかわいい OSB合板でちょっとしたボックスをつくりました。 ビス止め下手すぎて木を割ったり穴あけすぎたりした場所に、好きな派手色の樹脂を詰めてパテ代わりにしてみました。 ちょっと某HAYっぽみ出て可愛かったので、自分用にメモです。 手順 塗装 派手色グミジェルで失敗部分…

    はてなブログ | 無料ブログを作成しよう
    iww
    iww 2007/11/01
  • Linux,RS232C,半二重

    iww
    iww 2007/10/03
    TIOCM_RTS 信号線制御
  • ファイル/ディレクトリの検索

    ここでは、ファイルやディレクトリの検索について説明していきます。人間という生き物は、忘れる動物です。おっと…こんな堅苦しい説明はぬきにしましょう(^▽^;) どのOS を使用するにしろ、ファイルを検索する機能は欠かせないものです。ここでは、主に、locate コマンドと、find コマンドについて解説していきます。 ■データベース内から検索 [ locate ] まず、簡単な検索コマンドである、locate コマンドについて解説します。locate コマンドは、あらかじめ作成されているデータベースを参照して、ファイル及びディレクトリを検索するコマンドです。既にデータベースが作成されている中から検索をかけるため、後述する find コマンドよりも高速に特定のファイルを見つけ出す事ができます。ただし、欠点もあります。それは、データベースが最新版でなければ、検索にひっかからないということです。な

    iww
    iww 2007/09/17
    /etc/updatedb.conf