Skip to content

Instantly share code, notes, and snippets.

@itiut
Last active December 18, 2015 18:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save itiut/5829171 to your computer and use it in GitHub Desktop.
Save itiut/5829171 to your computer and use it in GitHub Desktop.
楽するためのシェル入門

GistDeckで見る

  1. https://gistdeck.herokuapp.com/ へ行く
  2. ブックマークレットを追加する
  3. このページに戻ってブックマークレットを実行する
  4. Escapeでやめる

Powered by GistDeck

シェル

シェルとは?

一般に、Unix OSのユーザーインターフェースのこと

  • ユーザーからのコマンドライン入力をOSに伝える
  • OSからの出力をユーザーに伝える

シェルの種類

  • sh
    Bourne Shell
    古参のUnixシェル
  • bash
    Bourne-Again Shell
    GNUプロジェクトから発祥
    多くのLinuxディストリビューションやOS Xで標準のシェル
  • zsh
    bashや他のシェルから機能を取り入れた上位互換シェル
    '究極の'を意味する'z'を頭文字にとっている

余談ですが、UnixとLinuxって?

  • まちがい
    UnixはLinuxである
  • せいかい
    LinuxはUnix(系)である

Unixとは?

  • 広義には
    Unixと互換性のある振る舞いをするOS
    (例) Linux, Free BSDなど
  • 狭義には
    「Unix」標準化団体の認証を受けたOS
    (例) OS X, Solaris

細かな定義は宗教戦争になりがちなので控えます

シェルの機能

標準ストリーム

抽象化されたプログラムの入出力チャネルのこと

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

プログラム中で入出力を行なう場合はこれらに対して入出力処理をするだけでいい

リダイレクト

標準ストリームの対象をファイルなどに変更する

  • ファイルを作成

    $ echo "hello" > hello.txt
  • ファイルに追記

    $ echo "hello" >> hello.txt
  • ファイルから読み込み

    $ sort < hello.txt

パイプ

あるプログラムの標準出力を、別のプログラムの標準入力に繋げる

$ ls | sort | uniq

シェルスクリプト

シェルスクリプトとは?

シェルが処理系(インタープリタ)となるスクリプト
ファイル操作など、シェルでの作業を一括でまとめてやりたいときによく使われる

シェルスクリプトの実行

  • shコマンドで実行

    $ sh hogehoge.sh
  • ファイル名だけで実行
    ファイルの1行目に、#!/bin/sh

    $ chmod +x hogehoge.sh
    $ ./hogehoge.sh

PATH

シェルが実行コマンドを探すディレクトリのリスト
.bash_profile(.profile)などで設定する

$ echo $PATH

作ってみよう

  • カップラーメンタイマー
    • sleep 300
    • notify-send "ラーメンタイマー" "時間だよ"
  • gitのリモートコミット通知

crontab

crontabとは?

Unixにおいてコマンドを定期的に実行するための機能

  • 編集

    $ crontab -e
  • 確認

    $ crontab -l

crontabの設定

http://www.server-memo.net/tips/crontab.html ここが詳しい
notify-sendするときは、DISPLAY=:0 notify-sendとしないと表示されない

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment