タグ

bashに関するadillaのブックマーク (22)

  • Googleの肩に乗ってShellコーディングしちゃおう - Qiita

    はじめに GoogleさんがShellスタイルガイドを共有していたので、いくつか気になった点をピックアップしました。 自分のShellスタイルはかなり我流なので、自省の意味も込めてコメントも併記します。 Googleスタイルガイドの元ネタ (Python/C++/Java/Rとかだけでなくdocumentガイドなど色々あります) https://github.com/google/styleguide Shellスタイルガイド (今回はこちら) http://google.github.io/styleguide/shell.xml 当は人間がチェックするのではなくcpplintのためXML定義なのかもですが、気にしない気にしない。 (見たところcpplintc++だけだと思ってます) commitフックでshell系のlint走らせろっていうのが今風なのかもしれませんが、キニシナイキ

    Googleの肩に乗ってShellコーディングしちゃおう - Qiita
  • そのシェルスクリプトもうちょっとシンプルに書けそう Tips集(Golf/シェル芸ではない) - Qiita

    Shell Script Advent Calendar 2015 4日目 の投稿です。 以前から自分用にメモしていたものを文字起こししました。 はじめに 仕事でシェルを使い始めて3年くらい経ちました。 途中、pythonruby でスクリプト作ったり、ちょっと zsh に浮気したりしましたが、なんだかんだで今も Bash を使うことが多いです。 この3年間、スーパーシェル芸人(@ebanさん)にご教授頂いたり、Golfしたり(@ebanの影響)、シェル芸勉強会に参加したり(@ebanの影響)してきました。 そんな3年間のまとめとして、シェルスクリプト初めましてだった3年前の私に向けたTips集を書いてみました。 趣旨 各項目ごとに、まず初心者(過去の私がやってた)あるある実装を例示して、その次に、より良さげな実装を例示する構成としています。 実行環境 OS Mac OS X Yos

    そのシェルスクリプトもうちょっとシンプルに書けそう Tips集(Golf/シェル芸ではない) - Qiita
  • 実務で役立つシェル系Tips - Qiita

    パスの末尾に/があるかないかを気にしたくない 文字列を結合してパスを生成したりするときに、パスを格納した複数の変数を文字列結合するときがあります。 dirHome="/var/lib/hoge/" workDirName="work" echo "${dirHome}${workDirName}" # /var/lib/hoge/workと表示される しかし、dirHomeやworkDirNameのような変数をコンフィグファイルで設定していたり、実際に参照するところと定義箇所が遠いときがあると厄介なことが起こりえます。 例えば、下記のようにdirHomeの末尾に/がなかったらどうなりますでしょうか?

    実務で役立つシェル系Tips - Qiita
  • 検索ではあんまり出ないbashの便利技 - Qiita

    bashでは記号類をたくさん使うので、この書き方は何?と思っても検索でなかなか出てこないことがあると思う。 そこで知っていると便利なコマンドを残しておく。 随時追記予定。 確認に使用したbashのバージョンは以下のとおり。

    検索ではあんまり出ないbashの便利技 - Qiita
    adilla
    adilla 2015/09/21
  • bash スクリプトの先頭によく書く記述のおさらい - Money Forward Developers Blog

    こんにちは。 マネーフォワードでアグリゲーション開発を担当しています中川です。 今回のブログは、私が bash スクリプトを書く際に心がけている事のおさらいをします。 知ってて当たり前のことかも知れませんが、意外と理解されていないアレです。 では、私が bash スクリプトを書く際によく使う記述を一つずつ紹介します。 2種類の shebang シェルスクリプトの一行目に必ず記述する #! で始まる行を shebang と言います。 bash スクリプトの shebang は、bash を絶対パスで指定する方法と、env を使って指定する方法の二種類あります。 bash を絶対パスを指定する方法 #!/bin/bash env を使ってを指定する方法 #!/usr/bin/env bash 前者は /bin/bash が使われます。 (/bin/bash が存在しなければスクリプトの起動時に

    bash スクリプトの先頭によく書く記述のおさらい - Money Forward Developers Blog
    adilla
    adilla 2015/05/26
  • 初心者向け、「上手い」シェルスクリプトの書き方メモ - Qiita

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

    初心者向け、「上手い」シェルスクリプトの書き方メモ - Qiita
    adilla
    adilla 2015/02/03
  • GitHub - alebcay/awesome-shell: A curated list of awesome command-line frameworks, toolkits, guides and gizmos. Inspired by awesome-php.

    Choose your base shell. bash - GNU Project's shell (Bourne Again SHell) elvish - Friendly, expressive shell features like anonymous functions and data structures es - The extensible shell, based on Plan 9's rc shell fish - Smart and user-friendly command line shell ion - A modern system shell that features a simple, yet powerful, syntax. It is written entirely in Rust. ksh93 - Korn Shell mksh - Mi

    GitHub - alebcay/awesome-shell: A curated list of awesome command-line frameworks, toolkits, guides and gizmos. Inspired by awesome-php.
  • Public Object: Canonical path of a file in Bash

    adilla
    adilla 2014/03/12
  • シェルスクリプトを書くときに気をつける9箇条 - Qiita

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

    シェルスクリプトを書くときに気をつける9箇条 - Qiita
    adilla
    adilla 2013/10/06
  • 私が他人のシェルスクリプトから学んだこと | 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
  • bashのキーバインド(キーボードショートカット) まとめ - readlineとbind、ついでにstty編 - うまいぼうぶろぐ

    復習がてらまとめてみた。今さら感たっぷりでたぶん100番煎じぐらいだけど。きっかけは単語単位でカーソルを移動させる(M-f,M-b)方法が知りたかっただけなんだけど。せっかくなのでどこで、どういう風にキーバインドが割り当てられているかを調べた。 versionはdebian4のbash 3.1.17。 readlineとbind(組み込みコマンド) man bashのreadlineとbindの項目参照。readlineはシェルの入力を処理するライブラリ。bashは組み込みのコマンドでreadlineの割り当て設定確認/設定変更が出来る。 端末ラインのキーバインド さて、さっそくbashのキーバインド…の前に、シェルとは別の端末のキーバインドもまとめておく。bashとは直接関係ないけど、端末をCLIの操作をキーバインドで行うという意味では、ほぼ同じなので。 有名なのはプロセスを割り込むC-

    bashのキーバインド(キーボードショートカット) まとめ - readlineとbind、ついでにstty編 - うまいぼうぶろぐ
  • ずんWiki - bash

    表示と入力 † .inputrc に以下のように書いておけば日語の直接入力と表示が出来る。 set convert-meta off set meta-flag on set output-meta on ↑ LANGと違う文字コードで grep する † こんなのを .bashrc とかで定義しとけば便利。 grepSJIS () { WORD="$1"; shift; LANG=ja_JP.SJIS grep "`echo $WORD|lv -Os`" "$@"; } grepUTF8 () { WORD="$1"; shift; LANG=ja_JP.UTF-8 grep "`echo $WORD|lv -Ou8`" "$@"; } grepEUC () { WORD="$1"; shift; LANG=ja_JP.ujis grep "`echo $WORD|lv -Oej`"

  • bash-completionで独自の補完関数を作成する方法(gistyのサブコマンドを補完するやつ書いてみた) - 今日もスミマセン。

    歳のせいか最近記憶力が落ちてるので補完に頼ってみることにした。 以下を行なうにはbash-completionパッケージが必要です。 macportsだと sudo port install bash-completionでインストールされるはず。 バージョン1 とりあえず、サブコマンドを全部登録してみました版 _gisty() { COMPREPLY=(list post private_post sync sync_delete pull_all about help) } complete -F _gisty gisty上記を/opt/local/etc/bash_completion.d/の配下にgistyという名前で保存 以下のように設定ファイルを読み込み $ . /opt/local/etc/bash_completion"gisty "と打ってtabを押すと about li

    bash-completionで独自の補完関数を作成する方法(gistyのサブコマンドを補完するやつ書いてみた) - 今日もスミマセン。
  • Man page of BASH

    Section: User Commands (1) Updated: 2010 December 28 Index JM Home Page roff page 名前 bash - GNU Bourne-Again SHell 書式 bash [options] [file] 著作権 Bash is Copyright (C) 1989-2011 by the Free Software Foundation, Inc. 説明 bash は、標準入力やファイルから読み込んだコマンドを実行する、 sh 互換のコマンド言語インタプリタです。 bash には、Korn シェルや C シェル (ksh や csh) の便利な機能も採り入れられています。 bash は IEEE POSIX specification (IEEE Standard 1003.1) の Shell and Utili

    adilla
    adilla 2013/01/20
  • TIPS » Blog Archive » UNIX の小技

    1. pv: パイプラインの速度表示 pv はパイプライン中を流れるデータの速度や予想終了時間を表示します。 pv - Pipe Viewer http://www.ivarch.com/programs/pv.shtml Fedora なら yum install pv でインストールできます。RHEL/CentOS なら上記から RPM を入手してインストールします。 (例 1) 圧縮速度を測定し、終了時刻を予想する pv /dev/sda | gzip > sda.gz (例 2) 圧縮比を予測する pv -cN read /dev/sda | gzip | pv -cN write > /dev/null -N : 名前をつける -c : エスケープシーケンスを使って描画する 参照: http://www.catonmat.net/blog/unix-utilities-pi

    adilla
    adilla 2013/01/16
    名前付きパイプべんり
  • 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を入力するとヒストリ検索モードになります

    adilla
    adilla 2012/04/12
  • cat コマンドでネコを走らせる - hogehoge @teramako

    というツイートが昨日RTで流れてきたので、面白いなと思ってやってみている。 https://github.com/teramako/scripts/blob/master/shell/cat.sh cat コマンドは来 concatenate をするコマンドである。ということで、これに反した場合にネコを出して矯正させようという趣旨である。単なる bash スクリプトである。~/bin/catとして放り込むのが良かろう。 C言語版、Perl版等のもうちょっと高級な言語での書き直しを望みます。(僕はCもPerlも得意じゃないので...) 標準入力がない、かつ、ファイルが2つ以上指定されていない 標準入力がある、かつ、ファイルが1つ以上指定されていない 「標準入力がない、かつ、ファイルが指定されない」に修正 場合にネコがでる。 ずさーーーーとネコが流れてきて 最後に と注意される仕様。 因みに

    cat コマンドでネコを走らせる - hogehoge @teramako
    adilla
    adilla 2011/12/07
    すばらしい
  • my bashrc

    状況: いくつものホストに何回もログインする。 いくつかのホストはホームディレクトリを nfs で共有している (がすべてではない)。 ホストによってプロンプトの色を変えている (同じウインドウからあっちこっちにログインすると混乱するので)。 ちなみに emacs -nw のステータスバーの色もホストによって変わるようになっている。 ssh-agent を使っている。 GNU screen を使っている。 文字列処理をすることが異様に多い。 ## .bashrc ## Yusuke Shinyama ## ## 新しく作られたファイルのパーミッションがつねに 644 になるようにする。基。 umask 022 ## core ファイルを作らせないようにする。これも基。 ulimit -c 0 ## 環境変数の設定 # man とかを見るときはいつも less を使う。 export P

    adilla
    adilla 2011/11/08
  • 一時ファイルを作成せずに、コマンドの実行結果のdiffを取る (bashのProcess Substitutionで) - うまいぼうぶろぐ

    http://tldp.org/LDP/abs/html/process-sub.html コマンドの実行結果を名前付きパイプで読めるらしい。 Command list enclosed within parentheses >(command_list) <(command_list) Process substitution uses /dev/fd/ files to send the results of the process(es) within parentheses to another process. man bash にも書いてあった。 探し求めてた機能の1つだ。これ知らなかったから今までは、 $ ./hoge > hoge.out $ ./fuga > fuga.out $ diff -u hoge.out fuga.outこんな風にtmpファイル作成してdiffっ

    一時ファイルを作成せずに、コマンドの実行結果のdiffを取る (bashのProcess Substitutionで) - うまいぼうぶろぐ
  • Cygwin 色変更 - Pocketstudio.jp Linux Wiki

    ¥×¥í¥ó¥×¥È¡© † ¡¡¥·¥§¥ë¾å(bash, csh ¤Ê¤É) ¤Ç¤Ï¥³¥Þ¥ó¥É¤òÆþÎϤ¹¤ë¥³¥ó¥½¡¼¥ë¡Ê¥­¡¼¥Ü¡¼¥ÉÆþÎϤΤ¿¤á¤Î¾ì½ê¤¬ÅÀÌǤ·¤Æ¤¤¤ëÃÏÅÀ¡Ë¤Î»ö¤ò¥×¥í¥ó¥×¥È¤È¸Æ¤Ó¤Þ¤¹¡£ ¡¡Fedora/Red Hat ¤Ç¤Ï¡¢½é´ü¾õÂ֤Ǥϰʲ¼¤Î¤è¤¦¤Ê·Á¼°¤Ç¤¹¡£ [¥æ¡¼¥¶Ì¾@¥Û¥¹¥È̾ ~]$ ¡¡¤¿¤È¤¨¤Ð¡¢¥æ¡¼¥¶Ì¾¤¬ sakura¡¢¥Û¥¹¥È̾¤¬ sion ¤Î¾ì¹ç [sakura@sion ~]$ ¡¡¤Èɽ¼¨¤µ¤ì¤Þ¤¹¡£~ ¤Ï¡Ö³ºÅö¥æ¡¼¥¶¤Î¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¡×¤È¤¤¤¦°ÕÌ£¤Ç¤¹¡£ ¡¡¤¿¤È¤¨¤Ð¡¢¥«¥ì¥ó¥È¥Ç¥£

    adilla
    adilla 2011/01/04
    プロンプト