タグ

bashに関するtvskのブックマーク (14)

  • Bashショートカットキー - Qiita

    概要 LinuxのデフォルトシェルBashのショートカットキーについて、便利なのでマニュアルを読み直して覚えておきたいものをまとめました。 動作環境 $ bash --version GNU bash, version 4.4.23(1)-release (x86_64-unknown-linux-gnu) ... マニュアルページ インタラクティブシェルで使えるショートカットキーについてはBashのマニュアルページのREADLINEの箇所に記載してあります。man bashで参照できます。 記事のタイトルは「ショートカットキー」としましたがマニュアルページでは「key bindings」という表現となってます。 ショートカットキー一覧 ショートカットキーはマニュアルページの記載に合わせて以下のように表現します。 Ctrlキーとの同時押しはC-xと表現します。 Altキー(Metaキー)

    Bashショートカットキー - Qiita
    tvsk
    tvsk 2021/10/02
    bash のキーバインド bind -p
  • BASHシェルスクリプトで「キー入力待ち」プロンプトを実装する | DevelopersIO

    BASHシェルスクリプト実行中に、 例えば下記のように表示させたい場面はよくあります。 実行しますか? (y or N): ここで人間が「y(あるいはYes)」と入力しないと先に進まない、問題があればNと入力して終了したり、CTRL+Cで強制終了させたり。 そんなプロンプト機能を実装してみます。 先にネタばらしをすると、全部readコマンドがやってくれます。 例1 : 「Hit enter key!」 単に実行を一時停止して、問題がなければエンター(リターン)キーを押すことで先に進むようなシェルスクリプトは、このようになります。 #!/bin/bash : (前段階の処理) read -p "Hit enter: " (続きの処理) : 単に「Hit enter: 」と表示して処理が一時停止します。エンター(リターン)キーを押せば先に進みます。 もし前段階の処理で何かしら問題が見つかれば、

    BASHシェルスクリプトで「キー入力待ち」プロンプトを実装する | DevelopersIO
    tvsk
    tvsk 2020/04/20
    入力待ちを read コマンドで。
  • Linux 現在の環境で利用可能なコマンド一覧をcompgenで表示 - もた日記

    compgen compgen -c(外部コマンド) compgen -a(エイリアス) compgen -b(組み込みコマンド) compgen -k(キーワード) compgen -A function(関数) compgen -A function -abck(上記全部) zshの場合 compgen stackoverflow.com 現在の環境で利用可能なコマンド一覧を表示する方法は、Stack Overflowによるとbash組み込みコマンドのcompgenを使うとよいとのこと(TABを2回押して補完候補を全部出す方法はパイプが使えないし)。 man compgenによると補完で使われているコマンドらしい。 compgen [option] [word] option に従って、word にマッチする補完候補のリストを生成します。 オプションには complete 組み込みコマ

    Linux 現在の環境で利用可能なコマンド一覧をcompgenで表示 - もた日記
    tvsk
    tvsk 2019/05/31
    compgen コマンド
  • CloudWatchカスタムメトリクス取得用Bashスクリプト雛形 | DevelopersIO

    CloudWatchはAWSが提供するメトリクス保存・監視サービスです。EC2のCPU使用率やNetwork I/Oなどの基的なメトリクスを、何も追加で作業することなく無料で監視することができます。 一方で、デフォルトでは監視されない項目もカスタムメトリクスという方法を利用すれば、任意の値をCloudWatchに登録することが可能です。カスタムメトリクス登録のためにはCloudWatchのAPI経由で値の登録をする必要が有るため、AWS SDKやAWS CLIが利用されることが多いです。 カスタムメトリクスに簡単に値を追加できるように、登録するときのbashスクリプトを雛形として作ってみました。 スクリプト 例として、ディスク使用率をCloudWatchカスタムメトリクスとして送信するスクリプトを作成しました。 #!/bin/bash log() { echo $1 | logger }

    CloudWatchカスタムメトリクス取得用Bashスクリプト雛形 | DevelopersIO
    tvsk
    tvsk 2018/03/08
    2015年の記事。45行のひな形。リトライとランダムウェイトが入ってる
  • Bashでコマンド履歴から検索して実行する - Qiita

    コマンド履歴を後方検索 Bashを使っている時に以前実行したコマンドをもう一度または少し変えて実行したい場合があります。 そんな時はCtrl-rで検索モードにしてからコマンドを入力することで以前実行したコマンドを簡単に後方検索することができます。Ctrl-rを実行する度に以前のコマンドが表示されるので、何度かCtrl-rを実行すると目的のコマンドが出てくると思います。 もしCtrl-rを実行しすぎて目的のコマンドを通り過ぎた場合は、Ctrl-sで履歴を戻ることもできます。 ただし、通常はCtrl-sにスクリーンロックがかかっていて戻れないことが多いです(スクリーンロックしてしまったらCtrl-qで解除してください)。そんな時はCtrl-sに割り当てられているスクリーンロックを解除することで戻れるようにできます。 スクリーンロックを解除して前方検索出来るように設定 ショートカットキーの割当状

    Bashでコマンド履歴から検索して実行する - Qiita
    tvsk
    tvsk 2017/04/07
    bind -p でキーバインド表示. crt+rでヒストリ検索
  • Bash - Wikinote

    参考文献 BashFAQ - Greg's Wiki これはすごい。特に以下の項目がためになる。 What is the difference between test, [ and [[ ? Why is $(...) preferred over `...` (backticks)? BashPitfalls - Greg's Wiki bash の落とし穴。これも必見。 シェルスクリプト $# - 引数の個数なので、スクリプト名は含まない。(要は最後のインデックス) BASH Programming - Introduction HOW-TO $'string' の形式で特殊文字を出力できる。$'\x30' = '0' など。 $(cat file) とするなら、$(< file) の方が fork しないので速い。 配列 迷宮入りするかと思うほど理解するのが難しかった。。 初期化

    tvsk
    tvsk 2017/03/27
  • export と set は違うの?

    export X=b は sh の拡張機能で、元々は X=b; export X です。X=b がシェル変数 X に値 b を代入すると言うものであり、export X はシェル変数 X を環境変数に設定するためのコマンドです。環境変数に設定すると、そこから呼ばれたプログラム (サブ・プログラム) もその変数 X の値を参照することができます (逆に言えば、export して環境変数に指定ないとサブ・プログラムからその変数 X の値を参照することはできません)。 なお、複数の変数をまとめて export することも可能です。 export X=b export Y=c は、 X=b; Y=c; export X Y と書けます。 一方、 set Y=b というのは csh でシェル変数を設定するためのコマンドです。csh の場合で環境変数を設定したい場合は、 setenv Y b と書きま

    export と set は違うの?
    tvsk
    tvsk 2016/08/19
    "export X=b" は sh の拡張機能で、元々は "X=b; export X" . export X はシェル変数 X を環境変数に設定するためのコマンド. 環境変数に設定すると、サブ・プログラムもその変数 X の値を参照することができます
  • Welcome to m-bsys.com

    Welcome to m-bsys.com If you are the domain administrator get started creating your home page with Google Sites

    tvsk
    tvsk 2016/02/07
    shift を while ループの中で使うサンプル
  • [Bash]正規表現マッチした部分文字列を再利用する方法 · DQNEO日記

    Bashでは正規表現マッチを使ってマッチした部分文字列を再利用することができます。 つまり文字列の加工を自由自在にすることができます。 例:"foo_bar"から"foo"や"bar"を取り出したい [[ "foo_bar" =~ ^(*)_(*)$ ]] ここでマッチした部分文字列は、BASH_REMATCHという配列に格納されています。 # マッチした全体を参照したい場合 TOTAL=${BASH_REMATCH[0]} echo $TOTAL # => foo_bar # ()でマッチした部分文字列を取り出したい場合 LEFT=${BASH_REMATCH[1]} echo $LEFT # => foo シェルスクリプトで書くなら下記ような感じで。 #!/bin/bash if [[ "foo_bar" =~ ^(.+)_(.+)$ ]] ; then echo ${BASH_REM

    [Bash]正規表現マッチした部分文字列を再利用する方法 · DQNEO日記
  • read について知っておくと while read で役に立つときが来る…かも - Qiita

    親の環境に影響を与えないためにサブシェルで実行している部分があります。 read に複数の引数を与える read に複数の引数を与えると複数の変数に同時に値を代入可能。区切りは IFS によって変化する。 $ echo 1 2 3 | (read v1 v2 v3; declare -p ${!v*}) # `${!v*}' は前方一致展開です declare -- v1="1" declare -- v2="2" declare -- v3="3"

    read について知っておくと while read で役に立つときが来る…かも - Qiita
    tvsk
    tvsk 2016/02/05
    read line. read で読んだ配列データをprintfで整形するサンプル
  • bashの操作方法

    [Linux] コンソールでbashを使用している時の主なキー操作を以下に簡単にまとめます。 ------------[カーソルの移動関連]------------ [Ctrl]+[a] : カーソルを行の先頭に移動 [Ctrl]+[e] : カーソルを行の末尾に移動 [Ctrl]+[b] : カーソルを左に一文字移動 [Ctrl]+[f] : カーソルを右に一文字移動 [Esc]+[f] : 1単語右にカーソルを移動 [Esc]+[b] : 1単語左にカーソルを移動 ※Tera Termを使用している場合、[Setup]->[Keyboard]->[Meta key]にチェックを入れれば[Esc]の代わりに[Alt]キーが使えるようになります。 ------------[削除関連]------------ [Ctrl]+[d] : カーソルの右一文字を削除 [Ctrl]+[h] : カー

    tvsk
    tvsk 2016/01/14
    カーソル操作系まとめ。TeraTermでAltにMetaを充てる方法
  • bash: ファイル名を一括で変更する | DriftwoodJP

    Terminal.app上でシェルスクリプト。 ファイル名の一部を一括変換するこちらの下の方の回答。 Macでファイル名の一部を一括変換する方法を教えてください。 例.. – 人力検索はてなmenu を globalnav に変更したい。 % ls menu-1-on.png menu-2.png menu-4-on.png menu-5.png menu-7-on.png menu-1.png menu-3-on.png menu-4.png menu-6-on.png menu-7.png menu-2-on.png menu-3.png menu-5-on.png menu-6.png menu-8.png

    bash: ファイル名を一括で変更する | DriftwoodJP
    tvsk
    tvsk 2015/08/30
    rename
  • シェルスクリプトの中で1行ずつ変数を分割する際には、cutとかawkとか余計なプロセスを起動せずsetを使って分割した方が効率的 - 双六工場日誌

    シェルスクリプトの中で、スペース区切りもしくはタブ区切りのレコードを扱うことがよくあると思います。 たとえば、前回のエントリ「AWS CLIとjqを使って、AWSのELBボリュームがアタッチされているEC2インスタンス名を出力するワンライナーを書いた - 双六工場日誌」のスクリプトの出力は以下のようになります。 i-ec56a9f5 vol-07d00601 servername i-ec56a9f5 vol-8f550991 servername このようなレコードの特定の列を取り出して、処理する際にどうするのが効率的か、というのがこのエントリのお題です。 非常に古い話題なので、昔からシェルスクリプトを書いている人には自明な話ではありますが、最近、シェルの標準機能の話を聞く機会がなく、失われつつある技術になってきている気がしているので、改めて確認ということで。 例として挙げたレコードから

    シェルスクリプトの中で1行ずつ変数を分割する際には、cutとかawkとか余計なプロセスを起動せずsetを使って分割した方が効率的 - 双六工場日誌
  • bashのキーバインド(キーボードショートカット) まとめ - readlineとbind、ついでにstty編 - うまいぼうぶろぐ

    復習がてらまとめてみた。今さら感たっぷりでたぶん100番煎じぐらいだけど。きっかけは単語単位でカーソルを移動させる(M-f,M-b)方法が知りたかっただけなんだけど。せっかくなのでどこで、どういう風にキーバインドが割り当てられているかを調べた。 versionはdebian4のbash 3.1.17。 readlineとbind(組み込みコマンド) man bashのreadlineとbindの項目参照。readlineはシェルの入力を処理するライブラリ。bashは組み込みのコマンドでreadlineの割り当て設定確認/設定変更が出来る。 端末ラインのキーバインド さて、さっそくbashのキーバインド…の前に、シェルとは別の端末のキーバインドもまとめておく。bashとは直接関係ないけど、端末をCLIの操作をキーバインドで行うという意味では、ほぼ同じなので。 有名なのはプロセスを割り込むC-

    bashのキーバインド(キーボードショートカット) まとめ - readlineとbind、ついでにstty編 - うまいぼうぶろぐ
  • 1