Kozupon.com    
 
 Linuxコラム Q&A


Q1.コンソールログインした時、タイプミスをしてバックスペースを押したのですが" ^H " なんて文字が出てしまいます。←キーで戻ろうとすると" ^[[D "なんてこれまた変な文字が出ます。どうしたらいいでしょうか?

A1.通常は、ログイン時にDeleteキーとBackspaceキーの機能が割り当てられています。したがって、Deleteキーで戻って再入力すれば良いはずです。


Q2.パソコンの電源を切りたいのですが、Linuxの場合、いきなり電源を落としても平気ですか?

A2.いきなり電源を切るのは避けましょう。ディスクに保存されていないデータが消える可能性があります。必ず、以下のコマンドを入力してメッセージを見て電源を消しましょう。

# shutdown -h now

もしくは、

# halt


Q3.コマンドプロンプト表示でしばらくすると、画面が消えてしまいますが、何かキーを押す と元には戻ります。ずっと表示させておくことは可能ですか?

A3.Linuxのコンソールは、デフォルトでブランク画面に切り替わるようになっています。切り 替えを止めたければ、以下のコマンドを実行してください。

# setterm -blank 0

これで、ブランク画面に切り替わるのが無くなりますが、再起動したときには元に戻ってしまいま す。再起動時にも有効にしたい場合は、/etc/rc.d/rc.localファイルに、このコマンドを追加しま しょう。


Q4.サウンドカードの設定って、どうやってやるんでしょ?

A4.Linuxのカーネルには、フリーのサウンドカードドライバが含まれています。インストール時に自動で設定されない場合は、手動設定が必要です。以下の手順で行ってください。

# /usr/sbin/sndconfig

このコマンドで、サウンドカードを設定します。設定が終わったら、

# /etc/rc.d/init.d/sound start
あるいは、
# /etc/rc.d/init.d/sound restart

これで、サウンドが有効になるはずです。


Q5.ハードディスクのアクセスが遅いような気がしてしょうがないのですが?

A5.IDEハードディスクの場合、設定がPIO転送設定になっている場合があります。ハードディスクとマザーボードがDMA転送に対応しているので有れば、以下のコマンドで状態を調べてDMA転送モード設定にしてください。

# hdparm -t -d /dev/hda

このコマンドで、DMAがOFFの場合は、

# hdparm -t -d 1 /dev/hda

これで、DMAがONになるはずです。エラーが出力されずアクセスが早くなった場合は、/etc/rc.d/rc.localにこのコマンドを追加してください。再起動後も有効になるはずです。


Q6.rootのパスワードを忘れてしまったのですがどうしましょ?

A6.rootのパスワードを忘れると、シャットダウンも出来ないはずですから、しょうがないのでCtrl+Alt+Deleteキーで再起動します。そして、以下のようにシングルモードで起動します。
LILOのプロンプトから、

LILO boot: linux 1

もしくは、

LILO boot: linux single

と入力して、起動します。起動後、コンソールから、

# passwd root

でパスワードを再設定してください。


Q7.自分が現在使ってるシェルが知りたいのですが?

A7.今自分が使っているシェルを知りたいときには、以下のようなコマンドを使います。

# echo $SHELL

これで、解りますがLinuxの場合、デフォルトはbashです。


Q8.現在使っているシェルを変更したいのですが?

A8.現在使ってるシェルを変更する場合は、以下のコマンドを使います。

# chsh

さらに、Linuxconfでも設定可能です。


Q9.コマンドプロンプトをカスタマイズしたいのですが?

A9.プロンプトは通常、$が一般ユーザー、#がルートユーザーを表しています。プロンプトの変更は使ってるシェルによって違いますが、bashを例に挙げて説明すると、PS1と言うシェル変数を使用します。例えば、DOSプロンプトのようにしたければ、

$ PS1="\w>"

のように、入力します。以下に表示文字の種類を記載します。

\a  ASCIIコードのベル文字(07)
\d  曜日月日のフォーマット日付
\e  ASCIIコードのエスケープ文字
\h  ホスト名
\n  改行
\r  復帰
\s  シェルの名前
\t  HH:MM:SS形式フォーマットの時間表示(24時間)
\T  HH:MM:SS形式フォーマットの時間表示(12時間)
\@  HH:MM形式フォーマットの時間(AM/PM)
\u  ユーザ名
\v  bashのバージョン表示
\V  bashのバージョンとパッチレベル表示
\w  カレントディレクトリ(/から表示)
\W  カレントディレクトリ
\!  入力するコマンドのヒストリー番号
\#  入力するコマンドのコマンド番号
\\  バックスラッシュ
\[  表示されない文字列の開始
\]  表示されない文字列の終わり

例えば、

$ PS1="[\u@\h:\w]$"

[yamada@hoge1:/usr/local]$

こんな感じになります。しかし、このままではlogoutしたら元に戻りますので、ユーザーの.bashrcに、このコマンドを1行書き加えます。


Q10.他のユーザーがログインしてるかどうか確かめたいのですが?

A10.他のユーザーがログインしてるかどうかは、以下のコマンドを使います。

# who

シャットダウンやリブートを行う場合には、あらかじめ他のユーザがログインしているかどうか確かめましょう。

さらに、各ユーザがどのような処理をしているかは、wコマンドを使う。

# w


Q11.フロッピーをフォーマットしたいのですが、どうするんでしょ?

A11.rootユーザーで以下のコマンドを実行します。

# fdformat /dev/fd0
# mkfs -t msdos /dev/fd0


Q12.Linuxのパーティションが削除できなくなりました。どうしましょ?

A12.Linuxのfdisk等で作ったパーティションには、DOSのFDISKで消せない物があります。この場合には、Linuxのインストールディスクを立ち上げてfdiskで消しましょう。


Q13.パーティションは消えたのですが、LILOが残っちゃいます。どうしましょ?

A13.マスターブートレコードにひっついたLILOは、DOSのディスクを使ってコマンドラインから"FDISK/MBR"を実行して消しましょう。


Q14.日本語が表示されないで化けてしまいます。どうしたらいいでしょ?

A14.これは、環境変数LANGが設定されていないだめです。したがって、以下のコマンドを実行します。

# export LANG=ja_JP.ujis

逆に、英語モードにするので有れば、

# export LANG=C

とします。


Q15.Shift JISファイルをEUCにしたいのですが出来るんでしょうか?Windowsで作ったテキストファイルが、Unixで正しく表示できません。

A15.出来ます。以下のコマンドを実行することによって変換されます。

# nkf -e test.txt > newfile.txt

これは、test.txtと言うテキストファイルをnewfile.txtと言う日本語EUCに変換します。

ちなみに、以下のようなパラメータオプションで違うコードにエンコードできます。

-e  結果をEUC-JPで出力します。
-j  結果をISO-2022-jpで出力します。
-s  結果をShift-JISで出力します。
-u  結果のバッファリングを行わない。


Q16.一台のホストに複数のIPアドレスを割り当てることはできますか?

A16.出来ます。以下のコマンドを実行することによって可能です。

1)IPアドレスの設定

# ifconfig eth0:0 xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx

# ifconfig eth0:1 xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx

もっとIPアドレスが必要な場合は、同じ要領で追加する。

2)設定状態の確認

# ifconfig -a

3)設定を削除する場合(eth0:1に設定したIPアドレスの削除)

# ifconfig eth0:1 down


Q17.ログファイルの最新の情報を読むにはどうすればいいですか?

A17.tailコマンドを使えば可能です。

● ただ単にログファイルの新しいログを表示する。

# tail /var/log/messages

● 新しいログの行数を指定して表示する。

# tail -30 /var/log/messages

この場合は、ファイルの終わりから30行分表示する。

● 新しいログをリアルタイムに表示する。

# tail -f /var/log/messages

で新しいログが出力されるたびに表示される。
リアルタイムモードを終了させる時は、CTRL+Cで行う。

● 逆に、先頭部分を表示したい場合は、

# head /var/log/messages

で行う。


Q18.目的のファイルがどこにあるか解らないのですが、探し方を教えてください?

A18.locateコマンドを使います。

# locate sendmail.cf

/etc/mail/sendmail.cf
/usr/local/src/sendmail-8.12.4/cf/cf/sendmail.cf

このように検索結果が出ます。


Q19.ホームディレクトリに即座に戻すには?

A19.cdだけで戻れます。また、ホームディレクトリ全体は~ チルダで表すことが出来ます。

# cd ~/filedir

で自分のホームディレクトリのファイルにアクセスが出来る。


Q20.煩わしいWindowsからUnix側へ転送したテキストの行末コード^Mを消すには?

A20.WindowsからUnixへFTP等で転送した場合行末コード^M(CRに相当する)に変換されてしまう。

プラットフォーム       改行コード
Linux(UNIX)        LF
MacOS            CR
DOS(Windows)      CR+LF

# tr -d "\r" < [元ファイル] > [新ファイル]

これで^Mを削除することは可能である。


Q21.RedHat系(Fedra、WhiteBOX、CentOS等)でセキュリティレベルをインストール後に変更するには?

A21.以下のように、コマンドを発行する。

# lokkit

このコマンドを発行して、セキュリティ、「enable」、「desable」を設定する。


Q22.VineLinuxのapt-getを使うときに自ネットワークの串が邪魔になって通信できない。Proxy越えって出来るの?

A22.以下のように、/etc/apt/apt.confを編集すれば出来る。

省略
Acquire
{
  http
  {
    Proxy "http://Proxyサーバ:8080";
  }
  ftp
  {
    Proxy "http://Proxyサーバ:8080";
  }
}
省略


Q23.FTP鯖無しで、SSH鯖しか動いてない鯖へファイルを転送したい、どうすればいいだろう?

A23.SCPを使えばいい。SCPは、ssh-clientsを入れれば自動的にインストされる。使い方は以下のように使う。

転送したいファイルのカレントフォルダへチェンジする。
# scp <ファイル名> <ユーザ名>@<転送目的のホスト名>:<転送先のホルダのフルパス>
パスワードを求められる:xxxxxxxx

フォルダ丸ごと転送する場合。
# scp -r <フォルダ名> <ユーザ名>@<転送目的のホスト名>:<転送先のホルダのフルパス>
パスワードを求められる:xxxxxxxx


Q24.VineLinux4.0付属のThunderbird1.5を使ってメール送信するとヘッダーの User−Agent: のセクション部分が化けてしまう?

A24.多分 Linux Thunderbirdのバクでしょう。したがって、 User−Agent: セクションを上書きして以下の方法で対応する。

$ cd $HOME/<ユーザー>/.thunderbird/<任意のコード>.default/
$ vi user.js

user_pref("general.useragent.override", "Thunderbird 1.5 (X11/2006-10) Vine Linux 4.0");

$ chmod 755 user.js

以上のように、user.jsにヘッダー情報を記入してThunderbirdをリスタートすれば化けてる文字が上書きされる。尚、元々ユーザ定義するための user.js ファイルは存在しないので作る必要がある。


Q25.特定のサービスが落ちてメッセージログに以下のkernelエラーが出る。ふょっとしてやばいのでは。

Dec 14 05:00:01 intra2 kernel: Unable to handle kernel paging request at virtual address 08000018
Dec 14 05:00:01 intra2 kernel: printing eip:
Dec 14 05:00:01 intra2 kernel: c015e2a0
省略

A25.SWAPに関わるエラーと思われる。SWAPに関わるkernelのバグもしくはハードディスクのSWAPパーティションがぶっ壊れてる。kernelのバグである場合は、パッチ当てかkernelのアップデートを行う。ハードディスクの場合は、早めに交換した方が良い。


Q26.viを使用していてバックアップファイル( ファイル名~ )を作らない方法は?

A26.$HOME直下に、.vimrcファイルを作って以下を記載しておく。

$ vi $HOME/.vimrc
set nobackup


Q27.再インストールしないで、VineLinux3.xから4.0へアップグレードしたい?

A27.以下の手順で行えば出来る。ただし、ブートローダーをLILOからGRUBにアップグレードする場合は、失敗すると起動しなくなるので注意すること。

1)3.xの状態で最新の状態にFIXする
# apt-get update
# apt-get upgrade

2)apt-lineを4.0のリポジトリへ変更する
# vi /etc/apt/sources.list

##
## Vine Linux 4.0 FTP
##
# (master)
rpm [vine] http://updates.vinelinux.org/apt 4.0/$(ARCH) main plus updates nonfree
rpm-src [vine] http://updates.vinelinux.org/apt 4.0/$(ARCH) main plus updates nonfree
# (jaist mirror)
rpm [vine] http://ftp.jaist.ac.jp/pub/Linux/Vine/apt 4.0/$(ARCH) main plus updates nonfree
rpm-src [vine] http://ftp.jaist.ac.jp/pub/Linux/Vine/apt 4.0/$(ARCH) main plus updates nonfree

# (kddlabs mirror)
rpm [vine] http://ftp.kddlabs.co.jp/pub/Linux/distributions/Vine/apt 4.0/$(ARCH) main plus updates nonfree
rpm-src [vine] http://ftp.kddlabs.co.jp/pub/Linux/distributions/Vine/apt 4.0/$(ARCH) main plus updates nonfree

3)aptを新しくする
# apt-get update
# apt-get install apt

4)4.0へ本格的にアップグレード
# apt-get dist-upgrade

5)ブートローダーをLILOからGRUBへ変更する
# apt-get install grub
# grub-install hd0

6)再起動する


Q28.ディスク領域でファイルが圧迫されてるディレクトリを見つけたい?

A28.以下のように du コマンドを使うと良いだろう。単位は、Mバイトだ。

root@hiro:/# du -msc /usr /dev /bin /etc /home /var /sbin /sys /tmp
1371 /usr
1 /dev
5 /bin
6 /etc
44 /home
39 /var
8 /sbin
0 /sys
24 /tmp
1496 total


Q29.FTPサイトのディレクトリ以下を丸ごとダウンロードするには?

A29.wgetコマンドに-r(再帰的)オプションを付けてやれば簡単にダウンロード出来る。例えば、

root@hiro:/tmp# wget -r -L -np -nc -l 100 http://www.hoge,jp/download/

とやれば、再帰的かつ相対リンクをたどって、ただし親ディレクトリはたどらない。既にダウンロードしたファイルは上書きしなくて、ディレクトリの深さをMax100までたどる。
www.hoge.jpと言うフォルダを勝手に作り、そこに保存される。


Q30.rm -Rf * と打っても Argument list too long と怒られてしまってファイルとディレクトリが消えない場合の対応?

A30.xargsコマンドを使う。例えば、

root@hiro:~# echo * | xargs rm -Rf


Q31.パーミッションを変えないで、ファイルサイズを0にクリアする方法

A31.以下のコマンドを使う。例えば、

root@hiro:~# :> file.log 又は、

root@hiro:~# echo -n > file.log 又は、

root@hiro:~# copy /dev/null file.log


Q32.Linuxのコマンドレベルでディスクをコピーする方法

A32.以下のコマンドを使う。

1)1ドライブの場合
フロッピードライブが1つの場合には,まず最初に次のように入力する。
# dd if=/dev/fd0 of=fdtmp

次にプロンプトに復帰したら,新しいフロッピーをセットして次のコマンドを実行する。
# dd if=fdtmp of=/dev/fd0

2)2ドライブの場合
ドライブが2基搭載されている場合は,次のコマンドを入力するだけでよい。
# dd if=/dev/fd0 of=/dev/fd1

以上


 
 
 



Copyright 2010 Kozupon.com.