ラズベリーパイはLinuxディストリビューションであるDebian系のRaspberry Pi OSで動きます。これらLinux系のOSを操作する際には、ソースコードや設定ファイルなどの「テキスト」で書かれたファイルを閲覧することが多々あります。閲覧するには「エディタ」と呼ばれるアプリケーションにより起動して、閲覧・編集などを行えますが、ファイルの中身を確認するために「閲覧だけする」という事は多々あります。
エディタなどでファイルを開くと間違えて書き換えてしまう事もあるため、Linuxでは見るだけのコマンドがいくつか用意されていますのでここではそれらコマンドの違いをご紹介していきます。
cat コマンド
テキストファイルの中身を最初から最後まで一気にシェルに表示させるコマンドです。cat + ファイル名を指定することで、表示されます。一気に表示させてしまうため、中身が多いファイルを表示させると、ターミナルでスクロースさせて戻らなければならなくなるため、ウインドウ内に収まる程度の内容が少ないものを表示させるときに使います。
試しに/etc内にあるservicesというファイルの中身を表示してみましょう。このServicesというファイルにはネットワークで利用するTCP/IPプロトコルで使われているサービスのポート番号が記述されているためとても長いファイルになります。
$ cat /etc/services
以下のような画面が表示されます。非常に長いファイルですので、ファイルの最初の方を見るためにはターミナルをスクロールさせて上の方までもっていかなければなりません。
more コマンド
moreは良く使われるコマンドで、ファイルの中身を上から順番に表示していきます。catは一気に表示してしまいますが、moreはファイルの中身をまずはターミナルのウインドウサイズで表示して、続きはEnterキーを押すと順次表示されていきます。先ほどと同じファイルをmoreで表示してみましょう。
$ more /etc/services
ファイルの先頭が表示され、ターミナル左下には現在何パーセントまで表示しているかが表示されます。Enterキーを押していく事で1行ずつ表示が増えていきます。
このように長めのファイルを上から順に確認してい来た時にはこのコマンドが役立ちますが、あまりにも長いファイルだとEnterキーを押しっぱなしにして表示を増やしていっても目的の内容を探すのに時間がかかってしまう場合もあります。
ちなみにあまりに長いファイルを開いてしまって、moreコマンドでの表示を途中でやめたい場合は「Ctrl」+「C」キーを押すことでmoreコマンドが終了になります。
less コマンド
cat や moreコマンドはどちらかというと軽くファイルの中を見るときに使いますが、より長いファイルの中から目的の情報を見つけたい場合には検索が出来たりすると便利です。それがlessコマンドです。moreコマンドでは次々表示が増えていきますが、元に戻る場合はカーソルで移動することになります。GUIが搭載されていない場合はファイルの先頭に戻れないくなってしまいますが、lessコマンドなら矢印キーで上下にファイルの中を自在に動かして表示できます。
同様にservicesファイルの中身をlessで見てみましょう。
$ less /etc/sercices
moreと同じようにファイルの先頭が表示されていますが、画面左下は「/etc/services」となっています。下に表示を増やす場合、Enterキーでもできますが、上下の矢印キーでも移動が可能です。
上下キーで動かしてみると「:」が表示されます。これは入力待ち状態を意味していて、キーボードから以下のキーを入力するとそれぞれ表示させる機能を呼び出すことができます。
- h ー lessコマンドのHelpページを表示
- e ー 1行ずつ進める
- y ー 1行ずつ戻る
- f ー 1ウインドウ単位で移動する
- b ー 1ウインドウ単位で戻る
- d ー ウインドウ半分移動する
- u ー ウインドウ半分戻る
- / ー /に続けて探したいキーワードを入力してEnterすることでファイルの先頭から検索していきます。
※この時に続けて「n」キーを押していけばさらに続けて探していけます。 - ? ー ?に続けて探したいキーワードを入力してEnterすることで、ファイルの後方から検索していきます。nキーで続けて検索できます。
- q ー lessコマンドを終了します。
lessのコマンドの機能は他にもあるので、詳しくは「h」キーを押してヘルプを呼び出してみてください。
view コマンド
LinuxにはViエディタというシェルで動作するエディタが最初から搭載されています。エディタはファイルを書き換える時に使いますが、ViエディタはどのLinuxディストリビューションにも最初から搭載されているため、システム管理などを行うためには知っておくべきエディタの1つです。そのViエディタの書き換えが出来ずに表示だけを目的としたものがViewコマンドになります。
書き換えができないため、間違えて書き換えてしまう事がなく、それでいてViエディタの検索機能などが利用できるのが魅力です。では同様にviewコマンドでservicesのファイルを見てみましょう。
$ view /etc/sercices
Viewコマンドでは色分けされて見やすくなります。また、Viエディタの閲覧バージョンだけあって、検索などのコマンドはViエディタに慣れている方であれば同じなのでとても使いやすくなっています。
「:」を入力するとコマンドを実行
Viewコマンドが実行されている場合、コマンドを入力するためには「:」キーを押してコマンドを入力します。以下の様に待機状態になるので、続けてコマンドを入力します。
Viewコマンドの主なキーは以下の通りです。viエディタの場合は変更後に上書きなどありますが、viewコマンドで有効なコマンドは終了させるときくらいです。
- :q — 終了する
- :q! — 強制的に終了する
「/」を入力で文字検索
「/」(スラッシュ)を入力すると文字列の検索入力待ち画面になります。たとえばこのservicesというファイルの中から「echo」という文字列を探したければ「/echno」と入力し「Enter」すれば、ファイルの上から順に検索を開始します。続けて違う位置にあるechoを検索したければ「n」キーを押していく事で次の検索結果へと移動していきます。大文字で「N」キーを押せば戻っていきます。(※nはnextの頭文字)
ファイル下方向から検索検索したい場合は「/」ではなくて「?」で同じことを行います。
ちなみに、パスなどの「/」を含むものを検索したい場合は、バックスラッシュ(日本語キーボードでは「¥」マークのキーを押す)をつけます。例えば「18/udp」という文字列を検索したい場合、
/18\/udp
と入力します。※バックスラッシュ(\)は「¥」と表示される場合もあります。
まとめ
ファイルを見るためのコマンドは他にもありますが、ここでは代表的なものを紹介しました。ここにあるコマンドはあくまでファイルの中身を確認するためのコマンドで、特に管理者権限などでコマンドを実行している場合などは、まずは設定を確認し、必要であればファイルを編集するという行動を行います。間違えて設定ファイルなどを書き換えてしまわないためにも、まずは閲覧権限だけのこれらコマンドで確認してから操作を行う癖をつけましょう。