Linuxコマンド勢の皆さん,cdコマンド使いますか??
よく使いますよね??
例えば,mkdirコマンドを入力し,ディレクトリを作成した後にそのディレクトリに移動する際によく使いますね?その際にcdコマンドを入力する際にディレクトリ名を再び入力するのは面倒くさくないですか?その際に特殊変数を使用すると結構簡単にコマンド入力できます.本記事では,シェルの特殊変数について説明し,コマンド入力を楽しくできるようにします!
本記事ではファイル操作等をコマンドで行うので以下の記事を先に読むことをお勧めします.
ファイル操作コマンドチートシート
特殊変数とは?
シェル(BashやZshなど)において特別な意味を持つ,事前に定義された変数のことである.
特殊変数の例
実行中のスクリプト名
$0
スクリプトやシェル関数に渡される引数を表す
$1, $2, ...
引数の数を表す
$#
すべての引数($1
$2
...)を表す.
$@
すべての引数($1 $2 ...
)を表す
$*
現在のシェルのプロセスID
$$
直前のコマンドの終了ステータス(0は成功,非0は失敗)
$?
最後に実行したバックグラウンドプロセスのプロセスID.
$!
直前のコマンドの最後の引数.
$_
使用例:
echo "スクリプト名: $0"
echo "第1引数: $1"
echo "引数の数: $#"
echo "全引数: $@"
echo "現在のプロセスID: $$"
ls
echo "終了ステータス: $?"
今回は$_
をメインに紹介します.
ディレクトリ移動を特殊変数で楽しよう
$_
は直前のコマンドの最後の引数を参照する特殊変数である. これを活用することで,コマンドラインでの作業を効率化できる.
mkdir test
cd $_
上記の例では,$_によってtestディレクトリ名を再入力する必要がない...つまり以下のコマンドを実行したことと同様である.
mkdir test
cd test
私は脳死でcd コマンドで移動できるので多用しています.
作成したファイルを楽にvimで開けるようにしよう
touchコマンドで作成したファイルをvimで操作するために以下のコマンドを実行する.
touch long-file-name.txt
vim $_
ここでは長いファイル名を2度入力する手間が省ける...が...別に以下のコマンドでいいので要らない使用例ですねw
vim long-file-name.txt
ただ,このような例なら使いようがある
mv ./sample/text1.txt ./sample/text2.txt
vim $_
ファイル名を変更した後にそのファイルをvimで編集する時は有用である.
このようにシェルの特殊変数(主に$_
)を使用すると,コマンド操作が爆速になるのでどんどん使って楽しくターミナルを触ろう!
それではQiitaアドカレ.24企画の今日のクリスマスツリーです.
詳しくはこちらの記事から