タグ

shellに関するbigwestのブックマーク (22)

  • うっかりnohup無しで長時間かかるコマンドを実行したときに後から終了しないようにする - Glide Note

    いつまで経っても終わらないから帰れない… 途中で終了してしまうと困るので、ログアウトしても終了しないように。 作業の流れ Ctrl+Zでコマンドの中断 bgでバックグラウンドに回す jobsでジョブの確認 disownでログアウトしても実行されるようにする 実際のコマンドだと

  • #hbstudy #38でシェルスクリプト大会してきたよ!

    というわけで hbstudy #38 はシェルスクリプト芸人養成講座でした。 awk祭りという話題で持ち切りだったんですが、ぼくawkわからないので、意地でもawkなしで解く!ということでがんばりました。 今日解き直したのも含まれてます。 シェルでFizzBuzzだって解けるんだよ! お題 回答 ※エスケープとかおかしくなってるかもなので、そこは念力デバッグしてください Q1 cut -d : -f 1 /etc/passwd Q2 cut -d : -f 7 /etc/passwd | sort | uniq -c | sort -nr | sed 's/\/\(bash\|sh\)$/\/\1\t*/' Q3 find etc/ 2>/dev/null | xargs grep -Hn '#!/bin/bash' 2>/dev/null | egrep "[^:]+:1:" | sed

  • シェルスクリプトで「ビルドスクリプト」を作る時に便利なテクニック - ククログ(2012-10-11)

    プログラムの種類によっては、そのまま実行できるものと、実行できるようにするために「ビルド」が必要なものとがあります。Cなどのコンパイルが必要な言語で書かれたプログラムは当然ビルドが必要ですし、コンパイルが不要な言語であっても、インストーラパッケージを作るというビルド作業が必要な場合はあります。 ビルド作業の自動化のためのツールとしてmakeなどがありますが、そこまで格的な事をやる必要がない場合は、シェルスクリプトで「ビルドスクリプト」を作るのが手軽でおすすめです。この記事では、そのような場合に役立つシェルスクリプトのテクニックを4つご紹介します。 エラーの気付きやすさとデバッグのしやすさを高める メッセージに色を付ける シェル関数をライブラリにする 一時的に作業ディレクトリの中に入る エラーの気付きやすさとデバッグのしやすさを高める はじめに紹介するテクニックは問題が発生した時に気づきや

    シェルスクリプトで「ビルドスクリプト」を作る時に便利なテクニック - ククログ(2012-10-11)
  • シェルコマンド学習用ツール shellfish を作った | Born Too Late

    シェルコマンドに関して、昨日は 2 つの記事が目につきました。 sort と uniq でさくっとランキングを出力する シェル操作課題 (cut, sort, uniq などで集計を行う) 設問編 これらはそんなに難しい処理ではないものの、この辺の技量は普段どれぐらい黒い画面上で生活しているかによって大分違ってくる気がします。 こういうのを効率的に学習できツールがあれば便利なんじゃないかと思ったので、shellfish というツールを作りました。 yuya-takeyama/shellfish Shellfish とは 与えられた問題を、コマンドを駆使して解決していくゲームです。 Shellfish のシェル上でコマンドを実行し、出力が問題ごとの期待結果に一致すれば正解です。 言ってみればターミナル上で動作する、ワンライナー専用の Anarchy Golf みたいなものです。 問題ファイル

    シェルコマンド学習用ツール shellfish を作った | Born Too Late
  • sort と uniq でさくっとランキングを出力する - blog.nomadscafe.jp

    知っている人多いと思うけど、よく使うイディオム $ .. | sort | uniq -c | sort -nr 「sort | uniq -c」で重複行をカウントでき、さらに「sort -n」で行を数字と見なしてソートすることで重複行のカウントで並べなおすことができます 例えば、Webサーバのaccess_logからよくアクセスしてくるIPアドレスを集計してランキングを表示するには以下のよう書けます $ tail -10000 access_log |cut -f 1 -d ' ' | sort |uniq -c|sort -nr|head -10 209 207.46.204.192 203 59.106.108.114 202 66.249.69.108 171 199.59.149.168 137 78.46.45.35 129 66.249.69.65 120 66.249.69

  • shell script を書くときの tips 2つ(初心者向け) - tokuhirom's blog

    shell script は普段さけて通りたいと願ってやまないわけですが、たまには書かないといけないことがあるので、そういうときは覚えておくと便利な tips を2つ。 autodie っぽくするset -eとすると、コマンドの実行に失敗したときにそこで実行がとまるので便利。 #!/bin/sh set -e perl -e 'die' echo SHOULD NOT REACH HEREとすると % ./hoge.sh Died at -e line 1. % echo $? 255となって、最後までいかずに死にます。 複数のコマンドを順番に実行するときに便利。 なお、以下のような挙動をするんだそうです。 ただし失敗したコマンドが until または while ループの一部である、 if 文の一部である、 && または || リストの一部である、 コマンドの返り値が ! で反転されてい

  • dateコマンドを見なおしてみる。dateコマンドオプションは使える - それマグで!

    dateコマンドってシェルスクリプト作るときにはとても便利ですよね。 gnu のdateコマンドはよく使う例がいっぱい作っておくと便利です。 dateコマンドの基的な使い方 ファイル名などでよく使う形式 takuya@air:~$ date -I 2012-05-31すごくよく使う。 tar cvzf `date -l `.tgz とかすごくよく使う これは次と同じ takuya@air:~$ date +"%Y-%m-%d" 2012-06-07日付と時間 takuya@air:~$ date +"%Y-%m-%d#%H:%M:%S" 2012-07-13#21:59:33 UTCで表示。 takuya@air:~$ date -u 水 5 30 18:21:14 UTC 2012 RFC形式(HTTPヘッダなどで用いられる形式)で表示。 takuya@air:~$ date -R T

    dateコマンドを見なおしてみる。dateコマンドオプションは使える - それマグで!
    bigwest
    bigwest 2012/06/14
    date
  • シェルスクリプトを書く際に気を付けていること8箇条 - カイワレの大冒険 Third

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

    シェルスクリプトを書く際に気を付けていること8箇条 - カイワレの大冒険 Third
  • 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
  • Expectコマンドを使ってsu/ sudo の処理を書いてみる。 - それマグで!

    expectを使うと、対話ダイアログをうまく操作できる。 標準出入力をうまく扱うことが出来て、バッチ処理に向いている。よくできて便利らしい。 が、、、、 独自スクリプトなので面倒ですね。 さらにデフォルトでインストールされていない という使いにくさがありました 使い方 expect -c " swapn su expect 'Passwd:' send 'root_pw' " インストール sudo aptitude install expect 知識として仕入れました、実践投入するのはちょっと面倒ですね 参考資料 http://www.uetyi.mydns.jp/wordpress/command/entry-158.html man より抜粋 名前 expect - 対話的なプログラムとのやりとりを自動化するプログラム, バージョン 5 書式 expect [ -dDinN ] [

    Expectコマンドを使ってsu/ sudo の処理を書いてみる。 - それマグで!
  • emacsのM-!とM-|の使い方 - KAYAC Engineers' Blog

    来週ようやく夏休み!のnagata (@handlename) です。 シェルコマンドを実行したいとき、どうしてますか? emacsを使って開発する場合、 ターミナルとemacsを行ったり来たりすることはよくあると思います。 現在のディレクトリのパスがほしかったり(pwd)、 IPアドレスを調べたかったり(ifconfig)、 あるいは編集中のテキストを処理したかったり。 そんな場合、いちいちターミナルに移動して、 出力結果を確認(場合によってはコピー)して、 あらためてemacsに戻ってくるのは面倒です。 それ、emacsからできます! 往復するのが面倒ならば、すべてemacs上で完結させてしまえばいいのです。 shell-mode を使うという手もありますが、 今回はもっとお手軽な M-! (shell-command) と M-| (shell-command-on-region)

    emacsのM-!とM-|の使い方 - KAYAC Engineers' Blog
  • Loading...

  • cutコマンドの基本的な使い方とその応用

    Linuxユーザの立場から、役立つ情報や困ったときの解決方法を分かりやすく、かつ簡潔に記事にまとめています。主に、Ubuntu 8.04(→9.04)やCentOS 5.2(→5.3)で確認したことですが、他のディストリビューションでも応用できると思います。内容は(1)設定ファイルの書き方(2)役立つソフトウェア紹介やインストール方法(3)便利なコマンドの使い方や活用例(4)困ったときの解決方法です。このページの末尾にキーワード別で記事を分類してあります。また、真上の「ブログ検索」フォームからブログ内の記事を検索できます。 記事では、linuxのcutコマンドの基的な使い方をまとめて、応用としてワーキングディレクトリにあるディレクトリの一覧を表示する方法を紹介する。 cutコマンドとは:各行から選択した部分を表示するものです。例えば、test.txtというファイルには、次のようにコロン

    bigwest
    bigwest 2010/10/01
    cutコマンドの組み合わせ色々便利
  • 247996’s gists

    bigwest
    bigwest 2009/12/07
    .svnと.DS_Storeを一気に削除する
  • @IT:ログアウトしてもプログラムを実行し続けるには

    ターミナルエミュレータなどでプログラムを実行している場合、そのターミナルエミュレータを終了すると、ハングアップ(HUP)シグナルによってプログラムは強制的に終了される。しかし、実行結果が得られるまでに何時間、何日もかかるようなプログラムを実行する場合、それでは困ってしまう。かといって、ログインしっ放しにしておくのはセキュリティ上問題だ。 このような場合には、nohupコマンドを利用するといい。nohupは、文字通りHUPシグナルを無視してプログラムを実行し続けるコマンドだ。標準出力と標準エラー出力は、nohup.outまたは~/nohup.outに追記されるので、プログラムの実行結果は後で確認できる。 nohupコマンドの使用法は、nohupに続けて実行したいプログラム名を指定すればいい。

    bigwest
    bigwest 2009/09/07
    ログアウトしても続ける
  • 業務で楽するためのUNIXテクニック集 まずはおさらい、シェル制御構造と正規表現の基礎

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    業務で楽するためのUNIXテクニック集 まずはおさらい、シェル制御構造と正規表現の基礎
  • いまさらxargsの便利さを主張してみる — ディノオープンラボラトリ

    タイトルの通りですが、xargsコマンドの便利さを紹介する記事を書いてみました。xargsは私が大好きなコマンドの一つで、標準入力から渡されたファイル名などを引数とみなして、別のコマンドの引数として起動するというものです。 例えばfindで見つけたファイルを全部削除したい場合、xargsなしでも下記のように書くことができます。

  • 初めてシェルスクリプトを書くときに知っておきたいこと - Unix的なアレ

    他の言語をを書き慣れてから、シェルスクリプトを書こうとするとしょうもない部分でハマったりすることがあります。「簡単な処理だからシェルスクリプトで書くか」と思っても無駄に時間がかかってしまっては仕方ないですよね。 今回は初めてシェルスクリプトを書くときに、ハマりそうな点について説明をしたいと思います。 実行権限をつける 単純にファイルを生成しても下記の用に実行しようとしても実行はできません。 # touch test # ./test sh: ./test: Permission denied # touch foo # ./foo sh: ./foo: Permission denied これはファイルに実行権限がついていないため、起きる現象です。 chmodコマンドを使って実行権限をつけてやりましょう。 # chmod +x test # ./test # chmod +x foo #

    初めてシェルスクリプトを書くときに知っておきたいこと - Unix的なアレ
  • シェルを覚えた経緯を詳し目に書いてみる - zenpouの日記

    perl - the best friend of find(1) 404 Blog Not Foundを見てて、シェルについて書いてみたくなりました。 丁度、Linuxを学ぶための10個の効果的な方法で言及したシェルを覚えた経緯を詳しく書いてみたかったのでだらだらと書いてみる。 前回書いた内容がこちら。 順を追って解説していきます。 シェル覚えた経緯。 第一段階としてはパイプラインを覚える | 第二段階はsort や grep など、パイプラインで処理するのに便利なコマンドを覚える。 第三段階でls | awk '{print $2}' とかやってみて、スペースで区切られた2列目が表示される事に感動してみる。 第四段階でls | awk '{print "ls "$2}'でコマンドを作ってみてls | awk '{print "ls "$2}'|sh でコマンドをばーっと処理してくれる事

    シェルを覚えた経緯を詳し目に書いてみる - zenpouの日記
  • シェルのリダイレクトを「こわいものなし」というくらい完全に理解しよう - 檜山正幸のキマイラ飼育記 (はてなBlog)

    Java BlockingQueueで遊ぶ:パイプラインごっこ」でパイプラインの話をしたので、来の、つまりUnixのパイプやリダイレクトを少し調べてみました。 たまに話題となる some-command >file 2>&1 と some-command 2>&1 >fileの挙動の違いについて、「シェルはコマンドラインリダイレクトの指定を右から左に解釈実行する」なんて説明が見つかりました。んなバカな! パージングは左から右にするものですよ。パーズツリーを逆順にたどることはできるけど、そんなことする必然性はなんにもないよ。 次の記事を読むと、「右から左」なんて事情じゃないことが分かるでしょう。 UNIXの部屋 検索: リダイレクト シェルのリダイレクトにまつわる失敗 さてここでは、複雑なリダイレクト処理も完全に理解できる処方箋を示しましょう。例えば、次のコマンドラインが何をするか分かる

    シェルのリダイレクトを「こわいものなし」というくらい完全に理解しよう - 檜山正幸のキマイラ飼育記 (はてなBlog)