Successfully reported this slideshow.
Your SlideShare is downloading. ×

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

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
20161203 Gentoo勉強会
20161203 Gentoo勉強会
Loading in …3
×

Check these out next

1 of 12 Ad

More Related Content

Slideshows for you (20)

Advertisement

Recently uploaded (20)

Advertisement

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

  1. 1. bashbash のヒストリ展開を活用するのヒストリ展開を活用する USP 友の会 今泉光之 @bsdhack http://bsdhack.{org,com,net}
  2. 2. bashのヒストリ展開を活用する 2 はじめにはじめに ● POSIX とは原理主義者ではありません – 製品としてのソフトウェア作成では意識します – 決して原理主義者ではありません – 普段は古くから bash を愛用しています ● あまり知られていないヒストリ展開の紹介
  3. 3. 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 で実行される
  4. 4. 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
  5. 5. 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) :
  6. 6. 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
  7. 7. bashのヒストリ展開を活用する 7 単語指示子単語指示子 ● !:n – 直前に実行したコマンドの n 番目の引数 ● !^ – 直前に実行したコマンドの 1 番目の引数 ● !$ – 直前に実行したコマンドの最後の引数 ● !* – 直前に実行したコマンドの全ての引数
  8. 8. bashのヒストリ展開を活用する 8 単語指示子単語指示子 ● !:n* – 直前に実行したコマンドの n 番目から最後までの引数 ● !:n-m – 直前に実行したコマンドの n 番目から m 番目までの引数 ● !:-m – 直前に実行したコマンドの 1 番目から m 番目までの引数 ● !:n- – 直前に実行したコマンドの n 番目から最後の 1 個前までの引数
  9. 9. bashのヒストリ展開を活用する 9 ヒストリ展開される単語の修飾ヒストリ展開される単語の修飾 ● :h – パスのディレクトリ名部分を取得する $ ls /usr/local/bin/vim $ cd !$:h cd /usr/local/bin
  10. 10. bashのヒストリ展開を活用する 10 ヒストリ展開される単語の修飾ヒストリ展開される単語の修飾 ● :t – パスのファイル名部分を取得する $ ls /usr/local/bin/vim $ cp !$ !$:t cp /usr/local/bin/vim vim
  11. 11. 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
  12. 12. bashのヒストリ展開を活用する 12 ヒストリ展開される単語の修飾ヒストリ展開される単語の修飾 ● :e – パスのファイル名部分から拡張子を取得をする $ ls /usr/local/doc/foo.tex $ cp !$ bar!$:e cp /usr/local/doc/foo.tex bar.tex

×