アットウィキロゴ

インストールしたシステムについてのFAQ。

ログイン、ログアウト

ブート手順についてのFAQはBootFAQsに移動しました。

rootユーザーって何?

rootユーザー(スーパーユーザー)はUNIXに用意されている特別なユーザー。rootユーザーには、マシンを完全に掌握できるroot権限(管理者権限)が与えられる。
UNIXでは通常、そのユーザーにとって操作できるように所有権とパーミッションが設定されているファイルしか操作することができないが、root権限の元で実行されたプログラムは、ファイルの所有権に関わらずあらゆることを実行することができる。
そのため、全てのユーザーにとって共有されるシステム一般のファイルでも、rootになれば改変できる。
rootユーザーは非常に強力なので、常に使っているとあらぬ操作でシステムを動作不能にさせてしまう可能性がある。通常は普通のユーザーで操作を行い、システム全体を調整する必要があるときだけrootユーザーを使おう。

なぜ root で作業をしてはいけないのですか

root ユーザーに切り替えたい (su)

普通のユーザーでログインしてるときに root や他のユーザーに切り替わりたいときは、 su を実行すると別のユーザーになった上で新しいシェルを立ち上げてくれる。

$ su -
Password: (root のパスワードを入力)
# (rootのシェルになった)

root のシェルではコマンド入力行の $ が # と表示される。

# exit
$ (ユーザーに戻る)

前のユーザーに戻るときは exit でシェルを終了させる。

"root" に二つの意味があるみたいなんですが・・。

root というとシステム管理権限のあるスーパーユーザを指すことが多いけど、ファイルシステムの一番根元の事("/")も root と呼ばれる。
というわけで root ユーザ(もしくはスーパーユーザ)、ルートディレクトリなどと区別して記述するといいかと。

コマンド入力例の $ とか % とか # って何ですか?

コマンドを打ち込むユーザーの権限 (一般ユーザー/root ユーザー) のことです。
$ %は一般ユーザーでの操作。# は root 権限を持った スーパーユーザー (root ユーザー) での操作を示します。
相手に一般ユーザーでの作業なのかスーパーユーザーでの作業なのかを判別するのに使われます。

~/ って何ですか?

~/ はユーザのホームディレクトリのことです。例えば hoge という名前のユーザなら、/home/hoge が ~/ となります。

$ cd ~/
$ pwd
/home/hoge

(ただ単に cd とだけ打てばホームディレクトリに行けるけど、あくまで例として。)

終了/再起動はどうやったらできますか? (shutdown)

shutdown を使う。実行する前に root になっておこう。停止する場合は -h、再起動する場合は -r オプションをつける。

# shutdown -h now
# shutdown -r now

halt、reboot などのコマンドも使えます。終了時に root になる必要があるのは、root で実行するサーバーなどのデーモンを終了させる必要があるからです。

ログイン時やパスワード設定時にパスワードを入力しても何も表示されません。

コンソール上の各種パスワード入力プロンプトでは、入力した文字の情報が他の人にわからないように何も表示されないようになっています。 文字が表示されなくてもそのままかまわずパスワードを打ち、続いて Enter キーを打ちましょう。
打ち間違えたり、もう一度最初から入力したい時は Ctrl+u (=行削除) キーを押すと、入力した文字をすべて消去してパスワードを再入力することができます。

パスワードを削除したい (vipw)

vipw コマンドで:と:の間にはさまれた意味不明な文字列を削除する。vipw (=vi) の使いかたはしらべてね。
/etc/shadow を直接編集してもいいけれどもお薦めしない。そもそもパスワードを削除すること自体お薦めしない。


コンソール

端末エミュレータやらターミナルって何ですか?

簡単に言うと端末画面をエミュレートするソフトのこと。
決められた数しか開けない実際の端末とは違って好きなだけウィンドウを開けるのも利点の1つ。*1

端末エミュレータ(ターミナル)には色んな種類があるので代表的な物をいくつか紹介します。X Window System がインストールされているならば、どれか一つはインストールされていることでしょう。

定番

  • xterm (X Window System 付属)

デスクトップ環境に付いてる奴

CUI 画面で日本語を表示したい

fbterm をインストールします。設定ファイルは ~/.fbtermrc です。フォント幅が自動で計算されないので、等幅フォントしか使えません。font-width を半角幅、font-size を全角幅に設定すると、間延びせずに済みます。font-namesは英語フォントと日本語フォントをカンマで並べると良いでしょう。たとえば次のようです。

font-names=mono,Noto Sans Mono CJK JP
font-size=16
font-width=8

font-names の日本語フォント名は、以下のコマンドから探して下さい。

$ fc-list : lang=ja family

コンソールやターミナルの作業の記録を取りたい (script, tee)

script コマンドを使います。

script コマンド
記録を開始 $ script 記録保存用ファイル
記録を終了 $ exit

あるいは tee コマンドを使うと、特定のコマンドだけ出力を記録しておけます。

tee コマンド
コマンドの出力を記録 $ コマンド | tee 記録保存用ファイル

ビープ音(ベル)を消したい。

逆に beep というパッケージを入れるとビープ音をコマンドで任意に鳴らせる。


コマンドの基本

コマンドの打ち込み方が分かりません。

端末エミュレータ (ターミナル) というのを開いたあとで、コマンドをキーボード入力して Enter キーを押すと実行できる。

コマンド入力例の$/%/#はコマンドを打ち込むユーザの権限のことなので打つ必要なし。#がついたコマンドは root ユーザー になったあとで実行すること。

先生!! CUI の基礎的な使い方すらわかりません!

以下のページで簡単に解説してあります。

コマンドは一字一句全部入力しなければいけないのですか?

Tabキーを押してコマンド補完を使ってみよう。Bash入門の コマンド補完機能を使おう 参照。

??をしたいんだけどどうすればいいのだろう?

日経クロステック に Linux コマンド逆引き大全 というすんごいページがあるので参考にしよう。

どんなコマンドがあるんだろうか?

日経クロステック に Linux コマンド集 があるので参考にしよう。

ジャンル別になっているのでペラペラと読んでみると新たな発見があるかも。

このコマンド、どんなオプションがあるんだろうか?

JM を読んでみましょう。JM はコマンドについているオンラインマニュアルを日本語に翻訳してくれているありがたいプロジェクトです。
たとえばファイルをコピーするコマンド "cp" を検索するとこんな風に表示してくれます。
また、JM では最新のバージョンのコマンドに翻訳が追い付いていない場合があるので、端末エミュレータで man コマンドを使えるようになっておくといいでしょう。

$ man コマンド名

man コマンドの使い方を表示する方法は以下の通り。

$ man man

英文のものを表示したい場合は以下のように環境変数 LANG を一時的に変更して実行します。

$ LANG=C man man

man は UNIX 系 OS のほとんどで採用されている伝統的なマニュアルシステムですが、GNU 系のソフトウェアだと info というのを標準採用していたりもします。

$ info info

man も info も表示されない場合は、コマンドに --help とつけて呼び出すとヘルプが表示されることも。

$ cat --help

man ページにある番号の意味は何?

$ man bash

とすると BASH(1) と表示されます。この数字はセクションと呼ばれるものです。

数字の詳細については JM Project のセクションとは?参照のこと。
例えば mount コマンドに関するマニュアルは 2 と 8 の異なるセクションのマニュアルが用意されています。

$ man 2 mount
$ man 8 mount

上記のようにセクションを指定すると見ることができます。

コマンド補完を使おう。

コマンド補完を使うと正確に、そして早く入力ができるようになります。詳細は初心者のためのシェル(bash)入門を参照のこと。

コマンドを実行しようとすると command not found と言われます。

ターミナルでコマンドを実行しようと hoge と入力しても、bash: hoge: command not found などと言われてしまう場合。原因は以下の2通りが考えられます。

1. コマンドがそもそも存在しない。

この場合、そのコマンドの実行ファイルをインストールすれば使えるようになるはず。

2. コマンドは存在しても、PATH に含まれるディレクトリ以外の場所にある。

コマンドの実行ファイルが存在していても、環境変数 PATH の一覧に含まれてるディレクトリにないと見つけられない。
PATH の設定を確認するには echo $PATH と実行する。もし、実行ファイルがこれ以外の場所にあれば /home/huga/hoge とフルパスで打てば実行できる。*2
/sbin や /usr/sbin にある管理用のコマンドの場合は、root でない一般ユーザの PATH には含まれないので、一般ユーザはフルパスで打たない限り実行できない。

su で一般ユーザから root に切り替る際は、 su - とハイフンをつけずに su と実行すると、一般ユーザの環境設定がそのまま使われてしまうので注意すること。(参考)
なお、現在のディレクトリに hoge という実行ファイルがあったとして、それを実行したいときは ./hoge と打ち込む。("." は現在のディレクトリの意)*3
/usr/local/hoge1 とか /usr/local/hoge2 とかに実行ファイルを入れている場合、全てを PATH に追加するのが面倒なら /usr/local/bin などにシンボリックリンクを張る手が使えます。


Tips

フロッピーや CD-R に収まらないファイルを分割、結合したい。(split, cat)

分割は split コマンド、結合は cat コマンドが簡単です。
split -b 分割サイズ 分割するファイル 分割後のファイル先頭につける文字列 hoge.tar.gzを1440KBの「hoge_splited」で始まるファイルに分割してみる:

$ split -b 1440k hoge.tar.gz hoge_splited. 
$ ls 
hoge.tar.gz hoge_splited.aa hoge_splited.ab hoge_splited.ac

cat 結合したいファイル >> 結合後のファイル

$ cat huga_splited.aa huga_splited.ab >> huga.tar.gz

あるいは * を用いて

$ cat huga_splited.* > huga.tar.gz
分割/結合 コマンド
split (分割) $ split -b 分割サイズ 分割するファイル 分割後のPREFIX
cat (結合) $ cat 結合するファイルのPREFIX .* >> 結合後のファイル名

分割サイズのデフォルト単位はバイトだけど、サイズの後に k や m をつければKB(=1024B)やMB(=1024KB)になります。

テキストファイルの中の文字列を検索したいんですが

grep コマンドを使うと、指定した文字列を含む行を画面に表示します。ディレクトリ内のファイル全てから検索する場合は -r オプションをつけます。

grep コマンド
ファイルから検索 $ grep 検索する文字列 ファイル
ディレクトリから検索 $ grep -r 検索する文字列 ディレクトリ

ディレクトリから検索するときは「ファイル名:一致する行」のように表示されます。

テキストファイルの中の文字列を別の文字列に置換したいんですが

sed コマンドを使うと、ファイルの中の特定の文字列を別の文字列に置換して画面に表示します。

sed コマンド
置換 $ sed -e "s/置換したい文字列/置換後の文字列/g" ファイル

-e オプションを複数指定すると複数置換します。出力を表示せずにファイルに保存したい場合はリダイレクトします。

コマンド表示結果の2番目や3番目の部分だけ抜き出したいんですが (awk)

awk コマンドを使うと、空白などで区切られた表示結果の2列目や3列目の部分だけを抜き出して画面に表示します。

例えば コマンド | awk '{print $2}' と入力すると、コマンドの出力のすべての行のうち、何か(デフォルトは空白)で区切られている 2 番目(=$2)だけを抜き出して表示します。

ファイル名の文字コードを一括変換したい

SMBCHARTOOL が便利です。

  • 日本Sambaユーザ会 - SMBCHARTOOL

    SMBCHARTOOLは、Sambaのコンパニオンツールで、Samba サーバ上の日本語ファイル名の文字コードを一括変換することで、Sambaサーバを運用する管理者を支援するツールです。
    現在は euc, hex, jis, cap, sjis の各文字コードに対応しています。また、変換だけでなく旧バージョンにおける文字化けに対しても、修復します。
    convmv ってのも。

設定ファイルを書き換えたい

各種テキストエディタ を使用します。
Unix 系 OS では vi系エディタを使うのが伝統ですが、初心者には難しいかもしれません。Linux では nano が簡単です。
GUI のテキストエディタもありますが、X サーバが立ち上がらなくなってしまった時にも困らないよう、 CUI のテキストエディタに慣れておいた方がよいでしょう。

システムのタイムゾーンを変更したい。

タイムゾーンを変更するには、root になって以下のコマンドを実行します。

タイムゾーン変更 コマンド
Red Hat 系 # /usr/sbin/timeconfig
Debian 系 # /usr/sbin/tzconfig

知らない間にcoreという名前のファイルができてしまった

知らない間にcoreという名前のファイルができてしまった(@IT)

load average はどうやって調べるんですか? (top, uptime, xload)

ロードアベレージを調べるには top , uptime , xload などを使います。

異様にメモリを食っているようなのですが、問題ないでしょうか?

たいていの場合、使っていない実メモリをキャッシュとして有効活用しているだけなので、問題はありません。
free コマンドを実行してメモリの使用状況を確認してください。

$ free
             total       used       free     shared    buffers     cached
Mem:        256568     251608       4960          0      16992      99836
-/+ buffers/cache:     134780     121788
Swap:       196520      29488     167032

出力の2行目 (Mem: の行) を見ると、free の欄が 4960 となっていて total に比べてかなり小さく、メモリ使用率がかなり高くなっているように見えます。
が、キャッシュとして使用している分を除いた値 (3行目の free の欄) を見ると121788 なので、半分近く空いています。この場合はそれほど問題ではありません。メモリが必要になるとキャッシュ部分がクリアされて、使用できるようになります。

  • Linux のメモリー管理(メモリ−が足りない?,メモリーリークの検出/防止)

    Linux(っていうか UNIX かな?) では, 各プロセスにメモリを割り振った残りをバッファ(buffer)とキャッシュ(cache)に利用して, ディスク入出力の負荷を減らしている. そのため, free コマンド等で見える残りメモリ−(free)は 1M 程度の瞬間的な使いまわしに対処する程度しか残っていない事が多い.
    この例では, 実質的な残りメモリ−は, バッファとキャッシュに転用された分も考慮すると free+buffers+cached で計算できる. 上の例で云うと free+buffers+cached = 1628+20112+126848 = 148588. まだまだ, メモリ−には余裕がある.


知っているとちょっと便利なコマンド

ファイルの中身を観覧: less

ファイルの内容の閲覧。

$ less [ファイル名]

スペースキーで進む、bキーで戻る、qキーで終了。似たようなのに more (次に進むだけで、元に戻れない) とか lv (国際化版) とかもある。

less をシフトJIS対応にして、カラー表示したい

たんに SJIS や EUC-JP で表示したい場合は lv をインストールすればいいのですが、さらにソースコードをカラー表示したい場合を考えます。GNU source-highlight と nkf をインストールします(以下は deb 系ディストリの場合)。

$ apt install nkf source-highlight

source-highlight は自動判定が賢くないので、カスタマイズするために、キーワードファイルをホームにコピーします。パーミッションが root のままだと書けないので変えます。

$ sudo cp /usr/share/source-highlight/* ~/.local/share/source-highlight/
$ sudo chown -R $USER:$USER ~/.local/share/source-highlight/

.local/share/source-highlight/lang.map をテキストエディタで開いて、カラー表示したいファイルを加えます。

.profile = sh.lang
.bashrc = sh.lang
.bash_profile = sh.lang

source-highlight の起動スクリプトは lessの 環境変数で指定するので、~/.profile などに設定します。

# source-highlight の個人設定
export SOURCE_HIGHLIGHT_DATADIR="$HOME/.local/share/source-highlight"

# less で自動色付け
export LESSOPEN="| ~/bin/lessopen.sh %s"
export LESS="-R"

fbterm でも有効化したい場合は ~/.bashrc に設定します。

# fbtermの256色カラー有効化
if [ "$TERM" = "linux" ] && [ -n "$FBTERM_TTY" ]; then
    export TERM=fbterm
fi

起動スクリプト ~/bin/lessopen.sh を以下の内容で保存して、chmod +x で実行可能にして、ログインし直して下さい。

#!/bin/sh
/usr/share/source-highlight/src-hilite-lesspipe.sh $1 | nkf -w -d

システム情報の表示: uname

システム (OS 名など) の情報を表示。

$ uname

すべての情報を表示させるには、 -a オプションを使用。

$ uname -a

現在時刻を表示: date

現在時刻を表示。

$ date

カレンダーを表示: cal

カレンダーを表示。

$ cal

数ヵ月分まとめて表示させるには、 -* オプションを使用。

最終更新:2026年06月23日 10:08

*1 仮想コンソールや GNU Screen を使えば X でなくても同じことは可能。

*2 または PATH にそのディレクトリを加えることでも対応できる。こうする場合は export PATH=$PATH:/home/huga と実行する。常に設定しておく場合は .bashrc とかの初期化スクリプトに書いておけばOK。

*3 ./ とつける必要があるのは意図しないファイルが実行されるのを防ぐため。((たとえば ls という名前の実行ファイルがあったとして、ls コマンドで中身を見ようとしたときにそれが実行されると困る。こういうときは ./ls と打ち込めばOK))