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

ラベル 設定ファイル の投稿を表示しています。 すべての投稿を表示
ラベル 設定ファイル の投稿を表示しています。 すべての投稿を表示

2008年10月27日月曜日

lessの文字化け このエントリーを含むはてなブックマーク

本記事では、ターミナルでlessで日本語の文字化け対策についてまとめる。

lessはファイルを読み込むためによく使うコマンドだが、デフォルトでは日本語のテキストは文字化けしてしまう。代わりにlvコマンドを使えば良い。

~/.bashrcに次の行

alias less='lv'
を挿入して、lessのエイリアスをlvとしておく。

こうすると、(代わりにlvが実行されるので)今まで通りlessと入力してファイルの閲覧ができる。

2008年10月26日日曜日

viの設定ファイル このエントリーを含むはてなブックマーク

本記事は、エディタviの設定ファイル.vimrcの設定例をまとめる。以下の内容のファイル.vimrcをホームディレクトリに置いておくこと。 設定例:
set encoding=utf-8
set fileencoding=utf-8
set fileencodings=utf-8,cp932,iso-2022-jp,euc-jp

set backspace=2
set tabstop=2
set shiftwidth=4
set expandtab
   
highlight tabs ctermbg=green guibg=green

set list
set number
set ruler
set smartindent

2008年10月25日土曜日

プロンプトをカスタマイズする このエントリーを含むはてなブックマーク

本記事では、端末で作業する人にはお馴染みのプロンプトの表示形式を変更する方法をまとめる。 □ プロンプトとは 下の端末の[.....]$という文字列の部分のことです。シェルが入力待ちであることを表しています。この文字列はユーザの好きなようにカスタマイズできます。例えば、ユーザ名、ホスト名、ワーキングディレクトリ名、現在時刻、日付など様々な情報を埋め込むことができます。
gnome-terminal
□ 設定の方法 設定は.bashrcに書き込みます。PS1というシェル変数に文字列を登録してexportするだけです。上の端末のように、[ユーザ名@ホスト名 現在時刻]$ という文字列にするには、export PS1="[\u@\h \t]$ "という1行を挿入するだけでOKです。\u, \h, \t はそれぞれユーザ名、ホスト名、現在時刻を表す特別な記号です。こういった記号の一覧は@ITの「bashのプロンプトを変更するには」に載っています。 □ 補足 設定ファイルに書き込んだ後は、端末を立ち上げ直すか、あるいは
$source ~/.bashrc
を実行して設定ファイルを読み込んでください。

.bashrcで初期設定 このエントリーを含むはてなブックマーク

前回の記事「.bash_profileで環境変数を設定する」に引き続き、本記事は.bashrcの設定についてまとめます。2つの設定ファイルはともにシェルに初期設定を登録するためのファイルですが、.bash_profileは基本的にログイン時にのみ読み込まれるのに対して、.bashrcはシェルが起動する度に読み込まれるのでした。

.bashrcとは

シェルを起動する度に読み込まれる設定ファイルです(ホームディレクトリに置いておきます)。.bashrcでは、主にエイリアスやユーザ定義関数、シェルの起動の度に実行するコマンドなどを登録します。

umask

ファイル作成したときは、読み書き実行に関して誰が行えるか(ファイルへのアクセスの権限)を取り決めることができます。これをパーミッションといいます。ファイル(file.txt)のパーミッションは小文字のエルをオプションとして指定することで、lsコマンドで確認できます。

$ ls -l file.txt
-rw-r--r-- 1 hoge hoge 3 2008-10-25 20:05 file.txt

この出力結果の見方は「パーミッションとは」に分かりやすい説明が載っています。

.bashrcに

umask 022
という1行を入れておくと、ファイルを新規作成したときに、そのファイルのパーミッションは644になります。すなわち、作成したユーザは読み書きができますが、それ以外の人は読むことしかできません。

fortune

fortuneは、実行する度に格言やジョークを端末に表示するプログラムである。シェルを立ち上げる度に、自動的にfortuneを実行するようにbashrcに書き込んでおくと楽しい。apt-getなどで、

# apt-get install fortune-mod 
インストールする。

ちなみに、fortuneの語源はフリー百科事典『ウィキペディア(Wikipedia)』によると、「フォーチュン・クッキー(fortune cookie)とは、中に運勢の書かれた紙片の入った菓子である。アメリカ合衆国の中華料理店では殆どの店で食後に出される。」とのこと。

フォーチュンクッキーを開けたところ(出典:Wikipedia

.bashrcの設定例

# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
#alias ls='ls -F --color=auto'
alias ls='ls --color=auto --ignore-backups --human-readable -vxX '
alias eng='LANG=C LANGUAGE=C LC_ALL=C'

# don't put duplicate lines in the history. See bash(1) for more options
export HISTCONTROL=ignoredups
# ... and ignore same sucessive entries.
export HISTCONTROL=ignoreboth


# Source global definitions
if [ -f /etc/bashrc ]; then
     . /etc/bashrc
fi

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ]; then
 . /etc/bash_completion
fi

umask 022

/usr/games/fortune

ただし、ssh接続されるサーバ上のアカウントで/usr/games/fortuneの行を書いていたら そのアカウントに対してscpできない。回避方法としては、~/.bashrcでなく~/.bash_profileなどに書いておく(そうしたら、端末を立ち上げるごとでなくて、ログインにつき1回しかfortuneは実行されないが)。

ディストリビューションによっては、/usr/games/fortuneではなくて/usr/bin/fortuneかもしれない。fortuneをインストールしたが、実行ファイルの場所が分からないときは

$ which fortune
を実行して場所を確認すること。

.bash_profileで環境変数を設定する。 このエントリーを含むはてなブックマーク

バッシュシェルを使っている場合、ホームディレクトリに

.bashrc
.bash_profile      <----(誤)Ubuntu 8.04では.profileを優先して読み込みます。
というファイルがある場合、シェルはそのファイルを読み込んで設定を登録します。.bashrcはシェルが起動する度(例えば、ktermなどの端末を立ち上げる度)に読み込まれる一方、.bash_profileは基本的にログインしたときにだけ読み込まれます。

(注)ドットで始まるファイルはlsコマンドだけでは通常は表示されません。lsコマンドにaオプションを付けて

$ ls -a
と実行すれば、ドットで始まるファイルなどすべてのファイルが表示されます。

.bash_profileでできること

.bash_profileに環境変数の設定をして、シェルの動作を変えることができます。

環境変数の設定を確認する

$ printenv | less
を実行すると、設定されている変数の一覧が表示されます。

例えば、以下のように左辺に環境変数で、右辺にその設定値として表示されます。

SHELL=/bin/bash
TERM=xterm
http_proxy=yyy
USERNAME=xxx
COLORTERM=gnome-terminal
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
LANG=ja_JP.UTF-8

設定ファイルの読み込まれる順番

まず最初はシステムの設定/etc/profileが読み込まれます(これはユーザの設定ではないので、一般ユーザは編集できません!)。その次に、下に示した順番でユーザごとの設定ファイルが読み込まれます。

  1. ~/.bash_profileを読み込む。
  2. ~/.bash_profileがなければ~/.bash_loginを読み込む。
  3. さらに~/.bash_loginがなければ~/.prfileを読み込む。
したがって、ホームディレクトリに.bash_profileを置いておけば良いのです。

環境変数を設定する。

~/.bash_profileに以下のように書き込む。

書式の例:

環境変数1=設定値1
環境変数2=設定値2
環境変数3=設定値3
…
export 環境変数1 環境変数2 環境変数3 …

.bash_profileの設定例:

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
     . ~/.bashrc
fi

# User specific environment and startup programs

ENV=$HOME/.bashrc
USERNAME="xxxx"
PATH=$PATH:"/$HOME/bin"

export USERNAME ENV PATH

.bash_profileを読み込む

ログアウトして、再ログインする。あるいは以下のコマンドで設定を更新する。

$source ~/.bash_profile

その他

シェル変数を設定して、バッシュの動作を変えることもできる。 例えば、@ITの「bashのカスタマイズ」が参考になります。

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月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 &

キーワード

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

過去の記事

筆者について

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