TOP/PROGRAM/NYAOS を使おう!/NYAOS を使おう! - 基本機能

NYAOS を使おう! - 基本機能

ここでは基本的な機能について説明します。 基本的な使い方はこれを導入するような奇特な人ならば、 既に知っていると思うので説明しません。 知らない人は UNIX 系のコマンドラインシェルの使い方を勉強してください。 基本は殆ど一緒です。補完機能、ヒストリ、リダイレクト、パイプぐらいは知っているものとします。

基本的にマニュアルと被る部分が多いです。詳しく知りたい場合はマニュアルを見てください

echo, print

echoコマンドは引数を表示します。表示するだけです。

echo hoge hogehoge hogeeee

とすると画面には

hoge hogehoge hogeeee

と表示されます。かなり基本的な機能だと思いますが、 実は自分はかなり後になって知りました。

NYAOS には echo と同じ機能で文字数制限のない print が用意されています。

alias

alias はあるコマンドに別のコマンド名をつけます。

alias hoge ls

とすると以後 hoge と打てば ls と打ったのと同じになります。

良く行われるのは

alias hoge hoge -opt

とすると hoge を常に -opt オプションをつけた状態で使うように出来ます。

alias hoge very_very_long_command -and_very_long_option -and_many_option

とすることで、良く使うけど非常に長いコマンドや、多くのオプションを付けたコマンドに、 短いコマンド名をつけてより使いやすくできます。

alias では複数のコマンドの実行を1つのコマンド名にすることは 出来ません(Aを実行してからBを実行するのにエイリアスは出来ない)。 その場合は関数機能を使いましょう。

alias 内ではマクロが使えます。良く使うのは引数処理です。 詳しくはマニュアルを見てください。

私の場合

alias manz "open -o %MAN_DIR%\$1.txt"

なんてやって簡易的にmanコマンドを構築しています。

2.20 以降で環境変数名を $XXX で参照できるようになった結果、alias コマンド中で $ を使うと環境変数とみなされて展開されてしまうので、マクロを使う場合 2 重引用符で囲う必要があります。

関数機能

複数のコマンドを1つのコマンドで実行します。 上記の alias では出来なかった複数コマンドを1つに出来ます。

sub hoge
  pwd
  ls
endsub

とすると、以後 hoge と打つだけで pwd を実行したあと ls を実行します。

2.20 以降では

hoge{
  pwd
  ls
}

という表記が推奨されています。

関数機能では関数名が補完の対象になりません。 上記の例ですと hoge は補完されません。 これを補完の対象にするには alias する方法があります。

alias hoge hoge

とすると、hoge が補完の対象になります。

option

NYAOS の動作のオプションをこのコマンドで指定します。

option オプション名 値

これで「オプション名」に「値」を設定します。 文法は他にもありますが、詳しくはマニュアルを見てください。

backquote

オプションの backquote を設定すると逆クォート(`)機能が使えるようになります。

逆クォート機能とは `て囲われた中のコマンドを実行したときの標準出力と置換します。つまり

echo `cat list`

echo 「cat listの標準出力内容」

になります。

私の場合は find(NT版UNIX-like toolsの場合はfindf)と組み合わせることが多いです。 find はマッチするファイルを相対パスで標準出力に出力するので

grep hoge `find ./ -name "*.c"`

は「カレントディレクトリより下の *.c ファイル全てをキーワード hoge で検索する」となります。 かなり便利だと思います。

しかし、逆クォートの実行結果の内容が多い場合、NYAOS は メモリが非常に少ないのでオーバーフローしてしまいます。 だいたい1000文字以上は無理のようです。

prompt

オプションの prompt で NYAOS のプロンプトに表示する文字列を指定します。

プロンプト中でいろいろなマクロが使えるようです。自分が調べた限りでは

$A &
$B |
$C (
$D 今日の日付
$E エスケープシーケンス
$F )
$G >
$H 不明
$I 不明
$L <
$N 現在のドライブ名
$P カレントディレクトリのフルパス名
$Q =
$S 空白
$T 現在時刻
$V シェルの名前(NYADOS or NYACUS or NYAOS-II)
$W カレントディレクトリのベース名
$_ 改行(現バーション2.21では編集領域の表示バグ在り。動作には問題無いです)
^ これでも改行を表現できます
$$ $

エスケープシュミレーション

WindowsNT/2000/XP のコマンドプロンプトでは通常エスケープシーケンスで 画面制御が出来ないのですが、NYACUS 内の内臓コマンドとプロンプトでは NYACUS がシミュレーションしてくれます。つまりプロンプトで色をつけることが出来ます。

色指定の場合は以下です。

<ESC>[番号;…;番号m

番号で内容を指定します。

番号属性番号属性番号属性
30前景色が黒40背景色が黒0初期状態に戻す
31前景色が赤41背景色が赤1以後高輝度にする
32前景色が緑42背景色が緑
33前景色が黄43背景色が黄
34前景色が青44背景色が青
35前景色が紫45背景色が紫
36前景色が水46背景色が水
37前景色が白47背景色が白

nullcomplete

これを設定すると何も無い状態でも補完を行います。TAB 補完バカの自分としてはこの設定は外せません。

savehist

これでヒストリの保存先を指定します。NYAOS はウィンドウの閉じるボタンで閉じたときはこれを保存しません。 自分にはちと不便なので設定してません。

suffix

拡張子に対し、インタープリタ名を関連付けします。

suffix 拡張子名 インタープリタ

で定義します。例えば

suffix rb ruby

と定義すると

hoge.rb

と入力するのは

ruby hoge.rb

と入力したのと等価になります。

デフォルトで入っている初期設定ファイルに、 すでに良く使われる suffix が定義されているので、 新たに追加することは少ないと思います。

folder

~(チルダ)で始まる特殊フォルダ名を定義できます。

folder hoge D:/tools/other/nyacus

とすると以後 ~hoge が D:/tools/other/nyacus と等価で扱えます。

私の場合は C ライブラリのインクルードヘッダディレクトリを定義しています。

folder bcc_include D:/tools/develop/borland/bcc55/Include 

最近ヘッダを覗く機会が多くなってきたんですが、 昔はまさかライブラリのヘッダファイルを覗く時が来るとは思いませんでした。

TOP/PROGRAM/NYAOS を使おう!/NYAOS を使おう! - 基本機能