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?

LinuC102勉強記録1日目

0
Posted at

今日からLinuC102の試験勉強を始め、3日で取得することを目指します。

1.シェルおよびスクリプト

ログインシェルとして起動した際に、下記の順番でファイルは呼ばれます。
ログインシェルとは、ユーザ認証とセットで起動される初期化の役割を持つファイルです。

ログインシェル:環境の初期化(PATH,環境変数)
非ログインシェル:日常的な操作(alias,プロンプト)

イメージとしては下記の流れになります。
      ログイン
        ↓
   「ログインシェル」※初回だけ
        ↓
     ターミナルを開く
        ↓
  「非ログインシェル」←複数回

🔑 ログイン時に読み込まれるファイル(ログインシェル)

Bashを「ログインシェル」として起動したとき、次の順で最初に見つかった1つだけが読み込まれます:

~/.bash_profile
最優先で読み込まれる
主にログイン時の環境設定を書く
例:
PATHの設定
環境変数
起動時に実行したいコマンド
👉 一般的に一番よく使われる

~/.bash_login
.bash_profile が無い場合に使われる
役割はほぼ同じ
👉 あまり使われない(歴史的な理由で存在)

~/.profile
上の2つが無い場合に使われる
Bash以外のシェルでも使われる共通設定ファイル
👉 POSIX準拠の汎用設定
💻 非ログインシェルで読み込まれるファイル

~/.bashrc(bash run commmands)
新しいターミナルを開いたときなど(非ログインシェル)
毎回読み込まれる
主に:
エイリアス
関数
プロンプト設定
👉 一番頻繁に使うファイル
🚪 ログアウト時に読み込まれる

~/.bash_logout
ログインシェル終了時に実行される
例:
画面クリア
一時ファイル削除

2.シェルスクリプトの利用

定義したシェル関数の一覧を出力するコマンド
declare -f
typeset -f
set


シェルの実行方法には下記2つがある。
■子シェルでの実行
①実行権限を付与してファイル名を指定して実行
②shコマンド(bashコマンド)の引数として実行
■現行のシェルで実行
③sourceコマンドの引数として実行
④.(ドット)コマンドとしての引数として実行

~/.bashrcファイルを、PCを切らずに原稿シェルに反映させるための方法は、下記2つがある。
source シェル名
. シェル名

例えば、~/.bashrcファイルを現在のシェルに反映させるには、下記2つがある。
. .bashrc
source .bashrc

イメージとしてはsourceは「設定を再読み込み」、bashは「新しいシェル起動」になる。

3.#!/bin/bashのおまじない

スクリプト1行目に書かれている「#!/bin/bash」なんだこれって思った人多いのでは?
これはBashで実行する指定のために記載する文言でシバン(Shebang)と呼びます。
実行中のユーザのシェルに関係なく、「/bin/bash」を使用してスクリプトを実行することができます。
#!を見つけるとカーネルは/bin/bashを起動し、スクリプトを引数に設定します。

###シバンあり###
#!/bin/bash  ←  /bin/bashを使用する宣言
echo "Success task"

###シバンなし###
echo "Success task"

上記の場合、シバンなしだとbashで強制実行されることになる。
権限がない時はbash実行が良いが、基本は「./」で実行するケースが多い。






今日は寝ます。おやすみ。

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?