タグ

これはよいとbashに関するiwwのブックマーク (17)

  • [rlwrap] 任意のシェルコマンドを対話モード化する [作り直した] - Qiita

    似たようなタイトルの記事を書いてすまなんだ 今北産業 これ作った↓ ウンコードだったから作り直した rlwrapくん偉いぞ rlwrapってなんぞや readline(ターミナルの標準入力的なやつ)をラップするやつ。 名前も r(ead)l(ine)wrap からきてると思う readlineはアローキーを押したときの挙動がしょぼい。そういう悲しみを解消してくれるコマンド rlwrapをつかわないとこうなる▼ (↑↓←→↑の順で押してます) rlwrapを使ってみる sqlplusもその悲しみを背負ったコマンドらしいので、sqlplusに対してrlwrapが使われてるらしい(知らなかった)。 要するに、 ってするらしい。sqlplusを使う人はだいたい.zshrcあたりに alias sqlplus="rlwrap sqlplus"なんてしてるらしいよ 題 前に書いた これ http:/

    [rlwrap] 任意のシェルコマンドを対話モード化する [作り直した] - Qiita
  • シェルスクリプトでIPアドレスの計算 | Folioscope

    IPAM や DHCP サーバーを実装するとき、IP アドレスを機械的に生成するために、IP アドレスの計算をする事があります。 例えば IPAM がラックやデータセンターから機械的に IP アドレスを割り当てたり、DHCP サーバーが連番の IP アドレスを割り当てたりします。 この記事ではシェルスクリプトで IP アドレスを計算する方法を紹介します。 IP アドレスと数値の変換 IP アドレスを計算する上で欠かせない操作が、IP アドレスと数値の相互変換です。 IPv4 アドレスは長さ 4 のバイト列に過ぎませんが、通常は192.168.0.1 のように人間の扱いやすい文字列で表現します。 一方 IP アドレスを計算するには、IP アドレスをバイト列や 32 ビット数値などの、計算機で扱いやすい形に変換します。 IP アドレスを数値として扱えると、数値演算で IP アドレスを計算したり

  • My Future Sight for Past: Solution for "/bin/sh: bad interpreter: Text file busy" after moving shell script from Windows to Linux

    iww
    iww 2018/12/03
    "Input shell script to sh" 素晴らしい。 perlだったけど同じように対処できた。
  • 続・ラフなラボ – シェルスクリプトが '> $logfile 2>&1' だらけにならなくて済んだ話

    ※ 2014-04-26 追記並びに一部コマンド部分の修正を行いました。( > => >> に変更 ) 個人用のチラシの裏のつもりが予想以上に反響いただいていたようで非常にびっくりしております。 ちょっとしたバッチ処理的なものはさくっとシェルスクリプトでやっています。 で、ログをとっておくべくリダイレクトを噛ますわけですが、 スマートに書く方法を調べたのでメモ。 元ネタは @sechiro さんの bashのプロセス置換機能を活用して、シェル作業やスクリプト書きを効率化する でございます。 当に参考になりました。ありがとうございます。 今までは こんなことやってたわけです。 #!/bin/bash LOGFILE=/tmp/script-log command1 >> $LOGFILE 2>&1 command2 >> $LOGFILE 2>&1 ... >> $LOGFILE 2>&1

  • シェルスクリプト(Bash)

    シェルスクリプトとはコマンドやシェルの組み込みコマンドなどをファイルに記述し、実行できるようにしたものである。 またプログラムの制御構造なども使用でき、柔軟な処理が可能であり、/etc/rc.d/initd/ディレクトリ内の起動スクリプトなどはシェルスクリプトである。 シェルスクリプトを実行するには実行権限および読み込み権限が必要です。 またシェルスクリプトファイルの1行目にはシェルスクリプトを実行するシェルのパスを記述します。 スクリプトファイル内でも、シェル変数を定義することができる。またその変数を参照する場合は変数名の前に" $ "を 付けることで参照できる。変数名に使用できる文字は英数字および" _ "(アンダーバー)であり先頭は英字を使用しなくてはならない。

  • IPA ISEC セキュア・プログラミング講座:C/C++言語編 第10章 著名な脆弱性対策:コマンド注入攻撃対策

    第10章 著名な脆弱性対策 コマンド注入攻撃対策 C言語にはその内部でシェルを呼び出してコマンドを実行できる system()、popen() 等のライブラリ関数が備わっているが、これらを使う場合、コマンド注入攻撃への対策が必要である。 シェル シェルは、Unix, GNU/Linux で使われるコマンド解釈実行プログラムである。 シェルはユーザが指定したプログラムを単に起動するのみならず、ファイル入出力のリダイレクト、複数コマンドの組み合わせ実行、パイプ、変数、条件分岐、ループ等プログラミング機能をも含む強力なツールである。 Unix OSの歴史とともに、かつては様々な種類やバージョンのシェルが使われてきたが、最近は bash と呼ばれるシェルが使われることが多い。GNU/Linux においても同様である。 コマンド注入攻撃は、プログラムが外部からの入力を組み入れてシェルコマンド文字列を

  • Bash scripting

    Bash スクリプトを書くための小技集です. 変数について 文字列のクオート 単語分割 代入 パイプ,サブプロセス テキスト処理 文字列の長さ 文字列の切り出し (substring) 文字列分割 大文字小文字変換 文字列が空か パターンマッチ(グロブ) パターンマッチ(正規表現) 単語単位でパターンマッチ 文字列削除 文字列置換 文字列置換 (正規表現) 数値演算 ファイルシステム 1行ごとに処理 文字列を置換して保存 コマンドが実行可能か ファイル名,拡張子 などを取得 コマンドライン引数 引数を処理する (getopts) 引数を処理する (getopt) プロセスプロセスの終了を監視する 参考 1. 変数について 1.1. 文字列のクオート # " foo=20\" # クオートしない文字列では " をエスケープ foo="20\"" # ダブルクオート中でも " をエスケープ f

  • シェルスクリプトを書くときに気をつけていること(その1) - mikedaの日記

    初級者向けに『自分がシェルスクリプト書くときに気をつけていること』をまとめてみました。 @masudaKの『シェルスクリプトを書く際に気を付けていること8箇条』の乗っかりエントリです。 内容は重複しないように書いてますので合わせて読んでください! 基的にLinuxの/bin/sh、/bin/bashを想定しています。 テキスト処理は標準入力から受け取って標準出力に出す テキストを扱う小さなツールを作りましょう。 引数はオプション情報を渡すのに使います。 そうすればgrep、sort、uniqなどの便利なコマンドとパイプで連携できます。 grep ERROR /tmp/test.log | my_cmd1.sh 192.168.1.1 | sort 全てを実行する1つのスクリプトを作るのはたいへんだし、応用が効かないです。 人間に伝えたいメッセージは標準エラー出力に出す パイプでつないだ時

    シェルスクリプトを書くときに気をつけていること(その1) - mikedaの日記
  • 5.11 ワイルドカードとメタキャラクタ

    ``ワイルドカード''や ``メタキャラクタ''とは任意の文字列を指定するための特殊な文字のことです. ワイルドカードやメタキャラクタを利用することによって,複数のファイルを効率的に操作できます. 次にそれぞれの使用例を示します. 5.11.1 0文字以上の任意の文字列を表すワイルドカード `*' `*' (アスタリスク) は0文字以上の任意の文字列を表すワイルドカードです. 例えば,`*.tex'はファイル名が `.tex'で終るすべてのファイルを意味します. シェルは`*'を0文字の文字列としても解釈します. そのため,`abc*'と入力すると,`abc'という名前のファイルも操作の対象に含まれます. ただし,先頭に`*'を指定した場合でも,ファイル名が`.'ではじまるファイルは含まれません. % ls -a <ENTER> ./ .mathmatics economics.tex m

    iww
    iww 2010/08/07
    文字列候補を指定するメタキャラクタ `{ }'
  • Bashの変数パラメータ展開のまとめ - harry’s memorandum

    Bashのパラメータ展開はすぐに忘れてしまうのでメモ。 変数の文字数 ${#parameter}で変数の文字数を調べることができます。 name=/var/log/boot.log echo ${#name} 17 wcやawkコマンドを使う方法がありますがスマートではありません。*1 $ n=`echo $name | wc -c`; echo $(($n-1)) 17 $ echo $name | awk '{ print length($0)}' 17 配列も同じように配列数を調べることができます。 $ array=(a b c d e) $ echo ${array[0]} a $ echo ${#array[@]} 5 変数パラメータ展開 変数を切り出せます。ファイル名やディレクトリ名を簡単に切り出すことができます。 $ name=/var/log/boot.log $ echo

    Bashの変数パラメータ展開のまとめ - harry’s memorandum
  • bashのIFSに改行のみを設定するには - 計算機と戯れる日々

    bashのIFSに改行のみを設定するのにはまった。 シェルスクリプト中でコードとして定義 IFS=' 'もちろんコマンドライン中ではあり得ない表記だ。 ¥’¥n’ これに気がつくまで時間がかかった $'string' の形式を持つ単語は特殊な扱いを受けます。 この単語は string に展開され、 それから ANSI C 標準で仕様が決められている、 バックスラッシュでエスケープされている文字に置き換えられます。 バックスラッシュエスケープシーケンスは、 (もし存在すれば) 以下のようにデコードされます: \n 改行文字 $ echo "foo bar buzz" >> a $ echo "foo bar buzz" >> a $ echo "foo bar buzz" >> a $ cat a foo bar buzz foo bar buzz foo bar buzz $ (IFS=$

    bashのIFSに改行のみを設定するには - 計算機と戯れる日々
  • http://www.linux.or.jp/JF/JFdocs/Bash-Prog-Intro-HOWTO-9.html

    iww
    iww 2010/07/16
    selectの使い方
  • 実行中のスクリプトの現在の行番号を調べる(bash) - あんみのの備忘録

    bashでは変数LINENOに現在実行中の行番号が代入されている #!/bin/sh #lineno.sh func(){ echo "lineno.sh($LINENO): func()" } echo "lineno.sh($LINENO): func()" func func $ ./lineno.sh lineno.sh(8): func() lineno.sh(5): func() lineno.sh(5): func()

    実行中のスクリプトの現在の行番号を調べる(bash) - あんみのの備忘録
  • Cygterm Here | dodaの日記 | スラド

    2chでCygterm Hereだと/etc/profileを読まないという話が出てた。 2chは自分には合わないので、とりあえずここで書いてみる。 なぜ読まれないかはログインシェルじゃないからという事で正しいんだけれど、bashかzsh(多分ashやpdksh等も)を使っているのなら一応対策はある。 # /etc/profileという事なので、多分bashなんだろうと思う レジストリエディタを起動して cyglaunch.exe" -nocd を検索引っかかったら(多分HKCR\Folder\shell\cygterm\commandの既定で引っかかる)メニューの"編集"->"修正"を選択値のデータが

  • bash

    Linux においての「コマンド」とは、シェルによって実行ファイルが実行されていることを意味します。 たとえば ls コマンドをユーザが入力した際、その入力はシェルにとっての入力でしかありません。シェルはユーザから入力された ls という文字列を「ls という実行ファイルを実行する」と解釈し、カーネルに伝えます。 ls という実行ファイルを実行した結果がシェルによってユーザに伝えられ、あたかもユーザは ls という実行ファイルを直接実行したように感じることができます。 このように「実行したように」というのがユーザインタフェースとしてのシェルの役目です。 しかし、今回はスクリプト言語としての bash をメインに扱うので、この章は軽く流していただいて結構です。 ご存じのように bash はプログラミング言語(シェルスクリプト)のひとつとして動作します。 プログラミング言語として、最低限備わっ

  • シェルスクリプト(Bash)

    シェルスクリプトとはコマンドやシェルの組み込みコマンドなどをファイルに記述し、実行できるようにしたものである。 またプログラムの制御構造なども使用でき、柔軟な処理が可能であり、/etc/rc.d/initd/ディレクトリ内の起動スクリプトなどはシェルスクリプトである。 シェルスクリプトを実行するには実行権限および読み込み権限が必要です。 またシェルスクリプトファイルの1行目にはシェルスクリプトを実行するシェルのパスを記述します。 スクリプトファイル内でも、シェル変数を定義することができる。またその変数を参照する場合は変数名の前に" $ "を 付けることで参照できる。変数名に使用できる文字は英数字および" _ "(アンダーバー)であり先頭は英字を使用しなくてはならない。

    iww
    iww 2007/03/30
    すごくわかりやすかったのに死んだ
  • 処理系コレクション:Linux:bash

    算術式展開 $((算術式)) 例 #!/bin/bash #二つの引数を計算するスクリプト #引数1, 引数3 非演算子 #引数2 演算子 echo "$1 $2 $3 = $(($1 $2 $3))" shift shift 位置パラメータを左に一つシフトする。 例: $1 = hoge, $2 = age, $3 = sage の時 shift を実行すると $1 = age, $2 = sage になる。

  • 1