nDiki : Bash

GNU Bash

Bourne Again SHell

メモ

ファイル名拡張子を変更する

 for F in *.JPG ; do mv $F ${F%.JPG}.jpg ; done

関連情報

スポンサード リンク

2011年2月22日 (火)

今日のさえずり: お茶碗にご飯を1/3残すのより数粒残す方が罪悪感がある

2011年02月22日

  • 10:21 「ちゃんこ鍋をつつく会」参加エントリした。
  • 12:08 炭火焼牛カルビ弁当 498円。 (@ セブン-イレブン 神田佐久間町店) http://4sq.com/e2lnJF
  • 15:18 type_info::name() 呼ぶとメモリリークとして検出される。
  • 15:54 Windows 7 はタスクバーを最背面表示にできないのか?
  • 17:14 ミーティングソフトウェアメトリクスが出たと思ったら「コメント行数」とか出てきてげんなりした。
  • 17:29 RT @atok_js: 【Android向けATOK Trial版をご利用の方へ】試用期間終了の案内が出ているかと思いますが、近日中には今後のご案内をさせていただきます。ちょっとしたサプライズを用意していますのでお楽しみに!#atok4android
  • 20:26 XperiaBash が欲しいな。クロスコンパイルするか。
  • 20:28 Panasonic ノート PC にかじられたリンゴのステッカー貼っている人発見。
  • 21:27 (例えば体調が悪くて)お茶碗にご飯を1/3残すのより、(同じ条件で)数粒残す方が罪悪感があるのはなんだろうねぇ。
  • 24:30 Android NDK で Bashビルドが通らないなあ。
  • 25:56 アイロンかけたし、ぼちぼち。
[ 2月22日全て ]

2011年4月27日 (水)

cpanm 入れて perltidy 入れて

perltidy が無いと Perlソースコードが書けない体なのです。 なので cpanm でホームディレクトリ以下にインストール

まずは ~/local/perl 以下に CPAN モジュールをインストールして使えるように、Bash の設定ファイルに以下を追加。

 export PERL_CPANM_OPT="--local-lib=$HOME/local/perl"
 PERL5LIB=$PERL5LIB:$HOME/local/perl/lib/perl5:$HOME/local/perl/lib/perl5/x86_64-linux-thread-multi
 PATH=$PATH:$HOME/local/perl/bin

そして以下を実行(~/local/bin は PATH に設定しているところ)。

 cd ~/local/bin
 curl -LO http://xrl.us/cpanm
 chmod 755 ./cpanm

cpanm のインストールはこれで OK。後は

 cpanm Perl::Tidy

perltidyインストール完了。

あとはお好みな .perltidyrc を用意したり Emacs から呼べるように設定したりすれば OK。

[ 4月27日全て ]

2012年3月13日 (火)

今日のさえずり: 思わず「おまえら付き合ってるのか?」と言いそうになった

2012年03月12日

  • 09:52 着席。 @ 株式会社ミクシィ(mixi, Inc.)にタッチ! http://t.co/HjYjRonw
  • 13:55 Bash プロンプトに Git ブランチ名表示するようにしたら「80桁残りわずか!」な状態すぎたので、プロンプト2行にしてみた。
  • 16:04 廊下で男女が談笑していたので思わず「おまえら付き合ってるのか?」と言いそうになった。
  • 19:56 あ、登山サークル、金時山に行くのか。小学生の時に登ったあの山じゃん。
  • 21:18 うは、金時茶屋が食べログに載ってる。
  • 21:36 退勤。マルセイバターサンド食べにウチに帰る。

2012年03月13日

  • 08:08 体中の水分が鼻から出てくる現象が始まった。
  • 09:12 @maru_kei たまにマグマも。
  • 09:19 今日はすきまテープ買って帰って貼り替えたいので普通に上がるつもり。
  • 09:44 ブラインド全開にしたい。 @ 株式会社ミクシィ(mixi, Inc.)にタッチ! http://t.co/SEdSOkWy
  • 13:54 普通のマグネットが欲しかったのに。 (@ 伊東屋 渋谷店) http://t.co/RSmBz1ql
  • 17:41 「太った?」というご指摘をいただいたので、今日帰って体重はかってみます。持参した甘栗は自粛します。
  • 19:46 文中に match variable の意で $1 って書いたけど、送信してから普通1ドルって思われるよなと思ったけど、コメントされた人はきっとわかる人だと思ったけど、放置。
  • 20:01 退勤。これからドラッグストアでお楽しみです。
[ 3月13日全て ]

2012年6月7日 (木)

.bashrc にある Git 関連設定

自分が Bash で設定している Git 関連のもの。

ページャー

lv があれば lv を使う。UTF-8 に変換、ANSI エスケープシーケンスを有効に。

 # pager
 if command -v lv > /dev/null; then
   export GIT_PAGER='lv -Ou8 -c'
 fi

プロンプト

bash-completion が有効なら、ブランチ名をプロンプトに表示するように設定。GIT_PS1_SHOWDIRTYSTATE を設定して unstaged な変更があれば *、staged な変更があれば + をブランチ名の後ろに表示するようにしてる。

 # prompt string
 PS1='\[\033[0;37m\][\[\033[0;32m\]\t \[\033[1;36m\]\u\[\033[0;37m\]@\h \[\033[0;32m\]\w\[\033[0;37m\]]\n$ '
 
 if hash __git_ps1 2> /dev/null ; then
   export GIT_PS1_SHOWDIRTYSTATE=1
   PS1='\[\033[0;37m\][\[\033[0;32m\]\t \[\033[1;36m\]\u\[\033[0;37m\]@\h \[\033[0;32m\]\w\[\033[0;37m\]\[\033[01;33m\]$(__git_ps1 " | %s")\[\033[00m\]]\n$ '
 fi
[ 6月7日全て ]

2012年9月28日 (金)

YAPC::Asia Tokyo 2012 1日目

昨日の前夜祭から一晩明けて、1日目。今年は去年みたいに #yapcasia タイムライン専用スクリーンが無いのかぁ。ちょっと残念。タイムラインとか Growl 芸とか YAPC 名物な気がしてたので。LTソンの方に機材まわしたからかな?

会場は小綺麗だけれど物販 NG 他利用規則がいろいろ厳しくて、ちょっと窮屈な感じかな。そういう意味で、東工大は良かったですねぇ。

ホールのすぐ横が会場ということもあって懇親会もすごい賑いで、どんどん大きなイベントになっているんだなぁ感じた。 懇親会では、ネックストラップに入れておいた Twitter 名刺をみて、声をかけていただいたりして光栄でした。@toku_bass 氏、メガネラボの @issm 氏と直接お会いできました。

トーク・LT

トーク・LT は例年通りレベルが高く濃いもの揃いで素晴しかったですね。

  • Larry Wall 氏のライブリファクタリング芸いつもすごい。
  • 今回は フリークアウト (FreakOut) が元気だなあという印象。トークとか LT とか T シャツ着てる人たちとか。
  • tokuhirom 氏のプレゼンテーション、現在時刻と経過時間が出ててとても良さそげ。
  • 最後に実行したコマンドの終了ステータスに応じて、Bash プロンプトを切り換えるも便利そう。

メモ

ファシリティ系:

  • 伊藤謝恩ホールのテーブル席のコンセントはダミー。

回線系:

  • 伊藤謝恩ホールはNTTドコモつながりにくい。人が多いとほぼ不通。
  • ということで、普段は SSID 詐称とか怖いので使わない会場無線 LAN を スマートフォン・iPad で利用させていただいた。こちらも LT など人が多い時は仕方がないけど途切れ途切れな感じ。
[ 9月28日全て ]

2014年12月3日 (水)

Emacs の helm では prefix を補完するのに TAB を使うんじゃねぇ

Emacs で anything から helm にしてから2週間ほど経つのだけれどなかなか慣れない。特に TAB でのファイル補完のところ。どうするのがいいのかなと Web とか見ていたら「prefix を補完するのに TAB を使うんじゃねぇ。」って書いてあったのを読んでなんとなくわかった気がした。それが helm 使いのならわしらしい。

IMPORTANT: Please remember that, when you use Helm, you never TAB to complete prefixes like vanilla or other packages like Ido and its related packages. In Helm, when you type something, candidates get updated automatically. In vanilla Emacs, you have to TAB to get a/ list of candidate. This is a great feature from Helm, not a miss of feature. You have to forget the mentally of TABBING to get candidates. If you want quick completion of search patterns in Helm prompt, you always have hippie-expand to replace the TAB behaviour, as introduced at the beginning of this section. This is the biggest confusion for new people switching to Helm. When you are used to Helm, you will love it. -- http://tuhdo.github.io/helm-intro.html

なるほど。

そうはいっても Bash とかで手が慣れちゃっているからなかなかねー。

[ 12月3日全て ]

2015年4月30日 (木)

開発ディレクトリ毎に異なる環境変数を設定するのに direnv を使う

シェルで特定の開発ディレクトリ以下に移動すると自動的に設定ファイルで指定された環境変数を設定し、そのディレクトリから別のディレクトリに移動すると戻してくれる direnv が便利。

https://github.com/zimbatm/direnv

Go開発するのに GOPATH と bin への PATH 追加が面倒だったので導入してみた。

インストール

 git clone https://github.com/zimbatm/direnv
 cd direnv
 make build
 cp -a direnv $HOME/local/bin

なお direnv は Go で書かれているのでソースからビルドするには Go開発環境が必要。

Bash の設定

.bashrc に以下を追加。

 if command -v direnv > /dev/null; then
    eval "$(direnv hook bash)"
 fi

その他のシェルでの設定は https://github.com/zimbatm/direnv 参照。

Go プログラム開発ディレクトリでの設定

 $ cd project_dir
 $ export EDITOR=emacsclient # 次のコマンドで開くエディタ
 $ direnv edit .
   .envrc の編集用にエディタが開くので

   layout go

   と入力して保存。

後は Bash でこのディレクトリ以下(サブディレクトリも含む)に移動するとこの .envrc のあるディレクトリが GOPATH に追加され、また bin ディレクトリが PATH に追加される。便利。

なお direnv edit . しないで直接 .envrc を作った場合は、別途 direnv allow . を実行してこの .envrc を使うことを明示的に許可する必要がある。許可したかどうかは ~/.config/direnv/allow/* に保存される(freedesktop.org の XDG Base Directory Specification っぽくなっているので XDG_CONFIG_HOME 環境変数があれば ~/.config ではなくてその下に保存される)。

その他標準で

  • layout go
  • layout node
  • layout perl
  • layout python
  • layout ruby

などが用意されている。また

 PATH_add bin

のようにして PATH への追加も簡単。

その他コマンドの実行も可能なので開発以外にもいろいろ便利に使える。

[ 4月30日全て ]

2016年8月13日 (土)

今日のさえずり: これ、あれもこれも書きたくなるから結構時間かかるぞ

2016年08月13日

[ 8月13日全て ]

2017年5月16日 (火)

リモートホストのログインシェルzshEmacsTRAMP がハングアップ

これから利用する開発環境にログインしたら Emacs が入ってなかったので「とりあえず TRAMP を使うかと」とローカルホストの Emacs からファイルを開こうとしました。しかしホスト名の後の : をタイプしたところで止まってしまいます。

ちょっと調べてみたところリモートホストのログインシェルzsh のせいでした。

EmacsWiki の https://www.emacswiki.org/emacs/TrampMode を参考にリモートホストの ~/.zshrc の末尾に以下を追加し、TRAMP が正しく動くようにしました。

 if [[ "$TERM" == "dumb" ]]
 then
   unsetopt zle
   unsetopt prompt_cr
   unsetopt prompt_subst
   unfunction precmd
   unfunction preexec
   PS1='$ '
 fi

デフォルトのログインシェルBash がいいなぁ。

[ 5月16日全て ]

2017年9月1日 (金)

今日のさえずり: ソニー DSC-RX0、ついにビジュアル・ブックマークサイバーショットUの再来では

2017年09月01日

[ 9月1日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィでマネージャー・プロダクトオーナーをしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

follow us in feedly

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.190341s / load averages: 0.53, 0.64, 0.57
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker