タグ

unixとtipsに関するnanakosoのブックマーク (36)

  • JSON を行単位にわかりやすく展開してくれるコマンド gron がピンポイントでとても便利

    JSON を行単位にわかりやすく展開してくれるコマンド gron がピンポイントでとても便利 2022-06-13-1 [Programming] コマンドラインでの JSON の操作には jq (軽量JSONパーサ)[2017-10-24-1] を使っています。万能で便利なんですが、奥まったところにある値だけを取りたいときとかちょっと面倒なんですよね。ちらっと値を見たいだけなのにおおげさになっちゃいがち。 ということで、 gron というのを使ってみました。 GitHub - tomnomnom/gron: Make JSON greppable!JSONをgrepしやすくするコマンドラインツールgronの紹介 - Qiitagronでjsonの扱いが楽になった話 – Tower of Engineers あ、これでいいや。 いわゆる「顧客(=私)が当に必要だったもの」だわ。 例えば、

    JSON を行単位にわかりやすく展開してくれるコマンド gron がピンポイントでとても便利
  • シェルスクリプトを書くときにいつもやるやつを調べた

    bash のシェルスクリプトを書くときに、いつも脳死で以下をやっている。(同僚が整備してくれたものをコピペしている) エディタなり CI で shellcheck をまわす set -euxo pipefail と冒頭に書く こんな感じ #!/bin/bash set -euxo pipefail いつまでもコピペではさすがにアレなので、意味を調べたメモ。 shellcheck koalaman/shellcheck: ShellCheck, a static analysis tool for shell scripts イケてない書き方に警告を出してくれる それぞれの警告にはエラーコード割り振られていてとても便利 エラーコードごとに正誤例、解説が書かれているのでわかりやすい SC1000 の例 CI もそうだし、エディタのプラグインも充実 しているのでとりあえず入れておくと良い set

    シェルスクリプトを書くときにいつもやるやつを調べた
  • シリアルコンソール便利っすよ

    これは Raspberry Pi Advent Calendar 2020 の記事です。 こんにちは、まめもです。とても久しぶりにブログを書きます。よろしくおねがいします! Raspberry Piはいろいろ使えて便利ですよね。「ちょっとしたLinuxパソコンがほしいなぁ」っておもったときにすぐに用意できるのがとても魅力です。でも、最初のセットアップにキーボード・モニタ・マウスが必要なのはちょっと面倒ですよね。サーバとしてつかいたいから画面もキーボードもいらない。有線ネットワークにつないだらDHCPIPアドレス振られるからそこからSSHすればいいんじゃないの?って思いますけど、最初のIPアドレスを調べるのがめんどい・・・。テキストのコンソールだけでいいから手早く接続したい。さて、そんなときには、シリアル接続で使うととても便利です。Raspberry PiのGPIO端子に3の線をつなぐだ

    シリアルコンソール便利っすよ
  • grep の「バイナリファイル (標準入力) に一致しました」が出る条件を調べていたらそれは長い旅路の始まりだった。

    はじめに 昨今では1行につき、1つの JSON を出力する様なログファイル形式も珍しくはありません。 grep しやすい データベース化しやすい これらの理由で各所で多く使われています。僕も仕事で普通に使っているのですが、ある日突然そのログファイルを集計するスクリプトで以下の様なエラーが出始めました。

    grep の「バイナリファイル (標準入力) に一致しました」が出る条件を調べていたらそれは長い旅路の始まりだった。
  • 技術/UNIX/なぜnohupをバックグランドジョブとして起動するのが定番なのか?(擬似端末, Pseudo Terminal, SIGHUP他) - Glamenv-Septzen.net

    ホーム 検索 - ログイン | |  ヘルプ 技術/UNIX/なぜnohupをバックグランドジョブとして起動するのが定番なのか?(擬似端末, Pseudo Terminal, SIGHUP他) [ Prev ] [ Next ] [ 技術 ] 何をいまさら当たり前の事を・・・と思われるだろう。 $ nohup long_run_batch.sh & SSHからログアウト後も実行を続けたいバッチジョブを、"&"を付けてバックグラウンドジョブとしてnohupから起動するのは定番中の定番である。 しかし、「nohupを使わなくても実行を続けることが出来る」やり方があったり、さらには「nohupを付けてもログアウト時に終了してしまう」パターンがあるとしたらどうだろう? そして、ある日あなたの後輩や同僚がこれらについてあなたに質問してきたら、あなたはどう答えるだろうか? 「Web上で検索したら見つか

  • bashの使い方のまとめ記事のインデックス - それマグで!

    bash の使い方を1から見直すシリーズ シェルスクリプトは、もうbashで書いていいよね。bashが動かない環境なんてないんだし。 bash の紛らわしい記号や歴史的経緯によるPOSIXかき分けなどがあって、bashに特化した記事って少ないし断片的なので、色々と調べたことを再構成してまとめて記事にしました。 私自身 [[ / [ の違いが全然わからないので調べ始めました。その結果あれこれ知見が得られたので書きながら復習をしていました。 気づけば、bash の教科書的なものになってしまいました。 何かの役に立てばいいと思って記事のインデックスをまとめておきます。まだ一部書けてないですがそのうち書きます。 はじめに はじめに bashとPOSIX bashが動く環境 zshとの比較 変数と配列と数値計算 変数 配列のまとめ 組込 let による数値計算とインクリメント 連想配列(assoc

    bashの使い方のまとめ記事のインデックス - それマグで!
  • wget で認証付きサイトをダウンロードする - WebOS Goodies

    WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。 皆さん、 wget というツールはご存知でしょうか。コマンドラインの HTTP/FTP ダウンロードツールなのですが、これがなかなかに高機能なのです。例えば HTML 中のリンクを辿る再帰的ダウンロードや、絶対パスリンクの相対パスへの変換など、多彩な機能を持っています。きちんと活用すれば、サイトをまるごとダウンロードしてローカルで閲覧することもできます。 さらに、

  • anyframeを使おう

    現在私が開発中のunite.vimに関する紹介です。オマケとして、今までの発表をダイジェスト形式で御届けしています。

    anyframeを使おう
  • 個人的なShellTipsをまとめてみた - UNIX的なアレ

    naoya_itoの火を噴いたシェルtips - Togetter これを読んでふと書きたくなったので。ちなみに僕はbash使っています。 CTRLを使った便利系 まず、UNIXな操作あたり。 キーバインド 意味 CTRL + s キー入力を受け付けなくする 画面出力抑える CTRL + q 上記解除 CTRL + z バックグラウンドに. fgで戻る CTRL + l 画面をクリア。clearと同等 CTRL + c 現在の処理を停止 CTRL + d exitと同等 CTRL + r historyからコマンド検索 emacsっぽいやつ どっちかというとキー操作に近い。基emacs。metaは僕はoptionに割り当ててる。とりあえず触りたい人はESCでOK。 キーバインド 意味 CTRL + a 行頭 CTRL + e 行末 CTRL + f → CTRL + b ← CTRL

    個人的なShellTipsをまとめてみた - UNIX的なアレ
  • これは便利、tarを使ってファイルをコピーする - 檜山正幸のキマイラ飼育記 (はてなBlog)

    バタリアンのタールマンが出てきてしまったわけですが*1、tarのmanページで何を調べていたかっていうと、ファイル抽出(extract)時に新ファイルを上書きしないオプションとか、なにやら。 ファイルのコピーというと、cp, copy, xcopyなどのコマンドを多く使うでしょうが、tarコマンドもファイルコピーに使えます。なかなか便利ですよ。Unix/Linux/Cygwin/MSYS などで GNU tar を使う場合の話です。 一番基的なのは、カレントディレクトリにあるファイルをすべて再帰的にたどって宛先(destination)ディレクトリにコピーする方法です。 $ tar cf - . | (cd ../dest/; tar xvf -) ハイフン1文字「-」は標準入出力を表します。出力のときは「f - 」の代わりに -O(または --to-stdout)オプションが使えます。

    これは便利、tarを使ってファイルをコピーする - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • wgetとcurlの根本的な違い - ctrlshiftの日記

    UNIXの代表的なダウンローダにwgetとcurlがあります。 たいていの場合どんなOSでも、どちらかのソフトがインストールされているのではないかと思います。 しかし、この2つのダウンローダの機能は、一見似ているようにも見えますが、実はそれぞれに特徴が見られるので、今日はそれについて解説してみます。 wgetの特徴 wgetのスペルは「片手でもコマンドできる」ということもあって、多くの人から気に入られています。 そんなwgetの特徴として、最も際立っているのが、クローラとして動作可能という点です。 オプションで-rを付加してやることで再帰的に動作し、-lでその深さを指定することができます。 また、-Aや-Rを利用すれば、ダウンロードする拡張子のホワイトリストとブラックリストを指定することも可能です。 つまり、特定のサイト内に散らばって存在するファイルを、拡張子によって指定ダウンロードできる

    wgetとcurlの根本的な違い - ctrlshiftの日記
  • 標準出力をファイルのように扱う方法、例えば2つのコマンドの出力結果のdiffを取るとか - Qiita

    command1 > out1 command2 > out2 diff out1 out2 rm -f out1 out2 これは Process Substitution という名前の機能です。 ちなみに echo <(command) すると /dev/fd/63 などと表示されます。 これは一時的に作られたファイルディスクリプタの名前で、そのファイルディスクリプタは実行されたcommandの標準出力に繋がっており、他のプログラムからはファイルと同じように扱うことが出来る、というわけです。 とっても便利なので、覚えといて損はないです。 Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back use

    標準出力をファイルのように扱う方法、例えば2つのコマンドの出力結果のdiffを取るとか - Qiita
  • mintty に iconv をインストール

    $ mingw-get install msys-gcc msys-make $ wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.12.tar.gz $ tar xvfz libiconv-1.12.tar.gz $ cd libiconv-1.12 $ ./configure $ make $ make install

    mintty に iconv をインストール
  • xargsもすごいのでもう死ぬしかない | uuu

    GNU Parallelがすごすぎて生きるのがつらい GNU Parallel いいかもね xargsでもできるよ! $ yes | head -n10 | sed 's/.*/localhost/g' > server.list $ xargs -P0 -t -a server.list -I% ssh % "vmstat 1 2|tail -1" ssh localhost vmstat 1 2|tail -1 ssh localhost vmstat 1 2|tail -1 ssh localhost vmstat 1 2|tail -1 ssh localhost vmstat 1 2|tail -1 ssh localhost vmstat 1 2|tail -1 ssh localhost vmstat 1 2|tail -1 ssh localhost vmstat 1 2|

    nanakoso
    nanakoso 2012/11/10
    xargs
  • あなたの知らない>|と<>の使い方

    >や>>、>&といったひんぱんに使われるリダイレクトに対し、ほとんど使われることのないリダイレクトが>|と<>だ。実際には興味深い機能である、これら「知られざる」リダイレクトについて説明しよう。(編集部) あなたの知らないリダイレクト、>|と<> シェルが提供する機能はカーネルが提供している機能をダイレクトに利用するものが多い。つまり、シェルの記述がダイレクトにシステムコールに結び付くような機能が多いということだ。コマンドの実行、パイプ、リダイレクトなどは、そっくりそのままシステムコールに置き換わる。 リダイレクトであれば、ほとんどのケースで>ないしは>>で事足りるはずだ。2>&1という記述はこれで1つの機能に思えるが、これは>&というリダイレクトの典型的な使い方の1つであり、つまりはリダイレクトだ。 >、>>、>&はよく使われるリダイレクトといえる。しかし、sh(1)のマニュアルには次の

    あなたの知らない>|と<>の使い方
  • manに「cp -rは使うな」と書いてあった話 - 西尾泰和のはてなダイアリー

    cp -rでシンボリックリンクまで実体としてコピーされて困ったのでMacのmanを読んでいたのだが、そもそもcp -rってオプション一覧に載ってない。あれれ?と思って続きを読んでいたら互換性の章でstrongly discouragedと書かれていた。 COMPATIBILITY Historic versions of the cp utility had a -r option. This implementation supports that option; however, its use is strongly discouraged, as it does not correctly copy special files, symbolic links, or fifo's. 代わりに-Rを使うべきだそうだ。その場合のシンボリックリンクの扱いをどうするかはオプションで指定でき

    manに「cp -rは使うな」と書いてあった話 - 西尾泰和のはてなダイアリー
  • いまどきのUNIXプログラミング

    さて、しばらく前の話になりますが、やや若い世代の人と集中的に開発を行う機会がありまして。「epoll使っていいですか、selectってあまり使った事ないので」と言われて愕然。当たり前と言えば当たり前なんだけど、90年代に身に着けたUNIXの知識もいまや年代物。少しはアップデートしないとなぁ・・・という事でを読んで勉強したので、そのメモ。もしろん昔からあるけど知らなかったって事も沢山ありました。 読んだのは「LINUXシステムプログラミング」というO'REILLY。400ページ弱という(この手のにしては)薄いなのだけど、興味深い話題が多く楽しんで読めました。以下、このによってアップデートされた私の知識の項目一覧と概説。これを見て「おぉ」と思った人は仲間なので買って損はないと思う。

  • findコマンド使うときは、「prune」オプションを意識することが大事だという話し - カイワレの大冒険 Third

    findコマンドってすごく便利でxargsとかexecと合わせると色々できちゃうんですが、その分リスクも背負うので、リスクヘッジしておきましょうというお話し。 あるディレクトリ配下にこんなファイルがあったとします(適当でごめんなさい)。 # lla drwxr-xr-x 6 root wheel 204 3 21 2011 ./ drwxr-xr-x 51 root wheel 1734 5 23 01:07 ../ drwx------ 4 root wheel 136 8 12 2010 cores/ -rw-r--r-- 1 root wheel 4912297 10 16 2011 log.nmbd -rw-r--r-- 1 root wheel 5123798 3 21 2011 log.nmbd.old -rw-r--r-- 1 root wheel 198900 10 16

    findコマンド使うときは、「prune」オプションを意識することが大事だという話し - カイワレの大冒険 Third
  • なまけものになりたくて - wget全オプション日本語訳

    まずはwgetをダウンロードしてくる。いくつもリンクがあるが、特にこだわりが無いなら「If you don't know which version to get: GET」以降のlink(2008/06/16日現在は「THIS ONE:1.10.2 complete」)からダウンロードして展開する。(ここにwgetを使うのに必要なものが全て含まれている) ただ使うだけなら、コマンドプロンプトを立ち上げてwgetが置いてあるフォルダに移動し、「wget url」とすればダウンロード可能(例 「wget http://yagi.s321.xrea.com/」)。 出来る事としては大雑把に言うと、該当サイトを全てダウンロードし、その内部リンクを全てローカルのものに書き換える、ダウンロード対象ファイルを外部ファイルに記述する、proxy(プロキシ認証でも)を使用する、事も可能。詳細は以下のオプシ

    nanakoso
    nanakoso 2012/03/09
    wget
  • ack.vimで編集効率を10倍向上させる | Glide Note - グライドノート

    Vimテクニックバイブル ~作業効率をカイゼンする150の技 ここ1週間、Vimテクニックバイブルに載ってる使ったことのないプラグインを試しているんですが、個人的にvimgrepよりも使いやすいと思っているack.vimが見当たらなかったのでご紹介。 ackとは ack 1.96 — better than grep, a source code search tool for programmers findで再帰的に全ファイルを列挙して、各ファイルに対してgrepというような事を一つのコマンドでやってくれます。.svnとかCVSとかを検索対象として自動で除外してくれるので、ソースコードの検索に非常に役に立ちます。findとgrepでソース検索してたら、「それack使うと楽だよ」と会社の親切な人が教えてくれましたよ。基的な利用方法は下記のような感じで ack パターンマッチ [フ