ターミナルでちょっと役に立つかもしれない小ネタ

ブログに広告が出ていたので消すためにも記事を書かないとと思って数ヶ月が経ちました。あけましておめでとうございます。 普段使ったり使わなかったりするコマンドについて書きます。

前のディレクトリに戻る

  • cd - とすると前にいたディレクトリに戻る
    • git checkout - とすると前にチェックアウトしたブランチに戻る
# jisoproに移動
kai@~/work
21-02-07 20:50 cd jisopro

# 前のディレクトリ(work)に戻る
kai@~/work/jisopro
21-02-07 20:51 cd -
~/work

# ただいま
kai@~/work
21-02-07 20:51

LIFOなノリでディレクトリを移動する

# workに移動する
kai@~
21-02-07 20:38 pushd work

# jisoproに移動する(このときpopdしたらホームディレクトリに戻る)
~/work ~
kai@~/work
21-02-07 20:38 pushd jisopro
~/work/jisopro ~/work ~

# jisoproでpopdする
kai@~/work/jisopro
21-02-07 20:38 popd

# workに戻ってきてからpopdする
~/work ~
kai@~/work
21-02-07 20:39 popd
~

# ただいま
kai@~
21-02-07 20:39

カレントディレクトリを変えずに別ディレクトリでコマンドを実行する

  • () でくくって cd するとコマンド実行後もカレントディレクトリが変わらない
# 現在地はkaiのホームディレクトリ
kai@~
21-02-07 20:32 pwd
/Users/kai

# workに移動してpwdを実行
kai@~
21-02-07 20:32 (cd work && pwd)
/Users/kai/work

# 上記のコマンド実行後もカレントディレクトリはホームディレクトリのまま
kai@~
21-02-07 20:33

前に実行したコマンドを再利用する

  • !! を使うと(bang bangコマンド?)前に実行したコマンドを使うことができる

    • sudo の付け忘れとかで sudo !! とか使うことがあるけど、繊細な環境でしか使わないほうがいいかな。。。基本はちゃんとコマンド見て sudo しよう。
# lsを普通に実行する
kai@~/work
21-02-07 20:44 ls
jisopro                 make_you_happy.py

# sudo権限でlsを実行する()
kai@~/work
21-02-07 20:44 sudo !!
sudo ls
Password:
jisopro                 make_you_happy.py
  • ! -2 とすると2個前のコマンドを実行することもできる。 !-3 なら3個前...
kai@~/work
21-02-07 20:59 ls
jisopro                 make_you_happy.py
kai@~/work
21-02-07 20:59 ls jisopro
README.md
kai@~/work
21-02-07 20:59 !-2
ls
jisopro                 make_you_happy.py

前に実行したコマンドの引数を再利用する

  • $_ を使うと前のコマンドで使った引数を使うことができます
# make_you_happy.pyが存在します
kai@~/work
21-02-07 20:48 ls
jisopro                 make_you_happy.py

# make_you_happyを削除します :(
kai@~/work
21-02-07 20:48 rm make_you_happy.py

# make_you_happyを復活させます ;)
kai@~/work
21-02-07 20:48 touch $_

# lsで確認
kai@~/work
21-02-07 20:48 ls
jisopro                 make_you_happy.py
  • もちろん && でつないだ場合も有効
kai@~/work
21-02-07 20:49 touch hoge.py && vi $_

# viでhogeを書き込む...

kai@~/work
21-02-07 20:50 cat hoge.py
hoge

vi コマンド小ネタ

n行目にフォーカスする

  • vi +n <file> とすると指定したn行目にフォーカスされた状態で開かれる

    • Zoomとかで同僚と「n行目の処理が〜〜」とかの話になるのでそういう時とか使う。(普段はPycharm使ってるのであまりないけど)
kai@~/work
21-02-07 21:11 cat make_you_happy.py
1
2
3
4
5
6
7
8
9
10

# 5行目にカーソルが置かれた状態で開かれる
kai@~/work
21-02-07 21:11 vi +5 $_

差分モード

  • -d をつけると別のファイルとの差分を確認しながら編集できる

対象のファイルたち

kai@~/work
21-02-07 21:14 cat make_you_happy.py
1
2
3
4
5
6
7
8
9
10

kai@~/work
21-02-07 21:14 cat make_you_happy_2.py
1
2
3
5
4
6
7
8
9
10
kai@~/work
21-02-07 21:14 vi -d make_you_happy.py make_you_happy_2.py

f:id:kai1233:20210207211524p:plain

読み込み専用で開く

  • -R を付けて読み込み専用で開く
kai@~/work
21-02-07 21:19 vi make_you_happy.py -R