タグ

bashに関するyohane00のブックマーク (43)

  • シェルのalias されたコマンドの展開する - alias-expand-line - それマグで!

    シェルのコマンドを展開したい。 composite 使おうとしたら、候補多すぎて面倒くさい。補完が補完にならないよね takuya@~$ com<tab> comm command compare compgen complete compopt composer composite compress comsat 最初の3文字くらいで、展開されてほしい。 bashの補完で completion を書いても現在位置は置換できないし、alias で短縮しても履歴に元のコマンドを残したい。 alias してみてもうまくいかない。 alias すると、たしかに短くなるのだけど、履歴が汚れる。すげぇ面倒くさいわ。 alias comp=composite history 997: comp 998: comp 999: comp sysout<tab> が System.out.println()

    シェルのalias されたコマンドの展開する - alias-expand-line - それマグで!
  • Bashスクリプトのチートシートと便利なスニペットまとめ - オープンソースこねこね

    Bashでスクリプトを書く際によく自分が使っている小技や関数などです。 またBashでは他のプログラミング言語以上に$や:などの記号の使い方が独特でググラビリティが低いので、基文法などもチートシートとしてまとめておきます。 基文法 変数と配列 制御構文 while for-in if - elif - else if文のone-liner 文字列比較 文字列が等しい (=) 文字列が等しくない (!=) 空文字、文字列長が0 (-z) 空文字でない、文字列長が0でない (-n) 数値比較 数値が等しい (-eq) 数値が等しくない (-ne) 数値がより小さい (-lt) 数値がより大きい (-gt) ファイルの判定 存在する (-e) ファイルである (-f) ディレクトリである (-d) シンボリックリンクである (-L) 関数 便利なスニペット 実行スクリプトがあるディレクトリを

    Bashスクリプトのチートシートと便利なスニペットまとめ - オープンソースこねこね
  • shellcheck を使おう - Qiita

    シェルスクリプトを書くのなら shellcheck という lint ツールでチェックしましょう、というお話です。 (@znz blog の shellcheck を使おうと同じ内容です。) 題材 先月Shell Script Advent Calendar 2016 8日目のプログラマーの君! 騙されるな! シェルスクリプトはそう書いちゃ駄目だ!! という話がいいね数ランキングで上位にきていたこともあり、piroor/tweet.sh を例に使いたいと思います。 shellcheck の準備 macOS なら brew install shellcheck とか、 Debian や Ubuntu なら sudo apt install shellcheck とかでインストールできます。 ちょっと試すだけなら https://www.shellcheck.net/ でもできるようです。 ソ

    shellcheck を使おう - Qiita
  • bashのマニアックな文法を学んでワンランク上のシェル芸人を目指す - Qiita

    bashとシェル芸 シェル芸を嗜むシェル芸人でなくとも、Unix系OSのユーザであれば日々シェルのお世話になっているはず。 数あるUnix系シェルの中でも、最も普及していると言われるbashについて、あまり使われてなさそうな文法を紹介する。 前提 動作確認環境 Ubuntu 16.04.3 LTS Linux kernel 4.4.0-97-generic x86_64 GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu) 日語版マニュアルは JM Projectから引用 パイプラインの文法 パイプラインの文法全体の定義は以下の通り パイプライン (pipeline)は、制御演算子 | または |& で区切った 1 つ以上のコマンドの並びです。 パイプラインのフォーマットを以下に示します: [time [-p]] [ ! ]

    bashのマニアックな文法を学んでワンランク上のシェル芸人を目指す - Qiita
  • 【シェル芸人への道】Bashの変数展開と真摯に向き合う - Qiita

    はじめに 個人的なシェル(スクリプト)あるあるなんですが、変数操作に悩んでいるとBashの 変数展開 って思った以上に色んなことができてしまうことに気がつきます。 「なんかいい感じの書き方ないかなー」 「cut, tr, sed, awk, ...、まぁできるのは間違いないんだけど」 「うーん」ググリ― (10分後) 「えっ、変数展開...?(怪訝)」ポチポチ 「...」カタカタ 「いけるやん!!!」 ってことが結構あります。皆さんもこういった経験少なからずあるのではないでしょうか。 (そして今もまさにそういう記憶・期待があるから、変数展開について少し調べている...そんなところかと推察します) 毎回調べるのも感動があっていいと思うんですが、もはや衝動を押さえきれないので 全部調べたい と思います。 Bashのバージョンは 4.3.48(1) でしたが、そうそう変わるような内容でも

    【シェル芸人への道】Bashの変数展開と真摯に向き合う - Qiita
  • How to use a here documents to write data to a file in bash script

  • シェルスクリプトの入門書 「新しいシェルプログラミングの教科書」を執筆した - mollifier delta blog

    「新しいシェルプログラミングの教科書」というシェルスクリプトの入門書を執筆しました。 2017年11月21日発売です。 新しいシェルプログラミングの教科書 作者: 三宅英明出版社/メーカー: SBクリエイティブ発売日: 2017/11/21メディア: 単行この商品を含むブログを見る 目次 シェルってなんだろう シェルスクリプトとは何か シェルスクリプトの基 変数 クォーティング 制御構造 リダイレクトとパイプ 関数 組み込みコマンド 正規表現と文字列 シェルスクリプトの実行方法 シェルスクリプトのサンプルで学ぼう シェルスクリプトの実用例 テストとデバッグ 読みやすいシェルスクリプト 内容 bashのシェルスクリプトを書く方法について解説したです。 変数、制御構造(if文など)、関数などbashの基的な文法から始まって、実際に役に立つシェルスクリプトを作成して、そのテストとデバッグ

    シェルスクリプトの入門書 「新しいシェルプログラミングの教科書」を執筆した - mollifier delta blog
  • 雰囲気でシェルを使っている人のためのシェル入門 | κ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
  • Bashアプリケーションをテストする | POSTD

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

    Bashアプリケーションをテストする | POSTD
  • Linuxコマンド(Bash)でバックグラウンド実行する方法のまとめメモ - Qiita

    bashコマンドのバックグランド実行方法について、まとまっている記事が見つからなかったのでまとめメモ 通常のバックグラウンド実行 &でバックグランド実行 参考:http://kazmax.zpp.jp/linux_beginner/process_background.html もっとも基的なバックグランド実行、コマンドの後ろに&をつけて実行する。 ターミナルの切断が切れたりしてログアウトした場合に、 この方法で実行したプロセスはkillされてしまうので注意する。 途切れたら困る処理の場合はtmuxのセッション上で実行、 もしくは後述するnohupコマンドでのバックグラウンド実行推奨。 # バックグラウンド実行 $ sleep 5 & [1] 21871 # プロセス確認 $ ps $! # ps 21871 PID TTY STAT TIME COMMAND 21871 pts/0 S

    Linuxコマンド(Bash)でバックグラウンド実行する方法のまとめメモ - Qiita
  • シェルスクリプトを書くときに気をつける9箇条 - Qiita

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

    シェルスクリプトを書くときに気をつける9箇条 - Qiita
  • shoptコマンドで設定できるbashの便利設定まとめ | 俺的備忘録 〜なんかいろいろ〜

    bashの組み込みコマンドでshoptというコマンドがあるのだが、これを使うことによりbashのオプションの動作を制御する変数の値を変更してやることができる。 色々と便利なオプションも多いので、まとめてみることにする。 確認にには 4.2.46(1)-release を用いている。 shoptコマンドで設定可能な項目は、以下のコマンドで確認可能だ。 shopt [root@BS-PUB-CENT7-01 ~]# shopt autocd off cdable_vars off cdspell off checkhash off checkjobs off checkwinsize on cmdhist on compat31 off compat32 off compat40 off compat41 off direxpand off dirspell off dotglob off e

  • 原理原則で理解する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
  • bashのそれって実はこういう書き方できるよ一覧 - Qiita

    bashで普段こう書いているけど、実はこういう書き方もあるんですよというのをまとめてみました。 ->の右側がmanに載ってるテク名です。 例えばどういったものが書けるかはガチャガチャした前回の記事で…。 `command` -> Command Substitution 書く量は増えるけど、視認性が良い(ネストした時が特に)。 尚、これは書き方が違うだけでどっちもCommand Substitutionです。

    bashのそれって実はこういう書き方できるよ一覧 - Qiita
  • Googleの肩に乗ってShellコーディングしちゃおう - Qiita

    はじめに GoogleさんがShellスタイルガイドを共有していたので、いくつか気になった点をピックアップしました。 自分のShellスタイルはかなり我流なので、自省の意味も込めてコメントも併記します。 Googleスタイルガイドの元ネタ (Python/C++/Java/Rとかだけでなくdocumentガイドなど色々あります) https://github.com/google/styleguide Shellスタイルガイド (今回はこちら) http://google.github.io/styleguide/shell.xml 当は人間がチェックするのではなくcpplintのためXML定義なのかもですが、気にしない気にしない。 (見たところcpplintc++だけだと思ってます) commitフックでshell系のlint走らせろっていうのが今風なのかもしれませんが、キニシナイキ

    Googleの肩に乗ってShellコーディングしちゃおう - Qiita
  • bash アドベントカレンダーのカレンダー | Advent Calendar 2016 - Qiita

    身近なのに、実はよく知らないかもしれない GNU bash じつはbashもよく見ればできる娘なのです。 クラスのアイドルzsh に目を奪われていた私達。 幼馴染の女子 bash ちゃんをよく見たら、巨乳の美人だった?? とういうような虹色ストーリを考えました。 身近なbash の魅力を再発見出来たらいいなと思って bash を見直してみることにしてました。 基的な使い方を紹介していきたいと思います。

    bash アドベントカレンダーのカレンダー | Advent Calendar 2016 - Qiita
  • Bash $((算術式)) のすべて - Qiita

    算術式についてまとめます! 以下の衛星記事もご参照ください。 Bash $((算術式)) のすべて - A 基編 - Qiita Bash $((算術式)) のすべて - B 罠・バグ回避編 - Qiita Bash $((算術式)) のすべて - C 応用編 - Qiita 当は どうでも良い Bash 算術式の細かいこと をメインで書きたいのですが、それだと余り役に立たない記事になってしまうので、基も網羅します! 先ず節1に基事項をまとめ、それ以降に他に書かれていない色々の注意点・応用方法などを簡潔にまとめます。ちゃんとした説明は附録記事に譲ります。 これらの内容(特に節2以降)は、自分で算術式を使う過程で分かったこと・学んだことを基にしています。Bash のマニュアルに載っていないのは勿論のこと、他の場所にも載っていない情報を多く入れられたように思います。役に立つどうかは分か

    Bash $((算術式)) のすべて - Qiita
  • シェルスクリプトの罠を避ける三つの tips

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

    シェルスクリプトの罠を避ける三つの tips
  • GitHub - niieani/bash-oo-framework: Bash Infinity is a modern standard library / framework / boilerplate for Bash

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - niieani/bash-oo-framework: Bash Infinity is a modern standard library / framework / boilerplate for Bash
  • Bashでの数の取り扱いについて

    B! 6 0 0 0 Bashでの数の取り扱いについて今更ながら知ったことがあったのでまとめ。 特にスクリプトなどで数値をインクリメントしたいときなどにどうするか、について。 expr let 二重括弧 コロン+二重括弧 さらに短縮 小数を取り扱いたい時 expr 恐らく最初に最初に覚える方法。 というか純粋なBourn Shell (sh)だと下のletや二重括弧記号が使えないのでこれが基。 今やshもほとんどbashへのリンクになったりしてるので 問題ないかもしれませんが、移植性を高くしたければexprにしておくのが無難。 $ a=1 $ a=`expr $a + 1` $ echo $a 2 と言った感じ。 扱える数値は整数のみ。exprに与える式は演算子の両側に必ずスペースが必要です。 exprで四則演算などに文字列を渡すとエラーになります。 $ expr a + 1 expr:

    Bashでの数の取り扱いについて