Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
ここ最近、沢山シェルスクリプトを書くようになりました。 元々あまりシェルスクリプトを書いたこと無かったので、色々と勉強しつつ書いてるのですが、 他のプログラミング言語とはちょっと違って独特なクセというか、発見の度におぉー!ってなることが沢山あって楽しいです。 そんなわけで、最近学んだり参考にした中で特に感動したシェルの上手い書き方をまとめてみます。 きっとまだ知らないこととかもっと上手くやる方法なんかが沢山見つかりそうなので、 もっといいやり方あるよ!って方はコメントください 何もしない : (コロン)コマンド シェルを書いていた時に非常に欲しかったコマンドがこれ!何もしない! : というコマンド(?)を利用すると、**何もせずに終了ステータス0(つまり正常終了)**を返します。 これが様々な事に使える万能コマンドで、これによって面倒なエラー処理を簡潔にできたり、 入力や出力のリダイレクト
Linuxを用いる上で必須とも言えるlsコマンド。 そのコマンドについて、個人的に覚えておきたい使い方についてまとめてみることにした。 内容としては、覚えておきたいオプションと他のコマンドとの組み合わせでの使い方、計16個18個だ。(2個増えた) なお、例として使用しているのはUbuntu 14.04LTSを用いている。 1.基本の使い方 まずは基本的な使い方から。 オプションを使用しないで使用すると、以下のように出力される。 test@test-vm-ubuntu:~/test$ ls aaa abc abcd abd archey-0.2.8.deb screenfetch-dev test1 test@test-vm-ubuntu:~/test$ リストとして表示させたい場合は、「-l」オプションを付加する。 test@test-vm-ubuntu:~/test$ ls -l 合計
はじめに サーバを運用したり環境を構築したりしていて「あれ。あのプロセスで吐いてるログどこだっけ・・」など困るときがあります。 そんなときに頼りになるかもしれないコマンドを 3つご紹介します。 @madeth 師匠に教えていただきました。 1. proc でプロセスが使っているファイルを見る 困ったこと プロセスの吐くログのパスがどうしても分からない・・。 解決法 (編集 2014/09/10) 知りたいプロセスの ID を調べます。 $ ps aux | grep unicorn deploy 3335 xxx xxx xxx xxx X XX 15:14 0:07 unicorn master -c /var/www/myproject/unicorn/staging.rb -E staging -D プロセスID (この場合は 3335) をもとに root 権限でファイルディスクリ
Network monitoring on Linux This post mentions some linux command line tools that can be used to monitor the network usage. These tools monitor the traffic flowing through network interfaces and measure the speed at which data is currently being transferred. Incoming and outgoing traffic is shown separately. Some of the commands, show the bandwidth used by individual processes. This makes it easy
JSON の内容を sed や awk のようにフィルタ・加工するためのプログラムに jq がある。 JSON 形式で提供されている WebAPI の出力や、ログの内容を扱うのにとても便利。 その強力さの一端を紹介したい。 インストールは Mac OS X であれば Homebrew から。公式サイトからバイナリをダウンロードすることもできる。 $ brew install jq サンプル用の JSON を用意しておく。 $ cat << EOS > jsonfile {"name": "Foo", "sex": "Male", "age": 15, "emails": []} {"name": "Bar", "sex": "Male", "age": 20, "emails": ["hoge@example.jp"]} {"name": "Baz", "sex": "Female", "
いまや高速パターン検索といえばag(The Silver Searcher)ですが、検索対象がUTF-8のテキストを前提としているため、EUC-JPやShift-JISといったファイルを検索するのに課題があります。 これまで、それらの日本語文字セットを検索できるようにするため、色々とagの改造、公開を行っていました。 ag(The Silver Searcher)でEUC-JP/Shift-JISのファイルも検索できるようにしてみた 日本語圏特化型ag -白金- の配備が完了しました しかし、特定の国の文字コードだけに特化した修正というのをmasterに取り込んでもらうわけにもいかず、派生ブランチとして追随するのも、やはり面倒… そこで年始にGo言語を触ったのをきっかけに、Go言語でパターン検索ツールをつくってみました。 せっかくなのでポストagを目指して、プラチナサーチャー(The Pl
※2010/4/18 パイプを使った例 を追記しました 先々週くらいから、vim上からackを使った「ディレクトリ以下のファイル一括置換」を行うvimスクリプト書いたりしてました。 でもなんかしっくりこないので公開するかどうかは微妙… ちなみにackは簡単に言うと「find+grep」を一発実行するようなものです。 ハイライトなども対応しているし、他のコマンドに結果をパイプして渡したりするのにも使えるので 激しく便利。 で、そのためにいろいろack調査してたのですが、 日本語の説明があまりなかったので使い方などをメモ書きしておきます。 ちなみに、以下の実行例についてはplaggerのソースを検索した結果になっています。 インストール cpan App::Ack でok。 yumとかapt-getでもパッケージあるようですし、単一スクリプトとしても提供されているようです。 詳しくはこちらのH
サーバの動作に異常が発生した際に原因を探るためのLinuxコマンドで、自分用のメモです。 全てmanとかググったら出てくるので説明は適当です。思いついたら後で追記していくかもです。 対象はDebian Squeezeになります。 全てパッケージインストールできるもので、パッケージ名は [in packagename] としてあります。 各所よりコメントありがとうございます。 良さ気なコマンドは追記していきます。 <追加したコマンド> * telnet (+コメント wget, netcat) * arp (+コメント arpwatch) * pstree * fdisk コメントに gdisk * host, dig * watch * reboot
プログラムの種類によっては、そのまま実行できるものと、実行できるようにするために「ビルド」が必要なものとがあります。Cなどのコンパイルが必要な言語で書かれたプログラムは当然ビルドが必要ですし、コンパイルが不要な言語であっても、インストーラパッケージを作るというビルド作業が必要な場合はあります。 ビルド作業の自動化のためのツールとしてmakeなどがありますが、そこまで本格的な事をやる必要がない場合は、シェルスクリプトで「ビルドスクリプト」を作るのが手軽でおすすめです。この記事では、そのような場合に役立つシェルスクリプトのテクニックを4つご紹介します。 エラーの気付きやすさとデバッグのしやすさを高める メッセージに色を付ける シェル関数をライブラリにする 一時的に作業ディレクトリの中に入る エラーの気付きやすさとデバッグのしやすさを高める はじめに紹介するテクニックは問題が発生した時に気づきや
タイトルは釣りぽよ〜 今日ここで書くのはわりかし最近知ったことだったりするのが多いんですが、せっかくなので書いておこうかなぁと思った次第です。Linuxって書いてるけど、普通にMacでも使えるハズです。 知ってる人にとってはアタリマエのことですけどね……。 ファイルサイズの桁でかすぎてがわからん ls とか duあたりで使える話ですね。 ファイルサイズが大きすぎてパッと見わからないよっていうことってあるじゃないですか。ありますよね。いやある。 そんな時は -h オプションを使いましょう。 $ ls -l /var/log/nginx/access.log -rw-r--r-- 1 root root 1897381 8月 26 02:50 2012 /var/log/nginx/access.log $ ls -lh /var/log/nginx/access.log -rw-r--r--
はじめに † gitの個人的によく使いそうなコマンドをまとめてみました。自分用チートシートです。 よく使うコマンドは ../コマンドの省略(alias)設定をする方法にて省略形を作っておくと便利です。 各コマンドの詳細は git (コマンド名) --help すると記載があるのでそれ見てもらったら早いと思われます。 ↑ 前提 † 変更したファイルをコミットするときは、 [ローカル]→(addコマンドする)→[インデックスに入る]→(commitコマンド)→[リポジトリに入る] という状態の推移に注意して下さい。 gitでは「コミットしたいものをaddすると一旦インデックスに入るので、次にインデックスに入れたものをcommitでリポジトリにコミットする」と私は理解をしましたが、本来の用途とは別かもしれないです。 ※TODO: 概念の背景を後で調べる ※Subversionように「addでファ
カーソル操作 最終更新2005-03-10T00:00:00+09:00 この記事のURI参照https://www.7key.jp/software/vi.html#r01
GNU screenはもう古いので皆さんtmuxへ移行しましょう、という話。Gentooならemerge tmux。 スクリーンショット 手元のtmuxを撮ってみた。縦分割モード。ウィンドウマネージャはawesome。左のircクライアントはweechat。 本家にもいくつかスクリーンショットがある。 tmuxへ移行する理由(メリット) 標準設定のままでもそれなりに使えるステータスバー 各ショートカットがコマンドベース(コマンドで操作ができる) 標準で縦分割機能搭載 GNU screenがたまに固まる問題(が発生するのは私だけ?)が発生しないかも ビュー専用のスクロールモード 柔軟なペイン制御 コピー&ペースト用のバッファを複数保持できる terminfo的にscreen互換 メモリ消費量が少ない(GNU screenの約1/5) 一部機能でマウスが使用できる(mode-mouse, mo
コマンドモードと入力モード viは他のエディタと違い、「コマンドモード」、「入力モード」があり、モードを切り替えて使用します。起動直後は「コマンドモード」になっていて、「入力モード」への切り替えコマンドを入力すると文字の入力が出来るようになります。ESCキーを押すといつでも「コマンドモード」に戻れます。操作がわからなくなったら、とりあえずESCキーを二回ほど押してみるのが良いかもしれません。
個人的にテキストファイルを処理することが多いのですが,簡単な処理ならUnixのコマンドをパイプとリダイレクトで組み合わせてできることが多くあります.今回はそんななかでもちょっとマニアックなTIPSをまとめてみました. sortコマンドでタブ区切りのファイルを指定する最近知って驚愕したのがこれ.sortコマンドでタブ区切りのファイルを指定したいときは,Ctrl+v Tabでタブ文字を入力していたのですが,$ sort -t $'\t' -k 2,2 のようにしてタブ区切りで2番目のキーでソートすることができます. 1000行おきにデータをサンプリングする1000行おきにファイルからデータをサンプリングしたいときとかは,perlでワンライナーを書くのが速いようです.$ perl -ne '$i++; print unless ($i % 1000)' 某所のコードゴルフによるとこれだけ短くでき
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く