Emacsでは、さまざまな関数を介して オペレーティングシステム環境の変数を参照できます。 これらの変数には、システムの名前、ユーザーの識別番号uidなどが 含まれます。
この変数は、読者のシステムのハードウェア/ソフトウェア構成に対する GNUの構成名を文字列で保持している。 この文字列の一部分を検査する簡便な方法は
string-match
を使うことである。
この変数の値は、Emacsが動作している オペレーティングシステムの種類を表すシンボルである。 つぎに可能な値の一覧を示す。
alpha-vms
- Alphaマシン上のVMS。
aix-v3
- AIX。
berkeley-unix
- バークレーBSD。
dgux
- データジェネラルDGUXオペレーティングシステム。
gnu
- (HURDかMachから成るGNUカーネルを使っている)GNUシステム。
gnu/linux
- GNU/Linuxシステム。 つまり、Linuxカーネルを用いたGNUシステムの変種。 (これらのシステムは人々が『Linux』と呼ぶものの1つであるが、 Linxuは実際にはカーネルのみであり、システム全体ではない。)
hpux
- ヒューレットパッカードHPUXオペレーティングシステム。
irix
- シリコングラフィックスIrixシステム。
ms-dos
- マイクロソフトMS-DOS『オペレーティングシステム』。
next-mach
- NeXTのMachベースのシステム。
rtu
- マスコンプRTU、UCBユニバース。
unisoft-unix
- ユニソフトUniPlus。
usg-unix-v
- AT&T System V。
vax-vms
- VAX VMS。
windows-nt
- マイクロソフトWindows NT。
xenix
- SCO Xenix 386。
絶対に必要でない限り、細分類のために新たなシンボルを追加したくない! 実際、将来にはこれらのいくつかを削除することを願っている。 オペレーティングシステムの違いを区別するには、
system-configuration
を使うことを勧める。
シンボルsystem-name
は、関数としても変数としても使えます。
実際、関数としては、変数system-name
が現在保持している値を返します。
したがって、Emacsが読者のシステム名に関して混乱している場合には、
変数system-name
に設定できます。
変数はフレームタイトルの作成にも有用です(see Frame Titles)。
この変数が
nil
以外であると、system-name
のかわりに 電子メイルアドレスの生成に使われる。 たとえば、user-mail-address
のデフォルト値の作成に使われる。 see User Identification。 (これはEmacsの始動時に行われるため、 Emacsをダンプしたときの値が実際に使われる値である。 see Building Emacs)。
この関数は、環境変数varの値を文字列で返す。 Emacs内部では、環境変数の値はLisp変数
process-environment
に 保持されている。(getenv "USER") ⇒ "lewis" lewis@slug[10] % printenv PATH=.:/user/lewis/bin:/usr/bin:/usr/local/bin USER=lewis TERM=ibmapa16 SHELL=/bin/csh HOME=/user/lewis
このコマンドは、環境変数variableに値valueを設定する。 どちらの引数も文字列である。 この関数は
process-environment
を修正することで動作する。 この変数をlet
で束縛しても十分に実用的である。
この変数は、各要素が1つの環境変数を記述する文字列のリストである。 関数
getenv
とsetenv
は、この変数を用いて動作する。process-environment ⇒ ("l=/usr/stanford/lib/gnuemacs/lisp" "PATH=.:/user/lewis/bin:/usr/class:/nfsusr/local/bin" "USER=lewis" "TERM=ibmapa16" "SHELL=/bin/csh" "HOME=/user/lewis")
この変数は、(環境変数などで)探索パスを 区切る文字を指定する文字列を保持する。 UNIXとGNUシステムではその値は
":"
であり、 MS-DOSとWidows NTでは";"
である。
nil
以外であると、サブディレクトリlib-srcとetcを 探すためのディレクトリである。 Emacsがこれらのディレクトリを標準のインストールディレクトリで みつけられなくてもEmacsの実行形式になんらかの意味で 関連するディレクトリでみつけられれば、nil
以外である。
この関数は、1分間/5分間/15分間のロードアベレッジ (負荷平均)をリストで返す。
デフォルトでは、これらの値は、動作しようとしてるプロセスの平均個数を表す システムのロードアベレッジを100倍した整数である。 use-floatが
nil
以外であると、 100倍しない浮動小数点数で返す。(load-average) ⇒ (169 48 36) (load-average t) ⇒ (1.69 0.48 0.36) lewis@rocky[5] % uptime 11:55am up 1 day, 19:37, 3 users, load average: 1.69, 0.48, 0.36