タグ

UnixとUNIXに関するshuuuuunyのブックマーク (35)

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

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

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

    機能 テキストデータ処理用プログラム言語 起動方法 awk オプション 'プログラム' 入力データ... awk オプション -f プログラムファイル 入力データ... 入力データは複数指定できる。 オプション -Fs -Fの後にある文字sを区切りの文字として使用する。 例えば -F: とすると、データを読んだ時に 123:456:789 というデータは$1が123、$2が456、$3が789になる。 説明 テキストデータに対して、各種の処理を実行するための、スクリプト言語である。 vpファイルなどの、数字が一定の規則にしたがって並んでいるようなデータを並べ代えたり、 計算したりするのに適している。 長所 表計算などが簡単に実行できる。 C言語のようにコンパイルの必要がない。 フリーのソフトである。 パソコン(DOS、WINDOWSMac)でも使用できる。 短所 計算速度が遅い バイナリ

  • ファイルの所有者と権限

    37.2. ファイルの所有者と権限Linux や UNIX は、1 台のシステムに複数のユーザーが同時にログインして使用することができるマルチユーザー対応 OS です。そのために、ユーザーがファイルの読み込み、書き込み、あるいはコマンドを実行するには、そのファイルに対するアクセス権限を持っている必要があります。アクセス権限を持たないユーザーは、そのファイルの読み込みや書き込みを行うことはできません。このように、ファイルやディレクトリに対する許可属性(パーミッション)の設定は、システムのセキュリティを操作する最も基的な機構を提供しています。ファイルやディレクトリは、他にも様々な属性を保持しています。それらの属性は、以下のように ls コマンドで確認することができます。 $ ls -l total 40 drwxr-xr-x 2 taro taro 4096 Sep 3 21:13 data

    shuuuuuny
    shuuuuuny 2014/11/13
    ls chmod chown
  • いまさら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

  • 改行コードの変換

    Sat Jun 10 16:22:33 JST 2006 ある perl のプログラムをダウンロードした。 ここでは仮に hello.cgi とする。 $ perl -wc hello.cgi hello.cgi syntax OK $ chmod 755 hello.cgi $ ./hello.cgi bash: ./hello.cgi: No such file or directory となって動かない。ところが $ perl hello.cgi Content-type: text/plain Hello ちゃんと動く。ここで疑うのは先頭の一行。 $ head -n 1 hello.cgi #!/usr/local/bin/perl perl のパスはあっている。どこかほかのところが関係しているのかと思い vim で行を削除したりするとなんか変。 削除したはずの行が復活したりするの

    shuuuuuny
    shuuuuuny 2014/10/18
    tr sed awk perl nkf ryby python php
  • プログラム言語 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の使い方 - ザリガニが見ていた...。
  • awk システム変数を理解(FS OFS RS ORS NF NR FILENAME) - おぼえがき

    awk 'BEGIN {FS="n"; RS="ORS="-"} {print $1,$NF}' aaaa ファイルの中身 ----------------- 1 2 3 4 5 6 7 8 9 ----------------- 以下のスクリプトの実行 ファイルの1から3 4から6 7から8をひとつのデータとして考える awk ' BEGIN { FS="n";      # カラムの区切りを改行に RS="";       # レコードの区切りを空白に(ファイルの3と4の間) OFS="*";      # 出力のデミリタ(カンマがあればOFSに変わる $1,$NFの部分) ORS="nn"     # 出力のデミリタ(改行二つが1回ごとの実行のデミリタとなる) } { print NR"." $1,$NF # NR:現在の行 / NF:1レコードの最大カラムの位置 } END { p

    awk システム変数を理解(FS OFS RS ORS NF NR FILENAME) - おぼえがき
    shuuuuuny
    shuuuuuny 2014/10/17
    awk
  • bc is ignoring scale option

    shuuuuuny
    shuuuuuny 2014/10/17
    bc
  • 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
  • とほほのperl入門 ◆ 正規表現

    ラリー・ウォール氏によって1987年に開発されたスクリプト言語です。 C言語、AWK、sed, sh などの影響を受けて開発され、PHP, Ruby, Python などに影響を与えました。 聖書の中の「高度な真珠」にちなんで pearl と名付けられる予定でしたが、同盟の言語がすでに存在したため Perl と名づけられました。 現在では Perl は "Practical Extraction and Report Language" の略とされています。 プログラミング言語を示すときは先頭大文字で「Perl」、処理系を表すときは先頭小文字で「perl」と表します。 2023年9月現在、5.38 が最新版です。 RHEL7系では 5.16、RHEL8系では 5.26、RHEL9系では 5.32、Ubuntu 22.04では 5.34 がインストールされます。 Windows用の実装として

  • フィルタを使用した文字列操作 1 | UNIX & Linux コマンド・シェルスクリプト リファレンス

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

    フィルタを使用した文字列操作 1 | UNIX & Linux コマンド・シェルスクリプト リファレンス
    shuuuuuny
    shuuuuuny 2014/10/15
    文字列
  • ジョブとプロセス | UNIXコマンド講座 | 有限会社ミスティーネット

    ジョブとプロセスについて プロセスの種類について ジョブとプロセスについて UNIX におけるプロセスとは、実行するプログラムやコマンドを OS が管理する単位です。 それに対して、ジョブはシェルが管理するプログラムの実行単位で、プロセスはどのシェルからでも参照できますが、ジョブはそれを実行したシェル以外からは参照することができません。 UNIX では、プログラムやコマンドをパイプ(|) でつないで1つの処理として実行することができますが、異なるコマンドは別々のプロセスとして実行されます。 このため、必ずしも 1ジョブ=1プロセス となるわけではなく、複数のプロセスが集まって1つのジョブとなっている場合もあります。 プロセスの種類について プロセスは、フォアグラウンド、バックグラウンド、サスペンドの3つのいずれかの状態となります。 フォアグラウンドは、ユーザーに見える状態で動作するプロセス

    ジョブとプロセス | UNIXコマンド講座 | 有限会社ミスティーネット
    shuuuuuny
    shuuuuuny 2014/09/27
    job process
  • シェルスクリプトで小数の大小比較を行うには 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)
  • 改行コードの変換

    Unixの上でsed, awk, Python, Perl などを使ってファイルを行ごとに扱うためには、各行は LF という文字コード(\n)で区切られていないといけない。しかし、他のシステムで作られたファイルは異なる改行コードを用いているため、一旦unix用の改行コードに変換する必要がある。 1.改行コードの調べ方 1.A nkfを使う nkfを入れてあれば、Terminalから次のように打つだけ。 $ nkf -g foo.txt 1.B Octal dump 例えば、foo.txtというファイルを調べたければ、Terminalを開いて次のようにする。 $ od -c foo.txt | less 表示される文字の中に混じっている\n や\r\nを見つけ、下の表と比べる。 システム改行コードod -c での見え方

    shuuuuuny
    shuuuuuny 2014/09/19
    tr 改行コード