Gitの各領域(working directory,staging area,repo)とコマンドの関係図

Gitの各領域とコマンドの関係図を掲載します。

Gitの領域について

作業ディレクトリ(working directory)

実際にコードを修正する作業領域。ローカルのディレクトリを開いて見えるコードやファイルはこの作業ディレクトリです。git addコマンドでステージング領域へファイルを登録します。

ステージング領域(staging area/index)

Gitには「ステージング領域」または「インデックス」と呼ばれるものがあります。これは、コミットを完了する前にコミットをフォーマットして確認できる中間領域です。git commitコマンドでローカルリポジトリへステージング領域にあるファイルを一括登録します。

ローカルリポジトリ(local repository)

ローカルのGitリポジトリです。コミットごとの変更した差分が保存されます。git pushコマンドでリモートリポジトリへコミット内容を送信します。

リモートリポジトリ(remote repository)

ローカルリポジトリの変更点を保持します。一般的には、GitHub、GitLab、BitbucketといったGitのホスティングサービス上に構築され、複数の開発者がリモートリポジトリをコピー(clone)元として、ローカルリポジトリを構築します。

fish shellのコマンド置換は”`”バッククォートや”$()”ドルマークカッコでなく”()”を使う

タイトルの通り、fish shellでの、コマンド置換方法にについて、記載しています。

shやBashでは、”`”バッククォートや”$()”ドルマークカッコで記載しますが、
fish shellでは、”()”カッコで記載します。

fish shellのバージョンは3.1.2で実行しています。公式チュートリアルURL

fish shellのコマンド置換

コマンド置換では、あるコマンドの出力を別のコマンドの引数として使用します。他のシェルとは異なり、fishはコマンド置換にバックティックを使用しません。代わりに、括弧を使用します。

コマンド

echo In (pwd), running (uname)

実行例

> echo In (pwd), running (uname)
In /home/ubuntu, running Linux

コマンド出力結果を変数に設定

変数”os”に”uname”の出力結果を代入します。

> set os (uname)
> echo $os
Linux

“ダブルクォート内に指定

コマンド置換で日付をファイル名として指定します。

> touch "testing_"(date +%Y%m%d)".txt"
> ls *.txt
testing_20200517.txt

AWS EC2(Amazon Linux)にDockerインストール、起動、停止

AWSのEC2を利用して、Dockerを起動します。

AWS EC2でインスタンスを起動する

今回は、以下のOSを指定しました。

・AMI

Amazon Linux 2 AMI (HVM), SSD Volume Type

・インスタンスタイプ

t2.micro

EC2(Amazon Linux)にDockerをインストール

EC2への接続の仕方については、ここでは記載していません。

OSバージョン確認

$ cat /etc/system-release
Amazon Linux release 2 (Karoo)

yumアップデート

sudo yum update -y

Dokcerインストール

Amazon Extras LibraryからDockerをインストール

sudo amazon-linux-extras install docker -y

Dockerインストール確認

Dokcerのバージョンを表示することで、インストールされているか確認します

$ docker --version
Docker version 19.03.6-ce, build 369ce74

無事バージョンが表示されました

Dockerの起動

$ sudo service docker start
Redirecting to /bin/systemctl start docker.service

Dockerグループにユーザーを追加

デフォルトの”ec2-user”ユーザーを追加します。

sudo usermod -a -G docker ec2-user

グループへの追加が終わったら、ログインし直してユーザー権限が反映されていることを確認します。

Dockerコマンド実行確認

ログインし直したら、dockerコマンドを実行してみます。infoオプションでDockerの情報を表示します。

$ docker info

Dockerの情報が表示できれば、sudoなしでdockerコマンドを実行できています。

Dockerを停止する

$ sudo service docker stop
Redirecting to /bin/systemctl stop docker.service

コマンドプロンプトで関数を定義する・バッチ処理に引数(パラメータ)を指定する

久しぶりにbatファイルで作業をする機会があったので、メモとして記載します。

コマンドプロンプトで関数を定義するバッチスクリプト

@echo off
setlocal

echo Start ERRORLEVEL : %ERRORLEVEL%
Call :sampleFunc %1
echo End   ERRORLEVEL : %ERRORLEVEL%

endlocal
exit /b

:sampleFunc
echo Sample Fucntion Call %1
exit /b 777

関数は11行目以降です。”:”(コロン)の後に関数名を定義します。echo で”Sample Fucntion Call”+引数 を出力して、終了コード”777″で関数の処理を終了します。

5行目の、”Call :関数名 %1″で関数を呼び出します。”%1″はこのバッチスクリプトの1つ目の引数に指定された値が設定されます。

関数以外のバッチスクリプト自体は、以下の流れとなります。

  • ERRORLEVELの出力
  • 関数”sampleFunc”に”%1″を渡して呼び出し
  • ERRORLEVELの出力

実行結果

上記のバッチスクリプトを”func.exe”で保存した場合の実行例です。

“param1″と”123″を指定して2回実行しています。”echo %ERRORLEVEL%”で、バッチスクリプトの終了コードを表示します。

C:\Dev>func.bat param1
Start ERRORLEVEL : 0
Sample Fucntion Call param1
End   ERRORLEVEL : 777

C:\Dev>echo %ERRORLEVEL%
777

C:\Dev>func.bat 123
Start ERRORLEVEL : 0
Sample Fucntion Call 123
End   ERRORLEVEL : 777

C:\Dev>echo %ERRORLEVEL%
777

C:\Dev>