タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

ProgrammingとUnixとUNIXに関するagwのブックマーク (247)

  • Bashでstdout/stderr/exit codeをキャプチャ - Folioscope

    Shell Script Advent Calendar 2015 7日目の記事です。 BashのちょっとしたTipsです。 Bashに限らないかも知れませんが、検証環境がBashしかありませんでした。 問題 Bashで $(command) と書くと、commandがサブシェルで実行され、 stdout(標準出力)を変数に格納することができます. hoge_value=$(echo 'hoge') # hoge_value => "hoge" ただしstderr(標準エラー出力)はキャプチャできません。 いま、stdoutとstderrへ出力し、100を返す関数があるとします。 out_err_and_exit() { echo "This is stdout" echo "This \\is \"tricky 'stdout" echo "This is stderr" >&2 ech

    Bashでstdout/stderr/exit codeをキャプチャ - Folioscope
  • mkfifo と tee で複数の入力・出力のパイプ - きつねたぬきだし

    はじめに UNIX では、ほとんどありとあらゆるものをファイルとして扱うことができる。 tee コマンドについて書いてある他ブログ記事を読むと、 「ファイルに書きつつ標準出力に出す」というような 画面上でのログ確認での使い方のみ書いている記事が多い。 もっと広義の「ファイル」には「FIFO」も含む。 FIFO とは名前付きのパイプであり、ファイルとほぼ同じインターフェイスを利用する。 内容 mkfifo と組み合わせて、 2 つの出力を持つパイプを作ってみる。 $ mkfifo input1 $ mkfifo output1 $ mkfifo output2 $ tail -f input1 | tee output1 output2 2>&1 > /dev/null & このようにすると、 別シェルで立ち上げた $ echo `date` > input1 が、 output1, out

    mkfifo と tee で複数の入力・出力のパイプ - きつねたぬきだし
  • ShellScriptのダブルクォートとシングルクォートの違い - Qiita

    Shell Script Advent Calendar 2015 3日目の記事です。 この記事では自分が最近はまったシェルスクリプトの初歩の初歩、シングルクォート(')とダブルクォート(")の違いを紹介できればと思います。 C言語とかを書いてたら、シングルクォート(')とダブルクォート(")は違うのは当たり前なわけですが、最近JavaScriptPythonばかり書いてたので、当然(')と(")は同じものだと脳みそが思い込んでてはまってしまいました。 ShellScriptでのクォートの基の使い方 とある"Program Files"というセンスのない名前のフォルダがあったときに、

    ShellScriptのダブルクォートとシングルクォートの違い - Qiita
  • 時代はシェルスクリプト - Qiita

    らしい。 さあ、始まりました Shell Script Advent Calendar 2015 1 日目。思ったよりも AC 全体として盛り上がりなさを感じているのは自分だけでしょうか。 タイトルからして恐れ多いですが、1 日目だしいいでしょ感で書いています。 なんで今更 「今更そんな枯れツール使わんしょw」勢が一定数いることも知っていてのこのタイトルです。 意外にもシェルスクリプトってのは根強く使われ続けていて、以下に面白いグラフがあります。 via The RedMonk Programming Language Rankings: June 2015 これは RedMonk 社が、2015年1月版のプログラミング言語ランキングを発表したもので、GitHub での各言語の使用率と、Stack Overflow での発言量を元に作られた相関グラフです。 Shell が意外にも人気ですね

    時代はシェルスクリプト - Qiita
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • vimでバイナリを表示し、値を変更したい - rderaログ

    バイナリファイルを表示させることなら、 $ hexdump -C picture.png 00000000 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 |.PNG........IHDR| 00000010 00 00 00 0a 00 00 00 0f 08 02 00 00 00 52 9d c9 |.............R.?|とか、 $ xxd picture.png 0000000: 8950 4e47 0d0a 1a0a 0000 000d 4948 4452 .PNG........IHDR 0000010: 0000 000a 0000 000f 0802 0000 0052 9dc9 .............R..みたいに、hexdumpコマンドとかxxdコマンド(この記事を書いてて知った)を使えばできる。 でも、

    vimでバイナリを表示し、値を変更したい - rderaログ
  • シェルスクリプトで一行ずつ読込む while read line 4パターン - eTuts+ Server Tutorial

    Bash でコマンドの実行結果、またはファイルの中身を一行ずつ読み込むためには、read コマンドを使います。 具体的には、while ループを回しながら、read によって読み込まれたデータを、一行ずつ line という変数に格納する形になります。 コマンドの実行結果、またはファイルの中身が最終行まで完全に読み込まれた時点でループから抜けることになります。 というわけで、while read line セットで覚えると良くて、while read line をより効率的に使うために、Here Document (ヒアドキュメント) と一緒に使うことが多いです。 Unix 系、Linux 系、OSX、BSD 等、シェルが使える環境上でスクリプト書くときにパターン化していつでも参考にして状況に応じて使えるようにまとめてみました。

    シェルスクリプトで一行ずつ読込む while read line 4パターン - eTuts+ Server Tutorial
  • シェルスクリプト最大の罠、while問題

    シェルスクリプト最大の罠:while問題 前回はシェルスクリプトプログラミングのコツの1つとして「アット・ア・グランス性」を紹介した。紹介の中でwhileが引き起こしやすい問題について触れたが、前回の説明だけではよく分からなかった方もいると思う。 今回はこの「while問題」に焦点を当て、シェルスクリプトプログラミングで最もはまりやすい問題を掘り下げて説明する。 whileとパイプの組み合わせで問題発生 次のシェルスクリプトを見てほしい。実行結果を予測してほしいのだが、おそらくほとんどの方が「標準出力にLinuxが出力される」と答えるだろう。

    シェルスクリプト最大の罠、while問題
  • xargsメモ - ぱせらんメモ

    xargsはよくfindと組み合わせて一括処理したりするのに使うけど、失敗すると大ダメージを受けるのでお勉強。 プログラムを指定しないとecho xargsにプログラムを指定しないとechoが使われるのでどんな感じに渡されるのか確認できる。 $ ls -l total 0 -rw-r--r-- 1 pasela staff 0B 1 22 17:11 foo -rw-r--r-- 1 pasela staff 0B 1 22 17:11 bar -rw-r--r-- 1 pasela staff 0B 1 22 17:11 baz $ ls | xargs foo bar baz NUL(\0)区切りで受ける xargsはデフォルトではホワイトスペースで区切るので、たとえば"Foo Bar"というような空白を含むファイルがあるときに普通に実行すると残念なことになる。 $ ls -l tot

    xargsメモ - ぱせらんメモ
  • find の -exec optionの末尾につく \; と + の違い。 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    find の -exec optionの末尾につく \; と + の違い。 - Qiita
  • xargs を使ってカジュアルに並列処理 - たごもりすメモ

    シェルからでも重い処理というのはちょこちょこあって、例えば超デカいログファイルを移動して圧縮したりというお仕事は世界中のあらゆる場所で毎日行われていたりする。コマンドラインからでも大量の圧縮済みログファイルをいっぺんに展開したい、とか。 あるディレクトリ以下に存在するたくさんのファイルを(圧縮済みのものを除いて)全部 bzip2 圧縮したい!と思ったら、とりあえずさくっと次のようにコマンドラインで叩けばいい。 $ find . -not -name '*.bz2' | xargs bzip2 これで、まあそんなに問題なく効率的にbzip2圧縮ができる。だがしかし。 最近は複数コアのCPUが普通に転がってるし、あまつさえHyperThreadingが有効になってたりしてOSから見える論理CPU数がハンパない。普通に8とかある。その一方で複数コアを使用してくれるコマンドというのはあんまりなくて

    xargs を使ってカジュアルに並列処理 - たごもりすメモ
  • grepの-lオプションと-Lオプション - 気ままなブログ

    grepの-lオプションと-Lオプション。マニュアルを見ると、それぞれ以下のように説明されている。 -l, --files-with-matches 通常の出力はしません。その代わりに、grepを普通に実行した際に、何らかの検索結果を表示する ような入力ファイルの名前を列挙します (訳注: すなわち、-lオプションを指定すると、-vオプシ ョンを同時に指定しない場合は、パターンにマッチする文字列を含む行が存在するファイルの名前 を列挙するということです)。 個々のファイルに対する走査は、最初のマッチで終了します。 (-l オプションは POSIX で規定されています) -L, --files-without-match 通常の出力はしません。その代わりに、grepを普通に実行した際に、何の検索結果も表示しないよ うな入力ファイルの名前を列挙します (訳注: すなわち、-Lオプションを指定す

    grepの-lオプションと-Lオプション - 気ままなブログ
  • 初心者向け、「上手い」シェルスクリプトの書き方メモ - Qiita

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

    初心者向け、「上手い」シェルスクリプトの書き方メモ - Qiita
  • sortコマンドで覚えておきたい使い方9個(+3個) | 俺的備忘録 〜なんかいろいろ〜

    Linux/UNIXでよく使用される、出力される内容を並び替えするsortコマンド。 今回は、このsortコマンドで覚えておきたい使い方についてを紹介する。 1.基的な使い方 基的には、以下のようにコマンドを実行することでその出力内容を並び替える事が出来る。 [root@test-centos7 ~]# cat /work/test5.txt 5 eeeee 1 aaaaa 4 ddddd 2 bbbbb 6 fffff 3 ccccc [root@test-centos7 ~]# cat /work/test5.txt | sort 1 aaaaa 2 bbbbb 3 ccccc 4 ddddd 5 eeeee 6 fffff 2.文字列を数字として並び替えを行う 通常、sortコマンドで並び替えを行う場合、文字列として並び替えされてしまう。 それを数字として並び替える場合、「-n」

  • エンジニアなら知っておきたい lessコマンドtips 11選 - Qiita

    タイトルはかなり挑戦的(?)ですがあまり気にしないでください。 ※注意 このエントリで紹介しているオプション、コマンドはCentOSでしか動作確認をしていません。 その他ディストリビューションや、インストール方法によっては挙動が異なる場合があります。 「less」 使ってますか? エンジニアなら普段Linuxに触る機会が多々あるかと思います。 エンジニアのみならずMacだったりUbuntuだったりで私用PCでもターミナルが使えるようになっている方は多いかもしれません。 私は普段の仕事ではサーバの運用管理をしています。 仕事柄触る頻度が高いのはLinuxサーバです。 そして、使うのは大体CLIです。 そもそもLinuxGUIを触る機会がなかなかありません。 大体リモートからターミナルで接続してCLIでちょいちょいっと処理をする感じですね。 GUIである場合でもLinuxを使っていればターミ

    エンジニアなら知っておきたい lessコマンドtips 11選 - Qiita
  • シェル芸初心者によるシェル芸入門 (修正版)

    The Forefront of the Development for NVDIMM on Linux Kernel (Linux Plumbers c...

    シェル芸初心者によるシェル芸入門 (修正版)
  • よく使う 9 つの便利なシェル芸 - Qiita

    Help us understand the problem. What are the problem?

    よく使う 9 つの便利なシェル芸 - Qiita
  • 自己解凍式バイナリの作り方 - Qiita

    自己解凍式のバイナリって? 身近な例で言うとオラクルがJAVAの配布使ってるような foobar.binというような.binサフィックスの付いているパッケージングされた実行ファイルのことです。伝統的な./configure && make && make install式のtarball形式のパッケージとは違って一つの実行ファイルの中にインストールスクリプトとインストールするデータを含めることができです。 利点 ワンクリックで実行可能。 いちいちtar xfで解凍とか./configureを実行しなくていい。 設定ファイル(.vimrcなど)等のリソースファイルをそのまま実行ファイルの中に埋め込める。 仕組み 仕組みは至って単純で、リソースファイルをアーカイブしたものの先頭にインストールスクリプトは結合させて一つにまとめただけです。 作り方 リソースファイルをtarコマンドでアーカイブする

    自己解凍式バイナリの作り方 - Qiita
  • 逆順出力 tac と tail -r - Qiita

    しかし実は難点があり、tac は Linux(GNU coreutils)にしかないことです。つまり Mac では使えません。その代わり、tail -r で代用できます。tail はファイル末尾から数行を正順で出力するコマンドですが、-r(reverse)フラグによってそれを反転、要するに逆順に出力させることができます。しかし、これまた不幸なことに、BSD 系の tail でしか使用できません。Linux には -r フラグがないのです。つまり、Linux では使えません。 Linux では tac(tail -r は使えない) Mac では tail -r(tac は使えない) ということは、ポータブルなシェルスクリプトが書けません。which などで条件分岐すれば書けなくもないですが、どちらも使えない状況ではどうしようもありません。

    逆順出力 tac と tail -r - Qiita
  • Bashで競技プログラミング #w8lt #w8lt4

    enchant.js meetup! 東京 vol.2 ( http://atnd.org/events/26921 )で行ったライトニングトークの資料です。

    Bashで競技プログラミング #w8lt #w8lt4