記事

Raspberry Piでコマンドをゆっくりマスタしよう (1) pwd

■PWD いま、私はどこにいるの?

シェルはコンピュータと対話する一つの方法

 2016年1月現在のOSはRASPBIAN JESSIEです。このバージョンから、OSが立ち上がると、もろもろの設定が終わった最後で、シェルからstartxというXwindowが実行されます。したがって、それ以後、各種初期設定をGUIで行います。

 RASPBIANは、Raspberry PiでうごくLinuxのひとつです。特にDebianというディストリビューションをベースとして開発されています。

 Linuxはベル研究所のUNIXをみてに開発されました。UNIXが作られていた当時、液晶ディスプレイやCRTというものは存在しませんでした。テレタイプ装置があって、20mAカレントループ・インターフェースで外部とのやり取りをし、約50ボーという速度で送受信するキーボードと印刷機が合体した入出力機を使っていました。20mAカレントループ・インターフェースは今でも計測分野で使われている方式ですが、次第にRS-232のシリアル通信方式が採用されるようになりました。

 50ボーという速度は1秒間に約6文字のアルファベットを送れます。PCのUSB2.0は480Mbpsです。とても遅かったのですね。UNIXでコンピュータと対話するためにshというシェルが用意されていました。そのコマンドは2文字ぐらいからと、少ないです。

 UNIX自体、テープで受け渡しをされていましたが、早晩CDに代わりました。

シェルは、ターミナルLXTerminalを立ち上げて使う

 いくつでも起動できますし、画面の大きさも自由に変えられます。

 まず、

pwd

を実行しましょう。piというユーザでログインしたので、ホーム・ディレクトリを教えてくれます。ディレクトリを移動したときは、今いる場所であるカレント・ディレクトリを教えてくれます。

rasp.png

 複数のターミナルを開いているとき、自分がどこにいるかわからなくなったときに、pwdとたたいてください。たたくというのは、キーボードを打つという言葉と同義です。

ホーム・ディレクトリはログインした場所

 ホーム・ディレクトリは、システム全体のどこにあるのでしょうか。一番上位が / のルートです。その下にhomeというユーザのホーム・ディレクトリが収納される場所があります。いまはpiというユーザしかいないので、piだけがあります。LinuxはマルチユーザのOSですから、ほかのユーザを作れば、そのホーム・ディレクトリがhomeの下に作られます。

ras2a.png

バックグラウンド

Macだと mac1a.png

Windowsだと pwd1.png

ボー(boud)とbps;一つの変調に一つのデータが対応したとき両方の単位では同じ数値になります。一つの変調に複数ビットを割り当てられるQPSKなどでは、bpsとbaudの数値は一致しません。
 ほとんどのマイコンが搭載しているシリアル通信の中で、調歩同期式通信を行うUART(Universal Asynchronous Receiver Transmitter)は、データシート内でboudとbpsの表記が混在していることがありますが、変調がかかっていないのでboud=bpsです。

プロンプト;実は、カレント・ディレクトリはプロンプトに表示されるので、pwdを打つチャンスはありません。シェルの環境変数でカレント・ディレクトリを表示するように設定されているからです。

シェル;シェルにもsh、cshやtcshといろいろあります。いちばんメジャーなのがbashで、RASPBIANにも入っています。RASPBIANはDebian系なので、shは/binディレクトリ内でdashにシンボリック・リンクが張られていて、シェルというとdashが使われます。しかし、ユーザ情報が保存されている/etc/passwd内のrootやpiユーザはbashを使うように設定されているので、bashが標準シェルです。

連載メニュー Raspberry Piでシェル・コマンドをゆっくりマスタしよう

(1) pwd いま、私はどこにいるの?

(2) df あといくつ空いている?

(3) cd ディレクトリ間をうろうろする

(4) cat ファイルの内容を表示

(5) top ps kill プロセスの表示、削除

(6) scrot  画面キャプチャ

(7) CPUの温度

(8) ifconfig ip iw 私のIPアドレス

(9) apt-getで日本語化

(10) ls dir lsusb ディレクトリ情報、USB機器の接続状況

(11) nano テキスト・エディタ

(12) GPIOポートをアクセスするgpio コマンド

(13) ping IPアドレス