読者です 読者をやめる 読者になる 読者になる

bashの関数はwhichコマンドしても出処が分からない

which や whereis でコマンドのパスが出ないんで「なんだろうな?」と思ったが、よく考えたら .bash_profile で定義しているbash関数だった。 関数の定義は以下で確認できる。

declare -f [function name]

ディレクトリのハードリンク恐い…

coreutils入れて ln -F すればディレクトリのハードリンクも作れるのだが、消すには rm -fr するしかなさそう。 そうすると、ディレクトリの中身も消えてしまう… 一旦、中身の場所を移し、ハードリンク消してから戻せば良さそうだが、中身が多いとちょっと大事…

よく分かって無くて rm -fr を消してしまった。 Box Syncでバックアップしてたので戻せたのだが、Box Syncはdotfileをバックアップしてくれないので、難儀した…

githubリポジトリを別名コピーするやり方

リポジトリ hogehoge-cp にコピー。

まず、githubhoge-cpリポジトリを空で作っておく。 それから、どこかの端末で以下を実行。

git clone git@xxx/hoge.git
git remote set-url origin git@xxx/hoge-cp.git
git push

bashのfor分で数値の範囲を指定する方法。

知らんかった…

$ for i in {1..10}; do echo $i ; done
1
2
3
4
5
6
7
8
9
10

更にゼロパディングしたい場合は、

$ for i in {01..10}; do echo $i ; done
01
02
03
04
05
06
07
08
09
10

管理者権限のないマシンでtmuxを使う

ここを参考にした。

ken1row.net

但し、自分の環境の場合は、いくつか追加でインストールが必要だった。 いずれもtarballをscpでサーバにもっていき、--prefixオプションでローカルにインストールした。

nursesのビルドに必要

tmuxのビルドに必要

  • autoconf
  • automake
  • pig-config

そして、tmux を configure する際、CFLAGSにncursesへのパスも足す必要があった。
(なお、私は全てのモジュールを ${HOME}/4tmux/local ディレクトリにインストールした。)

./configure --prefix=${HOME}/4tmux/local LDFLAGS="-L${HOME}/4tmux/local/lib" CFLAGS="-I${HOME}/4tmux/local/include -I${HOME}/4tmux/local/include/ncurses"

また、tmuxのインストールまで済んだ後、起動しようとすると
tmux: invalid LC_ALL, LC_CTYPE or LANG
というメッセージが出て起動できなかった。

.bashrc や .bash_profile で
export LD_LIBRARY_PATH=$HOME/local/lib
をしないようにしたら、正常に動くようになった。

carton exec で実行する際に実行時にモジュール・パスを追加

carton exec -- perl -I path home.pl

vimでクリップボードからコピる際に自動コメントがウザい場合

Webとかからコードコピりたい時に「コメント行の次行も自動でコメントアウト」がウザい時がある。 そういうときは、おとなしく vi 使うのも手。

/bin/vi [file]