タグ

シェルに関するrichard_rawのブックマーク (45)

  • シェルスクリプトで作る Twitter bot 作成入門

    筆者が開発している幾らかのコマンドラインプログラムとシェルスクリプトを使って簡単に Twitter bot を作る方法をご紹介します。

    シェルスクリプトで作る Twitter bot 作成入門
    richard_raw
    richard_raw 2020/09/30
    こういうの好きかも。
  • インストール不要!WindowsでLinuxコマンドを使う - Qiita

    (2018/11/17更新) 記事公開から3年経過し、WindowsにおけるLinuxコマンドの扱いについて取り巻く環境が変化してきたため内容をアップデートしました。合わせてWindows上でシェルスクリプトを実行するためのTipsも追加。 前置き Linuxなどの環境を使いはじめて慣れてくると、シェルや各種Unix系コマンドの使いやすさが手放せなくなってきます。そんなときにWindowsでデータの編集や解析などを行おうとすると、大変不便に感じてしまいます。 Windowsにも元々コマンドプロンプトや、PowerShellといった環境はあります。しかしこれらを駆使してLinuxと同等のことがしたい、と思ったものの挫折した経験を持たれている方は少なくないのではないでしょうか。(私の場合は、コマンドプロンプトやバッチファイルの貧弱さではどうしようもなく。PowerShellは学習コストが高そう

    インストール不要!WindowsでLinuxコマンドを使う - Qiita
    richard_raw
    richard_raw 2019/03/28
    busybox.exe を使えばバッチファイルの中でシェルスクリプトが書ける!まだwindows 7環境なので助かります。
  • 記号と英字2文字だけでbash - Ryoto's Blog

    難読化シェル芸学会のみなさんこんにちは。 今回は数字を使わず、記号と英字2文字だけで任意のコマンドを実行する方法を紹介します。 (追記)完全記号化が実現されました なお、発表のコマンドはDockerのdebian:stretch-20190204(9.7)上のbash 4.4.12で検証しています。 また、OS X Sierra(10.12.60)上のbash 5.0.2でも検証しています。 Bash 4.x未満は対象外です。 研究の目的 BashはBourne系を代表するシェルであり、多くの環境で標準的に採用されています。 そして、難読化シェル芸は入力された見た目と一見反するようなコマンドによってシェルを操作する芸当です。 $(printf "%b" $(printf '%s%x' '\x' $((0x83 ^ 0xe7))))$(ls --help|grep ^G|cut -c53

    richard_raw
    richard_raw 2019/02/25
    エラーメッセージを利用するとは……。/次の記事でtrすら使わなくなってるし。
  • 雰囲気でシェルを使っている人のためのシェル入門 | κeenのHappy Hacκing Blog

    κeenです。雰囲気でシェルを使ってる人が多いとのことだったので少しばかり込み入った知識を。 あと一応POSIX準拠かどうかも気にしながらやっていきます。 基礎知識編 シェルの種類 まず、POSIXにシェルが定義されています。 これに最低限の機能で準拠しているものをPOSIXシェルと呼ぶことにします。いわゆる/bin/shです。具体的な実装はbsh、ash、dashあたりでしょうか。 最低限の機能以上に色々拡張されているシェルを拡張POSIXシェルと呼ぶことにします。具体的な実装はbash、zsh、kshなどでしょうか。 ここでは触れませんがPOSIX準拠でないシェルも存在してcshやtcshなどのシェルがあります。あと確か最近話題のfishも違ったような。 さて、1つ問題になるのは普段使いのコマンドラインはおおむね拡張POSIXシェルでしょうが、サーバで使うシェルやデプロイスクリプトで呼

    雰囲気でシェルを使っている人のためのシェル入門 | κeenのHappy Hacκing Blog
    richard_raw
    richard_raw 2017/10/30
    私のことかー!スクリプトはふんいきで書いてShellCheckしてます。/今はバッククォート記法の方が非推奨だったような。
  • Big Sky :: golang でメモ専用コマンド「memo」作った。

    « Ruby の a = a + 1 はなぜ undefined method '+' for nil:NilClass なのか | Main | Ruby の Array#<< は Array#push よりも速いか » 僕は日々 memolist.vim という Vim plugin を使い、仕事で思いついた疑問点や会話の一部をメモ取りする様にしています。相手と会話している最中に「あ、ここ大事だ」と思ったら vim を起動して :MemoNew してメモを編集していました。もちろん Vim ですから起動は抜群に速くてとてもご機嫌良く動くのですが、どうしてもこれをシェルから扱いたいという要求に負けてささっと作ってみました。 GitHub - mattn/memo: Memo Life For You README.md memo Memo Life For You Usage NAME:

    Big Sky :: golang でメモ専用コマンド「memo」作った。
    richard_raw
    richard_raw 2017/03/17
    便利そう。
  • シェル芸に使える、確実で高速なデータ処理が得意なAWKのテクニック集刊行

    ビッグデータの利用や人工知能の発展にともなって大量のデータを高速で処理しなければならなくなり、UNIXで開発された言語・AWKが見直されています。しかし、最も古い言語の一つであるがゆえに最新のノウハウを紹介した書籍がまだ少ないのが現状。そこで翔泳社では、『「シェル芸」に効く!AWK処方箋』を刊行します。 『「シェル芸」に効く!AWK処方箋』は、日 GNU AWKユーザー会の斉藤博文さんによる『シェルスクリプトマガジン』(USP研究所発行、CodeZineにも転載)の連載と、斉藤さんへのインタビュー記事をまとめた単行です。 AWKは1970年代にUNIXで開発された言語で、今なお高速でデータ処理を行うために使われています。書ではAWKが得意とする文字列処理だけでなく、時刻を取得する関数や数値演算を行う方法、連想配列(通常の配列と同じように扱える)、真髄の一つであるフィールド(列)を操る

    シェル芸に使える、確実で高速なデータ処理が得意なAWKのテクニック集刊行
    richard_raw
    richard_raw 2017/02/01
    GNU AWK拡張機能が気になります。/私が唯一所持してる256倍シリーズ本がAWKだったなあ。
  • シェルスクリプト(Bash)で作るTwitterクライアント - Qiita

    Shell Script Advent Calendarをご覧の皆様、初めまして。Piroといいます。普段はJavaScriptRubyでのソフトウェア開発やFirefoxの法人向け技術サポートなどをしつつ、日経Linux誌でシス管系女子という連載マンガを描かせて頂いております。 Linux Advent Calendarの方にGUIアプリのスクショを定期的にSlackに流すシェルスクリプトの話でエントリーしたのですが、Shell Script Advent Calendar的にはそれをこっちを投稿した方が良かったかもと今更思いつつ、今日は別の話題です。 シェルスクリプト製Twitterクライアントには恐怖!小鳥男やtweet.sh(同名の別実装)などいくつか実装例がありますが、自分も2015年末頃からtweet.shという汎用のTwitterクライアントを開発しています。この記事ではt

    シェルスクリプト(Bash)で作るTwitterクライアント - Qiita
    richard_raw
    richard_raw 2016/12/07
    写経してみたい。
  • 主要Linuxディストリビューションに深刻な脆弱性--Enterキーを押し続けるだけで悪用可能

    主要なLinuxディストリビューションの「Linux Unified Key Setup-on-disk-format」(LUKS)に、セキュリティホールが存在することが明らかになった。LUKSはLinuxで使われているハードディスク暗号化のための標準的な仕組みだ。LUKSは多くの場合、「cryptsetup」というユーティリティを使用してセットアップされている。この脆弱性はcryptsetupに存在するもので、かなり深刻度が高く、影響を受けるLinuxディストリビューションには、「Debian」、「Ubuntu」、「Fedora」、「Red Hat Enterpise Linux」(RHEL)、「SUSE Linux Enterprise Server」(SLES)が含まれる。 セキュリティレポートCVE-2016-4484には、このセキュリティホールを利用すると、攻撃者は「対象システム

    主要Linuxディストリビューションに深刻な脆弱性--Enterキーを押し続けるだけで悪用可能
    richard_raw
    richard_raw 2016/11/17
    これは怖い。/クラウド環境で再起動時にEnterを押し続けることができる?
  • Blog: bashの脆弱性がヤバすぎる件 – x86-64.jp - くりす研

    Browse by time: December 2018 (1) December 2016 (1) December 2015 (1) January 2015 (1) September 2014 (2) July 2014 (2) April 2014 (1) February 2014 (1) January 2014 (3) December 2013 (2) September 2013 (3) June 2013 (1) May 2013 (1) April 2013 (1) March 2013 (2) February 2013 (5) やっと更新する気になった。 もくじ 0. 産業で説明 1. 理論編 2. 攻撃編 3. パッチ 4. 結論 0. 産業で説明 bashが アホで 地球がヤバイ 1. 理論編 bashの関数機能は、環境変数の中でも使える仕様になっています

    richard_raw
    richard_raw 2014/09/25
    分かりやすい説明。これはコワイ!
  • シェルスクリプト入門 書き方のまとめ | Memo on the Web

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

    richard_raw
    richard_raw 2014/08/26
    変数内の置換が便利そうですね。っていうか素の/bin/shでこんなこと出来ましたっけ?
  • cron上でのコマンド実行を再現する - Qiita

    シェル上だと動くのにcron上だと動かない。 よく聞くお話ですよね。 大体はcron上と普段のシェル上で環境変数が違うために起こる問題です。 そういう時に使えるtipsを共有します。 個人のマシン上で適当に動かすようなcronだと みたいにしてログインシェルを間に噛まして環境変数を上書きして実行することでごまかしたりもできます。 これまた別の依存する箇所を増やすので 個人のマシンかrcファイルがちゃんと管理されているような状況以外ではオススメできません。 なのでcron上で実行される状況とほぼ同じ状況でスクリプトを実行してみましょう。 cron上では環境変数はほぼ空なので環境変数を空にしてみましょう。

    cron上でのコマンド実行を再現する - Qiita
    richard_raw
    richard_raw 2014/05/23
    たまに困りますね。envコマンド使いこなしてないな……。
  • zshの個人的に便利だと思った機能(suffix alias、略語展開) - Qiita

    のような形式で実行できる。 こちらで紹介されている.cファイルを実行すると自動でビルド->実行までしてくれるような設定が可能で、もはやなんでもできそうな感じがする。スゴイ 現在は下のように設定している。練習がてらjavaを追加。 alias -s txt='cat' alias -s html='google-chrome' alias -s rb='ruby' alias -s py='python' alias -s hs='runhaskell' alias -s php='php -f' alias -s {gz,tar,zip,rar,7z}='unarchive' # preztoのarchiveモジュールのコマンド(https://github.com/sorin-ionescu/prezto/tree/master/modules) alias -s {gif,jpg,j

    zshの個人的に便利だと思った機能(suffix alias、略語展開) - Qiita
    richard_raw
    richard_raw 2014/05/19
    suffix aliasいいかも。
  • 個人的な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的なアレ
    richard_raw
    richard_raw 2014/04/22
    最近は何でもCTRL+rでなんとかしてます。/ワードジャンプしたいけどmetaキーが色んな意味で押しづらい……。
  • 「Webアプリエンジニア養成読本」とKodingでPHPを勉強する - uzullaがブログ

    昨日エントリ( http://uzulla.hateblo.jp/entry/2014/03/08/050621 )を書いたKodingですが、詳しくは昨日のエントリを見ていただくとして、今度発売される「Webアプリエンジニア養成読」をKodingで勉強するにはどうすればよいか書いてみます。 Webアプリエンジニア養成読[しくみ、開発、環境構築・運用…全体像を最新知識で最初から! ] (Software Design plus) 作者:和田 裕介,石田 絢一 (uzulla),すがわら まさのり,斎藤 祐一郎技術評論社Amazon 結果として、Kodingをつかえば、ChromeやFirefoxがPCにはいっていれば、PCに何もインストールすることなくブラウザ一つで学習ができました。 このエントリに記載されていること ・Kodingのアカウント取得 ・画面の簡単な説明 ・PHPをちょっ

    「Webアプリエンジニア養成読本」とKodingでPHPを勉強する - uzullaがブログ
    richard_raw
    richard_raw 2014/03/10
    Kodingは面白そうなサービスですな。
  • 1.4. Matplotlib: 作図 — Scipy lecture notes

    ちなみに Matplotlib はおそらく2次元グラフィック用の Python パッケージの決定版です。高速なデータの可視化手法や出版品質の図を多くのフォーマットで提供します。これから対話モードで matplotlib の機能を調べていきましょう。 ほとんどの状況は対話モードですませることができます。

    richard_raw
    richard_raw 2013/05/29
    IPythonを使い始めたのでブックマーク。
  • bashによるシェルスクリプトの小技(2) - shibainu55日記

    前回(bashによるシェルスクリプトの小技(1))に引き続き、シェルによって自動的に値が設定される特殊な変数について紹介する。特殊な変数を参照することにより、様々な情報を取得することができる(ただし、これらの変数には自分で任意の値を設定することはできない)。 さて、まずは特殊変数を一覧でまとめてみる。お馴染みのものが多いが、最後の2つ(特に最後のPIPESTATUS)についてはきっと今まで知らなかった人もいるんじゃないだろうか。シェルの中でパイプすると途中のコマンドのリターンコード、拾えないとか思っていませんか?今回のポイントとしては、「1. PIPESTATUS変数について」と「2. 特殊変数 $@と$*の違いについて」の2点を主に説明する。 特殊変数一覧表 変数名 自動的に設定される値 $? 直前に実行されたコマンドの終了ステータスが設定される変数。正常終了の場合は「0」、異常終了の場

    bashによるシェルスクリプトの小技(2) - shibainu55日記
    richard_raw
    richard_raw 2013/03/28
    "$-", "$LINENO", "{PIPESTATUS[@]" をおぼえた。
  • ダウンロード履歴を表示させるMacのターミナルコマンド | ライフハッカー・ジャパン

    ダウンロードしたファイルがどこかへ行って見当たらない場合、あるいは訳あってダウンロードのログを見たい場合などに使えそうなターミナルコマンドを、Mac情報ブログ「iDownloadBlog」が紹介していました。 このターミナルコマンドはMacに記録されたダウンロード履歴を見るためのものです。コマンドを走らせると、記事冒頭の写真のように、ファイルのURLが一覧で表示されます。削除してしまった古いファイルが再度必要になった際などに役立つと思います。「ターミナル」(「アプリケーション」>「ユーティリティ」)で以下のコマンドを入力してください。なお、このコマンドで表示できるのはすべてのダウンロード履歴なので、マシンによってはとても膨大なリストになる可能性もあります。 sqlite3 ~/Library/Preferences/com.apple.LaunchServices.QuarantineEv

    ダウンロード履歴を表示させるMacのターミナルコマンド | ライフハッカー・ジャパン
    richard_raw
    richard_raw 2013/01/20
    sqlite3コマンドで。
  • http://www.machu.jp/posts/20130112/p01/

    http://www.machu.jp/posts/20130112/p01/
    richard_raw
    richard_raw 2013/01/15
    興味深い。いつか分割を自由自在に使いこなしたいです。
  • 仕事中、一瞬の隙も見逃さずに情報収集できるRubyワンライナーとスクリプト - maeharinの日記

    情報収集はビジネスマンとしての基である。しかし普段シェルで作業する者としては、毎回ブラウザを立ち上げる時間すら不毛である。よって、シェルから一瞬で情報収集できるRubyのワンライナーを書いた。 上からYahoo, はてな, Naverまとめ, 2ちゃん $ ruby -r open-uri -e 'open("http://www.yahoo.co.jp").read.scan(/topics.+?>([^<]+?)</) {|m| puts m}' $ ruby -r open-uri -e 'open("http://b.hatena.ne.jp/hotentry").read.scan(/entry-link.+>(.+?)</) {|m| puts m}' $ ruby -r open-uri -e 'open("http://matome.naver.jp/").read.sc

    仕事中、一瞬の隙も見逃さずに情報収集できるRubyワンライナーとスクリプト - maeharinの日記
    richard_raw
    richard_raw 2013/01/11
    ワンライナー好きなのでちょっと実行してみます。/そういえばCUIのWebブラウザとかありましたな……。
  • いい加減、>/dev/null 2>&1と書くのをやめたらどうか (追記あり) · DQNEO日記

    はじめに これから書く内容は、シェルスクリプトをばりばり書いている現場(サーバエンジニアインフラエンジニア)向けのものではありません。 年に数回crontabをいじるような現場(サーバに詳しくないアプリケーションプログラマが多数を占めるような現場とか、Webデザイナや非プログラマがcrontabをおそるおそるいじったりするような現場)を想定しています。 >/dev/null 2>&1 の問題点 この記法の問題点は、「覚えにくい、間違えやすい、間違ってても気づかない」ということです。 初心者を迷わせる要素がこんなにあります。 >/dev/nullは先か後か 1と2はどちらが先か &はどこに書くのか よって下記のように多種多様なミスが起こり得ます。 2>&1 >/dev/null >/dev/null 1>&2 >/dev/null 2>1& >/dev/null &2>1 これをぱっと見て

    いい加減、>/dev/null 2>&1と書くのをやめたらどうか (追記あり) · DQNEO日記
    richard_raw
    richard_raw 2012/06/15
    たまにしか書かないから忘れますねー。bash/zshは違う書き方が!