CUIの表示結果の制御(less & more)

最近CUIでの操作が多く、コマンドを入力し結果が返ってくる訳ですが、よく出力行数は画面の高さを超えることがあります。
一行目は勿論、重要な部分までもがフレームアウトしてしまう為、困ってしまう事態に陥ります。
DOSでは末に”/p”と入力すれば画面が”待って”くれました。
Linuxでは以下のコマンドを利用していきます。

それは「less」と「more」です。
「cat」コマンドの親戚みたいなコマンドで出力は勿論、特定のコマンドの出力に対しても機能してくれます。

more

 $ more <オプション> <ファイル名>

 他にもありますが、ここでは簡単なオプションを紹介。

 -<行数>
  一度に表示する行数を指定します。

 +<行数>
  開始行数を指定します。

 例:「$ more -10 text
これで「text」というファイルを10行単位で表示されます。
閲覧中は専用の操作が可能です。

 Enter or S:一行ずつ進める

 Space or F:一画面ずつ進める

 D:一画面ずつ戻る

 Q:moreを終了する


less

 $ less <オプション> <ファイル名>

 オプション紹介。

 -y<行数>
  一度に表示する行数を指定します。

 例:「$ more -y10 text
これで「text」というファイルを10行単位で表示されます。
閲覧中は専用の操作が可能です。

 D:一画面ずつ戻る

 F:一画面ずつ進める

 Q:lessを終了する

両コマンドとも”D”や”F”の前に数字を入力することによって数字分の行数を移動する事ができます。
ちょっと便利です。

なお。”more”と”less”の決定的な違いですが”more”は表示する画面から画面単位以外に出力結果を逆上る方法が無いのですが、”less”は逆上る事が容易で、十字キーなども効率よく使えます。


便利な使い方

さて、冒頭にも言いましたが、他のコマンドに対してこの処理をかけることが出来きます。

 lessを例に

 $ ls -l | less <オプション>

この場合、”ls”コマンドの出力結果を制御する事が可能で、出力結果はちゃんと流れずに待ってくれます。
勿論、、”more”の場合も同じです。

以上です。