ブート手順についてのFAQはBootFAQsに移動しました。
rootユーザー(スーパーユーザー)はUNIXに用意されている特別なユーザー。rootユーザーには、マシンを完全に掌握できるroot権限(管理者権限)が与えられる。
UNIXでは通常、そのユーザーにとって操作できるように所有権とパーミッションが設定されているファイルしか操作することができないが、root権限の元で実行されたプログラムは、ファイルの所有権に関わらずあらゆることを実行することができる。
そのため、全てのユーザーにとって共有されるシステム一般のファイルでも、rootになれば改変できる。
rootユーザーは非常に強力なので、常に使っているとあらぬ操作でシステムを動作不能にさせてしまう可能性がある。通常は普通のユーザーで操作を行い、システム全体を調整する必要があるときだけrootユーザーを使おう。
普通のユーザーでログインしてるときに root や他のユーザーに切り替わりたいときは、 su を実行すると別のユーザーになった上で新しいシェルを立ち上げてくれる。
$ su - Password: (root のパスワードを入力) # (rootのシェルになった)
root のシェルではコマンド入力行の $ が # と表示される。
# exit $ (ユーザーに戻る)
前のユーザーに戻るときは exit でシェルを終了させる。
root というとシステム管理権限のあるスーパーユーザを指すことが多いけど、ファイルシステムの一番根元の事("/")も root と呼ばれる。
というわけで root ユーザ(もしくはスーパーユーザ)、ルートディレクトリなどと区別して記述するといいかと。
コマンドを打ち込むユーザーの権限 (一般ユーザー/root ユーザー) のことです。
$ %は一般ユーザーでの操作。# は root 権限を持った スーパーユーザー (root ユーザー) での操作を示します。
相手に一般ユーザーでの作業なのかスーパーユーザーでの作業なのかを判別するのに使われます。
~/ はユーザのホームディレクトリのことです。例えば hoge という名前のユーザなら、/home/hoge が ~/ となります。
$ cd ~/ $ pwd /home/hoge
(ただ単に cd とだけ打てばホームディレクトリに行けるけど、あくまで例として。)
shutdown を使う。実行する前に root になっておこう。停止する場合は -h、再起動する場合は -r オプションをつける。
# shutdown -h now # shutdown -r now
halt、reboot などのコマンドも使えます。終了時に root になる必要があるのは、root で実行するサーバーなどのデーモンを終了させる必要があるからです。
コンソール上の各種パスワード入力プロンプトでは、入力した文字の情報が他の人にわからないように何も表示されないようになっています。
文字が表示されなくてもそのままかまわずパスワードを打ち、続いて Enter
キーを打ちましょう。
打ち間違えたり、もう一度最初から入力したい時は Ctrl+u (=行削除) キーを押すと、入力した文字をすべて消去してパスワードを再入力することができます。
vipw コマンドで:と:の間にはさまれた意味不明な文字列を削除する。vipw (=vi) の使いかたはしらべてね。
/etc/shadow を直接編集してもいいけれどもお薦めしない。そもそもパスワードを削除すること自体お薦めしない。
簡単に言うと端末画面をエミュレートするソフトのこと。
決められた数しか開けない実際の端末とは違って好きなだけウィンドウを開けるのも利点の1つ。(*1)
端末エミュレータ(ターミナル)には色んな種類があるので代表的な物をいくつか紹介します。X Window System がインストールされているならば、どれか一つはインストールされていることでしょう。
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 コマンドを使います。
| script | コマンド |
| 記録を開始 | $ script 記録保存用ファイル |
| 記録を終了 | $ exit |
あるいは tee コマンドを使うと、特定のコマンドだけ出力を記録しておけます。
| tee | コマンド |
| コマンドの出力を記録 | $ コマンド | tee 記録保存用ファイル |
逆に beep というパッケージを入れるとビープ音をコマンドで任意に鳴らせる。
端末エミュレータ (ターミナル) というのを開いたあとで、コマンドをキーボード入力して Enter キーを押すと実行できる。
コマンド入力例の$/%/#はコマンドを打ち込むユーザの権限のことなので打つ必要なし。#がついたコマンドは root ユーザー になったあとで実行すること。
以下のページで簡単に解説してあります。
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 bash
とすると BASH(1) と表示されます。この数字はセクションと呼ばれるものです。
数字の詳細については JM Project のセクションとは?参照のこと。
例えば mount コマンドに関するマニュアルは 2 と 8 の異なるセクションのマニュアルが用意されています。
$ man 2 mount $ man 8 mount
上記のようにセクションを指定すると見ることができます。
コマンド補完を使うと正確に、そして早く入力ができるようになります。詳細は初心者のためのシェル(bash)入門を参照のこと。
ターミナルでコマンドを実行しようと hoge と入力しても、bash: hoge: command not found などと言われてしまう場合。原因は以下の2通りが考えられます。
この場合、そのコマンドの実行ファイルをインストールすれば使えるようになるはず。
コマンドの実行ファイルが存在していても、環境変数 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 などにシンボリックリンクを張る手が使えます。
分割は 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 オプションを複数指定すると複数置換します。出力を表示せずにファイルに保存したい場合はリダイレクトします。
awk コマンドを使うと、空白などで区切られた表示結果の2列目や3列目の部分だけを抜き出して画面に表示します。
例えば
コマンド
| awk '{print $2}' と入力すると、コマンドの出力のすべての行のうち、何か(デフォルトは空白)で区切られている 2 番目(=$2)だけを抜き出して表示します。
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という名前のファイルができてしまった(@IT)
ロードアベレージを調べるには 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(っていうか UNIX かな?) では, 各プロセスにメモリを割り振った残りをバッファ(buffer)とキャッシュ(cache)に利用して, ディスク入出力の負荷を減らしている. そのため, free コマンド等で見える残りメモリ−(free)は 1M 程度の瞬間的な使いまわしに対処する程度しか残っていない事が多い.
この例では, 実質的な残りメモリ−は, バッファとキャッシュに転用された分も考慮すると free+buffers+cached で計算できる. 上の例で云うと free+buffers+cached = 1628+20112+126848 = 148588. まだまだ, メモリ−には余裕がある.
ファイルの内容の閲覧。
$ less [ファイル名]
スペースキーで進む、bキーで戻る、qキーで終了。似たようなのに more (次に進むだけで、元に戻れない) とか lv (国際化版) とかもある。
たんに SJIS や EUC-JP で表示したい場合は lv をインストールすればいいのですが、さらにソースコードをカラー表示したい場合を考えます。GNU source-highlight と nkf をインストールします(以下は deb 系ディストリの場合)。
$ apt install nkf source-highlight
source-highlight の起動スクリプトは lessの 環境変数で指定するので、~/.profile や ~/.bashrc などで設定します。
export LESS="-R" export LESSOPEN="| ~/bin/lessopen.sh %s"
起動スクリプト ~/bin/lessopen.sh を以下の内容で保存して、chmod +x で実行可能にして、ログインし直して下さい。
#!/bin/sh /usr/share/source-highlight/src-hilite-lesspipe.sh $1 | nkf -w
システム (OS 名など) の情報を表示。
$ uname
すべての情報を表示させるには、 -a オプションを使用。
$ uname -a
現在時刻を表示。
$ date
カレンダーを表示。
$ cal
数ヵ月分まとめて表示させるには、 -* オプションを使用。