タグ

shに関するtyruのブックマーク (18)

  • source command not found in sh shell

    I have a script that uses sh shell. I get an error in the line that uses the source command. It seems source is not included in my sh shell. If I explicitly try to run source from shell I get: sh: 1: source: not found Should I somehow install "source"? Do I have a wrong version of sh?

    source command not found in sh shell
    tyru
    tyru 2014/05/08
    う、/bin/shにsourceコマンドなかったのか。後で . に置き換えよう。
  • 個人的な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的なアレ
    tyru
    tyru 2014/04/21
    Ctrl-yで貼り付け知らなかった。それ以外はブコメ含めて知ってた。/bashでもbash-completionとCtrl-rがあれば十分なぐらい使えるというか段々設定入れるのめんどい人になってきてしまった。
  • Bashでコマンドの存在チェックはwhichよりhashの方が良いかも→いやtypeが最強→command -vも - Qiita

    コマンドのパスを知りたいんじゃなく、コマンドの存在をチェックしたいだけならwhichよりhashを使ったほうが良いかもっていう話。→追記: typeが最強っぽい。 追記: command -vも良い。プログラムの存在チェックorパスを探したいだけなら互換性を考えると一番良いかも。 比較してみる whichよりhashよりtype=command -vが高速→typeまたはcommand -vの勝ち whichは実ファイルという実体があるプログラムです。hashとtypeはbashの組み込みコマンドです。なので当然ですがプログラムの起動コストがない分hashやtypeの方が速いです。 $ time bash -c 'for((i=0;i<10000;i++));do which perl; done >/dev/null' real 0m7.739s user 0m2.928s sys 0m

    Bashでコマンドの存在チェックはwhichよりhashの方が良いかも→いやtypeが最強→command -vも - Qiita
    tyru
    tyru 2014/02/10
    自分は #!/bin/bash ではなく #!/bin/sh と書きたいがために which 使います(何と戦ってるんだ)
  • はてなブログ | 無料ブログを作成しよう

    週報 2024/04/28 川はただ流れている 4/20(土) 初期値依存性 さいきん土曜日は寝てばかり。平日で何か消耗しているらしい。やったことと言えば庭いじりと読書くらい。 ベランダの大改造をした。 サンドイッチ 一年前に引っ越してからこんな配置だったのだけど、さいきん鉢を増やしたら洗濯担当大臣の氏…

    はてなブログ | 無料ブログを作成しよう
  • mooz on Twitter: "シェルスクリプトであるコマンドが存在した場合にのみ何かをやりたい場合は test command &&gt; /dev/null && echo "command exist" のようにすれば良いか."

    tyru
    tyru 2010/12/21
    @stillpedant zshだとtestコマンドが組み込み(初めて知った!)なせいで存在しなかった場合も実行されちゃいました。zshでは書かないと思いますがいちおう...
  • サーバ間の設定ファイル差異を比較するスクリプト - sanonosa システム管理コラム集

    サーバ台数が増えてくると、例えば同じ種類のサーバをスケールアウトしているとき、1台だけ設定ミスがあったとしてもなかなか気付きづらくなります。サービスの安定稼動のためにはこういった些細なミスは完全に潰しておく必要があります。そこで今回はサーバ間の設定ファイル差異を比較するスクリプトを作りましたのでご紹介してみます。 【前準備】 まずはこちらでも記したような方法で、パスワードなしで各サーバにSSH接続できるようにしておいてください。 【サーバ間の設定ファイル差異を比較するスクリプト】 下記スクリプトをどこかに保存してください。ファイル名は便宜上「filediff.sh」とでもしておきます。そして、今回比較するファイル名を羅列し、かつサーバ番号(下記の例だと10.0.0.1の設定ファイルを10.0.0.2~10の設定ファイルと比較しています)を書き換えてください。 $ cat > filedif

    サーバ間の設定ファイル差異を比較するスクリプト - sanonosa システム管理コラム集
  • Linux/Unixコマンドラインでちょっとした事をするには - 檜山正幸のキマイラ飼育記 (はてなBlog)

    まずは事の発端を説明します。 /etc/passwdファイルは、ユーザー情報が1行に1ユーザー分ずつ書かれたテキストファイルです。1行はコロンで区切られた7つのフィールドからなります。僕は、最初のフィールドであるユーザー名と、最後(7番目)のフィールドであるログインシェルだけを確認したかったのです。cat /etc/passwd として、直接目で見るだけ*1でもユーザー名とログインシェルを読み取れるのですが、ちょっと辛い。なるべく見やすく表示したいのです。 この課題を狂言回しにして、Linux/Unixコマンドラインでちょっとした事をやるための地味なコマンド達とシェル構文を紹介します。「スクリプト言語(例えばperl)を使えばいいじゃねえか」というご意見・ご指摘はゴモットモだと思いますが、今回は聞く耳持ちません。(スクリプト言語処理系ではない)コマンドとシェルの範囲内でのもっと良い方法は是

    Linux/Unixコマンドラインでちょっとした事をするには - 檜山正幸のキマイラ飼育記 (はてなBlog)
    tyru
    tyru 2010/10/14
    Perlを覚えてもやっぱシェルスクリプトだったらawk,sedで済ませたいしなぁ...
  • シェルスクリプトで乱数を扱う - hyconの日記

    シェル組込変数 RANDOM bashやzshなど一部のシェルでは特殊な変数 RANDOM があり、参照する毎に範囲の小さい整数を得ることが出来ます。 $ echo $RANDOM 30940 $ echo $((RANDOM % 100)) 22 jot(1) jot(1)は連番や乱数を出力するプログラムです。出力回数や範囲を指定出来るのでなかなか使い出はあります。deb系では athena-jot パッケージをインストールします。 $ jot -r 1 10 99 72 $ jot -r 10 1000 9999 8881 2834 3537 5889 7430 9962 4905 9548 3575 9762 awk awkの関数 rand() で0–1の範囲の実数の乱数を扱えます。srand() で乱数の初期化することを忘れずに。 $ awk 'BEGIN{srand();prin

    シェルスクリプトで乱数を扱う - hyconの日記
  • Stray Penguin - Linux Memo (BASH)

    exp で 1文字を対象にしたいのであれば ?([a-f]) のようにクラスを併用することも可能。必ずしも `|' を使わなければならないわけではない。また、正規表現は ?(bash@(ref)) のように入れ子にすることもできる。 Bashで正規表現(2) ([[ =~ ]]オペレータ) 二重の `[[' を使い比較演算子に `=~' を使うと、右辺は拡張正規表現とみなされる。前項とは異なりこちらは物の正規表現だ。面白いのは、マッチ部分が BASH_REMATCH という配列にアサインされるという点。 VAR=$(LANG=C date +'%c') # VAR='Wed Dec 22 22:51:41 2010' DAYOFWEEK=Wed PATTERN='^'$DAYOFWEEK' ([[:alpha:]]{3}) [[:digit:]]{2} ([0-9:]+)' [[ $VA

  • コマンドの出力をtop風に表示させるtopless

    はじめに この記事ではUNIXサーバ管理という側面からのシェルスクリプトプログラミングを取り上げます。またシェルスクリプトを自作するときのポイントも解説します。 UNIXサーバを管理するときは、道具としてのシェルスクリプトが重宝します。常時ログを監視するにしても、入力するコマンドをまとめるにしても、UNIXに用意されているコマンドを有効活用するにはシェルスクリプトが効果的です。 シェルスクリプトは、コマンドを入力する作業の延長線でプログラミングができるという容易な側面を持っていますが、正しく理解しようとすると多くのルールやコマンドを覚えなければならないというやっかいな側面も持っています。 シェルスクリプトを習得する方法はいくつかあります。じっくり時間がとれるならどの学習方法でもよいのですが、入社後にUNIXサーバを管理することになり、緊急に使えるようにならなければならないという逼迫した状況

    コマンドの出力をtop風に表示させるtopless
  • sh (/bin/sh) による配列操作

    sh (/bin/sh) による配列操作 例えば、表を引いて値を変換しなければならないといったケースでは、sh スク リプトで1次元配列が欲しくなるときがあります。 korn sh や最近の bash では1次元配列をサポートしていますし、複雑な操作な ら、awk や perl といった外部のプログラミング言語を起動するのが簡単ですが、 /bin/sh や POSIX 1003.1 の sh の枠組でも、位置パラメータを使うと、比較的 素直な扱いができます。 インデックス値に対応する値を求める 例えば、12 の要素 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec を持つ1次元配列を考え、そのインデックスを 1, 2, 3, .. 12 とします。この 配列の i 番目の要素を変数 v の値として取り出す操作として最も簡単なのは、 次の方法では

  • シェルスクリプトって関数型っぽくない? « Coding Suicidal

    Time to Read 5分 ※ 以下の記事のシェル処理系はすべてbashです。 たとえば、自分で作った「DoHoge.rb」というバッチについて、「-d {日付}」という起動方法ができるんだけれど、60日前から今日までの日付を順に指定して起動したいなあ~ と思ったとき、僕はこうした。 seqコマンドで60~0の数字のセットを作る。 1 2 3 4 5 6 7 8 $ seq 60 -1 0 60 59 58 57 56 #... 0 その出力をxargs経由でdateに噛ませて、日付のセットにする 1 2 3 4 5 6 7 8 $ seq 60 -1 0 | xargs -i date -d -{}days +'%F' 2010-08-06 2010-08-07 2010-08-08 2010-08-09 2010-08-10 #... 2010-10-05 その出力をもう一回xar

  • 本を読む Bash on Railsを作る(4) bashのlocal変数

    pure bashでBash on Railsを作るネタ企画です。今回はちょっとした小ネタ。 bashでlocal宣言した変数って、Perlでlocal宣言した変数と同じく、動的スコープなんですね。 % cat local1.sh #!/bin/bash function print_a() { echo "$a" } function local_a() { local a='Good bye' print_a } a='Hello' print_a local_a print_a % bash local1.sh Hello Good bye Hello % bash自身が使う特殊な変数も、このとおり動的スコープ。 % cat local2.sh #!/bin/bash function print_1st() { set $1 echo $1 } function local_1st

  • UNIXの部屋 コマンド検索:シェバング (*BSD/Linux)

    などと記述するが、この「#!」のことを「シェバング」(shebang) と呼ぶ。また、この行全体を「シェバング行」と呼ぶこともある。また、「シェバング」ではなく、英語発音により近いい「シバン」と表記する場合もある。なお、シェバングの語源は「sharp bang」「shell bang」など、いくつかあるようだ。

  • 【レビュー】シェルやシェルスクリプトで乱数を使う2つの方法 | エンタープライズ | マイコミジャーナル

    The main aim is to document the hurdles that most of us face as UNIX/Linux/BSD sys admin in our day today life. シェルまたはシェルスクリプトで乱数を使いたいと思うことが時々ある。コマンドをまとめていくという軽い利用を越えて、プログラミング的な要素が強くなってくる場合にはそうした要求がでてくる。しかしシェルスクリプトは一般的なプログラミング言語ではないため、乱数を生成するような関数は提供されていない。 シェルやシェルスクリプトで乱数を使う方法はいくつかあるが、Bash Shell Generate Random Numbers - nixCraftにおいて紹介されている2つの方法が、ひとつは簡単な方法、もうひとつはシェルに左右されにくい互換性の高い方法として興味深い。紹介されている

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • bash の set -e - うまいぼうぶろぐ

    http://www.gaku.net/ukki/sh%E3%83%A1%E3%83%A2.html#h1 postgresqlのinitスクリプトで見て、なんだこりゃと思った。 スクリプト内で実行したコマンドが0以外を返すと、そこでスクリプトを終了する。エラーが起きた場合はそのまま終了して欲しいときは便利か。

    bash の set -e - うまいぼうぶろぐ
  • 本を読む xdg-openの中身

    LinuxなどのX環境では、コマンドラインで「xdg-open url」のように実行することにより、WebブラウザでURLを開ける。Freedesktop.orgのPortlandプロジェクトで開発されているもので、わりと汎用的らしい。以下、xdg-openの中身のメモ。 xdg-openはシェルスクリプト。判断ロジックは以下のとおり。 環境変数KDE_FULL_SESSIONがtrueならKDEと判断し、kfmclientを呼ぶ 環境変数GNOME_DESKTOP_SESSION_IDが設定されていればGNOMEと判断し、gnome-openを呼ぶ 「xprop -root _DT_SAVE_MODE」の値が"xfce4"であればXfce4と判断し、exo-openを呼ぶ そうでなければ、次項以降へ。OSによって実装が違うようだ Red Hat系Linuxで条件に合わない場合 Red H

    tyru
    tyru 2010/06/18
    おもしろい
  • 1