SlideShare a Scribd company logo
bashbash のヒストリ展開を活用するのヒストリ展開を活用する
USP 友の会
今泉光之
@bsdhack
http://bsdhack.{org,com,net}
bashのヒストリ展開を活用する 2
はじめにはじめに
●
POSIX とは原理主義者ではありません
– 製品としてのソフトウェア作成では意識します
– 決して原理主義者ではありません
– 普段は古くから bash を愛用しています
● あまり知られていないヒストリ展開の紹介
bashのヒストリ展開を活用する 3
!!!!
● 直前に実行したコマンドの再実行
– 他のコマンドの引数としても指定可能
$ cat /etc/ssh/sshd_config
cat: /etc/ssh/sshd_config: Permission denied
$ sudo !!
sudo cat /etc/ssh/sshd_config
[sudo] password for mitz
cat /etc/ssh/sshd_config が sudo で実行される
bashのヒストリ展開を活用する 4
!-!-nn
●
n 回前に実行したコマンドの再実行
– コンパイル→実行の繰り返しなどに便利
$ platex foo.tex
This is pTeX, Version 3.141592-p3.1.9 (euc) (Web2C 7.5.4)
:
$ xdvi foo.dvi
$ !-n
platex foo.text
:
$!-n
xdvi foo.dvi
bashのヒストリ展開を活用する 5
^^foofoo^^barbar
● 直前に実行したコマンドの foo を bar に変更して実行
– 最初に検出された foo を bar に変更する
$ pletex foo.tex
-bash: pletex: command not found:
$ ^e^a
platex foo.tex
This is pTeX, Version 3.141592-p3.1.9 (euc) (Web2C 7.5.4)
:
bashのヒストリ展開を活用する 6
!:[g]s/!:[g]s/foo/barfoo/bar
● 直前に実行したコマンドの foo を bar に変更して実行
– 区切り文字の "/" を任意の文字に変更可能
– g を指定した場合全ての foo が bar に変更される
$ dir /x
dir: cannot access /x: No such file or directory
$ !:s+/+-
dir -x
$ dir /x /a
dir: cannot access /x: No such file or directory
dir: cannot access /a: No such file or directory
$ !:gs+/+-
dir -x -a
bashのヒストリ展開を活用する 7
単語指示子単語指示子
● !:n
– 直前に実行したコマンドの n 番目の引数
● !^
– 直前に実行したコマンドの 1 番目の引数
● !$
– 直前に実行したコマンドの最後の引数
● !*
– 直前に実行したコマンドの全ての引数
bashのヒストリ展開を活用する 8
単語指示子単語指示子
● !:n*
– 直前に実行したコマンドの n 番目から最後までの引数
● !:n-m
– 直前に実行したコマンドの n 番目から m 番目までの引数
● !:-m
– 直前に実行したコマンドの 1 番目から m 番目までの引数
● !:n-
– 直前に実行したコマンドの n 番目から最後の 1 個前までの引数
bashのヒストリ展開を活用する 9
ヒストリ展開される単語の修飾ヒストリ展開される単語の修飾
● :h
– パスのディレクトリ名部分を取得する
$ ls /usr/local/bin/vim
$ cd !$:h
cd /usr/local/bin
bashのヒストリ展開を活用する 10
ヒストリ展開される単語の修飾ヒストリ展開される単語の修飾
● :t
– パスのファイル名部分を取得する
$ ls /usr/local/bin/vim
$ cp !$ !$:t
cp /usr/local/bin/vim vim
bashのヒストリ展開を活用する 11
ヒストリ展開される単語の修飾ヒストリ展開される単語の修飾
● :r
– パスのファイル名部分から拡張子を除外する
$ platex /usr/local/doc/foo.tex
This is pTeX, Version 3.141592-p3.1.9 (euc) (Web2C 7.5.4)
:
$ xdvi !$:r.dvi
xdvi /usr/local/doc/foo.dvi
bashのヒストリ展開を活用する 12
ヒストリ展開される単語の修飾ヒストリ展開される単語の修飾
● :e
– パスのファイル名部分から拡張子を取得をする
$ ls /usr/local/doc/foo.tex
$ cp !$ bar!$:e
cp /usr/local/doc/foo.tex bar.tex

More Related Content

What's hot (20)

PDF
GUI何処行ったんDocker
Kazuhito Miura
 
PPTX
LT駆動開発08 - 無限のディスク領域を手に入れよう(妄想編)
Kazuya Matsubara
 
PDF
Gentooサークル新歓コンパのご案内
Takuto Matsuu
 
PDF
エンジニアのための痔の話
Kouhei Maeda
 
PDF
Git pyfes201207-presen
Kouhei Maeda
 
PDF
gcoreでプロセスメモリダンプ -mysqlプロセスメモリを見てみる-
monochrojazz
 
PDF
S2s websrv201011-presen
Kouhei Maeda
 
PDF
fdコマンドを使おう
Hideaki Miyake
 
PPTX
U boot-for-zynqberry
Akihiro Amagai
 
PDF
20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし
Tsuyoshi Yamada
 
PDF
peco活用術
Yuki Ishikawa
 
PDF
クリップボード監視と外部コマンド実行 #chibapm
鉄次 尾形
 
PDF
とあるWeb企業でのDebianシステムの使い方。
Kouhei Maeda
 
PDF
20151114 jawsug
司 知花
 
PDF
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
Kenichiro MATOHARA
 
PPTX
Hostsの活用
Yoshitaka KATO
 
PDF
OS development beginner version 20160611
Langur
 
PDF
78tch
78tch
 
PPTX
FreeBSDのススメ
kunst1080
 
PDF
Pythonでクラウド上のスクリプトを実行する
aoshiman
 
GUI何処行ったんDocker
Kazuhito Miura
 
LT駆動開発08 - 無限のディスク領域を手に入れよう(妄想編)
Kazuya Matsubara
 
Gentooサークル新歓コンパのご案内
Takuto Matsuu
 
エンジニアのための痔の話
Kouhei Maeda
 
Git pyfes201207-presen
Kouhei Maeda
 
gcoreでプロセスメモリダンプ -mysqlプロセスメモリを見てみる-
monochrojazz
 
S2s websrv201011-presen
Kouhei Maeda
 
fdコマンドを使おう
Hideaki Miyake
 
U boot-for-zynqberry
Akihiro Amagai
 
20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし
Tsuyoshi Yamada
 
peco活用術
Yuki Ishikawa
 
クリップボード監視と外部コマンド実行 #chibapm
鉄次 尾形
 
とあるWeb企業でのDebianシステムの使い方。
Kouhei Maeda
 
20151114 jawsug
司 知花
 
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
Kenichiro MATOHARA
 
Hostsの活用
Yoshitaka KATO
 
OS development beginner version 20160611
Langur
 
78tch
78tch
 
FreeBSDのススメ
kunst1080
 
Pythonでクラウド上のスクリプトを実行する
aoshiman
 

Similar to Bashのヒストリ展開を活用する (6)

PDF
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
Makoto SAKAI
 
PDF
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
Jun Nogata
 
PDF
bash(set)コマンドのオプション3選
Yuuki Namikawa
 
PDF
今からはじめる! Linuxコマンド入門
VirtualTech Japan Inc.
 
PDF
20160827 第24回シェル芸勉強会LT Bash on Windows環境非破壊ハンズオン
kunst1080
 
PDF
#ssmjp 2014/09 bashのちょっとした便利機能の紹介
th0x0472
 
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
Makoto SAKAI
 
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
Jun Nogata
 
bash(set)コマンドのオプション3選
Yuuki Namikawa
 
今からはじめる! Linuxコマンド入門
VirtualTech Japan Inc.
 
20160827 第24回シェル芸勉強会LT Bash on Windows環境非破壊ハンズオン
kunst1080
 
#ssmjp 2014/09 bashのちょっとした便利機能の紹介
th0x0472
 
Ad

More from bsdhack (6)

PPTX
男の子ってこういうのが好きなんでしょ?
bsdhack
 
ODP
シグナル
bsdhack
 
ODP
FreeBSDのブートプロセス
bsdhack
 
ODP
正規表現
bsdhack
 
ODP
シェルスクリプトを極める
bsdhack
 
ODP
仕事で使えるシェルスクリプト
bsdhack
 
男の子ってこういうのが好きなんでしょ?
bsdhack
 
シグナル
bsdhack
 
FreeBSDのブートプロセス
bsdhack
 
正規表現
bsdhack
 
シェルスクリプトを極める
bsdhack
 
仕事で使えるシェルスクリプト
bsdhack
 
Ad

Bashのヒストリ展開を活用する