Windows10でhosts編集ウィンドウを一発で開く
powershell -NoProfile -ExecutionPolicy unrestricted -Command "start notepad C:\Windows\System32\drivers\etc\hosts -verb runas"
これを edit_hosts.bat みたいな名前で保存して、ダブルクリックで起動したらOK。
シェルで便利だったコマンド&オプションまとめ
随時追加していく。
# grepでOR検索 cat file.txt | grep -e hoge -e fuga # grepで前後行も出力 # -A -> 後の行数 # -B -> 前の行数 cat file.txt | grep -A 10 -B 5 hoge -e fuga # xargsでパイプで渡された値を任意の場所に突っ込む cat file.txt | grep "hoge" | awk '{print $1}' | xargs -IXXX grep XXX file2.txt # tail -F をリアルタイムで grep する tail -f production.log | grep --line-buffered "hogehoge" # gz形式のファイルを解答せずに中身を見る gzip -dc production.log-yyyymmdd.gz | less # 全検索 sudo find / -name filename # <() コマンド結果をファイルのようにして入力値として与える diff <(seq 1 3) <(seq 2 4) # trで文字列置換(改行コードも扱える) cat file.txt | tr 'A' 'B' # AをBにする cat file.txt | tr -d '\n' # 改行を消す cat file.txt | tr -dc 1 # => 1以外を消す # 指定文字数で改行させなおす # 一度改行消して、60文字区切りで改行させる cat file.txt | tr -d '\n' | fold -w60 # ImageMagickで画像変換 convert test.png test.jpg # フォーマット変換 convert -geometry 50% testimg.png testimg.50p.png # サムネイル convert -geometry 100x100 testimg.png testimg.50p.png # サムネイル convert -rotate 90 server.jpg server_90.jpg # 時計回りに90度回転 # xargsで複数のコマンドを実行 # (shコマンドの中で複数のコマンドを実行させて実現する) seq 10 | xargs -I@ sh -c 'echo @; sleep 1' # 乱数を出力する # /dev/urandomは乱数を出す / tr-dcで0-9以外を消す cat /dev/urandom | gtr -dc 0-9 | fold -w 10 | head # テキストブラウザ w3m http://google.co.jp w3m http://google.co.jp --dump # 表示出力 # bcコマンド 電卓 # オプション obase(output10進数) # オプション ibase(input16進数) echo 'obase=10;ibase=16; F + F' | bc # ファイルに差分があるかどうかだけ返す diff -q a.txt b.txt ls | xargs -IX diff -q X ~/app2/X # グローバルIDを知る curl ifconfig.io # 列指定でsort sort -k2 # 2列目でソート # 無限ループ while true do echo hogehoge done # 1行無限ループ while :; do ps aux | grep unicorn; sleep 1; done # ディレクトリ配下のファイルの拡張子を一斉置換 for filename in *.txt; do mv $filename ${filename%.txt}.csv; done
My.tmux.conf
随時更新していく
bind s split-window -v bind v split-window -h bind j select-pane -D bind k select-pane -U bind h select-pane -L bind l select-pane -R bind r source-file ~/.tmux.conf \; display "Reloaded!" set -g pane-active-border-fg red set -sg escape-time 1 setw -g mode-keys vi bind c new-window -c "#{pane_current_path}" bind % split-window -hc "#{pane_current_path}" bind '"' split-window -vc "#{pane_current_path}"
Rubyで名詞の単数形・複数形を変換する
たまにやりたくなる。いつもメソッド名忘れているけど。
require 'active_support' 'user'.pluralize # => users 'users'.singularize # => user
gitでたまに使うコマンド集
たまにしか使わなくて、よく忘れるコマンドをメモしていく。
リモートリポジトリ系
# リモートリポジトリの変更 git remote set-url origin <新しいリポジトリURL> # リモートリポジトリの追加 git remote add hogehoge <追加したいリポジトリURL> # リモートリポジトリの削除 git remote rm hogehoge # リモートリポジトリ名の変更 git remote rename <old_name> <new_name>
やりなおし系
# 間違ってaddしたやつを取り消す git reset config/environments/development.js # commitを打ち消し(逆向きのcommitをする) git revert コミットのハッシュ値 # 直前のcommitをなかったことにする # --hardオプション:コミット取り消した上でワークディレクトリの内容も書き換えたい場合に使用。 git reset --hard HEAD^ # 特定のコミットまで戻す git reset --hard #{コミットハッシュ} # 間違ってcommitしたものをステージ前まで戻す git reset --soft HEAD^ git reset HEAD # 直前のコミットの差分を見る git diff HEAD^ HEAD # ステージしたファイルと最新コミットの差分を見る git diff --staged # 直前のコミットメッセージを修正する git commit --amend
タグ系
# タグを作る git tag TAGNAME # タグでブランチ切る git checkout -b 1.6 refs/tags/v1.6 # タグ一覧 git tag # タグの削除 git tag -d TAGNAME # タグのpush git push origin TAGNAME # リモートのタグを消す git tag -d TAGNAME git push origin :TAGNAME
その他
# コミット間のファイル差分を出力する # --statは編集量表示 / --name-onlyはファイル名のみ出力の意味 git diff --stat --name-only <コミットID A> <コミットID B> # 大文字小文字の違いもファイル変更と認識させる # Macで作業する時用 git config core.ignorecase false # git add . で deletedが反映されない時 git add -u .
Rubyでメソッドの定義場所を確認する
gem pry を使うと、$で簡単に確認できる
$ "".present? # From: /home/kinosuke/app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.7/lib/active_support/core_ext/object/blank.rb @ line 23: # Owner: Object # Visibility: public # Number of lines: 3 # # def present? # !blank? # end
rpmでインストール&アンインストール
オプションをいつも忘れるのでメモ。
# インストール rpm -ivh https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.1.rpm # アンインストール rpm -e elasticsearch # アンインストールに問題ないか確認 # 何か問題あったらごにょごにょ出力される rpm -e --test elasticsearch # 詳細確認(インストールされているかどうか確認できる) rpm -q elasticsearch