linux

bashでちょっと高度なシェルスクリプトを書くときの Tips

bashでちょっと高度なシェルスクリプトを書くときに役立ちそうな小技をまとめてみました. && と || を積極的に使う bashでは コマンド1 && コマンド2 と記述すると,コマンド1が成功した場合のみ,コマンド2が実行されるようになります. (コマンド1が失敗…

bash で Ctrl-C をフックする方法

bash で Ctrl-C をフックする方法、つまりSIGINTを自前のシグナルハンドラで捕捉する方法についてメモ。 概要 シグナルハンドラを設定するには、trap というbashのビルトイン・コマンドを使います #!/bin/bash hander() { echo "recv!!" } trap hander SIGIN…

perf を使ってプロファイルを取る方法(その2)

perfのインストール方法は、http://d.hatena.ne.jp/pyopyopyo/20140702/p1、を参照。以下 perf の使用例を簡単に列挙します。詳細な情報は $ perf --help $ perf record --help のような感じで、コマンドラインから参照できます。 パフォーマンスカウンタの…

perf を使ってプロファイルする方法(その1)

linux でサンプリングベースのプロファイルを取る場合は、数年前までは oprofile が定番でしたが、最近は perf が主流です。oprofile よりも perf のほうが高機能で、かつ簡単に利用できます。以下、本エントリでは、perfコマンドのインストール方法、perfコ…

debianでアカウント情報をLDAPで管理する

debian でアカウント情報をOpenLDAPで管理する手順をまとめます. インストール(LDAPサーバ側) $ sudo apt-get install ldap-server ldap-utils 設定(LDAPサーバ側) 以前はopenldapの設定ファイルといえば /etc/ldap/slapd.conf でしたが,最近のldapではこ…

LinuxだけでBIOSを更新する方法

WindowsやFreeDOSを使わずに,LinuxだけでマザーボードのBIOSを更新する手順をまとめます.同じ手順で,マザーボードだけでなく,NICやRAIDカード,グラッフィックボードまで様々なデバイスのファームウェアが更新できます. 手順1) flashrom のインストール…

Linuxの起動時間を劇的に速くする方法.

systemdを使うと起動処理が劇的に速くなります.手元のdebian(unstable)なPCでは,grubの画面から数秒でgdmの画面に切り替わります.debianをデスクトップ用途で使っている人は是非 systemd に乗り換えましょう.乗り換えは非常に簡単です.まず,予め unsta…

NVIDIA Accelerated Graphics Driver for Linux の tips

nvidia用ドライバに関するインストール方法、チューニング方法、workaround をまとめます。 環境変数(画質関連の設定) __GL_FSAA_MODE FSAA(full screen anti alias) の初期設置値を変えたい時は export __GL_FSAA_MODE=5 などとします。FSAAを使うと画質が…

コマンドラインでCPUのコア数、クロック周波数などのスペックを確認する方法

Linuxで、CPUのスペック(core数、動作周波数など)をコマンドライン上で調べる方法についてメモ。 CPU数 $ nproc nprocコマンドは論理CPU数を返しますたとえば Intel の i7-2700K だと 物理CPU 1個 コア数4個 Hyper threading 有効 なんで nproc コマンドは 8…

liunx-3.6/linux-3.6.1 がバグっててルータとして機能しない件

2012-09-30 にリリースされた Linux 3.6 にはTCP/IP のスタックにバグがあり、パケットが転送(ルーティング)できなくなってました。NATやマスカレードができないため、3.6系はrouterなどでは全く使えないバージョンになっていたのです。この残念なバグは L…

debian (amd64) に Adobe Reader をインストールする方法

Adobe Readerは Linux だと32bit版バイナリしか提供されていません。 64bit版の debian でこのような32bitアプリを実行するためには、以下手順で環境をマルチアーキテクチャ化して、32bit/64bitアプリが共存できるようにします。以下詳細を説明します。なお…

pam 関連で set_loginuid failed というエラーが出る場合の対処方法

pam 関連で, /var/log/messages や /var/log/security 等に set_loginuid failedというエラーが有る場合は,まず AUDIT が有効になっているか確認する.例えば $ ls /proc/*/loginuid このコマンドで一つもファイルが表示されない場合は AUDIT が有効になっ…

LinuxでDOSの起動USBメモリを作る方法

BIOSの更新等で時々必要になるDOSの起動ディスク(USBメモリ).それをLinux上で作る方法です.(MacOSを使っている場合についてはこちら) 用意するもの USBメモリ 容量は50Mバイト以上あればOKです.中身はパーティション情報も含めて完全に消えてしまうので注…

Linux,MacOS,Windowsのネットワーク関連コマンド一覧

ネットワークの設定等で使うコマンド類をまとめてみました. DHCPを使う Linuxなら sudo dhclient デバイス名 MacOSX なら sudo ipconfig set デバイス名 DHCP Windowsなら netsh interface ip set address "Local Area Connection" dhcp デフォルトゲートウ…

32bit版debianを64bit版へアップグレードする方法

再インストールせずに 32bit版 debian を 64bit版 debian へ手動で更新したので,手順をメモします.手順は大まかに言うと カーネルだけ 64bit 化 64bit カーネルで再起動.この時点ではプログラム,ライブラリは32bitのまま 64bit版の apt-get が出来るchro…

Linux on VMware でシリアルコンソールを使う方法

久しぶりにVMware上のlinuxでシリアルコンソールを使ったので,手順をメモ. 以下, ホスト/ゲスト側が両方とも Linux の場合 ホスト側 Windows ゲスト側 Linux の場合 についてそれぞれ書きます.シリアルコンソールが使えると ブートログの収集 カーネルの…

debian で VMware を使う際の注意事項

debian/unstable で VMware を使う場合は以下の2つのファイルを用意する必要がある. /etc/insserv/overrides/vmware /etc/insserv/overrides/vmware-USBArbitrator /etc/insserv/overrides/vmware には下記の内容を書く. ### BEGIN INIT INFO # Provides:…

kernelの cache を強制開放する方法

カーネル内部のキャッシュを開放するには $ sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches' とします.これにより ベンチマークでより正確な値が計測できるようになる カーネルの空きメモリが増える*1 ことが期待できます.ベンチマークの場合で説明すると…

liunx でDOS起動ディスクを作る方法

(2012/9/13追記: もっと簡単な方法がありました.詳細はこちらをご覧ください)BIOSやVBIOSの更新で時々必要になるDOSの起動ディスクを、Windowsを使わずに、Linuxだけで作る方法です。起動ディスクのメディアはUSBメモリ(USB flash drive)、DOSはFreeDOSを使…

ついに Linux-3.0-rc1 登場!

先日 linux-2.6.39 がリリースされた linux カーネルですが,とうとうメージャーバージョンが3.0にあがるようです.http://www.kernel.org にて 5/30に linux-3.0-rc1 が公開されています.http://www.kernel.org/pub/linux/kernel/v3.0/testing/ChangeLog-3…

32bit/64bit 両対応な printf の書き方

32bit/64bit両対応のコードを書いていると,よく printf() で引っかかります."%d"のような"書式"がややこしいからです.というわけで,変数の"型"と"書式"の対応を,表で整理してみました. 型 書式 注意事項 ssize_t %zd size_t %zu intmax_t %jd uintmax_…

VMware player を VMware server 風に使う方法

VMware server よりも VMware player の方が圧倒的に高速です。そこで、VMware player を VMware server 風に使えるようにしてみました。もう VMware server は不要です!!概要としては ホスト機で、仮想Xサーバ(Xvfb)を起動 仮想Xサーバ上で vmplayer を起動…

 IPv6 を無効にしていると nfsd が起動しない場合の対処方法

debianでIPv6を無効にしていると、nfsサーバが以下のエラーを出して起動しない場合がある rpc.nfsd: unable to create inet6 TCP socket: errno 97この場合は /etc/netconfig の udp6 と tcp6 の行をコメントアウトすれば良い #udp6 tpi_clts v inet6 udp - …

linuxデスクトップ環境をたったの3ステップで高速化する方法

各所で話題になっていますが、Linuxを劇的に高速化する方法が発見されました*1 *2 *3。特にブラウザなど複数のアプリケーションを同時に起動した状態では、体感速度がびっくりするほど向上します。高速化する方法も簡単です。カーネルの再構築という難しい作…

emacs が"GConf Error:"が出して起動しない場合の対処方法

emacs が以下のエラーで起動しない場合は GConf Error: Failed to contact configuration server; some possible causes are that you need to enable TCP/IP networking for ORBit, or you have stale NFS locks due to a system crash. See http://project…

NFSv4 の設定

NFS バージョン4 の設定方法をまとめます。 NFSサーバ側 NFSサーバ側:必要なパッケージのインストール $ sudo apt-get update $ sudo apt-get install nfs-kernel-server 自動的にNFS v4関連のソフトウェアがインストールされます。 NFSサーバ側:設定 /etc…

PCがHDD容量を誤認識する場合の対処方法

HDD関連のトラブルとして、HDD容量が正しく認識されない、という類の事故があります。たとえば 新品の1TBのHDDなのに、BIOSとかOSは33MBのHDDとして認識している。初期不良?相性問題? 普段使っているHDDを外して、別PCにつないだら、HDD容量を正しく認識し…

HDD温度を確認する方法

毎年この時期になると、作業用PCやファイルサーバーが熱暴走して大変だった、といった残念な話を耳にするようになります。というわけで、本格的な夏を向かえる前にHDDの温度を確認して、事故を未然に防ぎましょう。HDDにはS.M.A.R.T.と呼ばれるディスクの動…

最近のdoxygenはスゴイ

doxygen*1 と言えば、cやc++のソースコードからドキュメントを自動生成する便利なソフトウェアです。この doxygen、ここ1年ぐらいですごく改良されています。ちょうど昨日(2010/6/15)に最新版の 1.7.0 がリリースされたので、この機会に最新版に乗り換えて、…

apt-get が Seg-V で落ちる場合の対処方法

apt-get が segmentation fault で異常終了する場合は、 $ cd /var/cache/apt/ $ sudo rm pkgcache.bin srcpkgcache.bin と一度キャッシュファイルを手動で削除し、 $ sudo apt-get update とすれば復旧する(場合がある)。