作ってみた!ラズパイガジェット達はこちら

TheMagPiマガジン第80号の解説レビューその41〜その50

magpi80-41-50-title

元記事を分けてご紹介しています。

元の記事

MagPiマガジン80号の特集はRaspberry Piの裏技50!

※なお、この記事はラズパイダの完全オリジナルではなく解説レビューとなります。著作権はTheMagPi Magazineです。予めご了承ください。

The MagPi Magazine - The official Raspberry Pi magazine
The official Raspberry Pi magazine

Raspberry Piベスト50技の解説レビュー

ここからはコマンドラインのテクニックです。

その41 Piping

ターミナルで使うコマンドラインの解説です。

RaspbianなどのLinuxシステムの操作の仕方は3つの方法があります。

  • 標準入力(stdin)
  • 標準出力(stdout)
  • 標準エラー(stderr)

コマンドラインアプリケーションからの出力は標準出力に届くので、パイプ文字「|」を使ってその出力を別のアプリケーションに直接送ることができます。

当たり前の話ですが、通常は入力したコマンドが様々な形でコマンドライン上に結果が出ます。これが入力と出力という意味で、標準エラーは単にエラーが表示されますね。

例は以下です。

ls -l | wc -l

lsはリストのコマンドで、現在のディレクトリの長い形式のリストを取得し、その出力をカウントアプリケーションである「wc」にパイプします。

-l引数は「行数を数える」ことを意味しているので、例のコマンドは、ディレクトリにいくつの項目があるかを示す「新しい」アプリを所持したことになります。

wcは基本はバイト数を表示します。文字数を数えたい場合は「-m」オプション、単語数も表示したい場合は「-w」オプションです。今回の行数も一緒に表示する「-l」オプションなども同時に指定すればOKです。

ls -l | wc -l -m -w

その42 Output redirection

curlの解説ですね。以下のコマンドを叩くと、猫の画像がダウンロードできるハズです。

curl https://cataas.com/cat

黒猫

端末(ターミナル)では画像が表示出来ないためリダイレクトすることになり、画像をファイルとして保存できます。

これだと場所が指定できないので、指定する場合は以下のように「>」を矢印のように使います。

curl https://cataas.com/cat > cat.jpg

「>」演算子の他にもあります。

  • 「>>」既存のファイルに追加する
  • 逆の「<」はファイルの内容をコマンド入力できる

Wi-Fi接続の時、コマンドで使いました。生成したパスフレーズをconfファイルに追記するというやり方です。

wpa_passphrase MYSSID passphrase > /etc/wpa_supplicant/example.conf

その43 Run multiple commands

複数のコマンドを入れることができます
次々に実行されるように1行にまとめます。

command1; command2; command3

これだとエラーがあろうがなかろうが次々と実行してしまうので、前のコマンドが成功した場合にのみ続行した場合は以下です。

command1 && command2 && command3

これは分かり易い例ですね!

mkdir ~/myDir && cd ~/myDir && nano myFile.txt

myDirというディレクトリ(フォルダ)を作って、移動して、そしてmyFile.txtを新規でnanoで開くという3つです。

例えば、権限の問題でディレクトリが作られなければそこでストップですし、移動できなくても同じくストップします。便利ですね! その47で紹介されるエイリアスを使うとより簡単に制御できます。

その44 Run background tasks

ちょっと難しいですねー。文系としては使い処が分からないかも?

例のように「&」演算子を最後に付けてバックグラウンドで実行させます。

very-long-command &

「バックグラウンドで」コマンドを実行すると、機能している間に他のコマンドを発行できます。 デスクトップを使用している場合、最も簡単な解決策は別のターミナルウィンドウを開くことです。 そうでないなら、例のようにバックグラウンドで実行されるプロセスで、コマンドの最後にアンパサンド(&)を追加します。

Ampersand(アンパサンド)はアンド(and)を意味する記号“&”のことです。

ただ、出力されるもの(stdout)やエラー情報(stderr)などはコンソール画面に表示されてしまいます。これを回避するには、「nohup」を使用してください。

nohup very-long-command &

このnohupコマンドなら、すべての出力が現在のディレクトリのnohup.logに書き込まれます。

その45 Watching log files

問題解決のためにログファイルを見ることもあるかと思います。catコマンドでターミナル(コンソール内)に表示できます。

cat text.txt

CAT — ファイルの内容を表示する

しかし、ログファイルが大きい場合は、スクロールしてしまって読むのに苦労します。ファイルを「ページ」に表示するやり方があります。

less text.txt

最後の数行を見るだけなら、tailコマンド(tailは尻尾ですね)

tail text.txt

更に、ログファイルが大きくない場合もあるので、それも踏まえてならオプションの「-f」を追加します。

tail -f text.txt

なかなか覚えきれないので、実際に使ってみるしかないですね。

その46 A miscellany of shortcuts

実はターミナル(コンソール画面)には、コマンドもファイルやディレクトリ(フォルダ)へのパスも全て補完機能があります。これは本当に便利です。知っていると知らないでは大違いです。

ここではショートカットする方法として、チルダ、補完機能として3つが書かれています。

〜(チルダと読みます)

パソコン歴が長くなったり理解してくるとこのチルダが読めるかどうかってありますよね?で、このチルダはRaspbianなどのLinuxでは、ホームフォルダという意味を持ちます。

cd ~

ホームへ移動ということです。

補完機能を使うのにtabキーを使います。

例えば、長さは関係なくコマンドの途中でtabを押せば残りが補完されます。ただ、いくつか候補があった場合、もう1文字追加して絞り込むか、またはもう1度tabを押せばいくつか候補が出てきます。

日本語の文字変換みたいな印象です。

コマンド履歴は上下矢印キー

入力したコマンドは履歴を取っています。だから、さっきのコマンドをもう一度と思うなら、矢印キーの上を押して行けばずっと履歴を辿れます。逆に下矢印キーは手前に戻る形になります。

気をつけるのは、矢印キーで戻って実行したコマンドもまた今使用したコマンド履歴として残ることです。

!!(ダブルエクスクラメーション)は直前のコマンド

こういった記号には色んな意味を持たせてコマンドなどになっています。

「!!」も同じで、直前のコマンドをもう一度の場合に利用します。その際、例のようにsudoを付けないでエラーになった場合など、sudoをタイプするだけで済みます。全く同じなら上矢印キーですが。

sudo !!

これは知らなかった!便利だ。・・・ってよくsudo忘れるからなんですけどねー。

その47 Using aliases

先程のその43でも触れたように長いコマンドなどはエイリアスとして保存しておけます。これは定型文の意味でも利用できますね。

エイリアスを作成してください。このファイルはデフォルトでは存在しません。ホームディレクトリ内の.bash_aliasesという隠しファイルです。

エイリアスの作成方法

nanoで新規で開きます。

nano ~/.bash_aliases

記述は至って簡単です。その43のコマンドなら、以下のようにします。

alias howmany="ls -l | wc -l"

これを1行ずつ記述していけばOKです。

例の場合、howmany、つまりいくつの数?という意味の言葉(コマンド)に代入する形になります。

エイリアスの使い方

利用するには単純にそれを実行するだけです。

howmany

その48 It’s got stuck!

コマンド実行後に固まってしまった?! コマンドが実行いていない? 動かないと思ったら対処する方法です。

またコマンドを入力できるようにプロンプトに戻るには、Ctrlキーを押しながらCキーを押してプロセスを停止できます。ctrl+C

他にもCtrlキーを押しながらZキーを押してプロセスをバックグラウンドにします。ctrl+z

続けてkillall <コマンド名>で該当のコマンドプロセスを終了させられます。

killall <コマンド名>

それでも終了しないなら、killallに管理者権限をつけて実行も試してください。

sudo killall <コマンド名>

 

また、ps axを使うとって、実行中のプロセスのリストを表示することができます。

ps ax

そして、最後の手段として、sudo kill -9 <processid>を使用します。(ps axからプロセスIDを確認します)

sudo kill -9 <processid>

順番に試してみてください。大概はctrl+Cで止められますね。

その49 Find out more

もっとコマンドのことを知っていると便利です。多くのコマンドには、動作を制御するための多数の「引数」が付いています。でも、覚えきれませんね。

これらは入力ファイルなどの追加情報を提供する「スイッチ」(単純フラグ)または「パラメータ」の形式です。 ほとんどのコマンドには付随する「man」ページがあります。

でも全部あるわけではありません。コマンド用の「manページ」が存在するかどうかを確認するには、次のように入力します。

man <コマンド名>

他にも多くのコマンドが–helpスイッチ(省略して-h)に応答してオプションの要約を表示します。

この-hが一番使うかな?

その50 Get in remotely

最後はリモートで接続するsshについてです。

既にsshを使ってRaspbianを操作しているでしょう。sshでの接続なら、別途にキーボード&マウスやモニターは必要ありません。

ssh pi@raspberrypi.local

デフォルトではユーザーはpi、ホスト名はraspberrypiになっています。またパスワードは自分で設定したものです。(デフォルトは危険ですが、デフォルトはraspberryです)

sshから電源を切ったり再起動したりするコマンドは以下です。

再起動コマンド

sudo shutdown -r now

電源を切るコマンド

sudo shutdown -h now

 

同じように終了するのにhaltがありますが、shutdownコマンドより終了手順を端折るので気をつけましょう。よくhaltばかり使ってた・・・。haltだと電源が切れないのもあったのはシステムを終了させるコマンドだからですね。安全確実はshutdownコマンドです。(緊急時は有効か)

 

ちなみにこのhaltって、映画「ハル」とかってそういう意味合いから??気のせい? 1996年のパソコン通信を題材にした映画で、深津絵里の初主演映画でした。なんだかアニメのハルってのもあるんですねー。知らなかった。

(ハル)
  • 販売者 Amazon.com Int'l Sales, Inc.
クリックして今すぐチェック
ハル
  • 販売者 Amazon.com Int'l Sales, Inc.
クリックして今すぐチェック

最後に

このベスト50はなんだか翻訳だか解説だか、よく分からない記事になってしまっています。翻訳すれば意味が通る物も多いのですけど、英国式のウィット感は訳しても意味分からないし、冗長的なので省きながらまとめました。

んー、まとめたという言い方があってるかな。

あくまで記事はTheMagPiマガジンなので予めご了承ください。もちろん個人的な言葉を追加して記事にしています。これは疲れるので、もうやらない。

全部読まれた方、お疲れさまでした!

1つでも使うと確かに便利だわな。

他のベスト50技レビュー