はじめに 本記事は電子書籍版もあります。 linuxカーネルはC言語のマクロを駆使して書かれています。それらのうち、凝ったマクロになじみの無い人には初見では意図がわからない&わかってみれば面白いであろうものをいくつか紹介いたします。対象読者は、C言語のユーザだけれども、マクロは定数定義くらいにしか使わないというライトなマクロユーザです。 マクロを使用する場所に依存するエラーを防ぐ 次のマクロは、二つの引き数の値を置換するだけの単純なものです。
ソースのハイライト lessにはLESSOPENという環境変数があります。 これはLESSがファイルを開くときに、設定した値をフィルタプログラムとして起動することでlessする内容を変化させられるっつーものです。例えば、圧縮ファイルなどは解凍した結果を出力させるなんていうスクリプトなんかを使ってる人もいるようです。 GNUのsource-hightlightには、LESSOPEN用のsrc-hilite-lesspipe.shというスクリプトが用意されています。 LESSOPENに '| /usr/share/source-highlight/src-hilite-lesspipe.sh %s' という値をセットしてあげることで、source-highlightを通した結果を出力することが出来るようになります。 また、この設定をする場合はlessに-Rまたは--RAW-CONTROL-CH
Guest Additionsは、VirtualBox上の仮想環境を操作しやすくするためのソフトウェアです。 ですが、VirtualBox上のCent OSにインストールする際には、少々コツが必要なようなのでまとめます。 Guest Additionsをインストールするにあたり必要なソフトウェアのインストール 【ゲストOS】以下のコマンドを入力し、アップデートと必要なソフトウェアのインストールを行います。 【ゲストOS】終了後、再起動します(重要)。 Guest Additionsのインストール 【ホストOS】VirtualBoxの[デバイス]-[Guest AdditionsのCDイメージを挿入]をクリックします。 【ゲストOS】CDを実行するかどうかを尋ねるダイアログが表示されるので、[実行する]をクリックします。 【ゲストOS】現在使用しているアカウントのパスワードの入力を求められる
Firefox 50 で絵文字に色がつきました。 次のようなテキストファイルを表示すると 🍣と🍺 次のように表示されるようになりました。 ですが、Ubuntu で次のファイルを表示すると 🐭🐮🐯🐰🐲🐍 次のように「🐭」と「🐮」だけ白黒で表示されてしまいました。 どうやら、OSのフォントに該当する文字があればそれが優先されるようです。 Dejavu Sans フォントに該当するフォントが入ってるようなので、それを読ませないようにすればいいようです。 % sudo apt purge fonts-dejavu-core ちゃんと色付きで表示されるようになりました。 なお、fonts-dejavu-core を削除すると、合わせて xubuntu-core や xubuntu-desktop も削除されてしまいますが、これらはメタパッケージなので特に問題ありません。 それが嫌
Linuxで、0バイトのファイルや空ディレクトリを一括削除するには、どうすればよいのだろうか。 答えは簡単で、findコマンド一発でできる。 find PATH -empty -delete [root@BS-PUB-CENT7-01 tmp]# mkdir -p /tmp/empty/{aaa,bbb,ccc,ddd,eee/fff} [root@BS-PUB-CENT7-01 tmp]# touch /tmp/empty/{1,2,3,4,5} [root@BS-PUB-CENT7-01 tmp]# echo ' ' > /tmp/empty/6 [root@BS-PUB-CENT7-01 tmp]# ls -la /tmp/empty 合計 8 drwxr-xr-x. 7 root root 104 6月 25 06:54 . drwxrwxrwt. 6 root root 4096
# export CHROOT=/mnt/chroot # mount -t proc none ${CHROOT}/proc # mount --rbind /dev ${CHROOT}/dev # mount --rbind /sys ${CHROOT}/sys # chroot ${CHROOT} /bin/bash # umount ${CHROOT}/sys umount: /mnt/chroot/sys: target is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1)) となる原因と解決案がようやくわかった. rbindはrecursive bind,なのでディレクトリを再帰的にマウントしてるんですね. /proc/mou
こんにちは。オガリア開発チームの粂です。 常識かもしれないのですが、つい最近知ったこと。 fileコマンドを使えばUTF-8のBOMの有無や改行コードがCRLFどうかがチェックできます。 例えばこんな感じでfileコマンドを実行すると、 find . -type f -name "*.json" | xargs file ./aaa.json: UTF-8 Unicode ./bbb.json: UTF-8 Unicode (with BOM) text ./ccc.json: UTF-8 Unicode (with BOM) text, with CRLF line terminators BOMがついてたら、 (with BOM) text と表示され、 改行コードがCRLFなら、with CRLF line terminators と表示されます。 これは便利ですね。 ちなみにBOM
情報表示:lsblk, blkid パーティション作成:fdisk, cfdisk, gdisk, cgdisk, sgdisk, parted マウント:mount, umount ファイルシステム:mkfs, fsck ファイルシステム(ext2/3/4)用: resize2fs, dumpe2fs, tune2fs スワップ:mkswap, swapon, swapoff SMART情報表示:smartctl LVM:lvmdiskscan, pvdisplay, pvscan, lvdisplay, lvscan 不良セクタ対処:badblocks, ddrescue どのディレクトリが容量を食っているか調べる:ncdu 太字のコマンドはutil-linuxに含まれており、整合性が取れていることが期待できる(と思う)。 ディスク、パーティションの情報を調べる fdisk -l でほ
いつまで経っても終わらないから帰れない… 途中で終了してしまうと困るので、ログアウトしても終了しないように。 作業の流れ Ctrl+Zでコマンドの中断 bgでバックグラウンドに回す jobsでジョブの確認 disownでログアウトしても実行されるようにする 実際のコマンドだと
authorized_keys ファイルについて調べてみたら楽しかった.ポートフォワード専用公開鍵とかいろいろ作れそうです authorized_keys ファイルって単に,公開鍵を入れて置く場所だと思ってました authorized_keys ファイルにはログイン時に自動実行するプログラムとか、環境変数を書いておくとか イロイロ便利な使い方があるのです. 使える設定は以下の通り ログイン時に自動適応する設定は次の通り from="pattern-list" environment="NAME=value" command="command" cert-authority tunnel="n" permitopen="host:port" no-X11-forwarding no-user-rc no-pty Prevents tty allocation (a request to al
UbuntuにGimpを入れようと思ったけど、入れる前に2.6が入るのか2.8が入るのか知りたかったので apt-cache search gimp してみたけどバージョン名が出てこない。 解決策 apt-cache policy gimp すると見れる。こんな感じの出力 $ apt-cache policy gimp gimp: インストールされているバージョン: (なし) 候補: 2.6.12-1ubuntu1.2 バージョンテーブル: 2.6.12-1ubuntu1.2 0 500 http://jp.archive.ubuntu.com/ubuntu/ precise-updates/main i386 Packages 500 http://security.ubuntu.com/ubuntu/ precise-security/main i386 Packages 2.6.12
ログファイルの監視に「tail -f」コマンドを使っている方は多いかもしれません。ファイルの末尾を表示する「tail」コマンドに、ファイル末尾に追加されたデータを追跡表示する「-f」オプションを指定することで、手軽にログの監視ができる便利なコマンドです。 しかし最近、「tail -f」より便利なコマンドとして「less +F」の使用を推奨するブログ記事「Stop using tail -f (mostly)」が公開され話題となりました。 「less」はテキストファイルの内容を表示する、ページャーと呼ばれるソフトウェアですが、これに「+F」オプションを指定することで、「tail -f」より便利なファイル監視コマンドとして使えるらしいのです。具体的に「less +F」が「tail -f」より便利な点として以下の2点が挙げられています。 監視モードと通常モードをlessを起動したまま行き来できる
140文字で収まらなかったので. ssh でログインはできる(認証は成功している)し操作も普通に行える(RTTが正常な範囲)けど,ログインできるまでに(パスワード認証の場合はユーザ名やパスワードを聞かれるまでに)非常に時間がかかるような場合の原因と対処方法を記しておく.こうした現象は主に何らかの方法に挑戦して失敗・タイムアウトしていることが原因である. クライアントの名前解決が原因 クライアントの名前解決ができなくて時間がかかっている.サーバ側での設定変更が主. ssh サーバの /etc/hosts にクライアントの設定を書く 名前解決ができないので ssh クライアントの直接名前を設定してあげる.個別対応なのであまり良い解決策ではないが,やむを得ない場合はこの方法. 192.168.0.2 ssh-client.example.com 192.168.0.2 がクライアントの IP ア
Linuxで、アプリケーションやユーザごとに、異なるデフォルトゲートウェイを割り当てたくなる時があります。 普通は、優先度とかで自動で切り替えとか、そーゆー感じですが、 そうではなくて、 ユーザAは、デフォルトゲートウェイ1を必ず使い、ユーザBは、デフォルトゲートウェイ2を絶対に使う。 プロセスAは、デフォルトゲートウェイ1を必ず使い、プロセスBは、デフォルトゲートウェイ2を絶対に使う。 そんな風にしたい時があります。 まあ、人生は長いですから、そういう時もあるのです。 ネッツ PC 192.168.0.10 ---> HUB -->gateway1 192.168.0.100 -->gateway2 192.168.0.200 ユーザ user_proxygw は、192.168.0.200 を使い、 それ以外は、 192.168.0.100(default gw) を使うというのを考え
システムのクラックやウイルス感染、操作ミスなどによって、システムにとって重要なファイルが変更されている可能性があるときは、rpmコマンドを-Vオプション付きで実行することにより、インストールされているファイルがインストール直後と異なっているかどうかを比較できる。 ファイルの比較は、各ファイルのサイズ、MD5のチェックサム、許可属性、ファイルの種類、所有者およびグループなどについて行われる。比較の結果は、以下のように8文字の文字列と設定ファイルの場合はそれを表す「c」という文字、そしてファイル名という形式で表示される。
概要 bashの記法は独特なものが多く毎回ググってしまうのでまとめて(と言いつつまとまりがないですが。。。)おこうと思います。 ある程度まとまってからpostしようとか思ってたらごちゃごちゃになっちゃいました。 bashで使えるという意味なのでposixシェル共通のネタも混ざってます。 随時更新します。参考になれば幸いです。 参考 man bash リファレンスマニュアル Advanced Bash-Scripting Guide カッコ色々 bashでは色々なカッコがありますが、よく違いが分からず使っていたりするのでまとめてみます。 []と[[]] []はtestコマンドのaliasです。[[]]じゃないとできないこととしては、以下のようなものがあります。 空白を含む文字列をクォートしなくてOK var='abc 123' # []の中だとクォートしないとエラーになる [ $var =
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く