tamakipedia

フロントエンドエンジニア。Typescriptもう特訓中です。一日の振り返りや学んだことをちょっとずつ吐いています。

実行ファイルを作って、実行するまで

昨日読了したSHOW ROOM 前田社長のデビュー著書「人生の勝算」
社長って親族の助けや、天才的な何かがあるからなることができるものだと思っていました。
前田さんは私が想像する「社長になるまでの過程」
とは全く異なる生き方をされていたので心底驚きました。

というどうでも良いレビューを添えておきますね(笑)

今回はシェルスクリプトで遊んでみたので
その過程を綴っていきたいと思います。

シェルスクリプトとは

シェルで実行するコマンドなどがまとまったドキュメントのことです。
上から順に実行してくれるのでコマンドを打つ必要が無くなります。

シェル

そもそもシェルってのがなんなんだって話ですよね。
シェルとはターミナルなどで入力した情報を解釈して
linuxの脳みそ(OS)に受け渡しを行うインターフェースの事です。

カーネル

シェルの受け渡し先であり、Linuxの中心核となる部分のことをカーネルと言います。
私たちがコマンドを叩いて会話している相手がこの子です。

実際にシェルスクリプトを作って実行してみる

以下の順序で行います。

* シェルスクリプトを作る
* 権限を与える  
* 実行する  

hellow.shというファイルを用意し、以下の記述を行います。
ちなみに.shというシェルスクリプトの拡張子があるそうです。

  1 #!/bin/sh
  2 
  3 echo hello

1行目はシェルの位置をファイルに教えてあげる処理です。
この実行ファイルをシェルに食わせてあげるためには
位置を教えてあげる必要があります。

#! (シェルのパス)
と記述します(デフォルトでは /bin/sh にあると思います。)

次の行からは実行内容です。
今回はわかりやすくエコーしました。(笑)

  • 実行権限を与える。
    今のファイルを実行しようとしても。 コンソールには次のようなエラーログが出ます。
~/d/t/practis ❯❯❯ ./hello.sh
zsh: permission denied: ./hello.sh

これはユーザーである私自身に管理権限がないからです。
なので権限を与える処理を書く必要があります。

下記のように記述します。

❯❯❯ chmod 744 hello.sh

左の7という数字がユーザーに実行権限を渡す処理になります。
数字の意味に関しては別の記事にて記述しましたので参考によろしくお願いします。

Linux の権限を確認する - okinawanpizza’s blog

  • 実行する
    これで、実行権限も与えられて実行が可能になりました。
❯❯❯ ./hello.sh

現在のディレクトリを表す./を用いて ファイルを実行しましょう。
f:id:okinawanpizza:20200310062713p:plain

めちゃくちゃ地味ですが、
シェルスクリプト3行目に記述したechoが出力されたのではないでしょうか!!!

このように普段コンソールで叩いているようなことをシェルスクリプト
まとめて書くことで一気に実行することが可能になります。

また、現在はファイルパスを指定して書かないと行けませんが、
どのディレクトリからでもアクセスできるように設定を加えたりすることも可能です。
まだまだやれることは少ないけど、アプリを実行するコマンドと組合せたりして
うまく自動化できれば良いなと思います。:wq