outこの広告は、90日以上更新していないブログに表示しています。CLIcatプログラムを起動する例えば、ファイルの中身を見るcatというプログラムを起動してみよう。ファイル名を引数にとって、ファイルの内容を出力する。world!!プログラムの場所プログラムはどこかになくてはならない。catはどこにあるのだろうか。whichプログラムで確認できる。cat/bin/cat/bin/catにあるらしい。プログラムの種類どういうファイルなのだろうか。fileプログラムでファイルの概要はわかる。x86_64コンパイルされたバイナリファイルのようだ。内容は人間が読んで簡単にわかるものではない。バイナリファイルというのはこのコンピュータのために作られた、このコンピュータでしか動かないファイルだ。このコンピュータは実行のしかたを知っている。この/bin/catファイルをWindowsにコピーして実行してみよう。Windowsは実行のしかたを知らないのでエラーが出る。pipプログラムをみてみよう。textと表示された。テキストとバイナリpipの中身をみてみよう。)ただのテキストファイルだった。さきほどのcatのように、このコンピュータ用に作られたバイナリファイルではない。この内容は人間には読めるけれど、コンピュータにはわからないだろう。pipプログラムはなぜ動くのだろう?答えは、テキストファイルの一行目で、このテキストファイルを解釈できるプログラムを指定しているからだ。#!/usr/local/opt/python/bin/python2.7「このテキストはpython2.7というプログラムが解釈し実行するものだ」ということだ。pipが実行されるとき、実際には以下のコマンドが実行されているのだ。pipこのpython2.7というファイルは何者だろうか。基本はこのコンピュータために作られたバイナリファイルだ。catとpythonの違いはなんだろうか。それは、catが与えたファイルの内容をそのまま吐き出すのに対し、pythonは与えたファイルの内容によって動作が全く異なるということだ。サブプロセスを立ち上げたり、Webサーバーになったりもする。これは驚くべきことだ。このようなバイナリファイルをインタプリタ(解釈器・翻訳者)という。pipを解釈できるのは何もpythonだけではない。phpというインタプリタバイナリでも解釈できる。/usr/local/bin/pip結果は実行してみてのお楽しみ。最初にcatという名前に一致したプログラムが実行される。/bin/というディレクトリも探すディレクトリリストの中に含まれているのだ。探すディレクトリはPATHという環境変数に、":"で区切られて格納されている。PATHの内容は以下のコマンドで確認できる。$PATHこれでは見にくいので以下のコマンドでディレクトリが1行ずつ表示される。raw_input().split(":"):print(line)'これで列挙されるディレクトリにcatがなければ見つけてはもらえない。プログラムをコマンドとして登録する/Users/chyka/my_programをmy_programだけで起動できるようにしてみる。方法1:my_programがあるディレクトリをPATHに追加する以下のコマンドで/Users/chykaディレクトリを検索対象にすることができる。":/Users/chyka"だ。my_programコマンドが使えるようになっているはずだ。raw_input().split(":"):print(line)'.../usr/local/bin...PATHの中にディレクトリならどこでもいいが、/usr/local/binというディレクトリが含まれているようだ。ここにmy_programをコピーするとmy_programコマンドが使えるようになる。ちなみにシンボリックリンクというものがあり、わざわざファイルをコピーしなくてもそのディレクトリ以下に存在するかのようにリンクを貼ることができる。Windowsでいうとショートカットみたいなものだ。01:25ターミナルから起動するプログラムについてTweet広告を非表示にする関連記事2018-02-03スプレッドシートから商品情報を読み出すこんにちは、シュンです。その1こんにちは、シュンです。...2016-01-18CentOS6.5にPython3.5をインストール依存しているライブラリを事前にインストールしておく。詐欺に遭ってしまいました会社員としての3年間で得たものと失ったものやってしまいました...。月別アーカイブはてなブログをはじめよう!chykaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。