0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Linuxを基本からまとめてみた【シェルおよびスクリプト】

Last updated at Posted at 2025-06-21

シェル環境のカスタマイズ方法

シェルのオプションを変更

  • シェルの見た目や動作設定を変更できる
オプション  説明
emacs/vi シェルのキーバインドを emacs/vi 風に変更
nociobber 既存ファイルへの上書きリダイレクトを無効
noglob ワイルドカードでのファイルの指定を無効
ignoreeof Ctr+Dキーに夜ログアウトを無効

setコマンド

  • set(-o または +o)[シェルのオプション]
オプション  説明
-o 指定したシェルのオプションを有効化
+o 指定したシェルのオプションを無効化

エイリアス

  • コマンドの別名
  • デフォルトで定義されているエイリアスもある
  • 同名のコマンドがある時、エイリアスが優先
  • エイリアスを無効して元のコマンドを使う時は、『(コマンド名)』

aliasコマンド

  • エイリアスの定義や定義されたエイリアスを確認できる
  • aliasエイリアス名='実行内容'
  • 引数なしで実行すると、定義されたエイリアスを表示

シェルの設定ファイル

  • 環境変数やエイリアスの定義などを記憶するファイル
読み込むタイミング  全てのユーザーが参照  ユーザーごとに参照
ログイン /etc/profile ①~/.bash_profile
②~/.bash_login
③~/.profile
Bashの起動 /etc/bash.bashrc
(/etc/bashrc)
~/.bashrc
ログアウト ~/.bash_logout

コマンドの連続実行

構文  説明
コマンド1 ; コマンド2 コマンド1の実行後、コマンド2を実行
コマンド1 && コマンド2 コマンド1の実行が成功した後、コマンド2を実行
コマンド1‖コマンド2 コマンド1の実行が失敗した後、コマンド2を実行

シェルスクリプトの実行方法

シェルスクリプトとは?

  • シェルが解釈できるコマンドが記述されているファイル
  • シェルスクリプトを実行するとシェルスクリプト内に記述されたコマンドが実行される
実行コマンド  必要な権限  実行環境
bashスクリプトファイル名 読み取り bashシェル
source スクリプトファイル名 読み取り 現在のシェル
.スクリプトファイル名 読み取り 現在のシェル
./スクリプトファイル名 読み取り 現在のシェル

※PATHに登録されているディレクトリにスクリプトファイルがある場合、ファイル名だけで実行できる

shebang(シバン)

  • スクリプトを解釈するシェルを指定できる
  • 『#!』の後に、シェルを指定する
#!/bin/bash

echo 'Hello paiza'
echo{1..5}

シェルスクリプトで利用できる組み込み変数

組み込み変数 説明
$0 スクリプトファイル名
$n n番目の引数($1は1つ目の引数、$2は2つ目の引数・・・)
$@ 引数のスペース区切り
$# 引数の数
$? 直前の処理の成否(成功は0, 失敗は0以外)
$$ シェルのプロセスID

exprコマンド

  • 整数の四則演算等の計算結果を出力
  • expr 数値1 演算子 数値2

条件式

  • 変数やファイル、ディクトリなどが特定の条件を満たすかどうかを調べることができる
  • [条件式]
  • test 条件式
意味
-fファイル名 ファイルが存在
-dディクトリ名 ディクトリが存在
-eファイル/ディレクトリ名 ファイル・ディクトリが存在
-fファイル/ディレクトリ名 ファイル・ディクトリが読み取り可能

if文

  • 条件分岐に利用できる制御構文
if [ 条件式 ]
then
  処理1
elif [ 条件式 ]
then
  処理2
else
  処理3
fi

case文

  • 条件分岐で利用できる制御構文
case 変数名 in
  値1) 値1だった場合の処理;;
  値2) 値2だった場合の処理;;
  …
  *) どの値にも合致しなかった場合の処理
esac

for文

  • 繰り返しに利用できる制御構文
for 変数名 in 値1 値2 … (値リスト)
do
    繰り返す処理
done

while文

  • 繰り返しに利用できる制御構文
while 条件式
do
    繰り返す処理
done

関数

  • 引数に対しておこなう一連の処理をひとまとめにしたもの
  • 引数のない関数も定義できる
function 関数名() {
    処理内容
}

trapコマンド

  • 指定したシグナルが送られたときに、指定した処理をおこなう
trap "処理" シグナル

シェルスクリプトのデバッグ

シェルスクリプトのデバッグ

  • bash -v スクリプト名
  • bash -x スクリプト名

シバンの後ろにオプションを指定

  • #! /bin/bash/ -v
  • #! /bin/bash/ -x

スクリプト内に set コマンドを設定する

  • set -x (あるいは set -v) : デバッグ開始
  • set +x (あるいは set +v) : デバッグ終了
オプション 説明
-v 実行するコマンドを出力
-x 変数への代入など、処理の内容を出力

参考サイト

新・Linux入門編8(LinuC対策版): シェルおよびスクリプト

0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?