タグ

シェルスクリプトに関するtutaka777のブックマーク (16)

  • シェルスクリプトの平文パスワードをセキュアにする方法 - 余白の書きなぐり

    追記: (2015/8/3) 大量のはてブが付いたので 続き を書きました。 sshを使用している人は文字列を手軽に暗号化・復号化できるという話。 このテクニックを使えば色々セキュアになるのでおすすめ。 今回はシェルスクリプト中の平文パスワードをセキュアに代替する。 平文パスワードはやめよう シェルスクリプト中でパスワードが必要になったとき、 とりあえず平文で書いてしまいがち。 #!/bin/sh PASSWORD="hoge" これをセキュアにしたい。 面倒くさいのは嫌なので、なるべく手持ちのツールで暗号化、復号化したい。 ssh用の rsa 秘密鍵と、openssl(大抵の環境に入っている)を使って改善しよう。 秘密鍵の準備 パスワードを暗号化するにあたって、秘密鍵を使用する. sshを常用している場合は ~/.ssh/id_rsa という秘密鍵が存在するだろう。 もし秘密鍵が無ければ

    シェルスクリプトの平文パスワードをセキュアにする方法 - 余白の書きなぐり
  • USP 友の会勉強会 AWK 一行野郎百裂拳

    USP 友の会勉強会 2013/12/22 AWK 一行野郎百裂拳 Normal Action-less 1 awk '{print $0}' awk '4' ファイルの中身を書き出す。 ≒ cat 2 awk '{}' awk '' 何も表示しない。 ≒ cat > /dev/null 3 awk '{print NR, $0}' awk '$0 = NR " " $0' 行番号を付ける。 ≒ cat -n 4 awk 'NR <= N {print $0}' awk 'NR <= N ' 最初の N 行を抜き出す。 ≒ head -n N 5 awk 'NR == N , NR == M {print $0}' awk 'NR == N , NR == M ' N 行目から M 行目を抜き出す。 6 awk 'NR >= N && NR <= M {print $0}' awk 'N

  • シェルスクリプトを書くときに気をつける9箇条 - Qiita

    最新の類似投稿としてシェルスクリプトのコーディングルール2014も併せてどうぞ。 2014/10/09追記 ぼくがシェルスクリプトを書くときに気にしていること、過去の失敗で書き留めたことを忘れないために。 1. グローバル変数は大文字 PATH や HOME など、環境変数が大文字なので、エクスポートする変数を大文字で書くという習慣は一般的であるような気がしますが、エクスポートする変数を抱えるシェルスクリプトを作成する機会が稀なので。 グローバル変数は大文字 ローカル変数は小文字 エクスポートする変数も大文字 関数内からグローバル変数にアクセスする場合がありますが、やはり区別していると、可読性が増すような気がするのでお勧めです。 2. awk を知る Unix 上にて文書処理をするときに、数多くのフィルタコマンド(grep、cut、tr、head、sort、uniq、sed、awk、wc、

    シェルスクリプトを書くときに気をつける9箇条 - Qiita
    tutaka777
    tutaka777 2013/10/09
    “ラミング言語でもあり、その習得は必須の技能であると言えます。ほとんど改変を加えずに、様々なシステムでそのまま利用できるという汎用性の高さは非常に優れたも”
  • 私が他人のシェルスクリプトから学んだこと | Yakst

    私はシェルスクリプトの大ファンで、他人のスクリプトから面白い方法を学ぶのが大好きだ。最近、SSHサーバの2要素認証を簡単にするためのauthy-sshスクリプトに出会った。このスクリプト群を見まわしていて、みんなと共有したいたくさんのクールなことを見つけた。 出力に色付けする 出力文字列を、成功した時は緑に、失敗した時は赤に、警告は黄色に色づけしたいと思うことはたくさんあるだろう。 NORMAL=$(tput sgr0) GREEN=$(tput setaf 2; tput bold) YELLOW=$(tput setaf 3) RED=$(tput setaf 1) function red() { echo -e "$RED$*$NORMAL" } function green() { echo -e "$GREEN$*$NORMAL" } function yellow() { e

    私が他人のシェルスクリプトから学んだこと | Yakst
  • 入力と出力 | UNIX & Linux コマンド・シェルスクリプト リファレンス

    入力と出力 リダイレクションとパイプ コマンドの実行結果は通常、標準出力であるディスプレイに出力される。この実行結果はリダイレクション(>、>>)やパイプ(|)を使用することにより、ディスプレイではなくテキストファイルやコマンドに対して出力するように切り替えることができる。 また、リダイレクションはコマンドの出力先をテキストファイルに切り替える以外にも、これとは逆にコマンドへの入力元をテキストファイルに切り替えることもできる。 なお、リダイレクションとパイプは次のように使い分ける。 リダイレクション データを渡す対象がファイルである場合はリダイレクションを使用する。 パイプ データを渡す対象がコマンドである場合はパイプを使用する。 リダイレクション [>, », <] コマンドの出力を file へ上書きする → コマンドの実行結果の出力先を、ディスプレイからファイルへ切り替えたい場合は、

    入力と出力 | UNIX & Linux コマンド・シェルスクリプト リファレンス
  • シェルスクリプトを書くときに気をつけていること(その1) - mikedaの日記

    初級者向けに『自分がシェルスクリプト書くときに気をつけていること』をまとめてみました。 @masudaKの『シェルスクリプトを書く際に気を付けていること8箇条』の乗っかりエントリです。 内容は重複しないように書いてますので合わせて読んでください! 基的にLinuxの/bin/sh、/bin/bashを想定しています。 テキスト処理は標準入力から受け取って標準出力に出す テキストを扱う小さなツールを作りましょう。 引数はオプション情報を渡すのに使います。 そうすればgrep、sort、uniqなどの便利なコマンドとパイプで連携できます。 grep ERROR /tmp/test.log | my_cmd1.sh 192.168.1.1 | sort 全てを実行する1つのスクリプトを作るのはたいへんだし、応用が効かないです。 人間に伝えたいメッセージは標準エラー出力に出す パイプでつないだ時

    シェルスクリプトを書くときに気をつけていること(その1) - mikedaの日記
  • よく使うコマンドfindまとめ | tonbyブログ

    - find の -mtime +n のまとめ find の -mtime +n の検索対象となるファイルは以下の通り。 mtime +0Browse by Categories Eclipse (1) java (1) linux (10) centos (4) コマンド (3) mac (1) php (13) pear (2) symfony (8) seo (1) svn (1) tomcat (2) vim (3) 携帯 (4) 日記 (1) 未分類 (4) - find の -mtime +n のまとめ find の -mtime +n の検索対象となるファイルは以下の通り。 mtime +0 今から24時間以上前のファイル mtime +1 今から48時間以上前のファイル mtime +2 今から72時間以上前のファイル (n + 1) * 24 find . -n

  • 『UNIX/Linux の find -exec の引数にはシェルの構文を使えない.』

    UNIX/Linux の find コマンドの -exec アクションって,シェルを起動せずに直接コマンドを呼び出すんですね! 今まで知りませんでした (恥). きっかけは,OKWave でのfind に関する質問.-exec の引数で,シェルの構文 `…`を使うにはどのようにエスケープすればいいのか (私も今までたまに使おうとしては挫折していた) を調べるために find のソースを少しだけ覗いてみると …あれっ,-exec でシェルを起動している気配がない!? 直接コマンドを呼び出しているみたい.それを確認するため,シェルコマンドである alias を -exec に指定して, find . -exec alias \;とやってみると,予想どおり次のようになった. find: alias: そのようなファイルやディレクトリはありません find: alias: そのようなファイルやディ

  • シェルスクリプトの基本テクニックを盗め!

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

    シェルスクリプトの基本テクニックを盗め!
  • sh:whileでCSVファイルを読むときには

    シェルを使ってファイルから1行ずつよみこみ、カンマで区切って処理をしたーい。 なんて時に、 while read LINE do // ここでsplitをつかってごにょごにょと・・・・ done < input.txt ってな感じで、1行を切り分けていた。 ここでごにょごにょと書いたのも、いつもこの部分を忘れてしまい、 あー昔書いたやつをさがして・・・ と見つからず、いろいろと探していたら、もっといいやり方を知った。 まあ、たまにブラウズもいいものだと・・・ では、 while IFS=, read f1 f2 f3 do echo "$f1は1つ目のフィールド" echo "$f2は2つ目のフィールド" done < input.txt というように、カンマで分割した形で変数にセットしてくれるので、楽だ・・・・ ちなみに、IFSとはInternal field separator

  • linuxディレクトリ中のファイルサイズ合計値を バイト表示

    Landscape トップページ | < 前の日 2004-05-25 2004-05-26 次の日 2004-05-27 > Landscape - エンジニアのメモ 2004-05-26 ディレクトリ中のファイルサイズ合計値を バイト表示 当サイト内を Google 検索できます * ディレクトリ中のファイルサイズ合計値を バイト表示この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [シェルスクリプト] [unix] Windows では、ディレクトリのアイコンを右クリックしてプロパティを表示させると、そのディレクトリ以下のファイルのサイズの合計値がバイト単位で表示される。併せて、ファイル数やクラスタギャップを含めたディスク上のサイズも表示される。ちなみに、プロパティは ALT + ディレクトリアイコンのダブルクリックでも表示される。 Linux や Uni

  • grepの正規表現 - satospo

    grepの正規表現でIPv4アドレスにマッチさせる例。 [root]# grep -e "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+" secure 一致した部分だけ抜き出すには?「-o」を付けると、パターンにマッチした部分のみを表示してくれる。 [root]# grep -o -e "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+" secure 192.168.1.50 192.168.1.50 SSHでパスワード間違いしたホストIPアドレスを一覧するパターンの例。(CentOS 5) [root]# grep -E "Failed|Invalid" /var/log/secure | grep -o -e "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+" SSHでパスワード間違いしたホストIPアドレスを一覧し

  • xargs を使ってカジュアルに並列処理 - たごもりすメモ

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

    xargs を使ってカジュアルに並列処理 - たごもりすメモ
  • シェルの変数に慣れる

    ユーザー定義変数の使い方 変数は、シェルの世界、とくに英語のドキュメントでは「パラメータ」と呼ばれていますが、日語でパラメータというとどうも違う意味にとられがちなので、ここでは「変数」と呼ことにしたいと思います。ではシェルスクリプトにおける「変数」の取扱と特徴について見ていくことにしましょう。 シェルやシェルスクリプトで変数を定義する場合は、 のように記述します。とくに前もって変数を宣言したりする必要はありません(宣言することもできますが)。‘=’の両側にスペースをあけたりしてはいけません。C言語などの変数代入などの際にスペースをあける癖のある方は気をつけてください。 格納された値を参照する場合は、変数の先頭に‘$’をつけます。ためしにechoを使って標準出力に変数を表示してみます。

    シェルの変数に慣れる
  • サービス終了のお知らせ

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

  • guro_chanの日記 » シェルスクリプトのfor文で指定した回数だけ繰り返し処理を行う

    シェルスクリプトで繰り返し処理を行うとき必要になることが多いが、ググるさんにたずねてみても案外すぐに見つからないので記録しておくものである。1から100まで1ずつ増加させながら繰り返す場合はこんな感じ。 for i in `seq 1 1 100` do // do something done ワンライナーで書くならこうなる。 $ for i in `seq 1 1 100`; do // do something; done 1 2 (snip) 99 100 2ずつ増加させるなら`seq 1 2 100`にすれば良い。 なおwhile文でも同様のことはできるが長くなるし複雑で分かりにくい。 i=1 while [ $i -le 100 ]; do // do something i=`expr $i + 1` done ワンライナーだと見た目の複雑さがさらに増す。 $ i=1; w

  • 1