タグ

bashに関するshuuuuunyのブックマーク (62)

  • gitで差分ファイルを抽出する - Qiita

    案件で「作業の差分を納品してくれ」とか言われることってよくあります。 今までは手作業でディレクトリ作って、ファイルをコピーしてましたが、 もう、そんなうんざりする作業とはおさらばできそうです。 git archive と git diff の合わせ技で差分を出力できる事がわかったからです。 例えば、一個前のコミットから現在のコミットまでの差分を取り出したい時は、 git archive --format=zip --prefix=root/ HEAD `git diff --diff-filter=d --name-only HEAD^ HEAD` -o archive.zip まずは、git archive について。 --format=zip を付けるとzipで固めてくれます。 --prefix=root/ は抽出したファイルをrootディレクトリに入れた状態にしてくれます。 -o a

    gitで差分ファイルを抽出する - Qiita
  • おい、Antigen もいいけど zplug 使えよ - Qiita

    注意 この記事はv1の情報となっております。 最新の情報は日語ドキュメントを参考にしてください。 zsh のプラグインマネージャといえば Antigen です。zsh 界隈ではプラグイン文化がそこまで強くない印象を受けます。便利なプラグイン1やコマンド2がたくさんあるのに、Vim のそれほど盛り上がっていないのはプラグインマネージャが弱いからではないでしょうか。 Antigen とその弱点 Antigen はよく使われるし実際便利ですが、いくつかの欠点があります。 プラグインの読み込みが遅いこと プラグインの管理が最低限しかできないこと プラグインが antigen に対応していないといけないこと これらの問題点の幾つかは重厚なる zsh 使いの @mollifier さんも以下のスライドで言及しています。 Antigenを使おう 第二の Antigen 1つ目の問題点は Antigen

    おい、Antigen もいいけど zplug 使えよ - Qiita
  • シェルスクリプトで空文字列かどうか調べる。 - masa.edw the ハバネロブリーダー

    シェルスクリプト(sh)で、ある変数が空文字列かどうかを調べるには、testコマンドの -n (Nonzero length) または -z (Zero length) を使う……と書いてあるんだけど、コツがいる。 if [ -n $HOGE ]; then echo "nonzero だよ。" fi ↑これはダメ if [ -n "$HOGE" ]; then echo "nonzero だよ。" fi これならOK。 要は、変数が文字列埋め込みされてないと上手く動かない。何故か?はよくわからない。(シェルに於ける変数の概念はどういうものなのか?) 真理表にまとめると、こんな感じ。 -n -z $UNDEFINED T T $ZEROLEN T T $NONZEROLEN T F "$UNDEFINED" F T "$ZEROLEN" F T "$NONZEROLEN" T F 検証用ス

    シェルスクリプトで空文字列かどうか調べる。 - masa.edw the ハバネロブリーダー
  • Macのターミナルで、あるディレクトリとあるディレクトリのファイルの差分を調べるには?

    日経14.06.08朝 芸術と科学のあいだ 17 鏡文字に込めた天才の思惑 福岡伸一 …ダ・ビンチの筆の特徴は、線が左上から斜め右下へと流れていることである。これは彼が左利きだったかららしい。 もう一つの際立った特徴は、文字がすべて鏡文字、左右反転で書かれていることだ… アイディアを盗まれないよう暗号化したのだという説があるが、暗号にしては簡単に解読されてしまう… ダ・ビンチは天才であり完璧主義者であると同時に、大いなる山っ気を持った人物でもあった。 いつも自分を売り込むこと、プランやアイディアを広めることを考えていた。そのためには何が必要か。マスメディアである。 ダ・ビンチの鏡文字は自分の原稿をいつの日か活版印刷するために意図された周到な準備だったのではなかったか。 日経記事より レオナルド・ダ・ビンチは過去の人物の中で最も尊敬する人物だ。彼は当に何でも出来た。芸術も、科学も、工学も。

  • Bashでの数の取り扱いについて

    B! 6 0 0 0 Bashでの数の取り扱いについて今更ながら知ったことがあったのでまとめ。 特にスクリプトなどで数値をインクリメントしたいときなどにどうするか、について。 expr let 二重括弧 コロン+二重括弧 さらに短縮 小数を取り扱いたい時 expr 恐らく最初に最初に覚える方法。 というか純粋なBourn Shell (sh)だと下のletや二重括弧記号が使えないのでこれが基。 今やshもほとんどbashへのリンクになったりしてるので 問題ないかもしれませんが、移植性を高くしたければexprにしておくのが無難。 $ a=1 $ a=`expr $a + 1` $ echo $a 2 と言った感じ。 扱える数値は整数のみ。exprに与える式は演算子の両側に必ずスペースが必要です。 exprで四則演算などに文字列を渡すとエラーになります。 $ expr a + 1 expr:

    Bashでの数の取り扱いについて
    shuuuuuny
    shuuuuuny 2015/02/16
    bc expr 二重括弧 演算 計算
  • シェルで変数のインクリメントに expr を使うと100倍遅い件

    シェルプログラミングにおいて、ループカウンタなどをインクリメントするとき、どのようにしますか? いきなりですがサンプルから。 #!/bin/bash COUNT=0 while [ $COUNT -lt 1000 ]; do # 何かの処理 COUNT=`expr $COUNT + 1` # COUNT をインクリメント done expr コマンドを使う? シェルプログラミングの入門記事などを見ると、変数のインクリメントに上記のような COUNT=`expr $COUNT + 1` を用いているものが多くあります。 しかし、この書き方は とても遅い です。空のループを1000回繰り返すだけでも手元の mac (Core i7) で約2秒もかかってしまいました。

    シェルで変数のインクリメントに expr を使うと100倍遅い件
    shuuuuuny
    shuuuuuny 2015/02/16
    bc expr 二重括弧 演算 計算
  • bashのちょっと変態っぽい感じの文法メモ - 量子化された無意味な人生

    変態そうで変態じゃない、少し変態なbash。 最近bashでシェルスクリプトをよく書くんですが、結構奇っ怪な文法で便利なのがあるので自分用にメモ。 もうbashちゃんがいないと生きていられないよお…。 csh? zsh? ハッ。ていうこのスタンス。*1 二重かっこで囲って演算子を使う $(())の中ではbash独自の演算子がつかえる文法。 $ bash << 'EOF' > a=10 > b=20 > hoge=$((a+b)) > echo $((a/5)) > echo ${hoge} > EOF 2 30expr使うよりもbash組み込みのこちらの方が環境依存がなく良いらしい。(参考: bashでexprを使わずにインクリメント処理する。 - 0xDB) exprでは演算子との間にスペース必須だったがこれはスペースがあってもなくてもどちらでも良い。 インクリメントもできるのでだいぶコ

    shuuuuuny
    shuuuuuny 2015/02/16
    bc expr 二重括弧 演算 計算
  • Bashで覚えておくとよいデータ構造 - 配列 - いろいろ解析日記

    Bashで必要なデータ構造の覚書です。 目次 配列 配列を生成する。 配列にデータを追加する。 配列にデータを格納する。 配列からデータを取得する。 配列中のすべてのデータに同じ処理をする。 関連記事 配列 配列は複数件のデータを扱うためのデータ構造です。 ■配列を生成する。 配列の生成は以下のように行います。 配列の名前=() 配列の名前=("データ" "データ" "データ")配列の生成では、配列の名前を指定します。 もし、生成時にデータを格納する場合に、()内にデータを指定します。 例えば、空の配列ARRAY1を生成するには、以下のように書きます。 ARRAY1=()例をもう一つ。データを3つ格納した配列ARRAY2を生成するには、以下のように書きます。 ARRAY2=("history" "japanese" "math") ■配列にデータを追加する。 配列へのデータの追加は以下のよ

    Bashで覚えておくとよいデータ構造 - 配列 - いろいろ解析日記
  • mount is adding a quarantine flag, causing: /bin/bash: bad interpreter: Operation not permitted - but not the usual suspects

  • 【ln -s】シンボリックリンクをちゃんと理解―絶対パス 相対パスでのリンク張り - tweeeetyのぶろぐ的めも

    はじめに linuxコマンドのlnについてのおはなし 特に相対パスでのシンボリックリンクについて。 普通にシンボリックリンク シンボリックリンクはこんな説明が多い ln -s リンクされるfile(or dir)パス リンク名称ぜんぜんそうだね、と思ってたけど相対パスでのシンボリックリンク時につまづいた。 自分がよく使うのはこんな感じ ln -s /tmp/anydir1/anydir2 /home/hoge/anydir2理解してなかったのは相対パスでシンボリックリンクを貼るとき。 相対パスでのシンボリックリンク ファイルの構成がこんな感じだったとして。。。 # tree ./lntest/ ./lntest/ └── projectDir └── dirA ├── dirB ├── dirC │   └── dirD │   └── dirE ←ここにdirGへのシンボリックリンクを相

    【ln -s】シンボリックリンクをちゃんと理解―絶対パス 相対パスでのリンク張り - tweeeetyのぶろぐ的めも
    shuuuuuny
    shuuuuuny 2014/12/13
    ln symbolic link
  • short date in bash PS1 prompt

  • Bash/プロンプトのカスタマイズ - ArchWiki

    Bash には複数のプロンプトが存在しカスタマイズすることで効率を高めたりセンスを良くしたりオタクっぽくできます。 Bash にはカスタマイズ可能な5つのプロンプト文字列が存在します: PS0 は、コマンドの入力が完了した後で、そのコマンドの出力が開始される前に表示されます。(つまり、コマンドの実行開始直前。) PS1 は、コマンドの入力が開始される前に表示されるプライマリプロンプトです。なので、ほとんどの人がカスタマイズするのはこのプロンプト文字列です。 PS2 は、コマンドにさらに多くの入力 (例えば複数行のコマンド) が必要とされる際に表示されるセカンダリプロンプトです。 PS3 は滅多に使われません。これは、Bash の select 組み込みコマンドによってインタラクティブメニューが表示されるときに使われるプロンプト文字列です。他のプロンプトと違って、このプロンプトでは Bash

  • http://unicus.jp/skmk/archives/338

    shuuuuuny
    shuuuuuny 2014/12/09
    time リダイレクト エラー
  • ファイルの所有者と権限

    37.2. ファイルの所有者と権限Linux や UNIX は、1 台のシステムに複数のユーザーが同時にログインして使用することができるマルチユーザー対応 OS です。そのために、ユーザーがファイルの読み込み、書き込み、あるいはコマンドを実行するには、そのファイルに対するアクセス権限を持っている必要があります。アクセス権限を持たないユーザーは、そのファイルの読み込みや書き込みを行うことはできません。このように、ファイルやディレクトリに対する許可属性(パーミッション)の設定は、システムのセキュリティを操作する最も基的な機構を提供しています。ファイルやディレクトリは、他にも様々な属性を保持しています。それらの属性は、以下のように ls コマンドで確認することができます。 $ ls -l total 40 drwxr-xr-x 2 taro taro 4096 Sep 3 21:13 data

    shuuuuuny
    shuuuuuny 2014/11/13
    ls chmod chown
  • 連番ファイルをコマンド一発で作成する

    foo_1.txt, foo_2.txt, ・・・ , foo_100.txt の様な連番ファイルや、A.txt, B.txt, C.txt, ・・・ ,Z.txt の様な連続ファイルをコマンド一発で一括して作成します。 bashの拡張機能(ブレース展開の一部)を利用しているので、ファイル作成だけでなく、ディレクトリ作成や、echoの引数や、for文等にと、コマンド全般に利用できます。 テスト用の環境作成する時とかに知ってると結構便利です。 また、この拡張機能はbash-3.0-alphaから追加されたようなので、それ以前のbashでは利用できません。 Last Update : 2007年08月10日 連番ファイルをコマンド一発で作成する 項目 連番ファイルを作成する 連続ファイルを作成する インクリメント・デクリメントを利用する 1. 連番ファイルを作成する 例として、foo_1.tx

    shuuuuuny
    shuuuuuny 2014/11/13
    seq
  • シェルスクリプトで2次元配列を扱ってみた | 黒ぶちメガネのblog

    シェルスクリプトで2次元配列を扱った時の備忘録です。 シェルスクリプトで2次元(それ以上)配列を使う場合は、evalを使えば可能らしい。(参考文献1より) と、言うことでさっそく参考文献を見ながらやってみました。 ■2次元配列スクリプト [root@example ~]# vi array.sh #!/bin/sh for (( x = 0; x <= 2; x++ )) { for (( y = 0; y <= 2; y++ )) { eval ARRAY${x}${y}=\$RANDOM } } これで、完成! 上記スクリプトは、ARRAYxy配列に乱数を代入していく。 実際に数値が代入されているか以下を追加して確認してみる。 #!/bin/sh for (( x = 0; x <= 2; x++ )) { for (( y = 0; y <= 2; y++ )) { eval ARR

  • bashrcの設定の読み込まれる順番 - それマグで!

    bashrcが反映されないなーと思ったので調べてみた。 すると、原因は .profile が無かった。 なので .profile にbashrc を読込設定を書いた bashrc読込設定は/.profileに書いておけばいい。(Debianのデフォルトを貰ってきた→後述) このとき、~/.profileに書いて大丈夫か心配になったので調べてみた。 設定に関するファイルの一覧 bash環境変数に関する設定は次のファイルに依って構成されていました。 /etc/profile ~/.bash_profile ~/.bash_login ~/.profile /etc/bash.bashrc ~/.bashrc どの順に読み込まれるか調べてみた。 各ファイルは自分のファイル名だけを出力する設定にして、その他を全部コメントアウトした /etc/profile を空っぽにしてEchoだけして読込順を調

    bashrcの設定の読み込まれる順番 - それマグで!
    shuuuuuny
    shuuuuuny 2014/11/08
    profile bashrc
  • シェルにおけるタブと改行の扱い - ザリガニが見ていた...。

    最近はradikoやらじる★らじるのタイマー録音絡みで、シェルスクリプトを触る機会が多かったのだが、 再びradikoで録音したい! - ザリガニが見ていた...。 予約日時になったらちゃんと目覚めるtimerコマンドが欲しい - ザリガニが見ていた...。 radikoをキーワードで予約する - ザリガニが見ていた...。 自分の思いどおりに動作する時とうまく動かない時の原因は、そのほとんどが、スペース・タブ・改行を扱う時の勘違いにあると感じてしまった...。その扱いを正確に理解していれば、シェルスクリプトはかなり高度なテキスト処理を最初から的確にこなしてくれるはずだ。シェルスクリプトを理解するポイントの1つは、これらの目に見えない文字を、頭の中で正確に思い描く想像力かもしれない。現状の理解をメモしてみた。 検証環境 MacBook Pro Retina15 OSX 10.8.2 bas

    シェルにおけるタブと改行の扱い - ザリガニが見ていた...。
    shuuuuuny
    shuuuuuny 2014/11/05
    sed tr awk perl ruby
  • http://www.fse.cs.ritsumei.ac.jp/~takayuki/unix.html

  • PS1とPROMPT_COMMANDの違い

    PROMPT_COMMANDはPS1の描画前に実行される PS1はプロンプトに表示される文字列の指定に使う PROMPT_COMMANDは$HOSTNAMEとかが使える PS1には\\hとかが使える プロンプトに表示される文字列をPROMPT_COMMANDで指定することもできますが、そういう用途にはPS1を使った方が簡単です。 PROMPT_COMMANDは、環境によりますが、ウインドウタイトルを変える用途に使われていることが多いかもです。 PS1とPROMPT_COMMANDのより詳しい使い分けについては、このページに詳しく書いてあります。 PS1とPROMPT_COMMAND, GNU screenでの活用も PS1だけでなく、PS2, PS3, PS4があることを上記のページで初めて知りました…。 参考リンク PS1とPROMPT_COMMAND, GNU screenでの活用も