タグ

unixに関するstealthinuのブックマーク (133)

  • パイプとリダイレクトでコマンドを組み合わせて実行しよう

    エラーメッセージ(標準エラー出力)は表示しない エラーメッセージは不要、という場合は「2> /dev/null」で標準エラーメッセージを「/dev/null」へリダイレクトします(画面10)。「/dev/null」というのは「ヌルデバイス」という特別な場所で、ここへの出力は全て破棄され、どこにも出力されず、保存もされません。

    パイプとリダイレクトでコマンドを組み合わせて実行しよう
    stealthinu
    stealthinu 2022/07/06
    そうか標準エラー出力だけのパイプってないのか。「2>」があるのだから「2|」があると思ってた。「|&]
  • 【 source 】【.】 ファイルからコマンドを読み込んで現在のシェル環境で実行 【 Linuxコマンドまとめ 】

    「別のシェルで実行する」場合との違い「シェルスクリプト」を実行する場合、通常は「source」および「.」を使いません。次のように、「bash」などの引数として実行するか、シェルスクリプトに実行権を付けて実行します。 bashの引数として実行する例 bash script.shchmodで実行権を付けてから実行する例 chmod +x script.sh ./script.shこれらは、実行中のインタラクティブシェル(対話的シェル)とは別のシェルでスクリプトを実行します。 これに対して、「source」および「.」は実行中のインタラクティブシェルでファイル中のコマンドを実行します。 たとえば、次の内容で「script1.sh」を作成したとします。 #!/bin/bash HOGE=hoge echo $HOGEシェル変数「HOGE」に文字列「hoge」を設定し、出力するだけのスクリプトです

    【 source 】【.】 ファイルからコマンドを読み込んで現在のシェル環境で実行 【 Linuxコマンドまとめ 】
    stealthinu
    stealthinu 2022/06/22
    「. 【なんかのシェルスクリプト】」って「source ~」と同じことなのね。「. ~」の書式を知らんかったからなんだろう…?となってた。
  • シェルスクリプトは変数代入で = の前後にスペースを置けない!・・・の本当の理由を知ると優れた文法が見えてくる - Qiita

    シェルスクリプトは変数代入で = の前後にスペースを置けない!・・・の当の理由を知ると優れた文法が見えてくるShellScriptBashUNIXshellPOSIX はじめに シェルスクリプトの変数代入で = の前後にスペースを置くことができない理由は、検索すれば「プログラマーの君! 勘違いするな! シェルスクリプトでは読みやすさのためにスペースを置くな!! という話」のような記事がすぐに見つかります。記事に書いてあるとおり変数代入とコマンド呼び出しと区別がつかないからです。それは間違いではないんですが、私はもう少し説明が足りないと感じています。そこで今回は = の前後にスペースを置けない当の理由を解説したいと思います。 の前に皆さんにはこの話を読みながら、自分がシェルスクリプトの言語設計者だったとしたら、どういう言語仕様にするかを考えて欲しいです。なぜかと言うとシェルスクリプトの文

    シェルスクリプトは変数代入で = の前後にスペースを置けない!・・・の本当の理由を知ると優れた文法が見えてくる - Qiita
    stealthinu
    stealthinu 2021/11/10
    シェルスクリプトでつい「=」の前後にスペース入れたくなるけどスペース入れちゃダメなのは元々の設計思想からくるものなのね
  • NetBSDを手探りで移植したときの話 - Qiita

    この記事は自作OS Advent Calendar 2020 7日目の記事となります。 はじめに 現在のオープンソースOSは、たとえばLinux開発ボードであればボードベンダーから移植済みのLinux環境が提供されたり、たとえばNetBSDであればクロスコンパイル環境が整備済みでドキュメントも用意されていて、最低限の移植作業で移植が完了したりします。 ぼくがNetBSDを移植した当時(1993年)はそうではありませんでした。ドキュメントもなくいろいろ手探りで、それも一人でやらざるを得ませんでした。苦労話のことは置いておいて、技術的にどういう物が用意され何を調べてどういう手順で移植していったかを記録に残せればと思います。(って前置きした割に苦労話が多いような気がします、すみません) かなり昔の話なので、けっこう忘れてることも多く、微妙に記憶が間違っていたりすることも、順番が前後していることも

    NetBSDを手探りで移植したときの話 - Qiita
    stealthinu
    stealthinu 2020/12/08
    うわー、あの当時の感じと大変さが追体験できてとてもよかった。X68030はMMU積んで公式にUNIXワークステーションとしても使えるようにするという道もあったのでは、と思ったり。ま、後知恵だけどさ。
  • bash の危険な算術式 - どさにっき

    ■ bash の危険な算術式 _ 使ってる人がいちばん多いだろうからタイトルでは bash としてるけど、ここで取り上げることは zsh および ksh 一族(家 ksh、pdksh、mksh)にも該当する。ash、dash などでは該当しない。 _ 以下のシェルスクリプトには脆弱性がある。わかるだろうか。 #!/bin/bash # "品目,単価,個数" の形式の CSV を読んで、"品目,合計金額" の形式で出力する csv="foo.csv" while IFS=, read item price num; do echo "$item,$((price*num))" done < "$csv" これ、細工された CSV ファイルをわせることで、任意コードの実行ができてしまう。数ある脆弱性の中でもとくにヤバいやつだ。どこが穴なのかというと、タイトルにもあるとおり算術式なのだが、し

    stealthinu
    stealthinu 2019/09/02
    『ここまでの説明で、算術式が危険な罠だということがわかっただろうか。まだわからんか。』これは気が付かん。説明されてもだいぶしんどい。
  • 【1990年代前半/HashHub編】平成生まれのためのUNIX&IT歴史講座

    3. 法林 浩之 @hourin ● 日UNIXユーザ会 幹事 (元会長) ● さまざまなコミュニティとイベントを開催 ● 全国各地のイベントで研究会を開催 ● フリーランスエンジニア ● 最近はさくらインターネットの仕事が多い ● TechLIONなど多彩なイベントを開催 ● くわしくは「法林浩之」で検索

    【1990年代前半/HashHub編】平成生まれのためのUNIX&IT歴史講座
    stealthinu
    stealthinu 2019/02/01
    jus勉強会が1994に始まっててこれが現在のIT勉強会の始祖。で、資料がもう…懐かしくて… 技科大コンピュータセンターにいらした久松先生の名前とか出てきて、うわーってなった。年とったわ。
  • 圧縮されたtarの展開方法の変遷 - Qiita

    私がやっていた圧縮されたtarの展開の仕方を書いてみる。 ~1992年 gzipが出る前。圧縮に使っていたのはcompressで圧縮したtarの拡張子はtar.Z。ファイルを伸長して標準出力に出力するzcatがあり、tar.Zを展開するときは

    圧縮されたtarの展開方法の変遷 - Qiita
    stealthinu
    stealthinu 2018/03/08
    今のtarはzオプションいらんというの、この昨日今日のTLでのtarネタではじめて知ったわ… 老害だったわ…
  • 業界に痕跡を残して消えたメーカー UNIXの覇者Sun Microsystems (1/3)

    今回の「業界に痕跡を残して消えたメーカー」は、PCメーカーから外れるがSun Microsystemsを紹介したい。COMPAQなどと激しく市場を戦い、最終的に敗れていった企業だからだ。 BSD UNIXを採用したSunOS搭載マシンで 着実に知名度を上げていく Sun Microsystemsは1982年、スタンフォード大学に近いPalo Altoで立ち上がった。創業者はVinod Khosla、Andy Bechtolsheim、Scott McNealyの3人で、いずれも元はスタンフォード大の学生であった。 また会社設立直後に、カリフォルニア大学バークレー校のBill Joyが加わっており、この4人を創業者とみなすことが多い。

    業界に痕跡を残して消えたメーカー UNIXの覇者Sun Microsystems (1/3)
    stealthinu
    stealthinu 2017/12/19
    うわあ、懐かしい。最初に触ったワークステーションが大学の計算機室にあったSun3だったな。研究室にSun4とSparcStationがあって色々とコンパイルしたなあという思い出。
  • 改めてlessコマンドの使い方 - 日々之迷歩

    テキストファイルを閲覧するためによく使うのがlessコマンド。特に巨大なファイルを開く時などは必須でしょう。Gバイト単位の巨大なファイルをVimEmacs、その他のテキストエディタで開くと、メモリを大量に消費して最悪OSが反応無しとかになります、、、 また、コマンドの出力結果をパイプでlessに渡し、出力結果をジックリ観察するのに重宝します。普段何気なく使っていらっしゃる方々が多いと思うが、改めて使い方の確認をしてみると、何かしらの発見があるかもしれません。 起動時オプション 各オプションには、短いショートオプションと長いロングオプションがあります。設定ファイルに記載する場合は分かりやすいロングオプション、コマンド実行時にはタイプ数が少ないショートオプションを使うと便利でしょう。特に-X/--no-initオプションは案外知られていないかもしれません。終了時に画面が消えてショボーンとなる

    改めてlessコマンドの使い方 - 日々之迷歩
    stealthinu
    stealthinu 2017/06/14
    lessの-Xオプション!知らんかった!!抜ける時にそのままその表示を残しといて欲しいとき。これ-Xオプションについては起動後の切り替えは出来ないのか。そこはちょっと残念。
  • のほほんのおと 【ITトリビア】 suは"スイッチユーザ"ぢゃない

    LinuxなどのUNIX系OSのコマンドに「su」というのがありますが、これが「switch user」の略だと思っている人が多いですね。 かくいう私も長い事そう思っていた時期がありました。 あるいは「super user」派も多いです。 では、正しくはなんなのか? 「substitute user identity」の略だそうな。 substituteって英語力の無い自分には馴染みの無い単語だったので、Yahoo!辞書でひいてみました。 [名] 1 (…の)代わりをする人[物],代理人,身代わり,代役,補欠,代用品,代用((for ...)) なるほど、な感じですな。 ちなみに初期の頃は「super user」の略だったようです。 その頃は名前の通り、rootになる機能しか無かったと。 その後、任意のユーザになる機能も付与され、「substitute user identity」の略に

    stealthinu
    stealthinu 2017/05/29
    なんと!「su」って「super user」ではなく「switch user」の略って覚えてたのだが、実は「substitute user」の略だったのか。
  • Ubuntuの/bin/shはbashではなくdash

    dash is not bash #!/bin/sh offset=(`ls`) echo $offset みたいなシェルスクリプトがあって、こいつを Ubuntu で実行すると $ ./foo.sh ./foo.sh: 2: ./foo.sh: Syntax error: "(" unexpected というようにシンタックスエラーが発生した。shebang の /bin/sh ではなく /bin/bash として実行すると $ bash foo.sh $ とエラーにはならない。 シンタックス的に OK そうな foo.sh が一つ目ではなぜエラーになったかというと、ubuntu の /bin/sh は Almquist shell (ash) から派生したシェル Debian Almquist shell(dash) へのシンボリックリンクになっており、bash で OK な( … )

    Ubuntuの/bin/shはbashではなくdash
    stealthinu
    stealthinu 2017/05/13
    同じく「(」でエラーが出るやつがでて、あれってなった。/bin/shって書いてあったのですぐ気がついたんだけど、ターゲットがCentOSだったのにこっちはUbuntuにしてたのでデフォルトがbashとdashの違いが出た。
  • シェルスクリプトの set -e は罠いっぱい

    ふみやす@シェルまおう(自称でない) FGO:838,149,789 @satoh_fumiyasu Perl では最初に use strict; use warnings すべきなように、シェルでは set -u すべき。「例外処理って何? おいしいの?」って人は set -e もしておけ。 2012-06-25 18:25:20 ふみやす@シェルまおう(自称でない) FGO:838,149,789 @satoh_fumiyasu シェルスクリプトをまともに書けない奴は、それでも書かなければならないときは、とりあえず変数展開するとき必ずダブルクォートで括れよ。$foo じゃなくて "$foo” な。あと最初に set -u; set -e でもしておきな。シェルスクリプトが駄目なんじゃなくて、書けないだけ。 2012-12-22 00:27:38

    シェルスクリプトの set -e は罠いっぱい
    stealthinu
    stealthinu 2017/04/27
    場合によってset -eは便利ということはわかった。あとset -uを使えというのも。
  • vim も zsh も捨てた - AnyType

    プロジェクト移行期に入って暇な時間ができたので、開発環境をリフレッシュすることにした。vim や zsh の設定が少しずつ壊れてきていたのだった。 .vimrc や .zshrc を眺めてみると、かつて意識が高かった頃に施した設定が何のためのものだったのか忘れてしまっていた。別人が書いたスパゲティコードのようだった。 また vim や zsh の設定を検索して理解するべきなんだろうか。ここで覚えた知識はまたすぐに忘れてしまうんじゃないだろうか。設定が洗練されるほどに、それを更新する機会もまた少なくなってくる。設定が必要になるきっかけは忘れた頃にやってくるもんだ。 やり方を根的に見直す時期なのかもしれない。新しいツールもいまなら選択できる。 まず、vim から atom に移行した。git のコミットメッセージやちょっとしたファイルの修正ではまだ vim を使うものの、細かい設定が必要にな

    vim も zsh も捨てた - AnyType
    stealthinu
    stealthinu 2017/04/20
    ああ… 気持ちはわかる。なんか設定色々したくなる時期があって最新の流れに追いつくんだけどちょっと目を話してるうちに置いてかれたり使わなくなったりでだんだん設定が腐ってくるのよね…
  • bashのそれって実はこういう書き方できるよ一覧 - Qiita

    bashで普段こう書いているけど、実はこういう書き方もあるんですよというのをまとめてみました。 ->の右側がmanに載ってるテク名です。 例えばどういったものが書けるかはガチャガチャした前回の記事で…。 `command` -> Command Substitution 書く量は増えるけど、視認性が良い(ネストした時が特に)。 尚、これは書き方が違うだけでどっちもCommand Substitutionです。

    bashのそれって実はこういう書き方できるよ一覧 - Qiita
    stealthinu
    stealthinu 2017/03/16
    コマンドを「`~`」で囲って取得するんじゃなくて「$(~)」で書く記法があるのか。
  • プログラマーの君! 騙されるな! シェルスクリプトはそう書いちゃ駄目だ!! という話 - Qiita

    記事が切っ掛けとなってお声がけを頂き、記事の増補リファイン版となる記事をSoftwareDesign 2018年1月号のシェルスクリプト特集第2章として執筆しました。リファイン版には、この記事で触れていない文法面での分かりにくさについての解説が含まれています。その文法面での分かりにくさの解説の一部に相当する記事もありますので、ぜひそちらも併せてご覧下さい。 Shell Script Advent Calendarをご覧の皆様、図々しくも5日目に続く2度目のエントリーのPiroです。 前回は自作のBashスクリプト製Twitterクライアントをネタに実装を解説しましたが、今日は他の言語で多少のプログラミング経験はあるんだけど、どうにもシェルスクリプトは苦手だ……という人のための、シェルスクリプトによるプログラミングの勘所を解説してみようと思います。多分、プログラミング入門レベルの人や上級

    プログラマーの君! 騙されるな! シェルスクリプトはそう書いちゃ駄目だ!! という話 - Qiita
    stealthinu
    stealthinu 2016/12/08
    おおお、このまとめ方は良いな。とても勉強になったわ。whileとread -rの組み合わせは自分は使ってなかったからまねしてみたい。
  • 年収1千万超えのソフトウェアスキルトップ20、第1位は?|ニフティニュース

    fossBytesに11月25日(米国時間)に掲載された記事「20 Highest Paying Software Skills That Pay Over $100,000 A Year」が、高い年収に結びつく20のソフトウェアスキルを発表した。NovelAspectの集計したデータを引用する形で紹介されている。ランキングの順位はクラウドで提供されているサービスをどれだけ使いこなせるかが高い年収に結びつきやすいことを示している。 ソフトウェアスキルトップ20は次のとおり。 1. Amazon DynamoDB 平均年収141,813米ドル(約1587万円) 2. Amazon Elastic MapReduce 平均年収136,250米ドル(約1525万円) 3. Amazon CloudFormation 平均年収132,308米ドル(約1480万円) 4. AWS ElastiCac

    年収1千万超えのソフトウェアスキルトップ20、第1位は?|ニフティニュース
    stealthinu
    stealthinu 2016/11/30
    これってどのくらいの「スキル」を想定されてるんだろう?「UNIXチョットデキル」とかの人レベルないとダメなんだろうか。
  • 25 Years of WIDE Project : Up to this point and beyond this point of Japan and the Internet

    1984年10月,東京工業大学,慶應義塾大学,東京大学のUNIXマシンが接続され,JUNETとよばれるネットワークが誕生した。JUNETは,電話網の上に構築されたネットワークであったが現在のインターネットの基礎となったネットワークである。単にサービスを提供するだけでなく,人と人のつながり,つまりコミュニティーを生み,そこから次世代の計算機環境を考えるグループが誕生した。これがWIDEプロジェクトである。ここではInternet Protocol version 6(IPv6)の開発に関わる活動をはじめとして,グローバルなインターネットに資するさまざまな研究が進められてきた。稿では,今年25年を迎えるWIDEプロジェクトの取り組みの歴史と成果,今後の展望について述べる。 日で現在のインターネットにつながる活動のスタートは,1984年10月のJUNETの始まりにさかのぼることができる1)。

    stealthinu
    stealthinu 2016/11/10
    JUNETやWIDEの初期の頃の話が読める。k14フォントってそうやって生まれたんだとか。
  • UnixBenchでいろいろベンチマーク(さくらVPS、raspberry pi 3、ローカルPC) - into the void

    使える計算機環境が増えたのでそれぞれのベンチマークをとってみる。 ベンチマークソフトはUnixBenchを使う。 さくらVPS Ubuntuをインストールしてあるので、aptでビルド環境を入れた後、UnixBenchをビルドして使う。 ビルドツールを入れる。 $ sudo apt-get update $ sudo apt-get install build-essential UnixBenchはGitHubで公開されているので取ってこれるようにgitツールも入れる。 $sudo apt-get install git git cloneする $ mkdir unixbench $ cd unixbench $ git clone https://github.com/kdlucas/byte-unixbench.git . あとはRunするだけで、必要なソースコードのビルドからベンチマ

    UnixBenchでいろいろベンチマーク(さくらVPS、raspberry pi 3、ローカルPC) - into the void
    stealthinu
    stealthinu 2016/07/06
    unixbenchのコンパイル手順とさくらVPSとMBAでのベンチマーク値
  • 「マイクロソフトを嫌っていたのではない、われわれが嫌われていたのだ」――Rubyまつもとゆきひろ氏が語る、MSの壁

    「われわれがマイクロソフトを嫌っていたのではない、マイクロソフトがわれわれを嫌っていたのだ」――日のソフトウェア技術者であり、Rubyの父とも呼ばれるまつもとゆきひろ氏は、日マイクロソフトが主催する開発者向けイベント「de:code 2016」でこう語った。一体何があったのか。 「オープンソースソフトウェア」の誕生 その歴史は、1996年までさかのぼる。当時、米Microsoftが開発していた「Internet Explorer」の機能強化により、それまで大きなシェアを獲得していたNetscape CommunicationsのWebブラウザ「Netscape」シリーズとの2大ブラウザ戦争が勃発した。その後、Internet Explorerはますます勢いを増し、この勢いに押されたNetscapeは1998年1月にNetscape Navigatorを無償化。しかしシェアの巻き返しには

    「マイクロソフトを嫌っていたのではない、われわれが嫌われていたのだ」――Rubyまつもとゆきひろ氏が語る、MSの壁
    stealthinu
    stealthinu 2016/06/09
    いいまとめだった。と思うのにブ米が結構割れててそっちのが不思議な感じがした。
  • 論文紹介: The Evolution of C Programming Practices: A Study of the Unix Operating System 1973–2015 - みずぴー日記

    ICSE 2016勉強会に参加するために論文リストを確認していたら、40年間のC言語のプラクティスの変遷を追った論文がおもしろかったので紹介する。 対象の論文 論文: The Evolution of C Programming Practices: A Study of the Unix Operating System 1973–2015 論文中で使われれたデータ: https://github.com/dspinellis/unix-history-repo 要約 過去40年間のUnixのソースコードを分析し、コーディングスタイルの変化を調査した。その結果、以下のことが分かった。 新しい言語機能は価値のあるものならば採用される レジスタ割り当てをコンパイラに任せるようになる スペースをどこにいれるかなどのコードの書き方が統一されていく 分析対象 1972年以降にリリースされた計66個

    論文紹介: The Evolution of C Programming Practices: A Study of the Unix Operating System 1973–2015 - みずぴー日記
    stealthinu
    stealthinu 2016/06/08
    興味深い研究だった。Unixのソースは歴史が長いからこういう比較研究が可能なのだな。細かいことだけどグラフのフィッティングがきもいところが何点かあった。ないほうが良いのでは。