タグ

shellとUNIXに関するshuuuuunyのブックマーク (16)

  • (Linux)コマンドを連結して行う「;」「&」「&&」「||」の違い | old_3流プログラマのメモ書き

    シェルスクリプトにおいて、複数のコマンドを連結して処理するときに、「;」「&」「&&」「||」が使えるですんが、それぞれがどのような動きするかまとめてみました。 ;(セミコロン) 前のコマンドが終わり次第、次のコマンドが実行される。(3つ以上のコマンドを連結してOKみたい) #command1 を実行し、実行後 command2 を実行する。 command1 ; command2 &(アンパサンド) ;(セミコロン)は前のコマンドの完了を待っていたが、&は待たない。 #command1 を実行しながら、command2 を実行する。 command1 & command2 && 前のコマンドがうまく終了した(終了ステータスが0)なら、次のコマンドを実行。そうでないなら次のコマンドは実行しない。 #command1 が 0 を返した場合、command2 を実行 command1 && c

    (Linux)コマンドを連結して行う「;」「&」「&&」「||」の違い | old_3流プログラマのメモ書き
  • いまさらxargsの便利さを主張してみる — ディノオープンラボラトリ

    タイトルの通りですが、xargsコマンドの便利さを紹介する記事を書いてみました。xargsは私が大好きなコマンドの一つで、標準入力から渡されたファイル名などを引数とみなして、別のコマンドの引数として起動するというものです。 例えばfindで見つけたファイルを全部削除したい場合、xargsなしでも下記のように書くことができます。

    shuuuuuny
    shuuuuuny 2014/11/07
    find xargs rm mv
  • unix ジャンル別コマンド一覧

    最終更新 2023-09-09 UNIX/Linux コマンド解説の一覧です。 2023/09/09現在の掲載コマンド数は528個です。 主に FreeBSD, Redhat Enterprise Linux, CentOS, Ubuntu, Amazon Linux 等で使用できるコマンドを集めたものです。 括弧内の数字は、ジャンルに属するコマンドの個数です。

  • http://www.fse.cs.ritsumei.ac.jp/~takayuki/unix.html

  • さんすけ unix 参考書(UNIX その他/2 環境変数)

    UNIX その他 2. 環境変数 について説明します。 環境変数とは、いろいろなアプリケーションが参照する定義です。特定のコマンドだけが参照する環境変数や、HOME、EDITOR などのように多くのコマンドが参照する環境変数があります。 環境変数はシェル変数と違って子プロセスに引き継がれます。 環境変数の設定方法は csh・tcsh と sh・bash で違います。ここでは csh・tcsh を前提に説明します。 % setenv 環境変数名 設定値 ( csh・tcsh の場合 : ~/.cshrc ) % export 環境変数名=設定値 ( sh・bash の場合 : ~/.bashrc ) 環境変数の参照 % printenv ..(現在設定されている環境変数が表示される)... % setenv ..(現在設定されている環境変数が表示される、bash では無効)... 例 HOM

  • プログラム言語 awk Linux/Unix利用者向け一行コマンド

    1行プログラミング awk でデータの単純なフォーマット変換することを目的としています。 まず、次のようなデータ(/tmp/a とします)に対して、処理を行うことを考えます。 1 2 3 4 -5 6 7 8 0 9 10 113 入力行の総数を印字する 入力行の総数を出力します(他の方法 cat /tmp/a | wc)。 cat /tmp/a | awk 'END {print NR }' 実行結果 3 N行目の入力行を印字する 3行目の入力行を出力します(他の方法 cat /tmp/a | head -3 | tail -1)。 cat /tmp/a | awk 'NR==3' 実行結果 9 10 113 N個より多い欄を持つすべての入力行を印字する 1 行に3 個以上のデータが記述されている行をすべて出力する。 % cat /tmp/a | awk 'NF > 3 {print}'

    プログラム言語 awk Linux/Unix利用者向け一行コマンド
  • なるべく書かないawkの使い方 - ザリガニが見ていた...。

    awkという、古くからのスクリプト言語がある。(1977年生まれ。読み方は「オーク」である。エイ・ダブリュ・ケイではない)man awkをPDFに変換してみると、たったの3ページ強しかない。 $ man -t awk|pstopdf -i -o ~/Downloads/awk.pdf とてもシンプルな言語仕様ではあるが、awkには必要十分な表現力がある。特にテキストを処理する場面においては、最小限のシンプルな記述で、気の利いた処理を素早くこなす。無駄のないawkワンライナーを見ると、ある種の感動を覚える。awk以降に生まれたスクリプト言語は、少なからずawkの影響を受けていると思われる。 awkを知ることで、間違いなく幸福度は上がると思う。いつかきっと「知ってて良かった」と思える時が来るはず。もっともっと、awkを知りたくなってきた。 基動作 awkの基動作は、とってもシンプルである。

    なるべく書かないawkの使い方 - ザリガニが見ていた...。
  • ex

    実用的なシェルスクリプト 実用的なシェルスクリプトでよく利用される機能について, 実験し理解しよう. 入出力制御 エラー処理 関数 コマンドライン処理 練習問題 作業の前に, bash マニュアル を開いておこう. 入出力制御 コマンドの入出力を制御するために,リダイレクトがある. 基的なリダイレクトは次の通り: コマンド < ファイル : ファイルから入力する. コマンド << 区切文字列 : ヒアドキュメント.区切文字列が入力されるまで入力を続ける. コマンド > ファイル : ファイルへ出力する.ファイルの元の内容は書き換えられる. コマンド >> ファイル : ファイルへ追加する.ファイルの元の内容の後に出力が追加される. 出力リダイレクト(出力および追加)では,後述のように, 標準エラー出力を取り扱うためのものも用意されている. また,今回は詳しく紹介しないが,入出力制御には,

    shuuuuuny
    shuuuuuny 2014/10/16
    入出力
  • perl のコマンドラインオプション

    参考ページ [[http://debugitos.main.jp/index.php?Perl/コマンドライン]] 基的なオプション -e ワンライナーを書くために必須。 複数並べられるので、それなりに色々書ける 直後にperlプログラムを書ける。 perl -e 'print 11/2' -l[8進数] 行末に指定された8進数に変える。-l のみの場合、改行になる。 perl -e 'print 22' #=> 22 perl -l -e 'print 22' #=> 22perl -l101 -e 'print 22' #=> 22A -0[digits] -l の入力セパレータバージョン -00 とすれば、空行を区切り -777 とすればファイルごとの区切りになる。 使い勝手の良いオプション -n while (<>) { ...} の中にスクリプトを入れたと思って実行 -p -n

  • Perlのワンライナーとコマンドラインオプション - weblog of key_amb

    コマンドラインオプション オプション 意味 -e 文字列をスクリプトとして実行 -l 強制改行 -M{モジュール名} モジュールをuseする -MO=Deparse コマンドライン実行時にスクリプトに変換する -n 1行ずつ処理 -p 出力 -i 出力先を入力ファイル自身にする 以上を踏まえて、以下によく使う使い方を書く。 1行ずつ処理 # 行番号を表示 perl -nle 'print "$.:$_"' hoge.txt # スペース区切りで4番目と最後の要素を抜き出す perl -nle '@a = split(/\s+/, $_); print "$a[3]\t$a[-1]"' hoge.txt 置換 比較的よく使います。 # "foo"を"bar"に置換 perl -pi -e 's/foo/bar/g' foo.txt # バックアップを同時に作成 perl -pi'*.back

    Perlのワンライナーとコマンドラインオプション - weblog of key_amb
  • フィルタを使用した文字列操作 1 | UNIX & Linux コマンド・シェルスクリプト リファレンス

    → パイプでフィルタに加工したいデータを受け渡し、目的とする文字列を抽出するフィルタリング処理を行う。 パイプを使用して不必要な文字列を消去する、または適切な位置に文字列を付加する、といったフィルタを挟み込むことで目的とするデータを抽出する。 また、フィルタをパイプで複数連結することで、より複雑なフィルタリング処理を実現することができる。 sed コマンドを使用したフィルタリング 文字列 A を文字列 B に置換する sed コマンドはさまざまな機能を持ったコマンドだが、主には文字列の置換処理に利用されるコマンドである。置換処理を行う場合には、置換対象と置換後の文字列を指定してコマンドを実行する。置換対象の指定には一部の正規表現を使用することも可能である (一部の正規表現は使用できない。また、sed のバージョン等により使用できる正規表現も異なる)。 各行の最初に一致した文字列のみ置換 →

    フィルタを使用した文字列操作 1 | UNIX & Linux コマンド・シェルスクリプト リファレンス
    shuuuuuny
    shuuuuuny 2014/10/15
    文字列
  • シェルスクリプトで小数の大小比較を行うには bc を使う - meta‘s blog(2013-06-18)

    筆者について FreeBSDを通じてOSSにささかな貢献を。 日xrdpユーザ会発起人 xrdp developer FreeBSD developer OSS活動をご支援いただける方を募集しています https://github.com/sponsors/metalefty ■ シェルスクリプトで小数の大小比較を行うには bc を使う 単に自分が知って便利だったものの覚え書き。 シェルスクリプトで整数の大小比較を行うには通常 /bin/[ (testコマンド) または同名のシェルの内部コマンドを使って、以下のようにすると思います。 $ [ 2 -gt 1 ] && echo "2 is greater than 1" test コマンドでは小数の大小比較はできないのでどうするのかというと、数値計算コマンドの bc を使ったら要件を満たすことができそうです。bc に不等号での大小比較表現

    シェルスクリプトで小数の大小比較を行うには bc を使う - meta‘s blog(2013-06-18)
  • Cygwin 色変更 - Pocketstudio.jp Linux Wiki

    ¥×¥í¥ó¥×¥È¡© † ¡¡¥·¥§¥ë¾å(bash, csh ¤Ê¤É) ¤Ç¤Ï¥³¥Þ¥ó¥É¤òÆþÎϤ¹¤ë¥³¥ó¥½¡¼¥ë¡Ê¥­¡¼¥Ü¡¼¥ÉÆþÎϤΤ¿¤á¤Î¾ì½ê¤¬ÅÀÌǤ·¤Æ¤¤¤ëÃÏÅÀ¡Ë¤Î»ö¤ò¥×¥í¥ó¥×¥È¤È¸Æ¤Ó¤Þ¤¹¡£ ¡¡Fedora/Red Hat ¤Ç¤Ï¡¢½é´ü¾õÂ֤Ǥϰʲ¼¤Î¤è¤¦¤Ê·Á¼°¤Ç¤¹¡£ [¥æ¡¼¥¶Ì¾@¥Û¥¹¥È̾ ~]$ ¡¡¤¿¤È¤¨¤Ð¡¢¥æ¡¼¥¶Ì¾¤¬ sakura¡¢¥Û¥¹¥È̾¤¬ sion ¤Î¾ì¹ç [sakura@sion ~]$ ¡¡¤Èɽ¼¨¤µ¤ì¤Þ¤¹¡£~ ¤Ï¡Ö³ºÅö¥æ¡¼¥¶¤Î¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¡×¤È¤¤¤¦°ÕÌ£¤Ç¤¹¡£ ¡¡¤¿¤È¤¨¤Ð¡¢¥«¥ì¥ó¥È¥Ç¥£

  • 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

  • シェルスクリプト入門 [演算・比較]

    乗算の演算子は「*」ですが、UNIXでは「*」はワイルドカードという特別な意味がありますので、エスケープ文字「\」を使用して「\*」と書きます。また、演算子の前後のスペースは省略できませんので注意してください。以下は四則演算のサンプルスクリプトです。 expr_test.sh #!/bin/sh a=`expr 5 + 3` b=`expr 5 - 3` ab=`expr $a + $b` c=`expr 5 \* 3` d=`expr 5 / 3` e=`expr 5 % 3` echo "a=$a" echo "b=$b" echo "ab=$ab" echo "c=$c" echo "d=$d" echo "e=$e"

  • カレントディレクトリのプログラムを実行するには

    というエラーメッセージが表示されて、実行することはできない(xxxはプログラムの名前)。これは、パスにカレントディレクトリが含まれていないために発生する現象なので、実行するにはパスにカレントディレクトリを含めればよい(パスに新しいディレクトリを追加するには参照)。 ただし、そうする前に、なぜデフォルトではカレントディレクトリにパスが通っていないのかを考える必要がある。 それは、カレントディレクトリのプログラムが無条件に実行されるのは好ましくないからである。パスの通ったディレクトリにあるプログラムと同名のファイルがカレントディレクトリにあった場合、パスの順番によってはカレントディレクトリのプログラムが実行されてしまい、ユーザーの意図に反した結果になってしまう。 さて、パスとは関係なく、カレントディレクトリにあるプログラムを実行するには、フルパスでプログラム名を指定すればいい。しかし、これだと

  • 1