LoginSignup
1
0

More than 5 years have passed since last update.

シェルスクリプトのまとめ

Posted at

bashの基礎

  1. シェルとはなにか
    ユーザーのコマンドラインをOSの命令に変換するためのもの
  2. bashの使用法
    • ユーザーインターフェイスとしての使用
    • プログラミング環境としての使用
  3. bash

    GNUプロジェクトで使用するために作成されたもの


    システムにbashが含まれているか確認する方法

    $ echo $SHELL
    

    /bin/bashが返ってくる.
    bashを起動させるには

    $ bash
    bash-3.1$

    をすればよい.


    bashがどのディレクトリにインストールされているか調べる方法

    $ grep bash /etc/passwd | awk -F: '{print $7}' | sort -u
    

    を入力すると/bin/bashが返ってくる.


    bashをログインシェルとして設定する方法

    $ chsh bash-name(grepコマンドで表示された名前を指定)
    
  4. 対話形式でのシェルの使用
    対話形式で使用するにはログインセッションを張ればよい.

    ログインセッション

    ログインしたときにはられる.

    exit or logout or Ctrl+Dで切断

    ログインセッションが張られている間はコマンドラインを入力することになる.

  5. ファイル

    • 通常ファイル
    • 実行可能ファイル(プログラムとも呼ばれ、コマンドとして呼び出される)
    • ワイルドカード
ワイルドカード 一致対象
? 任意の1文字
* 任意の文字列
[set] setに含まれる文字
[!set] setに含まれない文字
  1. 標準入出力
ユーティリティ 目的
cat 入力を出力にコピー
grep 文字列を検索
sort 行を並べ替える
cut 列を取り出す
sed 編集操作を実行する
tr 文字を他の文字に置換
  1. バックグラウンドジョブ

    シェルでは1つのログインセッションで同時に複数のコマンドを走らせることができる

    バックグラウンドで複数のコマンドを走らせるとき、優先度を考える必要がある

    nice コマンド名を使うと優先度を下げることができる

  2. コントロールキー

コントロールキー stty名 機能
Ctrl+C intr コマンドを中止する
Ctrl+D eof 入力を終了
Ctrl+\ quit コマンドを中止する
Ctrl+S stop 画面への出力を停止
Ctrl+Q 画面への出力を開始
Ctrl+? erase 最後の文字を削除
Ctrl+U kill コマンドライン全体を削除
Ctrl+Z susp コマンドを一時停止

コマンドライン編集

  • emacsモード
  • viモード

編集モードを切り替える方法

$ set -o emacs
または
$ set -o vi

環境のカスタマイズ

.bash_profile / .bash_logout / .bashrc

.bash_prolile

bashはシステムにログインするたびにこのファイルを読み込み、定義されているコマンドを自校する

エイリアス   

.bash_profileにalias ''=''と指定することができる

長いPASSを短く指定することもできる

historyコマンドを利用したときに日時を追加する

bash-3.2$ HISTTIMEFORMAT="%y/%m/%d %T "   
bash-3.2$ history   
  ...
  501  18/10/24 23:06:20 HISTTIMEFORMAT="%y/%m/%d %T "
  502  18/10/24 23:06:23 history

シェルスクリプト

シェルスクリプトの実行

$ source script-name

関数を定義する形式

function <関数>{
  <シェルコマンド>
}

または

<関数>(){
<シェルコマンド>
}

関数定義の削除

$ unset -f <関数>

コマンドの優先順位

  1. エイリアス
  2. function
  3. 関数
  4. 組み込みシェル
  5. スクリプト、実行可能ファイル

[参考]入門bash3

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0