Linuxユーザの立場から、役立つ情報や困ったときの解決方法を分かりやすく、かつ簡潔に記事にまとめています。主に、Ubuntu 8.04(→9.04)やCentOS 5.2(→5.3)で確認したことですが、他のディストリビューションでも応用できると思います。内容は(1)設定ファイルの書き方(2)役立つソフトウェア紹介やインストール方法(3)便利なコマンドの使い方や活用例(4)困ったときの解決方法です。このページの末尾にキーワード別で記事を分類してあります。また、真上の「ブログ検索」フォームからブログ内の記事を検索できます。

2008年9月23日火曜日

Xresouceの設定 このエントリーを含むはてなブックマーク

XresouceでXアプリケーションの設定を与えることができる。設定後は

$ xrdb -remove ~/.Xresources
$ xrdb -merge ~/.Xresouces
のように明示的に設定を破棄して再び読み込まないと反映されない。

emacsのウィンドウサイズ このエントリーを含むはてなブックマーク

Ubuntu 8.04で、以前の記事にあるようにemacsのパッケージをインストールした状態で、emacsを起動させると画面が小さい(自分的に)。そこで、コマンドで

$emacs -geometry 100x200 &
のように指定しても、ある一定サイズ以上に大きくできない。また、~/.Xresourceに
emacs.geometry:100x200
のように指定した場合も同じだった。

末尾で参照しているサイトに同じ症状および解決法が載っていた。 まず~/.Xresourcesの上の行をコメントアウトして、

$ xrdb -remove ~/.Xresources
$ xrdb -merge ~/.Xresources
としておく。そして、~/.emacs.elに以下の設定を追加した後、コンパイルしてロードすれば良い。私はの場合はemacsの設定をコンパイルしたものを読み込むようにしているので、そうでない場合は.emacsなどに書き込むだけで反映されると思う。 参照:「[ubuntu-jp] Emacsの .Xresources に関して

ターミナルのビープ音を消す このエントリーを含むはてなブックマーク

ターミナルからコマンド入力の際、TAB補完は役に立つのだが、ビープ音が毎回なるのでストレスがたまってしまう。xtermとktermの場合は、 ~/.Xresourcesに

kterm*visualBell: true
xterm*visualBell: true
と設定することでvisual bellに変えることができる。一方、gnome-terminalではプロファイルで端末ベルを鳴らすという項目のチェックを外せばよい。

CUIモードでは、set bell-style noneとしてもビープ音がなり続けた。結局、/etc/inputrcのbell-style noneをコメントアウトするとビープ音がならなくなった。

2008年9月19日金曜日

自動起動アプリを停止 このエントリーを含むはてなブックマーク

システム→設定→セッション→自動起動するプログラム で、自動起動するプログラムを設定できる。不要なプログラムが自動的に起動されている場合がある。BluetoothやTrackerなどは使わないので、無効にしておいた。

DVIファイルとPDFファイル このエントリーを含むはてなブックマーク

PDFファイルのビューアはacrobat readerやxpdfなどがある。どちらもapt-getで入手可能。

$ sudo apt-get install xpdf-japanese

DVIファイルをPDFファイルへ変換するツールdvipdfmxはデフォルトでubuntuに入っていなかった。調べてみると、xelatexというパッケージの中にあるらしい。したがって、xelatexをインストールした。

テーマの置いてあるサイト このエントリーを含むはてなブックマーク

各種テーマが置いてある。 http://art.gnome.org/

Firefoxがよく落ちる このエントリーを含むはてなブックマーク

Firefoxがよく落ちる。特に、asahi.comでニュースを見ているときに、突然落ちてしまうことが良くある。経験的にFlashを使っているサイトでよく落ちるので、Flashがらみではないかと疑っていた。ネットで調べてみると、Flashのアドオンを無効化してみると落ちなくなったと報告されていた。実際に、無効化してみると今のところ落ちていないので、おそらくこれが原因なのだろう。

2008年9月17日水曜日

初期起動アプリ このエントリーを含むはてなブックマーク

LinuxではXwindowが立ち上がったときに、初期化ファイルに設定を記述しておくことで、アプリを自動的に立ち上げるなどができる。ただし、どのようにXを立ち上げたかによって読み込まれる初期化ファイルが異なる。例えば、CUIからstartxで立ち上げる場合はxinitrcが読み込まれる。xdmからログインする場合はxsessionだったと思う。

Ubuntu 8.04では詳しいことは知らないけれど、ネットで調べたところxsessionrcが読み込まれるらしい。したがって、ホームディレクトリにxsessionrcというファイルを作成して設定を書き込む。

設定例

#!/bin/sh
xclock -geometry 150x150+870+0  &
gnome-terminal --geometry 120x45+50+0 --hide-menubar &

Imagemagickで画像編集 このエントリーを含むはてなブックマーク

Imagemagickという画像処理ツールがある。画像の表示、結合、フォーマット変換、サイズ変換、アニメーション作成など様々なツールのセット。プログラムから呼び出したり、コマンドラインやGUIから使うことができる。

Ubuntu 8.04には標準でインストールされていなかったので、インストールする。

$ sudo apt-get install imagemagick

Imagemagickの使い方

コマンドラインで実行する方法をまとめる。

画像を表示する。

$ display xxx.gif

画面のキャプチャ 表示されているウィンドウを名前指定でキャプチャ

$ import xxx.gif

フレームまでキャプチャ

$ import -frame xxx.gif

画面全体をキャプチャ

$import -window root xxx.gif

フォーマット変換

$ convert xxx.eps  yyy.png

サイズ変換

$ convert -resize  300x300  before.png after.png

元画像の縦横比を無視して変換

$ convert -resize  300x300!  before.png after.png

解像度の指定

$ convert -density 200x200

GIFアニメーション作成 PNG画像がpic01.png,pic02.png,....とあるとき

$ convert -delay 30 pic*.png anime.png

画像を垂直方向に結合

$ convert -append xxx.png yyy.png zzz.png

Imagemagickを使うと、こんな便利な操作が簡単に実現できる。 同一フォルダにある画像ファイルを一括でサイズ変換するbashによるスクリプト

#!/bin/sh
#Usage: resizejpgall.sh 100 200
#現在のディレクトリにあるすべてのjpgファイルを100x200の縦横比でリサイズする。

ver=$1  #リサイズ後の縦比率
hor=$2  #リサイズ後の横比率

for file  in *.jpg
 do
 prefix=${file%%.jpg};
 convert $file -resize ${ver}x${hor} ${prefix}-${ver}x${hor}.jpg;
 printf "$file ---> ${prefix}-${ver}x${hor}.jpg\n";
done

2008年9月9日火曜日

latexのインストール このエントリーを含むはてなブックマーク

Synapticでlatex-env-jaとlatex-extra-jaをインストールする。

emacsのインストール このエントリーを含むはてなブックマーク

Ubuntu 8.04(日本語版ローカライズ デスクトップCD)では、標準でemacsが入っていなかった。以下では、emacsのインストールと設定を記す。

Synapticからemacs-snapshotで検索して出てくるパッケージをすべてインストールする。 また、Anthy-elもインストールする。 .emacsをホームディレクトリに作成して以下を記入する。

;===================================
; Anthy
;    CTRL-\で入力モード切替え
;===================================
(load-library "anthy")
(setq default-input-method "japanese-anthy")
; ひらがなの map を変更する (個別指定)。
(anthy-change-hiragana-map "," "、")
; ひらがなの map を変更する (半角の "." "," を全角の "." "," に割り当てる)。
(anthy-load-hiragana-map anthy-alt-char-map)
;; かな漢字変換入力モードでSpaceを押したとき、半角空白が挿入されるようにする。
(setq anthy-wide-space " ")

;;アンチエイリアス化
(set-default-font "Bitstream Vera Sans Mono-10")
(set-fontset-font (frame-parameter nil 'font)
               'japanese-jisx0208
               '("VL ゴシック" . "unicode-bmp"))

;;スクリプトを保存するとき、chmod+xをする。
(add-hook 'after-save-hook
    'executable-make-buffer-file-executable-if-script-p)

;;カッコ対応をハイライト表示
(show-paren-mode t)

;;; ツールバーを消す
(tool-bar-mode nil)

;;; cursor の blink を止める
(blink-cursor-mode nil)

;;; 表示の行間を拡げる
(setq line-spacing 2)

;;; スクロールバーを右側に表示する
(set-scroll-bar-mode 'right)

;;; 一行が 80 字以上になった時には自動改行する
(setq fill-column 80)
(setq text-mode-hook 'turn-on-auto-fill)
(setq default-major-mode 'text-mode)

;;; ステータスラインに時間を表示する
(display-time)

;;; visible-bell
(setq visible-bell t)

;;; 行番号を表示する
(line-number-mode t)

;; このファイルに間違いがあった場合に全てを無効にします
(put 'eval-expression 'disabled nil)

(setq x-select-enable-clipboard t) ;; Share kill-ring and X clipboard
(mouse-wheel-mode 1) ;; Enable wheel mouse

2008年9月6日土曜日

WindowsとUbuntuのデュアルブート このエントリーを含むはてなブックマーク

本記事では、同一のPCに2つのOSをインストールして、起動時にどちらを使うか選択する、いわゆる、デュアルブートの方法を記す。(注)一般的な方法ではなくて、お手軽に実現できる方法

UbuntuはDebianから派生したディストリビューションで使い勝手がよい。実際に、インストール作業は以下に記す通り、WindowsからGUIでインストールができるので非常に簡単になっている。

  1. Windowsを先にインストールする(既にWindowsがインストールされていれば何もする必要なし)
  2. パーティション変更ツールで、Windowsのパーティションを圧縮して(Cドライブとする)、Ubuntu用のパーティションとして10Gほどを確保する。
  3. 確保したパーティションを「コントロールパネル」の「ディスクの管理」でフォーマットしてDドライブとする。
  4. Wubiというubuntuのインストーラ(Windowsプログラム)をダウンロードする。
  5. Ubuntuのページから最新のisoイメージファイル(日本語版ローカライズドDesktop CD)をダウンロードして、Wubiと同じディレクトリに置く。
  6. インストーラを実行して、インストール先をUbuntu用に確保しておいたDドライブに指定するなど、適切に設定をする。

HDの使用量の確認 このエントリーを含むはてなブックマーク

$df -h

Filesystem            サイズ  使用  残り 使用% マウント位置
xxxxx                   8.4G   3.5G  4.5G  44%   /

オプション

  • h 適切な単位で表示する。
  • k kバイト単位で表示する。
  • a 空のファイルシステムを含めて、すべてを表示する。
  • i iノードの使用量を表示する。

thunderbirdのバックアップ このエントリーを含むはてなブックマーク

メールソフトthunderbirdのバックアップ方法を記す。 (詳しくは、thunderbird helpを参照) メール、パスワード、拡張機能などの個人設定は「プロファイル」に保存されている。 プロフォルダの場所:~/.thunderbird/xxxxxx.default これをバックアップしておけばOK.

tarの使い方 このエントリーを含むはてなブックマーク

本記事では、アーカイブの作成・展開を行うツールのtarを説明する。

ファイルをアーカイブする。

$ tar cvf  xxx.tar   file1 file2

ディレクトリをアーカイブする。

$ tar cvf yyy.tar  dir1 dir2

アーカイブして圧縮も行う。

$ tar cvzf  zzz.tar.gz  file1 file2 dir3

アーカイブを展開する。

$ tar xvf xxx.tar

解凍して、アーカイブの展開もする。

$ tar xvzf  xxx.tar.gz

ちなみに、オプションの意味は以下の通り。

  • c 新規アーカイブ作成
  • x アーカイブからファイルを抽出
  • v 処理したファイルの一覧を詳細に表示
  • f ファイル名を指定
  • z アーカイブをgzipにフィルター

ssh,sftp,scpの使い方 このエントリーを含むはてなブックマーク

本記事では、ssh,sftp,scpの使い方をまとめる。これらは、ネットワーク上のホスト間で暗号化による安全な接続を確立して、操作を行うためのツールです。

sshの使い方

sshはリモートホストにログインして、リモートホスト上のコマンドを実行するためのツールです。暗号化によって安全な接続を確立することができます。

sshで接続するサーバが既にあれば良いのですが、自分でサーバを立てる場合は本サイトの記事「sshサーバの設定」を参照ください。

基本的な書式は次の通りです。リモートサーバ(example.com)のログインアカウント(user)にログインする場合です。

$ ssh user@example.com

もしuser@example.com commandという書式で実行したら、ログインシェルの代わりにコマンドcommandが実行される。

指定できるオプションをいくつか紹介します。

-1
プロトコル1で接続することを強制する。
-2
プロトコル2で接続することを強制する。
-4
IPv4のアドレスを使って接続することを強制する。
-6
IPv6のアドレスを使って接続することを強制する。
-C
すべてのデータ(標準入力、標準出力、標準エラー出力、転送されるX11,TCP接続のデータを含む)の圧縮を要求する。gzipと同じ圧縮アルゴリズムを使う。低速なネットワーク接続を利用しているときは圧縮することが望ましいが、接続が十分高速なときは単に処理速度が低下するだろう(圧縮コストのためだろうか?)。このオプションは大文字のO(オー)であることに注意!
-F configfile
ユーザ毎の設定ファイルを指定する。このオプションが指定されるときは、システムの設定ファイル(/etc/ssh/ssh_config)は無視されるだろう。デフォルトのユーザ設定ファイルは(~/.ssh/config)である。
-f
コマンドを実行する前にsshがバックグラウンドで走ることを要求する。
-i identity
RSAあるいはDSA認証で読み込まれるprivate keyの書かれたファイルを指定する。デフォルトでは、プロトコル1のときは~/.ssh/identityを読み込み、プロトコル2のときはRSA認証は~/.ssh/id_rsaで、DSA認証は~/.ssh/id_dsaである。このファイルはユーザ毎の設定ファイルでも指定しても良い。また複数のファイルをこのオプションで指定することもできる。
-L port:host:hostport
ローカルホスト(クライアント)のポート(port)がリモート側のホスト(host)とポート(hostport)に転送されることを指定する。
-l login_name
リモートサーバへのログインアカウントを指定する。これはユーザ毎の設定ファイルで指定しても良い。
-N
リモートコマンドを実行しないことを要求する。これは、(プロトコル2で)単にポート転送のときにだけ役に立つ。
-n
/dev/nullからの標準入力にリダイレクトする(標準入力から読み込むことを阻止する)。これは、バックグラウンドでsshが走っているときに使われなければならない。リモートサーバでX11プログラムを走らせるときによく使われるトリック。例えば、ssh -n
-p port
リモートサーバの接続ポートを指定する。ユーザ毎の設定ファイルで指定しても良い。
-q
すべての警告や診断メッセージが抑制される"静かな"モード。深刻なエラー(fatal error)だけが表示される。
-V
sshのバージョンを表示して、終了する。
-v
詳細な表示モード。デバッギングメッセージを表示する。
-X
X11転送を有効にする。これはユーザ毎の設定ファイルで指定しても良い。
-x
X11転送を無効にする。

SSHポートフォワード

SSH経由でPOPアクセスするときに、ポート転送を使います。ローカルホストの使われていない1024番以降の任意のポートをリモートサーバのpopサービス用ポート(通常は110)に転送して、TCP接続を確立する方法です。詳細は「Secure POP via SSH mini-HOWTO」を参照ください。

どのように実現するのか具体的に簡単に説明します。まず、SSHポート転送でリモートホストのsleepコマンドを1000秒間実行します。

$ ssh -C -f msingh@popserver -L 11110:popserver:110 sleep 1000

1000秒の間にTCP接続が確立しなかったら、SSHは終了します。一方、1000秒以内にメールクライアントでTCP接続を確立するとTCP接続が確立されている間はSSHで安全に接続されます(もちろん、メールクライアントはローカルホストの11110ポートに接続するよう設定すること)。これで、SSHで確立した安全な接続の下で、メールを取り寄せることができます。この方法は、メールクライアント以外にもIRCクライアントなどでも活用できます(要はIRC用のポートに転送するようにすれば良いわけです)。

1000秒以内にメールクライアントで接続を確立しないといけないというのは面倒ですし、あまり良い方法ではないと思われます。実はfetchmailというメールを取り寄せるツールを使えば、この問題は回避できます。この方法の詳細は「Secure POP via SSH mini-HOWTO」を参照ください。

scpの使い方

scpはネットワークを介してファイルを安全にコピーするツールです。データ転送にはsshを使うので認証が必要ですが、sshと同等の安全性が提供されます。

基本的な書式は以下の通りです。ローカルPCのファイル(file.txt)をリモートサーバ(example.com)の所定のディレクトリ(/home/user/)にコピーするときの書式です。

$ scp file.txt user@example.com:/home/user/

指定できるオプションをいくつか紹介します。

-1
プロトコル1でSSH接続する。
-2
プロトコル2でSSH接続する。
-4
IPv4のアドレスだけを使うように強制する。
-6
IPv76のアドレスだけを使うように強制する。
-C
圧縮して転送する。このオプションは大文字のO(オー)であることに注意!
-F ssh_config
SSHのためのユーザ毎の設定ファイルを指定する。
-i identity_file
RSA認証で読み込まれるidentity(private key)の書かれたファイルを指定する。
-P port
SSH接続するリモートホストのポートを指定する。大文字のP(ピー)である!
-r
指定したディレクトリ以下を再帰的にコピーする。
-v
詳細な情報を表示するモード。

sftpの使い方

sftpはsshを使って安全にファイル転送を行うツールです。

基本的な書式は次の通りです。リモートサーバ(example.com)のログインアカウント(user)に接続する場合です。

$ sftp user@example.com
sftp>

リモートサーバに接続できたら上のようにsftp>というプロンプトが表示されます。

ファイルxxx.txtをダウンロードする。

$ get  xxx.txt

ファイルyyy.txtをアップロードする。

$ put yyy.txt

ファイル転送をするときにいつも困るのが、ファイル名をTAB補完できないことです。解決策をご存知の方は教えてください。

ヘルプを表示する。

$ help

cd, ls, mkdirなどはリモートPCにおける操作を意味する。 一方、lcd, lls, lmkdirなどはローカルPCにおける操作を意味する。

参考になるサイト

TCP/IPアレルギー撲滅ドリル【番外編】 第9回:scpとsftpの違いについて分かりやすく書かれている。

sshの設定 このエントリーを含むはてなブックマーク

本記事では、open sshを使ったssh接続の設定、使い方をまとめる。

sshを使うと、ネットワークを介したコンピュータ同士で安全な情報のやりとりができる。

サーバ側PCの設定

鍵の作成
$ssh-keygen -t rsa1
Generating public/private rsa1 key pair.
Enter file in which to save the key (/home/xxx/.ssh/identity):
Enter passphrase (empty for no passphrase): <---適当にパスワードを入力 

これでホームディレクトリ/.ssh下にidentity(秘密鍵)とidentity.pub(公開鍵)が作成される。

$cat identity.pub authorized.pub  

sshd_configの編集: /etc/ssh/sshd_configで以下の項目を設定する。

protocol 1,2
PermitRootLogin no
RSAAuthentication yes
PasswordAuthentication yes
PermitEmptyPasswords no
AllowUsers yyy  

hosts.allowの編集: /etc/hosts.allowで以下の項目を設定する。

sshd : (ssh接続を許可するIPアドレス)  

hosts.deniedの編集: /etc/hosts.deniedで以下の項目を設定する。

ALL : ALL <---接続を許可したもの意外の接続はすべて拒否する。  

sshサービスの再起動 :

/etc/rc.d/initd/sshd restart  

クライアント側PCの設定

サーバ側で作成した公開鍵identity.pubをクライアント側PCにコピー

$ls /home/yyy/.ssh
identity.pub              #作成した公開鍵

パーミッションの変更

$chmod 600 identity.pub

以上で設定は終了。

使い方

サーバ側PCのIPアドレス確認

$ /sbin/ifconfig

クライアント側PCでssh接続:

$ ssh (ログインするアカウント)@(サーバ側のIPアドレス)

その他

ssh接続に失敗するときは、サーバ側PCでログを確認してみる。例)ディレクトリ/var/log下にあるsecureやmessagesを確認する。

キーワード

キーワード別に記事を分類してあります。クリックすると各キーワードに該当する記事たちが表示されます。

筆者について

自分の写真
趣味はコンピュータ、音楽、写真などです。