XresouceでXアプリケーションの設定を与えることができる。設定後は
$ xrdb -remove ~/.Xresources $ xrdb -merge ~/.Xresoucesのように明示的に設定を破棄して再び読み込まないと反映されない。
Linuxユーザの立場から、役立つ情報や困ったときの解決方法を分かりやすく、かつ簡潔に記事にまとめています。主に、Ubuntu 8.04(→9.04)やCentOS 5.2(→5.3)で確認したことですが、他のディストリビューションでも応用できると思います。内容は(1)設定ファイルの書き方(2)役立つソフトウェア紹介やインストール方法(3)便利なコマンドの使い方や活用例(4)困ったときの解決方法です。このページの末尾にキーワード別で記事を分類してあります。また、真上の「ブログ検索」フォームからブログ内の記事を検索できます。
XresouceでXアプリケーションの設定を与えることができる。設定後は
$ xrdb -remove ~/.Xresources $ xrdb -merge ~/.Xresoucesのように明示的に設定を破棄して再び読み込まないと反映されない。
Ubuntu 8.04で、以前の記事にあるようにemacsのパッケージをインストールした状態で、emacsを起動させると画面が小さい(自分的に)。そこで、コマンドで
$emacs -geometry 100x200 &のように指定しても、ある一定サイズ以上に大きくできない。また、~/.Xresourceに
emacs.geometry:100x200のように指定した場合も同じだった。
末尾で参照しているサイトに同じ症状および解決法が載っていた。 まず~/.Xresourcesの上の行をコメントアウトして、
$ xrdb -remove ~/.Xresources $ xrdb -merge ~/.Xresourcesとしておく。そして、~/.emacs.elに以下の設定を追加した後、コンパイルしてロードすれば良い。私はの場合はemacsの設定をコンパイルしたものを読み込むようにしているので、そうでない場合は.emacsなどに書き込むだけで反映されると思う。
ターミナルからコマンド入力の際、TAB補完は役に立つのだが、ビープ音が毎回なるのでストレスがたまってしまう。xtermとktermの場合は、 ~/.Xresourcesに
kterm*visualBell: true xterm*visualBell: trueと設定することでvisual bellに変えることができる。一方、gnome-terminalではプロファイルで端末ベルを鳴らすという項目のチェックを外せばよい。
CUIモードでは、set bell-style noneとしてもビープ音がなり続けた。結局、/etc/inputrcのbell-style noneをコメントアウトするとビープ音がならなくなった。
PDFファイルのビューアはacrobat readerやxpdfなどがある。どちらもapt-getで入手可能。
$ sudo apt-get install xpdf-japanese
DVIファイルをPDFファイルへ変換するツールdvipdfmxはデフォルトでubuntuに入っていなかった。調べてみると、xelatexというパッケージの中にあるらしい。したがって、xelatexをインストールした。
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という画像処理ツールがある。画像の表示、結合、フォーマット変換、サイズ変換、アニメーション作成など様々なツールのセット。プログラムから呼び出したり、コマンドラインやGUIから使うことができる。
Ubuntu 8.04には標準でインストールされていなかったので、インストールする。
$ sudo apt-get install 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
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
本記事では、同一のPCに2つのOSをインストールして、起動時にどちらを使うか選択する、いわゆる、デュアルブートの方法を記す。(注)一般的な方法ではなくて、お手軽に実現できる方法
UbuntuはDebianから派生したディストリビューションで使い勝手がよい。実際に、インストール作業は以下に記す通り、WindowsからGUIでインストールができるので非常に簡単になっている。
本記事では、アーカイブの作成・展開を行うツールの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
ちなみに、オプションの意味は以下の通り。
本記事では、ssh,sftp,scpの使い方をまとめる。これらは、ネットワーク上のホスト間で暗号化による安全な接続を確立して、操作を行うためのツールです。
sshはリモートホストにログインして、リモートホスト上のコマンドを実行するためのツールです。暗号化によって安全な接続を確立することができます。
sshで接続するサーバが既にあれば良いのですが、自分でサーバを立てる場合は本サイトの記事「sshサーバの設定」を参照ください。
基本的な書式は次の通りです。リモートサーバ(example.com)のログインアカウント(user)にログインする場合です。
$ ssh user@example.com
もしuser@example.com commandという書式で実行したら、ログインシェルの代わりにコマンドcommandが実行される。
指定できるオプションをいくつか紹介します。
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はネットワークを介してファイルを安全にコピーするツールです。データ転送にはsshを使うので認証が必要ですが、sshと同等の安全性が提供されます。
基本的な書式は以下の通りです。ローカルPCのファイル(file.txt)をリモートサーバ(example.com)の所定のディレクトリ(/home/user/)にコピーするときの書式です。
$ scp file.txt user@example.com:/home/user/
指定できるオプションをいくつか紹介します。
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の違いについて分かりやすく書かれている。
本記事では、open sshを使ったssh接続の設定、使い方をまとめる。
sshを使うと、ネットワークを介したコンピュータ同士で安全な情報のやりとりができる。
$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
サーバ側で作成した公開鍵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を確認する。
お気に入りのWebサイト(一部、外部サイト)へのリンクの一覧です。