タグ

shellに関するohnishiakiraのブックマーク (62)

  • Process substitution - Wikipedia

    In computing, process substitution is a form of inter-process communication that allows the input or output of a command to appear as a file. The command is substituted in-line, where a file name would normally occur, by the command shell. This allows programs that normally only accept files to directly read from or write to another program. Process substitution was available as a compile-time opt

  • あなたの知らない>|と<>の使い方

    >や>>、>&といったひんぱんに使われるリダイレクトに対し、ほとんど使われることのないリダイレクトが>|と<>だ。実際には興味深い機能である、これら「知られざる」リダイレクトについて説明しよう。(編集部) あなたの知らないリダイレクト、>|と<> シェルが提供する機能はカーネルが提供している機能をダイレクトに利用するものが多い。つまり、シェルの記述がダイレクトにシステムコールに結び付くような機能が多いということだ。コマンドの実行、パイプ、リダイレクトなどは、そっくりそのままシステムコールに置き換わる。 リダイレクトであれば、ほとんどのケースで>ないしは>>で事足りるはずだ。2>&1という記述はこれで1つの機能に思えるが、これは>&というリダイレクトの典型的な使い方の1つであり、つまりはリダイレクトだ。 >、>>、>&はよく使われるリダイレクトといえる。しかし、sh(1)のマニュアルには次の

    あなたの知らない>|と<>の使い方
  • OSに付属するシェルスクリプトを読んで技術を盗む

    今回から、OS付属のシェルスクリプトを読んでいく。多くの人が使っているスクリプトを読むことで、シェルスクリプトならではの書き方、テクニックを身に付けることができるはずだ(編集部) 他人の技術を盗まなければ進歩はない 外国語をマスターするにも、楽器の演奏を覚えるにも、上達するにはただ練習するだけではダメだ。素晴らしいお手を見つけて、よく観察し、何度もまねることが必要だ。お手から技術を「盗む」ことが大切だということだ。 プログラミングでも同じことが言えると思う。文法を覚えて、ただひたすらプログラムを書くだけではなかなか上手にならない。スキルのある人のコードを見て、技術を盗もう。開発チームのメンバーそれぞれが書いたコードを持ち寄って、お互いに批評し合う「コードレビュー」に参加している、あるいはリーダーとして主催しているという人は多いと思う。このコードレビューも、人から技術を盗む良い機会と言え

    OSに付属するシェルスクリプトを読んで技術を盗む
  • 引数を処理する | UNIX & Linux コマンド・シェルスクリプト リファレンス

    引数を処理する 引数とは? 引数 (ひきすう) とはコマンド (シェルスクリプト) 実行時に、コマンドラインから渡される値のことである。 引数は実行時にプログラム内で参照され、シェルスクリプトの実行結果 (動作) に影響を与える。引数はパラメータと呼ばれることもある。 → コマンド名に続けて引数としてコマンドに渡したい値のリストを指定する。 引数はコマンド名に続けてスペース区切りで指定する。引数として指定可能な値の数は各コマンドにより異なる。 【参考】 引数とオプション コマンド実行時に指定する値には引数とオプションがある。引数は実行に使用されるファイル名や出力されるメッセージなどを指定するのに使用される。 一方、オプションは -f などのように - (ハイフン) とアルファベット1文字で表記され、主にコマンドの振る舞い方を指定する目的で使用されるものである。 また、オプションは -a -

    引数を処理する | UNIX & Linux コマンド・シェルスクリプト リファレンス
  • シェルスクリプトはエレガントでなければならない

    /bin/shの実体としてはash(dash)、bash、kshの採用例が多い。どのシェルもBourne shellの機能に加えて、拡張機能を提供する。 FreeBSDなどの*BSD系のOSは、ashを/bin/shとして使っている。ashはPOSIX.1(POSIX:2008)にいくらかのBSD拡張機能を取り込んだシェルだ。メモリをあまり消費せず、高速に動作し、ほかのライブラリに依存することが少ない。従って、rootやレスキューシステムのインタラクティブシェル、システムのシェルスクリプトといった場面で採用されている。 Mac OS Xはbashを/bin/shに採用している。FedoraやopenSUSEなどのLinuxディストリビューションもbashを/bin/shに採用している。LinuxディストリビューションでもUbuntuやDebian、Linux Mintなどは、高速に動作する

    シェルスクリプトはエレガントでなければならない
  • シェルのコマンド履歴から再利用、のいろいろ - 元RX-7乗りの適当な日々

    覚えていると、たまに便利かもしれない"bash"のコマンド履歴の展開に関する技を、例を交えながらまとめてみました。 最後にも書きましたが、他にもたくさんありますので、色々試してみてください。 直前に実行したコマンドを実行 "!!"コマンドで、1つ前に実行したコマンドを再度実行できます。 $ ls -l 合計 0 -rw-rw-r-- 1 rx7 rx7 0 2009-02-26 02:20 test $ !! ls -l 合計 0 -rw-rw-r-- 1 rx7 rx7 0 2009-02-26 02:20 test n個前に実行したコマンドを実行 "!-n"コマンドで、n個前に実行したコマンドを再度実行できます。 例えば、以下の例では、"!-2"とすると、2個前に実行したコマンドを実行しています。 $ ls test $ ls -l 合計 0 -rw-rw-r-- 1 rx7 rx7

    シェルのコマンド履歴から再利用、のいろいろ - 元RX-7乗りの適当な日々
  • UNIX & Linux コマンド・シェルスクリプト リファレンス

    目次 当サイトについて bash シェルスクリプト入門 -シェルスクリプトのいろは- コマンド Tips シェルスクリプト Tips 変数を使用する 配列を使用する 入力と出力 if 文と test コマンド for 文の使用方法 while 文の使用方法 case 文の使用方法 関数の使用方法 引数を処理する 終了ステータス シグナルと trap コマンド フィルタを使用した文字列操作 1 フィルタを使用した文字列操作 2 日付を取得する 文字コードと改行コード シェルスクリプトのデバッグ AWK リファレンス (Deprecated) シェルスクリプト ライブラリ 『ether.sh』 お知らせ Bluesky を始めました @sunone.me 変更履歴 2023.10.07 ページ内リンクを修正した。 2021.02.01 このサイトに「もう 1 ページ追加しよう」と思ってから、も

    UNIX & Linux コマンド・シェルスクリプト リファレンス
  • sarコマンド - ksaitoの日記

    sarコマンドは、サーバリソースの統計情報を収集するツールです。 aptのパッケージでは、sysstatパッケージを入れると使えるようになりますが、Ubuntu(たぶんDebianも)デフォルト設定のままでは動きません。 $ sudo apt-get sysstat $ sar /var/log/sysstat/sa03 を開けません: No such file or directory $/etc/default/sysstatのENABLED="true"にすることで利用できるようになります。 $ cd /etc/default/ $ sudo hg diff diff -r 48acdbad8fee default/sysstat --- a/default/sysstat Wed Feb 03 10:49:20 2010 +0900 +++ b/default/sysstat We

    sarコマンド - ksaitoの日記
  • moreutils

  • xargs を使ってカジュアルに並列処理 - たごもりすメモ

    シェルからでも重い処理というのはちょこちょこあって、例えば超デカいログファイルを移動して圧縮したりというお仕事は世界中のあらゆる場所で毎日行われていたりする。コマンドラインからでも大量の圧縮済みログファイルをいっぺんに展開したい、とか。 あるディレクトリ以下に存在するたくさんのファイルを(圧縮済みのものを除いて)全部 bzip2 圧縮したい!と思ったら、とりあえずさくっと次のようにコマンドラインで叩けばいい。 $ find . -not -name '*.bz2' | xargs bzip2 これで、まあそんなに問題なく効率的にbzip2圧縮ができる。だがしかし。 最近は複数コアのCPUが普通に転がってるし、あまつさえHyperThreadingが有効になってたりしてOSから見える論理CPU数がハンパない。普通に8とかある。その一方で複数コアを使用してくれるコマンドというのはあんまりなくて

    xargs を使ってカジュアルに並列処理 - たごもりすメモ
  • BK class: ls -lで表示されるモードの11桁目

    ls -lで表示されるモードの11桁目 Linuxでファイル情報の詳細を見る時には“ls -l”コマンドを使うと思います。ただ、最近のLinuxだとこれで表示されるファイルのモードが11桁になっているのに気が付いていますか? $ ls -l 合計 96 -rw-------. 1 root root  1614 2009-11-19 10:32 anaconda-ks.cfg -rw-r--r--. 1 root root 76858 2009-11-19 10:32 install.log -rw-r--r--. 1 root root  9865 2009-11-19 10:31 install.log.syslog 以前は10桁でした。つまり11桁目が増えたわけですが、その意味を調べるのは手間がかかる場合があります。何故ならlsのマン・ページが古かったり、ネット上で検索しても

  • いまさらxargsの便利さを主張してみる — ディノオープンラボラトリ

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

  • seqコマンドの色々なオプション - 元RX-7乗りの適当な日々

    seqコマンドは、数値を規則的に増加/減少させるコマンド。 $ seq 1 5 1 2 3 4 5単純に増加させたり、、、 $ seq 10 -2 0 10 8 6 4 2 0増減幅を指定して減少させたり。 そんなseqコマンドにオプションがあることを知りました。 "-s" 区切り文字を指定する "-s"オプションを使うと区切り文字が指定できる。 $ seq -s , 1 5 1,2,3,4,5例えば、カンマ区切りにしたい場合は↑のような感じ。 ちなみに余談ですが、、、 $ seq 1 5 | paste -s -d , 1,2,3,4,5このオプションを使わなくても、pasteコマンドを併用すれば実現できなくもない。 "-w" 桁数を揃えて表示 "-w"オプションは、数字の桁数を揃えるために、頭をゼロ(0)で埋めて表示してくれる。 $ seq -w 0 10 100 000 010 02

    seqコマンドの色々なオプション - 元RX-7乗りの適当な日々
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • (今さら)scriptコマンドで操作ログを取得する - あしのあしあと

    OSの操作ログを取得したい(しなければならない)という要求は、まぁけっこうあるだろう*1。 セキュアOSではない従来のLinuxの機能で、比較的容易に実現可能な典型的な方式として、(1) scriptコマンド、(2) sudoコマンド、(3) acctコマンドを用いる3通りがある。この解説は、次の記事がいけてる。 http://www.atmarkit.co.jp/fsecurity/rensai/unix_sec06/unix_sec02.html いずれも、特権ユーザのログを厳密に取得するものではないが、お手軽なので(感覚的には)けっこう使われているのではないかと思う。 で、ただ今、基盤チームのスミッコメンバなので、めでたく初実装することになった。今回は、シェルの起動時にscriptコマンドを実行することで*2、操作ログを自動的に取得することに。 どこにscriptコマンドを記載すれば

    (今さら)scriptコマンドで操作ログを取得する - あしのあしあと
  • 展開コマンドのオプションなんて覚えてられないぜ。 - 落書き、時々落学

    そこで、ぼくは .zshrc に以下のようなことを追加してある。 ちなみに元ネタはArchlinuxのフォーラム。来ならばそこへのリンクを貼るべきなんだけど、もう昔のことなんで、どこから頂いてきたかはもう忘却です。 extract () { if [ -f $1 ] ; then case $1 in *.tar.bz2) tar xvjf $1 ;; *.tar.gz) tar xvzf $1 ;; *.tar.xz) tar xvJf $1 ;; *.bz2) bunzip2 $1 ;; *.rar) unrar x $1 ;; *.gz) gunzip $1 ;; *.tar) tar xvf $1 ;; *.tbz2) tar xvjf $1 ;; *.tgz) tar xvzf $1 ;; *.zip) unzip $1 ;; *.Z) uncompress $1 ;; *.7

    展開コマンドのオプションなんて覚えてられないぜ。 - 落書き、時々落学
  • 中規模データ処理で学んだ tips - フリーフォーム フリークアウト

    移転しました http://please-sleep.cou929.nu/20101230.html

    中規模データ処理で学んだ tips - フリーフォーム フリークアウト
  • シェルスクリプトでランダムな数字を得る方法 - World Wide Walker

    シェルスクリプトでランダムな数字を得る方法 Posted by yoosee on Debian at 2006-11-17 23:42 JST1 bash, zsh で $RANDOM を使う故あってシェルスクリプトの中で 0 〜 n のランダムな数字を使う必要があったのだが、いい方法が思い付かず IRC で聞いてみた。「pid を使う」「epoch time を使う」「 dd if=/dev/urandom する」と言う方法も教えてもらったが、そもそも bash や zsh ならば $RANDOM と言う変数が用意されているらしい。RANDOM   このパラメータが参照される度に、 0 から 32767 までのランダムな整数が生成されます。 と言うわけで、例えば 0〜99のランダムな数字を得たいならnum=`expr $RANDOM % 100`でよさそう。 ちなみにその時に topl

  • GNU Parallel- GNU Project - Free Software Foundation

    GNU parallel is a shell tool for executing jobs in parallel using one or more computers. A job can be a single command or a small script that has to be run for each of the lines in the input. The typical input is a list of files, a list of hosts, a list of users, a list of URLs, or a list of tables. A job can also be a command that reads from a pipe. GNU parallel can then split the input and pipe

  • IDEA * IDEA

    ドットインストール代表のライフハックブログ

    IDEA * IDEA