Amazonのアソシエイトとして、ラズパイダ(raspida.com)は適格販売により収入を得ています。詳しくは当サイトの プライバシーポリシーをご覧ください。

春になると始めたくなることってありますよね。Pi 5が販売されている2024年春、これまで触ったことがないRaspberry Piを始める人に向け、ささやかながら基礎的な情報として残しておきます。

ネットで調べて実践する環境がある現代は情報が溢れています。もっと分かりやすい内容で信頼できる情報があればそれに越したことはありません。どうぞそちらも訪れてください。特にエンジニアリングとして学ぶなら、専門機関で学ぶことや体系的に学ぶことをオススメします。

ここではラズパイダとして得た知見を元に綴っています。

既にRaspberry Piを触っている人は他の記事の方が参考になるでしょう。これから手に入れる人や昨日今日で始めた人に向けて書いています。

独学で知りたいのなら、基本を抑えた上で情報を収集すると近道な気がしています。細かい話は後にして、漠然で構わないと思うので「あー、そうなんだ」で進めてみてください。

もしもこの記事内容に突っ込む気持ちが沸いたなら、それはもう初心者ではない気がします。私に教えてください。

一部は細かく、一部はザックリで申し訳ありませんが、読み飛ばしながらお付き合いください。

Raspberry Piの使い方例

Raspberry Pi は色々な使い方ができます。パソコンに慣れている人にとっても新しい感覚で触れるデバイスです。

特に起動させるOSもLinux系になりますから、WindowsやMacに比べてたくさんの種類が候補になります。

だから迷って混乱するとも言えますけどね。

Raspberry Piで動作するOSは限られています。それでもいくつかあるのですぐには飽きないと思います。基本は公式からリリースされているRaspberry Pi OSです。

各OS(というかディストリビューション)については、それぞれ別の記事でも焦点を当てています。サイトにある検索窓からOS名で検索するか、記事のタグ名から辿ってみてください。

Raspberry Pi 5

Raspberry Pi 4

Raspberry Piの使い方の1つとして、一般的なPCのようにマウスとキーボードで操作することがあります。microSDカードにOSを書き込んで起動させ、デスクトップ画面上でアプリケーションを操作するのは想像に容易いことです。

主な使い方例

  1. OS上でアプリケーションを使う
  2. 専用機能を組み込んだOSを実行させる
  3. 自作のプログラムを試す
  4. センサー等を起点として処理作業させる
  5. 小さなサーバとして機能させる

他にもこれらを複合させて利用することもするでしょう。

最初はWindows同様に、デスクトップ画面で操作することで違いを確認できます。

違和感があるのは、異なるプラットフォームだからで、WindowsからMacもそうですし、AndroidとiPhoneもそうですよね。

中でもWindows PCと異なる主な点として、Raspberry Pi ではターミナルというコマンドで操作する頻度が多いことが挙げられます。

Rグリーン Rグリーン
macOSはUnix由来なので同様にコマンドを使う機会は多いかも知れません。

Raspberry Pi OSもバージョンを重ね、マウス操作でメニューや設定画面から変更することができるようになりました。しかし、まだすべてとはいかず、未だにターミナルから操作することをしばしば求められます。

ある意味では面倒くさいと感じたり、ややこしい部分でもあります。だから、最初はデスクトップPCライクに触る程度で良いと思います。Windowsほどではないにしろ、デスクトップGUI画面で同じ事ができます。

少しでもコマンドを実行することに慣れていくと、実は速くて助かることも多く感じられるでしょう。Windowsとはまた違った楽しみを発見できれば興味が続くと思います。

Linux系はWindowsやMacとは違い、自分の望んだ使い方が最初からできると言い難い面があるかも知れません。スマホやタブレットに慣れた今、より多くの手数が必要で時代に逆行している気もするでしょう。

その分だけ達成感は大きく、新鮮な気持ちで使える利点もあると感じています。

Rレッド Rレッド
おっさん的には懐かしいけどね

コマンドの補完入力

Raspberry Pi OSでは、コマンドを実行したり、シェルスクリプトを書いたり、Python(パイソン)でプログラミングしたり、難しいけど自由度があります。

難しいと感じる中でも最初に慣れておきたいのが、コマンドが分からない場合に備えた情報です。

1つは「コマンドは補完入力ができる」ことが挙げられます。

コマンドを途中まで入力してTABキーを押すことで、それに続くコマンドをターミナル上で表示してくれます。 絞り込み検索みたいな印象です。(インクリメンタル型サーチ:文字入力の度、自動的に検索が行われる検索方法)

例えば、sudo apt inまで入力してTABキーを押せば、sudo apt installまで補完入力してくれます。 その後に続く文字も同様で、どこでTABキーを押しても入力候補が表示されます。

手数を少なく入力できる点は元より、コマンド候補に存在するかを知る手立てやスペルミスも防げます。

中にはTABキーを押すと「相当な数の候補が存在するけれど表示しますか?」といった主旨の質問が表示されることがあります。

Yだとターミナル画面に大量の候補が表示されて困ってしまいます。Nキーでキャンセルしましょう。

候補が多くある種類にFont(フォント)があります。Googleが提供するオープンソースのフォントファミリーnotoは特に多く存在しています。もう1文字、2文字を余分に入力するだけで、候補はだいぶ減り選びやすくなるでしょう。

sudo apt install fonts-noto-(TABキー)

逆に何も候補が出ない場合もあります。この場合は本当に候補がないため、そのコマンドやパッケージ名が存在しないか、スペルミスのパターンです。

例外もあるものの大抵は候補が表示されるので、Raspberry Pi OSで対応しているコマンドをあやふやで覚えていても助かることがあります。

ターミナルでの入力はTABキーを上手く使ってください。

インストールしたいパッケージ名だけでいえば、検索するコマンドがあります。

sudo apt search パッケージ名

ターミナルでメッセージが大量に出て抜けたい時

先程のTABキーでの候補リストを始め、元の実行できるプロンプト画面に戻れなくなった場合、Qキーを押すことも覚えておくと助かります。

表示を辞める:Qキー 表示続ける:スペースキーまたはエンターキー(リターンキー)

他にも実行環境によりケースバイケースにはなりますが、よくあるキャンセルするキーや終了するコマンドがあります。

アプリや環境により、すべてが当て嵌まるわけではありません。独学だと適当に試す試行錯誤で覚えることも多いため、ちょっと知っておくと役立つことがありますよ。

q
quit
quit;
exit
ESCキー

およそ5つを試してきました。中には親切に表示される場合もあります。

できればその都度で正確に知っておくべきだと思いますが、大体はこれで解決することがままにあります。

■Pi 5は8GBモデルがオススメ

最低限覚えたいコマンド

はじめてのターミナル画面でのコマンド入力は、右も左も分からないのは当然のことです。例えコマンド補完入力ができると言っても、流石に何も分からないと入力すらできません。

私が最初に覚えたコマンドは、後から修正ができる、リカバリーができるコマンドでした。具体的にはファイル操作関連です。

ザッと挙げておきます。使い方は別の記事も参照してください。

最初に覚えたファイル操作コマンド例

ls #現在居る場所のディレクト・ファイルを一覧で表示(リスト)する
cd ディレクトリ #ターミナルで現在のフォルダから移動する
mkdir ディレクトリ名 #ディレクトリを作成
nano ファイル名 #テキストファイルの作成
cat ファイル名 #ターミナルで中身を表示
cp 元ファイル名 コピーするファイル名 #ファイルの複製
mv 元ファイルの場所とファイル名 移動先の場所とファイル名(またはファイル名の変更)
rm -R ディレクトリ名 #ディレクトリごと中身もすべて削除
rm ファイル名 #ファイルの削除

ターミナルだけでファイルの操作ができるようになると使い勝手が上がります。

他のマシンからSSHで接続してコマンド入力することで、Raspberry Pi にモニターとマウスを繋がなくても良くなります。

先程のコマンドの中で、ファイルをコピーするcpコマンドは便利です。コピーするということは、すなわちバックアップを取ってから編集することができ、間違えた時によく元に戻しました。

例:編集したファイルを削除やリネームして、元のファイルをオリジナルのファイル名に変更する。

私は非エンジニアのため、必要に迫られ使って覚えてきた経緯があります。これは時間はかかりますが、それでも使えるようになりますよ。

意外と使う機会が多かったコマンド

コマンドを実行する際、管理者権限を付けて実行するのか分からないことに出くわします。ちゃんとエラーで表示されるので心配はないのですけど、もう一度入力するのも面倒です。

管理者での実行するためsudoを入力し忘れた時、!!を付け加えると、1つ前のコマンドにsudoを付けた状態で再度実行できます。

sudo !!

管理者権限か必要かどうかを、上手く的確にお伝えすることが私にはできません。

ヒントとして、ホームディレクトリ内であれば管理者ではなくユーザー権限で良い場合が多く、基本はsudoがない状態で実行してみてください。

cd ~/
mkdir test

ユーザーの権限が及ばないであろうシステム関連のディレクトリや、実行ファイルにGPIOを使ったっり、システム内サービスにアクセスするコードがある場合はsudoを付けるパターンがほとんどです。

sudo nano /etc/samba/smb.conf
sudo systemctl restart smbd nmdb

ちょっと雑ではありますが、管理者権限なく実行すれば、それなりのエラーが表示されます。

パーミション(Permission)と表示されたら、権限がない意になり別の権限が必要ということになります。それは管理者とは限りませんけど、1つの目安になると思います。

権限(パーミション)については別の記事もご覧ください。

意外と使うキー

ターミナル画面で良く使うキーは矢印キーです。

これまで該当のターミナル画面で実行したコマンドは、履歴として保存されていて、上下の矢印キーで順番に選べます。

同じコマンドを再度実行する時は元より、少しだけ変更する場合でも、一旦選び一部を書き換えて実行したりしています。

上級者どうか分かりませんが、初心者なりに効率よく実行していけるので重宝する機能です。

アップデート関連のコマンド

Raspberry Pi OSでは、次に示す4行+再起動をすることで、アプリやパッケージ、システム関連をアップデート若しくはアップグレードできます。

基本は上2行、ついでに+2行を覚えておけば、コマンドで常に最新の状態にすることができます。最後に再起動です。

sudo apt update
sudo apt full-upgrade

sudo apt autoremove
sudo apt clean

sudo reboot

autoremoveは不必要になったアプリやライブラリを削除してくれ、cleanでキャッシュされている全ての(deb)ファイルを削除してくれます。

電源を切るには次のコマンドです。

sudo shutdown -h now

コマンドはオプションの指定が難しい

各コマンドにはオプションと呼ばれるものが存在します。私はlsコマンドも、普段はls -alと使っています。

覚えておきたいのは、各コマンドのオプションを調べる手段です。大抵はロングネームオプションとして--helpが存在します。

ls --help

英語で表示されますが、オプションの付け方が表示され参考になります。

オプションは-aといったショートネームで指定することが多く、同じアルファベットでも各コマンドによって意味は異なります。

これをすべて暗記するのは大変なので、ヘルプコマンドでどんな機能があるのかを調べています。

-a #ショートネーム
--help #ロングネーム

今だとWebで検索してしまえば、色んな解説サイトが見つかります。その方が早いので、その都度調べるでも良いでしょう。

私もコマンドは苦手です。よく使うコマンドは勝手に覚えていたみたいで、各オプションも慣れで会得できる部分だとは感じています。でも、忘れますね。

オプションを付けないと、希望する結果が出ないことがあります。文字の熟語みたいにセットで覚えておくと便利です。

最近は更に省略されているコマンドも多くあり混乱しそうです。

ロカールのIPアドレスを調べる

ip a

bookworm以降、NetworkManagerに変更されnmdコマンドで固定IPアドレス化する。

sudo nmcli con mod "SSIDから付けられているID" ipv4.method "manual" ipv4.addresses "192.168.1.39/24" ipv4.gateway "192.168.1.1"

Raspberry Pi OS独自のコマンドもある

Raspberry Pi OSはDebianを元に作られています。同じLinux系のDebianや他のOSは種類がたくさんあります。基本はDebianに準拠しますが、Raspberry Pi OSは、Raspberry Pi でだけ使用するコマンドもいくつか存在します。

私がよく使うのは、Raspberry Piの細かい設定をするsudo raspi-configや、GPIO端子の図を表示するpinout、システム温度を表示するvcgencmd measure_tempなどが挙げられます。

基本はRaspberry Pi 公式ドキュメントにまとめられていますから、Webページを翻訳表示させ、必要な箇所を詳しく読んでみてください。

https://www.raspberrypi.com/documentation/computers/os.html

絶対パスと相対パス

Linux系に限ったことではないかも知れませんが、フォルダやファイルの場所を表現するパス(Path)は理解しにくい部分でしょう。

パスというのを簡単に言うと、そのディレクトリやファイルまでの経路のことで、場所を表す番地みたいなものと考えてください。

Userディレクトリの中にhomeディレクトリがあり、その中にあるraspidaディレクトリの更に下にあるtestというディレクトリを表す。

/User/home/raspida/test

特にLinux系はルート(/)が最上位で、あとは全てがその下にぶら下がる形です。1つの最上位しかない。 Windowsだとドライブが最上位ですよね。(C:¥、D:¥)最上位がいくつもある考え方です。

Raspberry Pi でもパスを指定する機会がとても多くあります。 コマンド入力だけではなく、設定ファイルの場所指定でもよく使います。

少なくても絶対パスと相対パスがあることを知っていると理解がしやすいと思います。

絶対パスはルート(/)から全て記載:/user/local/bin

相対パスは今居る(ある)場所から記載(/etc/に居る場合):../user/local/bin

覚えておきたいのは、相対パスは移動経路を記載することと同じです。 ../は今居る階層から1つ上の階層へという意味になり、今居る階層を表すのに./とピリオドが1つ減ります。 2つ階層を上がるなら../../と表記します。

慣れない頃、cdコマンドで移動するために覚えました。lsコマンドと一緒に使うことで、手数は多くなりますがどこへどう移動して何があるのか想像がし易くなります。

cd ../
ls
/etc /user /bin (...など)
cd /etc

lsコマンドで今の階層に何のディレクトリ名やファイル名があるのかを表示し、更にcdコマンドで該当箇所へ移動して再びlsコマンドといった使い方です。

ディレクトリ構成と名前を覚えてしまうと、決め打ちして移動も指定もできるようになりますが、慣れないうちは実際に見渡しながら移動する感覚です。

cd コマンドで移動後にlsコマンドと繰り返すことで、自分の居場所を視覚化している感じですね。

最後に、ホームディレクトリは~/と表すことができます。/user/home/raspida/と同じ意味の省略形として使えます。

習うより慣れろ

基本的なことは慣れてくると忘れてしまいます。正確には忘れるのではなく、自然に覚えていて考えなくなります。

それは良いことなんですけど、意外とケアレスミスであったり、盲点で気が付かなくてハマることに出くわします。少なくても私は。

慣れたコマンドや設定も、今一度見直すと使っていない機能や設定方法を知る機会がありました。

そういうものだと思うので、どんどん使ってシステムをおかしくしてみてください?! メインにしていないRaspberry Piですから、イザとなれば「えいや!」と新たにOSを書き込み直せば良いのです。

考え方は人それぞれです。”習うより慣れろ”は時間はかかります。でも、それなりに扱えるようになるのも事実だと思います。

Rレッド Rレッド
永遠の中級者のラズパイダでした。