Skip to content

blacknon/dotfiles

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
bin
 
 
 
 
 
 
 
 
 
 
img
 
 
 
 
lib
 
 
 
 
 
 
 
 
sh
 
 
 
 
zsh
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

dotfiles

About

自分(Blacknon)のクライアント環境用dotfiles。

基本方針

ローカルではzshを、リモートではbashを用いる。

リモート先でもlsshを使ってローカルの設定(shell function含む)を転送、利用するため、実行コマンドは可能な限りシェル関数として実装する。

ディレクトリ・ファイル構成

PATH 概要
.zshrc zsh用のrcファイル。小分けにしたファイル郡をsourceするだけ。
.bashrc bash用のrcファイル。小分けにしたファイル郡をsourceするだけ。
.vimrc vimrcファイル。ssh先に持っていきやすくするため1ファイルにすべて設定を記述する。
.tmux.conf vimrcファイル。ssh先に持っていきやすくするため1ファイルにすべて設定を記述する。
sh bash/zshで共通の設定・関数を格納するディレクトリ。
sh/alias.sh aliasの設定ファイル
sh/exportsh export周りの処理を記述しているファイル
sh/other.sh その他
sh/functions/command_not_found_hundle aliasの設定ファイル
sh/functions/common.sh shell関数内で利用している関数を記述しているファイル
sh/functions/exec_1.sh インタラクティブシェルから実行する関数1(ssh先に持っていくもの)
sh/functions/exec_2.sh インタラクティブシェルから実行する関数2(ssh先に持っていかない・利用頻度の低いもの)
sh/functions/iterm2.sh iTerm2で利用する関数
sh/functions/keybind.sh Keybindで使用する関数
sh/functions/replace.sh 既存のコマンドからaliasで置き換える関数

実行コマンド・関数

AppleScript

File 概要
AppleScripts/music_rename.applescript Musicの選択中のタイトル名を、~/Work/YYYYmm/YYYYmmdd/itunes.txtのタイトルに変換していくスクリプト(~/Work/YYYYmm/YYYYmmdd/itunes.txtはShift-JISで記述する必要があるので注意)
AppleScripts/music_settracknum.applescript Musicの選択中の曲にtrack numberを連番でセットしていくapple script.

実行ファイル

File 概要
bin/get_proxy pubproxy.comのapiからランダムにSocks5 proxyを取得するスクリプト
bin/get_proxylist www.proxy-list.downloadからフリーのプロキシリストを取得してURI形式でリスト取得するスクリプト
bin/get_shellfunction_table.sh シェル関数とその説明をsh_function*ファイルから取得してtableにするスクリプト
bin/hwatch_logviewer.py hwatchのlogをパースして出力するスクリプト
bin/json2urlparam.py json文字列をPOSTできるURL EncodeしたQuery stringに変換するスクリプト
bin/mkworkln.sh ~/Work整備のcron用スクリプト
bin/my-pj 期間の決まっているプロジェクト用のディレクトリ生成スクリプト(~/Workとセット)
bin/myconky.sh dotfiles配下のconkyrcを利用したconkyの管理用スクリプト(Desktop Linux用)
bin/mydocker-setup ローカルで使うDockerの取得用スクリプト
bin/rot.py 文字列のROT対応用スクリプト(未作成)
bin/update_ltmux ssh先に持っていくtmux設定付きfunctionの作成スクリプト
bin/update_lvim ssh先に持っていくvim設定付きfunctionの作成スクリプト

シェル関数

File 関数名 概要
./sh/functions/common.sh ____get_envdata() 現在使っているfunctionや環境変数、aliasをbase64にして返す関数
setでfunction/envを、aliasでエイリアスを取得させる
./sh/functions/common.sh ____get_rcdata() ローカルマシンで使用しているbashrcやvimrcのfunctionを読み込んで
base64にして返す関数
./sh/functions/common.sh ____toggle_surround_format() 入力中の内容を引数で指定された文字列で囲む(カーソル位置〜行末)
./sh/functions/common.sh ____get_escape() エスケープした文字を返す
./sh/functions/common.sh ____1char2dotchar() 各文字を1文字だけドット(.)にした文字列の一覧を出力する(agrepで使用)
./sh/functions/common.sh ____shift1chars() 各文字を1文字ずつずらした文字列を出力する(agrepで使用)
./sh/functions/exec_1.sh ttmux() tmux内で実行すると、ウィンドウを分割してスタートさせる
./sh/functions/exec_1.sh check_cert() OpenSSLでの、リモートの証明書の期限をチェックするための関数
./sh/functions/exec_1.sh get_globalip() Get Global ip address
./sh/functions/exec_1.sh get_ip() ipアドレスとinterfaceの組み合わせをシンプルなリストにして出力する
./sh/functions/exec_1.sh pping() ex.)
pping target1 target2...
parallel port ping
./sh/functions/exec_1.sh ddig() スペース区切りでリストを引数として与えると、その名前解決の結果をカンマ区切りで出力する関数
ex.)
ddig abc{1..10}.com @{8.8.8.8,1.1.1.1}
./sh/functions/exec_1.sh rarls() rarファイル内のデータをlist表示するfunction。
./sh/functions/exec_1.sh zipcat() zipファイル内のファイルを指定して標準出力に書き出すfunction。
./sh/functions/exec_1.sh zipls() zipファイル内のデータをlist表示するfunction。
./sh/functions/exec_1.sh targrep() tarファイル内のファイルに対してgrep(相当の処理)を行うfunction。
awkを利用する。 ※ GNU tarでないと動作しないので注意
./sh/functions/exec_1.sh tarcat() tarファイル内のファイルを指定して標準出力に書き出すfunction。
./sh/functions/exec_1.sh tarls() tarファイル内のデータをlist表示するfunction。
./sh/functions/exec_1.sh todaydir() make today dir
./sh/functions/exec_1.sh find_bigfile() サイズの大きいファイルをサーチする
./sh/functions/exec_1.sh sw() ファイルの入れ替え(スイッチ)
./sh/functions/exec_1.sh dec_jwt() 標準入力から受け付けたjwtトークンをDecodeする
./sh/functions/exec_1.sh enc_unicode() 標準入力から取得した値をUnicode Escape Sequence形式に変換する
※ nkfが必要
./sh/functions/exec_1.sh enc_hex() 標準入力から取得した値をHex形式(\xXX)にして返す
./sh/functions/exec_1.sh dec_html() 標準入力から受付たhtmlエンティティ形式のデータをもとに戻す
./sh/functions/exec_1.sh enc_html() 標準入力から取得した値をhtmlエンティティ形式に変換する
./sh/functions/exec_1.sh dec_url() 標準入力から取得したパーセントエンコーディングを戻す
./sh/functions/exec_1.sh enc_url() 標準入力から取得した値をパーセントエンコーディングする
-n ... nkfを使用してパーセントエンコーディングする(-a,-zは無効化)
-a ... ascii文字含め全部をパーセントエンコーディングする(-nのときは無効)
-z ... Null区切りにして改行もパーセントエンコーディング対象とする
./sh/functions/exec_1.sh aigrep() あいまいgrepをするfunction
(1文字違う文字列(abc=>{.bc,a.c,ab.})と、1文字ずつずらした文字列(abc=>{abc,bac,acb})でgrepをする(typoも発見できる))
./sh/functions/exec_1.sh joinby() Join array
./sh/functions/exec_1.sh ts() 標準入力で受け付けた行頭にタイムスタンプ(YYYY-MM-DD HH:MM:SS: )を付与する
./sh/functions/exec_2.sh mkinst() make install を一気に行うためのfunction
./sh/functions/exec_2.sh scx() 完全にlocalで実行する用のscのラッパーfunction。
bashrcをsourceした状態で引数のコマンドを実行させるので、functionも実行できるようにする。
./sh/functions/exec_2.sh sc() scriptコマンドで/Work配下にターミナルログを記録する
./sh/functions/exec_2.sh battery() バッテリー残量を取得
./sh/functions/exec_2.sh pe() petからsnippetを実行する(実行後はhistoryに登録)
./sh/functions/exec_2.sh prev() 直前に実行したコマンドをpetに登録する
./sh/functions/exec_2.sh docker_login() 起動中のdockerコンテナにログインするためのfunction。
usage:
docker_login コンテナ名
docker_login -e コンテナ名 # 現在のfunctionを利用してログイン
docker_login -r コンテナ名 # rcファイルを利用してログイン
./sh/functions/exec_2.sh docker_runin() dockerコンテナを起動してログインするためのfunction。
usage:
docker_runin コンテナ名
docker_runin -e コンテナ名 # 現在のfunctionを利用して起動・ログイン
docker_runin -r コンテナ名 # rcファイルを利用して起動・ログイン
docker_runin -v ローカルPATH:コンテナPATH コンテナ名 # マウント指定(-r/-eオプション併用可)
NOTE: docker-machine環境下でvolume mountがうまくいかなくなった場合、とりあえずアップグレードすることで直る場合がある。まずはそれをやってみること。
./sh/functions/exec_2.sh sortsave() sortしてその内容をそのまま保存する
※ moreutils必須
./sh/functions/exec_2.sh gscd() gitリポジトリ内のディレクトリを選択して移動する
./sh/functions/exec_2.sh gcd() gitリポジトリのルートディレクトリに移動する
./sh/functions/exec_2.sh ud() 上のディレクトリに移動するfunction.
cd(Change Directory) → ud(Up Directory)
...という命名方式
./sh/functions/exec_2.sh tw() 現在いるWorkディレクトリを識別し、その翌日のディレクトリへ移動する
./sh/functions/exec_2.sh yw() 現在いるWorkディレクトリを識別し、その前日のディレクトリへ移動する
./sh/functions/exec_2.sh wd() 本日のDownloadディレクトリへの遷移用function
./sh/functions/exec_2.sh ww() Workディレクトリの作成・移動
./sh/functions/exec_2.sh url2json() パイプから受け付けたurl encodeされたパラメータをjsonにして出力するfunction(要php)
./sh/functions/exec_2.sh json2url() パイプから受け付けたjsonをurlencodeして出力するfunction(要php)
./sh/functions/iterm2.sh imgls() imgls():
about:
iTerm2上で画像ファイルをls状に表示するfunction
origin:
https://www.iterm2.com/utilities/imgls
require:
- php
./sh/functions/iterm2.sh imgview() imgview():
about:
iTerm2上で画像ファイルを表示するfunction
origin:
https://www.iterm2.com/utilities/imgcat
./sh/functions/iterm2.sh ____show_imgls_list_file() ____show_imgls_list_file():
about:
imglsの結果を出力するfunction
./sh/functions/iterm2.sh ____show_imgview_help() ____show_imgview_help():
about:
imgview用のhelpを出力するためのfunction
./sh/functions/iterm2.sh ____show_error() ____show_error():
about:
エラーメッセージを出力するfunction
./sh/functions/iterm2.sh ____print_image() ____print_image():
about:
iTerm2にイメージを出力するimgview用のfunction
./sh/functions/iterm2.sh ____check_dependency() ____check_dependency():
about:
コマンドの有無を確認するfunction。
./sh/functions/iterm2.sh ____print_st() ____print_st():
about:
More of the tmux workaround described above.
./sh/functions/iterm2.sh ____print_osc() ____print_osc():
about:
tmuxなどの場合にOSCエスケープシーケンスを出力するためのfunction。
./sh/functions/keybind.sh __tw() twをkeybindで実行する
./sh/functions/keybind.sh __yw() ywをkeybindで実行する
./sh/functions/keybind.sh __ww() wwをkeybindで実行する
./sh/functions/keybind.sh __toggle_doublequote_format() 入力中の内容をダブルクオーテーションで囲む
./sh/functions/keybind.sh __toggle_singlequote_format() 入力中の内容をシングルクオーテーションで囲む
./sh/functions/keybind.sh __toggle_substitution_format() コマンド置換形式に変換する
./sh/functions/keybind.sh __pet_set() pet searchをしてコマンドラインを置き換えるkeybind用のfunction
./sh/functions/keybind.sh __history_selection_insert() Ctrl + R でhistory検索をして現在カーソルに差し込みをするfunction
./sh/functions/keybind.sh __history_selection() Ctrl + R でhistory検索をする(peco,bocoを使用)
./sh/functions/keybind.sh __copy_current_command() Ctrl + X, Cで、現在のプロンプトのコマンドをコピーする(ssh先でも使えるように、OSCエスケープシーケンスを使用)
NOTE: 【前提】 Macの場合、iTerm2を使ってることが前提
NOTE: 【前提】 iTerm2の場合、PerferencesApplications in terminal may access clipboardにチェックが入ってる必要がある
./sh/functions/keybind.sh __cd_selection() Ctrl + X, Ctrl + Dでcdを行うためのfunction(bash/zsh共通)
./sh/functions/keybind.sh __cd_record() cdのhistoryを記録するためのfunction
./sh/functions/replace.sh __pingfunc() pingでタイムスタンプを頭につけるためのfunction
./sh/functions/replace.sh __mkdirfunc() mkdirで、単体のディレクトリが指定された場合はそこにそのまま移動させるためのfunction
./sh/functions/replace.sh __sudofunc() sudoでfunctionで定義した内容が使えるようにするためのfunction

Note

実行ファイル・関数テーブル作成用コマンド

# AppleScript
echo "|File|概要|\n|---|---|";grep -H -a '^-- Description' AppleScripts/* | nkf -w | sed -r 's/:-- Description:/\t/;s/(.+)\t/[\1](\1)\t/'| tb -s$'\t'

# 実行ファイル
(echo "File\t概要\n---\t---";grep -H -a '^# Description' bin/* | nkf -w | sed -r 's/:# Description:/\t/;s/(.+)\t/[\1](\1)\t/')| tb -s$'\t'

# シェル関数
get_shellfunction_table.sh