コンテンツにスキップ

シェルの変更について

さくらでレンタルサーバーを借りたが、デフォルトのシェルが使い慣れたbashではなかったので変更した際のメモ。

現在のシェルを確認

% echo $SHELL
/bin/csh

環境変数 $SHELL に現在のシェルのパスが入っている。

変更できるシェルの確認

% cat /etc/shells 
# $FreeBSD: release/9.1.0/etc/shells 59717 2000-04-27 21:58:46Z ache $
#
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/sh
/bin/csh
/bin/tcsh
/usr/local/bin/bash
/usr/local/bin/rbash
/usr/local/bin/zsh
/usr/local/bin/rzsh
/usr/bin/passwd

bashが使えることが確認できる。

シェルを変更する

% chsh -s /usr/local/bin/bash

chsh はログインシェルを変更するコマンド。 -s オプションを付けないとインタラクティブに動作する。

ログインシェルはユーザー毎に設定できるログイン時に起動されるシェルのことで、 /etc/passwd ファイルで設定されている。

chsh はこのファイルを書き換える。

bashの設定ファイルを書く

ログインシェルをbashに変更したら

  • .bash_profile
  • .bashrc

など、いつもの設定ファイルを記述する

再度サーバーにログイン

設定を終えて再度サーバーにログインするとbashが立ち上がる。

メモ

% exec /usr/local/bin/bash -l

でbashをログインシェルとして立ち上げることもできるが設定ファイルは変わらないのでログインの度にデフォルトのシェルに戻る。

exec コマンドは引数で渡された処理にプロセスを置き換える。

よって上記コマンドが実行されるとbashがログインシェルとして置き換わる。