タグ

shellに関するmasasuzのブックマーク (15)

  • ターミナルの作業が捗るかもな小技5つ - Qiita

    ターミナルで作業する事が多いんですが、そのときによく使っているちょっとしたときに便利なコマンドなどを紹介します。 bashで説明します。 (zsh でもつかえるし、もっと便利になる物も多いですが) 1. 並列な階層に複数ディレクトリを一度に作成 {} を利用します。 aa,bb,cc というディレクトリを作るとき。

    ターミナルの作業が捗るかもな小技5つ - Qiita
  • シェルスクリプト入門 書き方のまとめ | Memo on the Web

    シェルスクリプト入門として, 基的な書き方をまとめました. 長いですが, 1ページにまとめてみました. 良かったら目次も参考にしてご覧になって下さい. 目次 シェルスクリプトとは 作り方, 実行の仕方 コメント ユーザーからのキーボード入力を受け付ける 変数 通常の変数 特別な変数 演算子 数値計算演算子 比較演算子 コマンドを繋げる演算子 条件文に使える比較演算子 条件文 制御構文(分岐) if文 case文 制御構文(ループ) for文 while文 until文 select文 文字列処理 文字列置換 削除 複数行のテキストの出力(ヒアドキュメント) 関数 シェルスクリプトとは シェルスクリプトとは, シェルの動作をまとめて記述したスクリプトのことです. 決められた文法にしたがって処理を記述することによって, シェルでの処理をまとめて行ったり, 作業を自動化できたりします(例 複数

  • シェルスクリプトを公開するとき, コマンド前にバックスラッシュをつけるべき - Shohei Yoshida's Diary

    oh-my-zsh の環境で、peco-select-history が動かない - Qiita 追記 2014年 7月 7日 シェルスクリプトと書いてしまい漠然すぎましたが, ここで述べている ことが問題になるのは, .bashrc, .zshrcに関数, alias設定等がコピー される場合や, sourceコマンドでファイルを読み込む場合です. non-interactiveに実行されるシェルスクリプトについては特に 問題ないです. 問題点 そうしないと, 公開されたコマンドを自分の環境に導入した場合, aliasにより正しく動かなく場合があるためです. aliasをつけがちな コマンド(ls, grep等)がシェルスクリプトに含まれていると 特に問題が起こる可能性が高くなります. 例 pecoを使って カレントディレクトリのファイルをページャで開く 例を考えてみましょう. 単純に考

    シェルスクリプトを公開するとき, コマンド前にバックスラッシュをつけるべき - Shohei Yoshida's Diary
  • シェルスクリプトのデバッグは typeset または declare を使うと良いかも - よんちゅBlog

    はじめに つい最近知った便利なデバッグ方法 (長年シェルスクリプトを書いているのに知らなかった。これが常識だったら恥ずかしい…) シェルスクリプトのデバッグでは echo で変数の中身を見るという原始的な方法をよく使うかと思います。 いわゆる プリントデバッグ というやつですね。 もう少し詳しいデバッグが必要な場合は、 set -x と set +x でデバッグしたい部分を囲むという方法もあります。 今回は プリントデバッグ で使う echo の代わりに typeset or declare を使うと良いというお話です。 プリントデバッグは typeset or declare を使おう typeset or declare は変数宣言などでよく使うコマンドですが、変数の中身を見るのにも使えます。 echo と比べて何が良いのかというと、変数の中身はもちろん変数名や変数の型も表示してくれ、

    シェルスクリプトのデバッグは typeset または declare を使うと良いかも - よんちゅBlog
  • Dalton Hubble | .bash_profile, .profile, & .bashrc Conventions | scriptogr.am

    Software Engineer at Twitter, MIT graduate, Researcher at CSAIL. Follow @dghubble Bash configurations on Linux and OS X can be confusing for many people, myself included. I've written this short guide to remind you and I both of what conventions should be followed. Login Shell vs. Non-login Shell When logging in via the console (e.g. an SSH session, the scary console login after you've messed up y

  • VOYAGE GROUP エンジニアブログ : 超便利!Makefileを作ってmakeするのは想像よりもずっと簡単だった

    2012年06月06日14:38 カテゴリprogramming 超便利!Makefileを作ってmakeするのは想像よりもずっと簡単だった VOYAGE GROUP の初級シェルスクリプター @katzchang です。おはこんばんちわ。 最近、 make 、 Makefile をゴリゴリ使い出しているところなので、それについて今日はちょっと書いてみることにします。 さて、プロフェッショナルな技術者たる皆さんであれば、一生に何度かは「ディレクトリをカレントに入れてメイク、ディレクトリをカレントに入れてメイク…」というご経験があろうことかと思います。 make のイメージといえば: C言語で書かれたアレをコンパイルする、よくある手順 もしかしてC++かもしれないけど大勢に無影響 たまに失敗するけどあれマジなんなの困る というアンケート結果がでています(2012 俺調べ)。 そんな make

  • シェルスクリプトを書く際に気を付けていること8箇条 - カイワレの大冒険 Third

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

    シェルスクリプトを書く際に気を付けていること8箇条 - カイワレの大冒険 Third
  • OSに付属するシェルスクリプトを読んで技術を盗む

    今回から、OS付属のシェルスクリプトを読んでいく。多くの人が使っているスクリプトを読むことで、シェルスクリプトならではの書き方、テクニックを身に付けることができるはずだ(編集部) 他人の技術を盗まなければ進歩はない 外国語をマスターするにも、楽器の演奏を覚えるにも、上達するにはただ練習するだけではダメだ。素晴らしいお手を見つけて、よく観察し、何度もまねることが必要だ。お手から技術を「盗む」ことが大切だということだ。 プログラミングでも同じことが言えると思う。文法を覚えて、ただひたすらプログラムを書くだけではなかなか上手にならない。スキルのある人のコードを見て、技術を盗もう。開発チームのメンバーそれぞれが書いたコードを持ち寄って、お互いに批評し合う「コードレビュー」に参加している、あるいはリーダーとして主催しているという人は多いと思う。このコードレビューも、人から技術を盗む良い機会と言え

    OSに付属するシェルスクリプトを読んで技術を盗む
  • ログアウト後もコマンドを実行し続けたい場合 - 元RX-7乗りの適当な日々

    あるコマンドを実行するときに、終了までに時間がかかることがわかっている場合なんかに便利。 "nohup"コマンドは、ハングアップシグナルを無視してコマンドを実行してくれます。 $ nohup command [args...] "command"の部分には、実行するコマンドの指定、"args"の部分には、実行するコマンドのオプション(引数)を指定します。 実行中に出力されたメッセージは、"nohup.out"に保存されます。 (出力がユーザによってリダイレクト等していない場合) 参考 Man page of NOHUP

    ログアウト後もコマンドを実行し続けたい場合 - 元RX-7乗りの適当な日々
  • 指定したバックグラウンドプロセスをデーモン化する - 元RX-7乗りの適当な日々

    昔、「ログアウト後もコマンドを実行し続けたい場合」というエントリで"nohup"コマンドの使い方を書いたのですが、nohupし忘れた時はどうすればいいのか、という話。 指定したバックグラウンドプロセスをデーモン化するためにdisownというbashの組み込みコマンドがあります。 #!/bin/sh while :; do sleep 5 done ためしに上記のようなスクリプトを用意して、"&"付で実行します。 $ sh test.sh & [1] 2692 $ jobs [1]+ 実行中 sh test.sh &次に、disownコマンドを実行します。引数には"%"+ジョブ番号を指定します。(上記例だとジョブ番号は"1") $ disown %1 $ jobs $ この通り。psコマンドの結果は↓ $ ps -edf ・・・省略・・・ nami 2692 1708 0 02:25 pts

    指定したバックグラウンドプロセスをデーモン化する - 元RX-7乗りの適当な日々
  • シェルスクリプトはエレガントでなければならない

    /bin/shの実体としてはash(dash)、bash、kshの採用例が多い。どのシェルもBourne shellの機能に加えて、拡張機能を提供する。 FreeBSDなどの*BSD系のOSは、ashを/bin/shとして使っている。ashはPOSIX.1(POSIX:2008)にいくらかのBSD拡張機能を取り込んだシェルだ。メモリをあまり消費せず、高速に動作し、ほかのライブラリに依存することが少ない。従って、rootやレスキューシステムのインタラクティブシェル、システムのシェルスクリプトといった場面で採用されている。 Mac OS Xはbashを/bin/shに採用している。FedoraやopenSUSEなどのLinuxディストリビューションもbashを/bin/shに採用している。LinuxディストリビューションでもUbuntuやDebian、Linux Mintなどは、高速に動作する

    シェルスクリプトはエレガントでなければならない
  • シェルスクリプトはエレガントでなければならない

    誰かが使っているスクリプトを読んでみろ 文法を知るところから始めたシェルスクリプト使いは、なかなか次の一線を越えられない。それはシェルスクリプトに限らず、ほかのプログラミング言語や自然言語でも同じことなのだが、勉強を通じて身に付けたコードというものは、現場で実際に使用するコードとは大きく異なるというところに原因がある。シェルスクリプトの文法を一通り覚えたとしても、実際に使う機能とあまり使わない機能がある。あまり使うことがない機能を必死に覚えても意味がないだろう。 また、文法を覚えただけでは使い方を想像できないが、実際にはよく使う記述方法もある。ある程度シェルスクリプトの文法を学んだら、次は実際に誰かが活用しているシェルスクリプトを読むことが、ステップアップのポイントだ。連載ではしばらくの間はシステムで実際に使われているシェルスクリプトを読みながら、その意味を解説していこうと思う。繰り返し

    シェルスクリプトはエレガントでなければならない
  • lessでソースコードに色をつける

    シェルの操作中「テキストファイルをちょこっと覗きたいな」と思ったときに抜群に便利なlessコマンドであるが、普段綺麗に色付けされたソースコードを見慣れていると、モノクロのソースコードの見づらさに愕然としてしまう。結局lessを終了して他のエディタで開きなおすことになるのだが、lessでソースコードに色付け(シンタックスハイライト)できれば便利なのになーっ!と思ったことはないだろうか。そう、あるんです!lessでシンタックスハイライトする方法はあるんです!というわけで、今日はその方法を紹介しよう。 GNU Source-highlight結論から言うと、今日紹介する方法はGNU Source-highlightを使う。GNU Source-highlightを使えばイッパツだ。なのでまずGNU Source-highlightをインストールしよう。UbuntuやFedoraならリポジトリにあ

    lessでソースコードに色をつける
  • GNU Parallelがすごすぎて生きるのがつらい

    皆さん今日もたくさんのサーバを相手にされていることかと思いますが、いくつかのサーバにアクセスして 1 秒間の統計情報(例えばvmstat 1 2)を集めてパッと表示したい時ってどうやってますかね?shell script を学びはじめたばっかりの僕はこんな感じで書いてました。 $ for i in host1 host2 host3; do ssh $i "vmstat 1 2 | tail -1"; done 0 0 0 329004 210836 14275360 0 0 0 2424 1410 1828 0 0 100 0 0 0 0 0 3716112 587704 25921684 0 0 0 488 1643 2026 0 0 100 0 0 1 0 0 555440 265560 14015548 0 0 0 4204 1534 2392 1 0 99 0 0 vmstatと

    GNU Parallelがすごすぎて生きるのがつらい
  • サービス終了のお知らせ

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

  • 1