タグ

shellに関するmyzkkzyのブックマーク (11)

  • シェルスクリプトとの対比で理解するPythonのsubprocess - 朝日ネット 技術者ブログ

    はじめに 開発部の ikasat です。 皆さんは git, ssh, rsync のような外部コマンドを呼び出すスクリプトを書きたくなったことはありますか? 個人的にこの類のスクリプトは最初はシェルスクリプトとして書くのですが、改修を重ねるうちに肥大化して処理も複雑になり、 後から Python のような汎用プログラミング言語で書き直すことがよくあります。 外部コマンド呼び出しを書き直す際に、Git 操作のために pygit2、 SSH 接続のために paramiko のようなライブラリをわざわざ使うのは大がかりだったり、 rsync に相当するようなこなれたライブラリが存在しなかったりする場合があります。 そのような時は標準ライブラリの subprocess モジュールを利用し、Python から外部コマンドを呼び出すことになるでしょう。 しかしながら、Python のチュートリアルペ

    シェルスクリプトとの対比で理解するPythonのsubprocess - 朝日ネット 技術者ブログ
  • Secure Secure Shell

    You may have heard that the NSA can decrypt SSH at least some of the time. If you have not, then read the latest batch of Snowden documents now. All of it. This post will still be here when you finish. My goal with this post here is to make NSA analysts sad. TL;DR: Scan this post for fixed width fonts, these will be the config file snippets and commands you have to use. Warning: You will need a re

  • プログラマーの君! 勘違いするな! シェルスクリプトでは読みやすさのためにスペースを置くな!! という話 - Qiita

    プログラマーの君! 勘違いするな! シェルスクリプトでは読みやすさのためにスペースを置くな!! という話ShellScriptBash 普通のプログラミング言語での開発に慣れた人ほどシェルスクリプト、特にBashで戸惑う部分の一つに、i = 0のように空白を開ければエラーになるし、かといってif[$i!=0]のように詰めてもやっぱりエラーになる、という点が挙げられます。書きたい物を思うように書けなくて「なんだよこのクソ言語は!!!」とブチギレる人は少なくないのではないでしょうか。この記事では、そのイライラを解消するポイントをお伝えしようと思います。 以下、特に断り無く「シェルスクリプト」と書いている場合はすべて「Bashのスクリプト」という意味になります。zsh等他のシェルではまた事情が異なりますので、ご注意ください。 (※以前プログラマーの君! 騙されるな! シェルスクリプトはそう書いち

    プログラマーの君! 勘違いするな! シェルスクリプトでは読みやすさのためにスペースを置くな!! という話 - Qiita
  • どのUNIXコマンドでも使える正規表現 - Qiita

    特定コマンドの正規表現で使えるメタ文字が何だかわからない! 正規表現自体は知っているけど、それが今から使おうとしているコマンドで使えるものなのかわからずに困っている人も多いと思うのでまとめてみた。 たった3つの正規表現メタ文字セットだけ知ればいい コマンドによって、対応している正規表現メタ文字の範囲には違いがある。しかし、最低限知っておけばよいのは2種類+1サブセットの3つだけだ。 BRE(基正規表現)メタ文字セット ERE(拡張正規表現)メタ文字セット AWKのサブセット もちろん、これ以外にもGNU拡張正規表現メタ文字セットやPerl拡張正規表現メタ文字セット、JavaScript拡張正規表現メタ文字セットなどいくつかあるのだが、「どのUNIXでも(=POSIXで)使える」という特長を持たせたいのであれば、それらは覚えても意味がないので上記の3つさえおさえておけばよい。(例えPOSI

    どのUNIXコマンドでも使える正規表現 - Qiita
  • シェルの入出力制御あれこれ

    シェルスクリプトはあまり触らないから忘れちゃうのでメモっとく。 主にパイプとかリダイレクトとかプロセス置換とか。 パイプ コマンドの出力を別のコマンドの入力にする

    シェルの入出力制御あれこれ
  • シェルスクリプト(sh, bash) Tips集

    sh, bash, csh, tcsh でのテクニックや小ネタなど。 すぐ忘れてしまうのでサンプルコードを集めたメモを作りました。基的に環境はLinuxという前提で書いていますが、SolarisやFreeBSDの話も時々混じります。 あるディレクトリから、n日前からm日前までに作られたファイルを全て列挙したい findコマンドのmtimeオプションを使えば良い。ファイル名が返るので、それをxargs(1)で受け取ってお好きなコマンドで処理する。mtimeには+-で日数を指定し、プラスは「より前(より古い)」、マイナスは「より後(より新しい)」を意味する。ゼロが前後24時間を意味するので、前日のファイルは -1 ではなく -0 であることに注意。 またオプションとして -type f と指定することにより、ディレクトリやシンボリックリンクを除外して通常ファイルのみを選択することができる。

  • エイプリルフールかと疑ってしまう。BashがまるでRubyのようになる·Skull MOONGIFT

    SkullはBashの中でRuby風にオブジェクトを扱えるようにしてしまうソフトウェアです。 BashはサーバやMac OSXなどで誰しもが使っているかと思います。しかし記述がレガシーな感じで書きづらいと思ったことも多いはず。そこで使ってみたいのがBashをOOにしてくれるSkullです。 Skullを読み込みます。 strという文字型オブジェクトを定義します。そうするとlengthなんてメソッドが使えるようになります。 upcaseで大文字になったり。 methodsなんてメソッドまであります。 OSのバージョンも取れます。 System.osでmacと返ってきます。 SkullはRubyのようなオブジェクトをBashに提供してくれます。Bashがいきなりモダンな感じになって、面白いソフトウェアです。 SkullはBash製、GPL v3のオープンソース・ソフトウェアです。 MOONGI

    エイプリルフールかと疑ってしまう。BashがまるでRubyのようになる·Skull MOONGIFT
  • 【 複数のファイルの拡張子を一括変更する 】

    上の例では,複数のファイルの拡張子を一括変換するために,「for」コマンドを用いている。forはループ制御構造を作るシェル・コマンドである。ここでは拡張子が「txt」のファイルを「doc」のファイルに書き換えている。それぞれの文字列を変更することで,他の拡張子に適用できる。

    【 複数のファイルの拡張子を一括変更する 】
  • シェルスクリプトで「ビルドスクリプト」を作る時に便利なテクニック - ククログ(2012-10-11)

    プログラムの種類によっては、そのまま実行できるものと、実行できるようにするために「ビルド」が必要なものとがあります。Cなどのコンパイルが必要な言語で書かれたプログラムは当然ビルドが必要ですし、コンパイルが不要な言語であっても、インストーラパッケージを作るというビルド作業が必要な場合はあります。 ビルド作業の自動化のためのツールとしてmakeなどがありますが、そこまで格的な事をやる必要がない場合は、シェルスクリプトで「ビルドスクリプト」を作るのが手軽でおすすめです。この記事では、そのような場合に役立つシェルスクリプトのテクニックを4つご紹介します。 エラーの気付きやすさとデバッグのしやすさを高める メッセージに色を付ける シェル関数をライブラリにする 一時的に作業ディレクトリの中に入る エラーの気付きやすさとデバッグのしやすさを高める はじめに紹介するテクニックは問題が発生した時に気づきや

    シェルスクリプトで「ビルドスクリプト」を作る時に便利なテクニック - ククログ(2012-10-11)
  • シェルスクリプト入門 [サンプルスクリプト集]

    サンプルスクリプト集 共通関数を外部ファイルに作成する 各シェルスクリプトで共通に使用したい関数を外部ファイルに作成しておくと便利です。外部ファイルの読込は、各シェル内で「 . ファイル名 」と記述すれば外部ファイルに記述した関数を使用できます。外部ファイルに「変数」を定義しても同様に使用できます。以下は関数のサンプルです。 sample.fnc # --共通関数定義-- # ログ出力関数 LOG() { # ログ出力先 LOG_DIR=./ # 引数展開 FILENM=`basename $0` MSG=$1 # 変数定義 LOG_DATE=`date '+%Y-%m-%d'` LOG_TIME=`date '+%H:%M:%S'` LOGFILE="${LOG_DIR}${LOG_DATE}_`basename $0 .sh`.

  • kd - FC2 BLOG パスワード認証

    ブログ パスワード認証 閲覧するには管理人が設定した パスワードの入力が必要です。 管理人からのメッセージ 閲覧パスワード Copyright © since 1999 FC2 inc. All Rights Reserved.

  • 1