タグ

bashに関するastk_fのブックマーク (26)

  • jqコマンドとシェルスクリプトの上手い速い使い方

    はじめに シェルスクリプトから jq コマンドを使う記事はいくつも見かけますが、あまりにも面倒でよくない書き方ばかりが見つかるのでベストプラクティスをまとめました。 この記事は「詳細解説 jqコマンドとシェルスクリプトの簡単で正しい使い方 〜 データの流れを制するUNIX哲学流シェルプログラミング」の要約版です。詳しい解説やもう少し高度な使い方を知りたい方、シェルスクリプトの考え方についてはリンク先を参照してください。リンク先は長すぎたので、こちらはとりあえず使いたい人用に簡潔にまとめました。(あと、いつも qiita を使っているので zenn を使ってみたかった) 👎 ダメな書き方 よく見かける書き方ですが、コードの見通しが悪く、メンテナンス性が低く、パフォーマンスが(かなり)悪く、特定の場合に不具合が発生する書き方です。 for item in $(jq -c '.items[]'

    jqコマンドとシェルスクリプトの上手い速い使い方
  • Bash: .bashrcと.bash_profileの違いを今度こそ理解する|TechRacho by BPS株式会社

    こんにちは、hachi8833です。社内Slackで見かけたmorimorihogeさんの以下の書き込みで目から鱗が落ちました。 ~/.bashrcで何かを出力してしまうと、rsyncなどのsshパイプで問題が生じることがあるそうです。 参考: 知らないとrsyncでもハマるシェル初期化 - Qiita これをきっかけに、できるかぎり一次情報を元になるべく一般的になるようにまとめてみました。 シェルスクリプト(.bashrcや.bash_profileなども含む)はあまりに自由に書けてしまい、LinuxディストリビューションやmacOSによって作法がまちまちだったりするので、外してはいけないポイントがどこかを知りたかったのでした。 対象はbashとsh(Bourne Shell)に限定します。また、デスクトップGUIの設定ファイルについては最小限にとどめます。 bashのmanページ 元記

    Bash: .bashrcと.bash_profileの違いを今度こそ理解する|TechRacho by BPS株式会社
  • bashで忘れがちな機能とかいろいろの備忘録 - Qiita

    背景 シェルスクリプトを書くことが結構あるのでその備忘録代わりに記事を書いてみました。 特殊変数とは 特殊変数とは シェルによって自動的に値が設定される特殊な変数がいくつかあり、それら特殊な変数を参照することにより、様々な情報を取得することができる。 変数名 説明

    bashで忘れがちな機能とかいろいろの備忘録 - Qiita
  • シェルスクリプトを高級言語のような書き味に近づける Tips 集 | 創作メモ帳

    Bash は言わずと知れた歴史あるコマンド言語です。テキストにコマンドの羅列を記述するだけで、手軽にシェルスクリプトとして実行することができます。 シェルスクリプトの実体はシェルコマンドの羅列に過ぎませんが、手続き型プログラミング言語にあるような制御構文も備えています。変数や条件分岐、ループ、関数などです。これらを使えばシェルスクリプトでプログラミングも可能です。 もちろん、現代の一般的なプログラミング言語と比べると機能は限られます。他の言語には見られないシェルスクリプト特有の癖や記法も数多くあり、最近の言語に慣れている人ほど、つまずくポイントが多いです。 しかし、シェルスクリプトだからこその良さもあります。Bash は現在でも多くの OS で標準シェルとして採用されており、普段使っているシェルコマンドを書くだけで動かせる手軽さは何者にも代えがたいです。一度身につけておくと長く使えるお得な

    シェルスクリプトを高級言語のような書き味に近づける Tips 集 | 創作メモ帳
  • bashスクリプティング研修の資料を公開します - エムスリーテックブログ

    こんにちは、エンジニアリングGの中村です。 以前にこのブログにてエムスリーでの社内研修について紹介しました。今回は、この中でのbashスクリプティング講座の資料を公開します。 www.m3tech.blog 弊社の中でもいろいろな用途でbashが使われていますが、bashは簡単に利用できるもののプログラミング言語としてはバグを生みやすい、辛い言語だと思います。 ここで紹介しているのはいわゆるコーディング規則というよりも、バグ防止と可読性向上のためのルールをTips集的にまとめたものです。 bashにおいてまだまだ注意するところはありそうですが、多少なりともわかりにくいスクリプトの削減になればと期待しています。 [追記: 2018-08-22] はてブにて以下のコメントをいただきました。 bashスクリプティング研修の資料を公開します - エムスリーテックブログ bashで50行以上になった

    bashスクリプティング研修の資料を公開します - エムスリーテックブログ
  • Python・PHP・Perl・Bash・Rubyで簡単にWebスクレイピングする方法を解説する - paiza times

    Photo by Ted Eytan 秋山です。 最近PythonでWebスクレイピングしたりする記事をよく目にする気がするので、私も書いてみようと思います。 ちなみにPythonはNumpyやPandasなどの分析に便利なライブラリやツールがあったりするので使いやすい部分はあると思いますが、「Webスクレイピングに向いてる言語はPython!」というわけではありません。 スクレイピングは別にPython以外の言語でもできますし、むしろ単純なデータの抽出程度なら無理にPythonを使うよりも、自分がふだんからよく使っている言語でやったほうがよいかと思います。 今回は、PythonPHPPerl・Bash・Rubyを使って、Webスクレイピングを試してみたので、各言語でのやり方を説明していきます。 ■PythonPHPPerl・Bash・RubyでWebスクレイピングする 今回、作業

    Python・PHP・Perl・Bash・Rubyで簡単にWebスクレイピングする方法を解説する - paiza times
  • 毎日使えるBashコマンドテクニック

    Opensource.comは6月14日(米国時間)、「Bash tips for everyday at the command line|Opensource.com」において、知っていると、日常の活動においてキーストロークを減らすことができる隠し機能やショートカットを紹介した。 紹介されているテクニックは次のとおり。 複数のターミナルでbashを使っている場合、そのすべてのコマンド履歴を保存するようにする設定 shopt -s histappend 直前のコマンドを先頭にsudoを追加して実行する。管理者権限が必要なコマンドを間違ってsudoを指定せずに実行した場合に利用する sudo !! 直前のコマンドの引数を!*に展開して実行する コマンド !* コマンド履歴から該当しそうなものを探す方法 history | grep キーワード インタラクティブにコマンド履歴検索を実行 Ct

    毎日使えるBashコマンドテクニック
  • Bashアプリケーションをテストする | POSTD

    以前、bashスクリプトをテストする仕事に取り組んだことがあります。最初、Pythonユニットテストを使うことにしましたが、プロジェクトに外部技術を持ち込むのは気が進みませんでした。そこで、仕方なく、悪名高い bash で書かれたテスト用フレームワークを使いました。 既存ソリューションの概要 手に入るソリューションを探してGoogle検索しましたが、選択肢はほんの少ししかありませんでした。そのうちいくつかについて、詳しく見ていきましょう。 重要になるのは、どんな基準でしょうか? 依存関係: bass のテスト用フレームワークを選ぶときに、 python 、 lua などのシステムパッケージも一緒に引きずり込むのは嫌ですね。 インストールの難しさ:継続的な開発の実装とTravis CIでの継続的な統合も仕事の1つだったので、私にとってインストールにかかる時間と手間数が妥当だということは、重要

    Bashアプリケーションをテストする | POSTD
  • bashスクリプトをデバッグする方法 - Qiita

    #!/bin/bash exec 5> debug_output.txt BASH_XTRACEFD="5" PS4='$LINENO: ' set -x するとdebug_output.txtにログが出力される。 exec 5>はファイルディスクリプタ5番をdebug_output.txtにするという意味。 PS4はトレース出力の際に表示されるプロンプト。$LINENOにより行番号を表示している。 set -xは実行するコマンドをトレース出力させる。 元記事にはbashdblog4bash、Eclipse、Visual Studioo Codeを使う方法なども紹介されているが、これが一番手軽でほとんどの場合十分だと思う。 Register as a new user and use Qiita more conveniently You get articles that match

    bashスクリプトをデバッグする方法 - Qiita
  • Windows上のBashシェル入門【Windows 10 Creators Update対応】

    このサイトについて お問い合わせ 利用規約/プライバシーポリシー 姉妹サイト「Deep Insider」 SNSサービス & RSSフィード Facebookページ Twitterページ feedlyページ RSSフィード サイトからのお知らせ ビューの切り替え PCビュー SmartPhoneビュー © Digital Advantage 2013 - 2024

  • 原理原則で理解するbashの仕組み - Qiita

    はじめに 以前書いたエントリー、重大な脆弱性(CVE-2017-5932)で少し話題になったbash4.4の補完機能の便利な点で、bash4.4からでないとタブの補完機能のソート処理が制御できないという問題について、ソースコードレベルで調べた結果をまとめていたのですが、bashの実装そのものを深く掘り下げ過ぎてしまい、内容が膨大になったので、何回かに分けて書こうと思います。 今回はbashが起動されてからインタラクティブモードでキーボードの入力を待ち受けるまでのお話です。普段使っているbashがどのような処理を行っているのか一緒に覗いてみませんか? 検証ソースコード Bash version 4.1.0(1) release GNU bashの生誕 bashのプロセスが起動されるのはOSへのログイン時にユーザーのログインシェルがbashに設定されている場合、あるいはログイン後に明示的にba

    原理原則で理解するbashの仕組み - Qiita
  • シェルスクリプトの罠を避ける三つの tips

    シェルスクリプトは、Unix 系環境で仕事をするエンジニアなら誰もが一度は書くであろうにもかかわらず、書き方や特性を熟知している人が少ない言語です。この記事は、シェルスクリプトを書くときに罠を踏まないようにするために最低限あなたが気を付けるべき tips 集です。「たかがシェルスクリプト」とは思わないでください。生半可に書かれたシェルスクリプトはあなたの (チームの) 生産性をかえって低下させます。 Shebang に bash を明示しろ Bash でしか使えない機能のことを俗に Bashism と言います。Bashism はもちろん Bash 以外のシェルでは動きません。これに関するありがちな罠は、以下のように発生します。 Bash が /bin/sh として使われている環境でシェルスクリプトを書く。うっかり Bashism がシェルスクリプトに含まれていても、 /bin/sh は何も

    シェルスクリプトの罠を避ける三つの tips
  • bashの初見殺しっぷりがハンパない件 - Qiita

    「これ知らなきゃ分からないだろ!」 「エラーの原因はわかったけど、なんか腑に落ちない」 いま悩んだ2時間返せ! bashというか、UNIXのコマンドに慣れてない 僕みたいな新人エンジニアが 気をつけた方がいいポイントまとめました。 あいことばをわすれない 微妙にエラーが出ないため、気づかないまま進んでしまい、 のちのち絶妙に致命的なことになってしまうので注意。 一行目忘れて2時間悩みました 二行目のオプションつけなかったため2時間悩みました setのオプションはお好みで あいことばの解説: http://qiita.com/magicant/items/f3554274ee500bddaca8 半角スペースをつけるな!半角スペースをつけろ! shellさんはスペースに非常に神経質です。 よくある変数代入では=の前後にスペースいれてはダメです。

    bashの初見殺しっぷりがハンパない件 - Qiita
  • 割りと便利だけど微妙に忘れがちなbashのコマンド・チートシート - Qiita

    自分用にメモしておく コマンド実行 CMD1; CMD2, CMD1 && CMD2 ;はCMD1の結果に関わらずCMD2も実行される &&はCMD1の結果が正常な場合のみCMD2が実行される CMD1 || CMD2 - 失敗時に後続コマンドを実行する CMD || printf "%b" "MSG"でエラーメッセージを表示する エラーメッセージ表示後exit 1したい場合 = CMD || { printf "%b" "FAILED.\n" ; exit 1 } CMD || printf "%b" "FAILED.\n" ; exit 1と波括弧無しで書くと期待通り動作しない(CMDが成功時もexit 1してしまう) CMD & - バックグラウンド実行 CMD &で[1] 4592のようにジョブ番号とプロセスIDが表示される killしたければkill %ジョブ番号 か kill

    割りと便利だけど微妙に忘れがちなbashのコマンド・チートシート - Qiita
  • bashの使い方のまとめ記事のインデックス - それマグで!

    bash の使い方を1から見直すシリーズ シェルスクリプトは、もうbashで書いていいよね。bashが動かない環境なんてないんだし。 bash の紛らわしい記号や歴史的経緯によるPOSIXかき分けなどがあって、bashに特化した記事って少ないし断片的なので、色々と調べたことを再構成してまとめて記事にしました。 私自身 [[ / [ の違いが全然わからないので調べ始めました。その結果あれこれ知見が得られたので書きながら復習をしていました。 気づけば、bash の教科書的なものになってしまいました。 何かの役に立てばいいと思って記事のインデックスをまとめておきます。まだ一部書けてないですがそのうち書きます。 はじめに はじめに bashとPOSIX bashが動く環境 zshとの比較 変数と配列と数値計算 変数 配列のまとめ 組込 let による数値計算とインクリメント 連想配列(assoc

    bashの使い方のまとめ記事のインデックス - それマグで!
  • sshrcで環境を汚さずにサーバの .bashrc .tmux.conf .vimrc 等をカスタマイズする | Weboo! Returns.

    複数人で管理している番サーバの環境をオレオレカスタマイズしてる人はいないと思うが、デフォルトのままだと使いにくいので、ぎりぎり許せる最大公約数的な設定をしているという管理者は多いのではないだろうか。 それでも、tmux や screen のプリフィックスは人によって通常使っているキーが違ったりして、これが異なるだけで非常に使いにくかったりする。自分はログインする度に以下のようなコマンドを打ちこんでいた。実に面倒くさい。 $ tmux set-option -g prefix C-t この件についてtwitterで聞いてみたところ、皆さんサーバ上に個人用の設定ファイルを用意して、ログイン時にそれを読み込んだりしているようだった。 で、これを何とかしようと思って少し調べてみた結果、以下の sshrc を使うのが便利という結論に至った。 https://github.com/Russell91

    sshrcで環境を汚さずにサーバの .bashrc .tmux.conf .vimrc 等をカスタマイズする | Weboo! Returns.
  • Windows で Ubuntu バイナリ(bash)が動作することの概略 - 蒼の王座・裏口

    マイクロソフトのハンセルマンのBlog: Developers can run Bash Shell and user-mode Ubuntu Linux binaries on Windows 10 Ubuntuの中の人のBlog: Ubuntu on Windows — The Ubuntu Userspace for Windows Developers この2つのBlogで実態が明確になったのでまとめてみます。 使用可能になるOSまもなくリリースされる予定のWindows 10 ”Anniversary” アップデートで使用可能になります。このアップデートで、開発者向けの機能として追加されます。 機能の追加で、Windowsの設定で開発者モードを有効にすると使用できるようになります。これでネイティブなユーザー モードのLinuxシェルが使えるようになり、bashを起動するとWind

    Windows で Ubuntu バイナリ(bash)が動作することの概略 - 蒼の王座・裏口
  • PowerShellでbashrc的な設定ファイル

    B! 73 0 0 0 PowerShellでもBashの.bashrcの様なファイルを使った 初期設定をすることが出来るので ちょっと書いてみました。 設定ファイル PATH Alias Fnctions 設定ファイルを読み込む 設定ファイル 個人設定ファイルは C:\Users\<USER>\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 になります。 これは$PROFILEという値に入っています。 最初はこのファイルは無いと思うので自分で作ります。 (PowerShellを一度も立ち上げたことがなければフォルダも無いかもしれません。 ない場合は取り敢えず一度PowerShellを立ち上げて見てみる。) ここにエイリアスとかパスとかの設定をします。 Microsoft.PowerShell_profile.ps1

    PowerShellでbashrc的な設定ファイル
  • sshした先に.bashrcや.vimrcを持って行きたい人のためのsshrc - Qiita

    いろんなサーバーにsshしてちょろっと設定を確認したりするときってあると思います。 ただその時にllがつかえなかったり、vimのタブが空白4つがいいのに8文字分の広さのtab文字だったりして、ちょっとずつストレスが溜まっていきます。 やっぱりserverfaultでもおなじ苦労をしている人がいました。 vim - How to bring .vimrc around when I SSH? - Server Fault http://serverfault.com/questions/33423/how-to-bring-vimrc-around-when-i-ssh ただここにあるようにdotfilesとして保存して先でcloneするのもとても面倒くさい。第一各サーバーへ変更を入れないといけないし。SSHの秘密鍵みたいに携えていきたい。 そこで探していたらsshrcというツールを見つけて

    sshした先に.bashrcや.vimrcを持って行きたい人のためのsshrc - Qiita
  • Bash用ユニットテストフレームワーク作りました - Folioscope

    Bash用テストフレームワークに、Batsやshunit2がありますが、イケてないなーと思ってたら、気づいたら自分で作ってました。 github.com テストの結果はモダンなテストフレームワークのように、カラフルに表示します。 またFAIL時は、FAILしたテストの結果を表示します。 自分の Arch Linux 上の Bash 4.3.42 および、Travis CI 上で動作することを確認しています。 インストール curl -o ~/bin/bashtub https://raw.githubusercontent.com/ueokande/bashtub/v0.1/bin/bashtub chmod +x ~/bin/bashtub です。ただし~/binはパスが通ってるとします。 これでターミナルから bashtub と打つことで実行できます。 bashtub テストを書く 各

    Bash用ユニットテストフレームワーク作りました - Folioscope