タグ

shellに関するdeeekiのブックマーク (13)

  • cron上でのコマンド実行を再現する - Qiita

    シェル上だと動くのにcron上だと動かない。 よく聞くお話ですよね。 大体はcron上と普段のシェル上で環境変数が違うために起こる問題です。 そういう時に使えるtipsを共有します。 個人のマシン上で適当に動かすようなcronだと みたいにしてログインシェルを間に噛まして環境変数を上書きして実行することでごまかしたりもできます。 これまた別の依存する箇所を増やすので 個人のマシンかrcファイルがちゃんと管理されているような状況以外ではオススメできません。 なのでcron上で実行される状況とほぼ同じ状況でスクリプトを実行してみましょう。 cron上では環境変数はほぼ空なので環境変数を空にしてみましょう。

    cron上でのコマンド実行を再現する - Qiita
    deeeki
    deeeki 2014/05/23
  • 使いやすいシェルスクリプトを書く

    できればシェルスクリプトなんて書きたくないんだけど,まだまだ書く機会は多い.シェル芸やワンライナーのような凝ったことではなく,他のひとが使いやすいシェルスクリプトを書くために自分が実践していることをまとめておく. ヘルプメッセージ 書いてるシェルスクリプトが使い捨てではなく何度も使うものである場合は,体を書き始める前に,そのスクリプトの使い方を表示するusage関数を書いてしまう. これを書いておくと,後々チームへ共有がしやすくなる.とりあえずusage見てくださいと言える.また,あらかじめ書くことで,単なるシェルスクリプトであっても自分の中で動作を整理してから書き始めることができる.関数として書くのは,usageを表示してあげるとよい場面がいくつかあり,使い回すことができるため. 以下のように書く. function usage { cat <<EOF $(basename ${0})

    deeeki
    deeeki 2014/05/20
  • bashにて複数端末間でコマンド履歴(history)を共有する方法 (iandeth.)

    Tera Term 等の端末を複数同時に立ち上げて作業したり、screenにて複数の仮想端末を同時並行で操作する際、コマンド実行履歴が端末間で共有できなくて困る事が多々あります。「さっきのfindコマンドをもう一度... 引数どう書くんだっけなぁ... あ、確かコマンド履歴にあったはずだなぁ... ちっ、それはあっちの端末の履歴だったか」みたいな。zshには端末間のコマンド履歴を常に同期できる'SHARE_HISTORY' なるオプション(*1)があって素敵なのですが、同じことを bash で実現する方法を調べたのでご紹介。 (*1) zshの同機能について詳しくはITmedia記事 "豪傑の三種の神器【後編】" を参照の事 不具合) 通常設定のbashで困る事 1. 複数端末間でコマンド履歴の共有ができない 同時に立ち上げている端末間で履歴の共有ができなくて不便に感じることがある。 2.

    deeeki
    deeeki 2014/01/21
  • 横着プログラミング 第3回: 履歴マニア

    最終更新日: 2002-05-18 (公開日: 2002-05-18) Unix Magazine 誌に 2002年1月号から 2003年2月号にかけて連載し ていた記事の元の原稿です。 コンピュータの方がうまくできることに人間を使うな。 -- Tom Duff *1 私の見る限り、プログラマという人種は決まって事務作業が嫌いな ようである。同じような書類を何枚も書かされたり、1つ誤字があ るから書き直せと言われたりすると、異常にストレスがたまる。 同様に、計算機を使っていても、同じような作業を何度も繰り返し たり、ちょっとでも間違えたら最初からやり直し、というのは耐え られない。そこで、今回は履歴を活用して作業の再利用をするノウ ハウを取り上げる。 シェルの履歴 Unixを使い始めて間もない初心者が作業しているところを見ると、 打ち間違えたコマンドを律儀に最初から打ち直しているのに気づく

    deeeki
    deeeki 2014/01/21
  • >突然の死<ジェネレーター - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog

    拡張 POSIX シェルスクリプト Advent Calendar 2013、25日目の記事です。 最終日です。ネタが尽きました。 当にネタがないので、 最後は私の集大成…でもないですがそこそこ頑張って作ったシェルスクリプト、 「>突然の死<ジェネレーター」を紹介して締めたいと思います。 Twitter で私をフォローされている方はもうご存知ですね。 既に 2013年5月ごろにツイートした作品です。新ネタでなくすみません。 >突然の死<ジェネレーターとは? あなたの端末に>突然の死<を提供するイカしたスクリプトです。 名前は echo-sd と言います。 「echo」は echo コマンドのそれです。「sd」は「sudden death」です。 そのまんまですね。 …何のことやらさっぱりですか? そうですね。実際にお見せしましょう。 どうです? 便利でしょう? ツイート機能も付いてますよ

    >突然の死<ジェネレーター - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog
    deeeki
    deeeki 2014/01/16
  • Featured Aliases | alias.sh

    About Browse the alias library, add them to your personal list & copy them directly to your aliases file. Read more about us. Get Started Sign up is easy and does not require your email address. Register in 30 seconds. Register here.

  • Command Lineで使用しているツールまとめ vol.1 - Qiita

    Command Lineで使用しているツールを簡単にではありますが、まとめてみようと思います。私が知らない便利ツールはまだまだたくさんありますので、ここに掲載されているもの以外で便利なものがあれば、ぜひ教えてください。 この記事に貼り付けてあるリンクは、キーワードに関連する適切な場所へと誘導してくれます。非常に有効なので、ぜひ参照してみてください。 また、私は基的にパソコンのことは何もわかっていないので、記事内には誤りを含む可能性があります。よって、できる限り自分の環境を把握した上で、適時読み換えてもらえればと思います。特に、設定ファイルの場所については気をつけてください。また、GitやHomebrew、MacPortの導入説明などは省略していますので、注意が必要です。 zsh Shellであるzshを拡張する設定の数々を紹介していきたいと思います。簡易にではありますが、もっと良い設定が

    Command Lineで使用しているツールまとめ vol.1 - Qiita
  • screen(だけ)の時代は終わり。tmuxでリモートコンソールを便利に使うTips

    ※ コメントをいただきましたので、一部文を修正させて頂きました。 1.サーバー・クライアントモデルというのはネットワーク接続なイメージになってしまいますので、取り外しました 2.mouse-utf8に関してコメントを頂いたので補足しました 3.タイトルを「screenの時代は終わり。tmuxでリモートコンソールを便利に使うTips」から「screenだけの時代は終わり。tmuxでリモートコンソールを便利に使うTips」に変更しました(変な誤解を受けられた方がいらっしゃったため) お久しぶりの田中です。最近、ずっと大型案件に携わっていた関係で、あまりブログ等でのアウトプットができていませんでした。これからはドンドン書いていきますので、どうぞよろしくお願いします。日はGNU screenと同様の機能を持つtmuxを紹介します。 GNU screenやtmuxは、1つのターミナル画面上に複数

    screen(だけ)の時代は終わり。tmuxでリモートコンソールを便利に使うTips
  • bashを便利に使うためのいくつかのTIPS - mikedaの日記

    人のオペレーションを見てるとそれぞれクセがあっておもしろいですよね! というわけで自分がよく使うbashの便利機能をまとめてみました。 1つ前の作業ディレクトリに戻る cd -で戻れます。 [mikeda@test01 tmp]$ cd [mikeda@test01 ~]$ cd - [mikeda@test01 tmp]$pushd、popdを使えば2つ前でも3つ前でも戻れるのですが、めんどうなので基コレだけ使ってます。 コマンドラインを移動する この状態から Ctrl+aを入力するとプロンプトが先頭に移動します。 Ctrl+eを入力すると末尾に移動です。 Ctrl+wを入力すると直前のワードを削除できます。 Ctrl+cで入力をキャンセルして次の行に移ります。 自分がよく使うのはこの4つです。 ヒストリをうまく使う ヒストリ検索 Ctrl+rを入力するとヒストリ検索モードになります

    deeeki
    deeeki 2012/03/12
  • あるディレクトリ以下の全てのbinディレクトリにPATHを通したい時 - 元RX-7乗りの適当な日々

    Linuxの開発/検証環境とかで色々とプロダクトをインストールした時って、毎度環境変数のPATHを設定するの面倒くさいですよね。 そんな時は、片っ端からbinとかsbinディレクトリにパスを通しちゃいます(^^;) $ export PATH=$PATH:`find /usr/local -type d -name '*bin' | paste -s -d : -` findで引いてきたものをpasteする時に、"-d"オプションで区切り文字に":"を使っておけば良いわけですね。 ちょっとしたTIPSでした。 =͟͟͞͞(๑•̀=͟͟͞͞(๑•̀д•́=͟͟͞͞(๑•̀д•́๑)=͟͟͞͞(๑•̀д•́

    あるディレクトリ以下の全てのbinディレクトリにPATHを通したい時 - 元RX-7乗りの適当な日々
  • シェルスクリプトを書く際に気を付けていること8箇条 - カイワレの大冒険 Third

    エンジニアという職業柄かシェルスクリプトを書くことはちょくちょくあるのですが、自分なりに気を付けていることを備忘録&自分への戒めも含めて、簡単に書いてみたいと思います。 変数は大文字 シェルスクリプト書いていれば変数の出番は至るところであるでしょう。その際、可読性を増すように、変数は大文字を使っています。 RET=`cmd1`みたいに。好みの問題もあるでしょうが、分かりやすいので。 クオテーションは選ぶ クオテーションにはシングルだったり、ダブルだったり色々ありますが、使い分けておいたほうがよいでしょう。 変数の展開がないようであれば、シングルクオーテーションのほうがスマートでしょうし、展開があるのならダブルクオーテーションを使えばと。 ダブルクオーテーションを使うのにも意味があって、変数は「$RET」のようにクオテーションで囲まなくても動作はたいていするのですが、 echo "${RET

    シェルスクリプトを書く際に気を付けていること8箇条 - カイワレの大冒険 Third
    deeeki
    deeeki 2012/02/24
  • http://skwp.github.io/dotfiles/

  • rbenvの切り替えの仕組み…と、他言語での実験 - すぎゃーんメモ

    rbenvを使ってみる - すぎゃーんメモの続き。 現時点でのrbenvのバージョンは0.2.1。 rbenvを使っていると.rbenv-versionファイルの有無でrubyコマンド打ったときに実行されるrubyが違うものになる、というのがちょっと新鮮で、これはどういう仕組みで動いているのだろう?と思って少し調べてみた。 上記記事のようにrbenvの設定をした環境では、 $ which ruby /Users/sugyan/.rbenv/shims/rubyとなり、${RBENV_ROOT}/shims以下のrubyを指すことになる。ここへのPATHは$HOME/.rbenv/libexec/rbenv-initに echo 'export PATH="'${RBENV_ROOT}'/shims:${PATH}"' と書かれているので、eval "$(rbenv init -)"してあれ

    rbenvの切り替えの仕組み…と、他言語での実験 - すぎゃーんメモ
  • 1