タグ

bashに関するtaro-maruのブックマーク (20)

  • 初心者向け、「上手い」シェルスクリプトの書き方メモ - Qiita

    ここ最近、沢山シェルスクリプトを書くようになりました。 元々あまりシェルスクリプトを書いたこと無かったので、色々と勉強しつつ書いてるのですが、 他のプログラミング言語とはちょっと違って独特なクセというか、発見の度におぉー!ってなることが沢山あって楽しいです。 そんなわけで、最近学んだり参考にした中で特に感動したシェルの上手い書き方をまとめてみます。 きっとまだ知らないこととかもっと上手くやる方法なんかが沢山見つかりそうなので、 もっといいやり方あるよ!って方はコメントください 何もしない : (コロン)コマンド シェルを書いていた時に非常に欲しかったコマンドがこれ!何もしない! : というコマンド(?)を利用すると、何もせずに終了ステータス0(つまり正常終了)を返します。 これが様々な事に使える万能コマンドで、これによって面倒なエラー処理を簡潔にできたり、 入力や出力のリダイレクト元/先と

    初心者向け、「上手い」シェルスクリプトの書き方メモ - Qiita
  • pecoの基礎の基礎 - Qiita

    「pecoってツールらしきものが流行っている」と思いつつ、導入とか難しそうと思って後回しにしていたんですが、気がついたら自分の手元のbash設定ファイルにpecoを使う関数が定義されていたので、改めて初歩からやってみました。 説明に使用しているシェルはお馴染みのbashです。 pecoとは GitHubのpecoのサイト とてもシンプルなツールで 「標準入力から受けた行データをインクリメンタルサーチして、選択した行を標準出力に返す」 コマンドです。 シンプルゆえに様々な組み合わせで効果を発揮します。あらゆる場面での選択肢を標準入力に渡して、選択された結果を標準出力から受け取って加工してコマンド実行をする、というのが基的な流れ。 説明じゃ伝わらないので実例を体験したほうが早いかも。 peco のインストール pecoで検索すると「pecoはGoでできている」とか出てきて「Goってなんぞや」

    pecoの基礎の基礎 - Qiita
  • Macで少し生産性の上がるBashエイリアス集 | RickyNews

    Qualityandstyle Macでは基的にターミナルを開けばShellでコントロール可能です。 これがあるから使っている!という人も多いかと思います。 Finderをターミナルにドラッグドロップするとパスが表示されたりなど、 CUIGUIの親和性も非常に高いです。さて個人的に作成した便利なエイリアス達を紹介します。 基的に~/.bashrcや~/.zshrcなどに下記の行をコピーすれば動く簡単な仕様です。 md [Linux/MacOSX] カレントディレクトリにあるmarkdownファイルを全てvimバッファに載せ開きます。 alias 'md'='vim ./*.md' 複数バッファを同時に開きますが、あまりその動きは想定していません。 現在のGitプロジェクト等ではMarkdown形式のREADMEファイルなどが必ず置かれていると思います。 そういったディレクトリに移動

    Macで少し生産性の上がるBashエイリアス集 | RickyNews
  • bashでもpercolをイイ感じに使う方法 - (ひ)メモ

    [twitter:@stillpedant](mooz)さん作のpercolはシェルとは独立しているのですが、ググるとzshと共に使っている人が多いようです。これはzshの強力な行編集機能を提供するzleに因るところが大きいためだと思います。 bashでもpercolを使っている人もいるのですが、 percolが便利だけど、入れるにはpython2系のほうが良さそう - About Digital Big Sky :: Windows のコマンドプロンプトを10倍便利にするコマンド「peco」 「絞り込んだパスへのcdを実行する」ことはできても、「絞り込んだパスを現在のコマンドライン行に挿入する」ことは実現できていない、つまりコマンド実行はできるけど行編集はできていないようでした。 そこで今回ちょっと調べてみたところ、bashでも(zleには及ばないにしても)変数READLINE_LINE

    bashでもpercolをイイ感じに使う方法 - (ひ)メモ
  • IDEA * IDEA

    ドットインストール代表のライフハックブログ

    IDEA * IDEA
  • 使いやすいシェルスクリプトを書く

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

  • bash を自分好みに設定する / 最後の聖戦 - いますぐ実践! Linuxシステム管理 / Vol.120

    「いますぐ実践! Linux システム管理」はこちらです。 メルマガの解除、バックナンバーなども、以下からどうぞ。 https://www.usupi.org/sysad/ (まぐまぐ ID:149633) その他、作者に関するページは、概ね以下にございます。 https://www.usupi.org/kuri/ (まぐまぐ ID:126454) http://usupi.seesaa.net/ (栗日記ブログ) https://twitter.com/kuriking/ (twitter) https://facebook.com/kuriking3 (facebook) https://jp.pinterest.com/kuriking/pinterest) https://www.instagram.com/kuri_king_/ (instagram) [バックナンバーのトップへ

  • 何気なく使ってるhistoryコマンドについてちょっと調べてみた。Macの。 - kanonji’s diary

    historyコマンドについて調べてみました。調べたのは割と前なので、なんで調べようと思ったのかもう忘れました。 historyコマンドはシェルに組み込まれたコマンドだった $ whereis history $ which history $ type history history is a shell builtinhistoryコマンドがどこにあるのか気になったんですが、whereisとwhichでは何も出ませんでした。色々調べてtypeコマンドを知って、使ってみたらビルトインとの事。なので、下に書いた変数なんかもbashのお話ぽい。bashしか使ってないのでほかのシェルのことは分かりません。 ちなみにMacでのwhereisコマンドとwhichコマンドの違い - kanonjiの日記というエントリーもあります。 historyコマンドに関連するbashの変数 HISTFILE ヒ

    何気なく使ってるhistoryコマンドについてちょっと調べてみた。Macの。 - kanonji’s diary
  • 爆発コマンド - demouth::blog

    爆発しろ!という気持ちを鎮める為のシェルを書きました。 このシェルを叩くとランダムで生成された爆発のアニメーションが描画されます。 ※パーティクルが密集しているところは「@」など大きめの文字で描画するなど、ちょっと凝ってます シェルスクリプトに関する知識がなかった事もありググりながら書いたソースなので汚いですが、ソースはこちらにて公開してありますのでダウンロードして使ってみてください。 https://gist.github.com/demouth/8939731 設定値は一カ所にまとめてありますので爆発具合の調整もできます。 MacOSMacOSのターミナル.appでしか動作確認していないので他では動かないかもしれません。 参考サイト 表示制御 http://codezine.jp/article/detail/67 http://www.grapecity.com/tools/sup

    爆発コマンド - demouth::blog
  • Crontabの環境変数はどうなっているのか、調べる - それマグで!

    Crontabの環境変数のポイントまとめ CRONの環境変数はCRON設定の先頭に記述します。 Bashの環境変数と共有してないので注意。 ただし、以下の変数はUNIXユーザーに通常存在する環境変数なので、使うことが出来る。 HOME、SHELL、LOGNAME そのほかはCrontablにかく Bash環境変数と共有するなら、Cronで実行するスクリプトに環境変数を定義するべき。 わかりやすい例。 例があったので見た方が速い。 http://blog.livedoor.jp/sasata299/archives/51279219.html Crontabの記述例。 Q.ユーザー環境変数は引き継がれるの? A.されない Manページによると ・HOME、SHELL、LOGNAMEが設定される、HOMEはcron設定のファイルオーナーの環境変数が使われる。 manより抜粋 crontab の

    Crontabの環境変数はどうなっているのか、調べる - それマグで!
  • シェルスクリプトを書くときに気をつける9箇条 - Qiita

    最新の類似投稿としてシェルスクリプトのコーディングルール2014も併せてどうぞ。 2014/10/09追記 ぼくがシェルスクリプトを書くときに気にしていること、過去の失敗で書き留めたことを忘れないために。 1. グローバル変数は大文字 PATH や HOME など、環境変数が大文字なので、エクスポートする変数を大文字で書くという習慣は一般的であるような気がしますが、エクスポートする変数を抱えるシェルスクリプトを作成する機会が稀なので。 グローバル変数は大文字 ローカル変数は小文字 エクスポートする変数も大文字 関数内からグローバル変数にアクセスする場合がありますが、やはり区別していると、可読性が増すような気がするのでお勧めです。 2. awk を知る Unix 上にて文書処理をするときに、数多くのフィルタコマンド(grep、cut、tr、head、sort、uniq、sed、awk、wc、

    シェルスクリプトを書くときに気をつける9箇条 - Qiita
  • IDEA * IDEA

    ドットインストール代表のライフハックブログ

    IDEA * IDEA
  • 私が他人のシェルスクリプトから学んだこと | Yakst

    私はシェルスクリプトの大ファンで、他人のスクリプトから面白い方法を学ぶのが大好きだ。最近、SSHサーバの2要素認証を簡単にするためのauthy-sshスクリプトに出会った。このスクリプト群を見まわしていて、みんなと共有したいたくさんのクールなことを見つけた。 出力に色付けする 出力文字列を、成功した時は緑に、失敗した時は赤に、警告は黄色に色づけしたいと思うことはたくさんあるだろう。 NORMAL=$(tput sgr0) GREEN=$(tput setaf 2; tput bold) YELLOW=$(tput setaf 3) RED=$(tput setaf 1) function red() { echo -e "$RED$*$NORMAL" } function green() { echo -e "$GREEN$*$NORMAL" } function yellow() { e

    私が他人のシェルスクリプトから学んだこと | Yakst
  • GitHub - paulsm/bashtime: A bash script to display an analog time in your command prompt on OS X

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - paulsm/bashtime: A bash script to display an analog time in your command prompt on OS X
    taro-maru
    taro-maru 2013/04/19
    A bash script to display an analog time in your command prompt on OS X
  • sshでリモートホスト名を補完できる、bash_completion - UNIX的なアレ

    Linux/Unix等を利用していて、コマンドやファイル名、ディレクトリ名はTABキーで補完をかけることはよくあると思います。 今回は、bashの補完機能を強化する、bash_completionを紹介したいと思います。 bash_completionをインストールする Debian系のディストリビューションであれば標準でインストールされているとおもいます。/etc/の下に入っていますので、確認してみましょう。 $ ls -l /etc/bash_completion -rw-r--r-- 1 root root 215907 2006-12-12 06:20 /etc/bash_completionもしインストールされていない場合は、下記のサイトからダウンロードしてください。 bash programmable completion – Freecode /etc/の下に置くような手順に

    sshでリモートホスト名を補完できる、bash_completion - UNIX的なアレ
  • bash 超プログラム術

    bash の解説なんて、ネット上には結構あったりするのだが、これをわざわざ公開しようというのは、次の理由による。 某ソフトハウスでのUNIX講座用に書いてしまったから。 ネット上にある bash 解説だと、表面的な構文解説程度であり、きっちりスクリプト言語として使い倒すレベルの解説はあまりない。まあ、プログラミング言語として凝ったサンプルもやってみようじゃないの、というノリで割とディープに解説する。 アクセスを増やすための人気取り(苦笑)。 まあ、そんな不純な目的による bash 解説である。とはいえ、日常的に使い慣れている bash であっても、「え、こんな使い方があったの!?」という発見もあることであろう。苦笑しながらでも読んでくれたまえ。だから、初歩的なリダイレクションなんかは解説しないからそのつもりで。 ちなみに参考書としたのはオライリー・ジャパン刊「入門 bash 第2版」である

  • IDEA * IDEA

    ドットインストール代表のライフハックブログ

    IDEA * IDEA
  • bash&zshでシングルクォートのエスケープ - ボクノス

    ハマったのでメモ。 bash&zshでシングルクォートのエスケープをする場合はちょっとしたテクニックが必要らしい。 ダメダメ例 ダメダメなエスケープ。 % echo 'tanaka\'s OS' quote>残念ながら'tanaka\'で終わってしまう。 回避する。 エスケープするにはちょっとしたテクが必要。 % echo 'tanaka'\''s OS' tanaka's OS'\''という意味不明なエスケープをする。 何故か? 分解してみる。 % echo 'tanaka' \' 's OS' tanaka ' s OSシングルクォートの中で\'というエスケープが出来ないので、一旦文字列を終了し、\'を入力。もう一度文字列を再開する。 まとめ シングルクォートのエスケープはかなり面倒。 shも同様なので、シェルスクリプトを書く際は要注意。 ダブルクオートなら"tanaka's OS"だ

    bash&zshでシングルクォートのエスケープ - ボクノス
  • IDEA * IDEA

    ドットインストール代表のライフハックブログ

    IDEA * IDEA
  • GT Nitro: カーレーシング・ドラッグレーシングゲーム - Google Play のアプリ

    GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠

    GT Nitro: カーレーシング・ドラッグレーシングゲーム - Google Play のアプリ
  • 1