このエントリーをはてなブックマークに追加


bashのちょっと便利な使い方

bash(シェル)で操作をしている時に、こんな時、こんなふうに使うと便利だよ!というTipsを以下に記します。


以前いたディレクトリに戻る

cdコマンドでディレクトリ移動したあと、以前のディレクトリに戻りたい場合、以下のコマンドで簡単に戻ることができます。

cd -

cdコマンドのオプションに-(ハイフン)のみ指定しEnterキーを押します。

以下、実行例です。

sakura@stream:~$ cd /etc/
sakura@stream:/etc$ cd /var/log/postgresql/
sakura@stream:/var/log/postgresql$ cd -
/etc
sakura@stream:/etc$ pwd
/etc

/etcに移動したあと、/var/log/postgres/に移動し、cd - コマンドを実行することにより、
/etcに戻ってきたのが確認できます。

ホームディレクトリに移動する

自分のホームディレクトリに移動する場合は、以下のコマンドで簡単に戻ることができます。

cd ~

または

cd $HOME

チルダ(~)は自分のホームディレクトリを示しているので、cdコマンドの移動先に~を指定すると
ホームディレクトリに移動できます。
また、$HOMEには、ホームディレクトリの文字列が環境変数として格納されているので、
$HOMEを移動先のディレクトリに指定すると、$HOMEに設定されている文字列が展開され、ホームディレクトリに移動できます。

以下、実行例です。

sakura@stream:~$ cd /etc/
sakura@stream:/etc$ echo $HOME
/home/sakura
sakura@stream:/etc$ cd $HOME
sakura@stream:~$ cd /var
sakura@stream:/var$ cd ~
sakura@stream:~$ pwd
/home/sakura
sakura@stream:~$ 

過去のコマンドを再度実行する(historyを使用)

過去に実行したコマンドを再実行したい場合は、historyコマンドを実行し出力された番号を!を付けて実行すれば、
再実行することができます。

sakura@stream11

$ history | grep ssh | tail -10
  321  ssh sakura@192.168.1.32
  322  ssh sakura@192.168.1.38
  323  ssh sakura@192.168.1.38
  324  ssh sakura@192.168.1.38
  325  ssh sakura@192.168.1.83
  342  ssh sakura@192.168.1.83
  358  ssh sakura@192.168.1.83

上記のように左側に番号が表示されます。
以下のように番号の先頭に!を付けることにより、指定した番号のコマンドを再実行することができます。

!番号

例えば上記で表示された358番を実行したい場合は、

!358

となります。

Ctrl+rでコマンド再実行

直近のコマンドを検索し実行するには、Ctrl+rを使用します。
以下の操作になります。

  1. Ctrl+r を押下すると以下のように表示されます。(キャンセルする場合は、ESCキーを押してください。)
    sakura@stream11 ~
    (reverse-i-search)`':
  1. 再実行したいコマンドのキーワードを入力
    以下の例では、キーワードにsshと入力した時の出力です。
    sakura@stream11 ~
    (reverse-i-search)`ssh': history | grep ssh | tail -10
  2. ESCキーを押すとコマンドは実行されず、キーワードで検索されたコマンドが表示されます。
    Enterキーを押すと、検索されたキーワードが実行されます。
    (間違ってコマンドを実行すると事故になるかもしれませんので、ESCキーを押して確認後、Enterキーを押すことをお勧めします。)
    キャンセルする場合は、Ctrl+cを押してください。

尚、上記のようにsshで接続したいのに、直近のsshコマンドが表示されない場合、ホスト名やIPアドレスを入力してみるのもよいのかもしれません。
以下は、83と入力したときの出力です。

sakura@stream11 ~
(reverse-i-search)`83': ssh sakura@192.168.1.83

日付のディレクトリを作成したい・ファイル名に日付に付与したい

dateコマンドのオプションを使うことにより、簡単に実現することができます。
コマンドは以下の構文になります。

`date +%Y%m%d`

ファイル名に現在日付を付与する

ファイル名の後部に日付を付けた例を以下に記します。

sakura@stream11 ~
$ echo HELLO > hello_`date +%Y%m%d`

sakura@stream11 ~
$ cat hello_20180417
HELLO

現在日付のディレクトリを作成する

現在日付のディレクトリを作成する例を以下に記します。

sakura@stream11 ~
$ mkdir `date +%Y%m%d`

sakura@stream11 ~
$ ls -F | grep /
20180417/

以上、bashシェルのちょっと便利な使い方でした。



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-04-17 (火) 08:51:38