Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

bashに関するtanakaBoxのブックマーク (31)

  • Amber The Programming Language

    A modern, type-safe programming language that catches bugs and errors at compile time.

    Amber The Programming Language
  • 名著「入門UNIXシェルプログラミング」の超詳細なレビューをしてみた(古い内容の訂正) - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに そりゃまあ 30 年も経てば古くなりますよ。「入門UNIXシェルプログラミング」は今もシェルスクリプトに関するオススメのとして名前が挙がる名著です。しかしこのは古いです。POSIX でシェルが標準化される以前ので、内容から判断するとおそらく 1990 年ぐらいの常識に基づいて書かれています。 古いから参考にならないと言うつもりはありません。しかしどれだけ優れたでも時間の流れには勝てません。良書であると思っているからこそ、古くなってしまった内容は訂正する必要があると考えています。なおシェルスクリプトに関する古いはこれ

    名著「入門UNIXシェルプログラミング」の超詳細なレビューをしてみた(古い内容の訂正) - Qiita
  • 実行中のシェルスクリプトをchattr(1)を使ってimmutableにするというのはどうか - その手の平は尻もつかめるさ

    [追記] 実行中のシェルスクリプトをchattr(1)を使ってimmutableにするというのはどうか - その手の平は尻もつかめるさ 調べてみたけどこれが良さそう <a href="https://stackoverflow.com/a/3399850/1921216" target="_blank" rel="noopener nofollow">https://stackoverflow.com/a/3399850/1921216</a>2022/01/02 17:02 b.hatena.ne.jp このブックマークコメントで指摘されましたが、immutableにするまでもなくこのラッパースクリプトを噛ませると良さそう。 #!/bin/bash # usage: # sh-run.sh script-you-want-to-run.sh args... set -ue file="$

    実行中のシェルスクリプトをchattr(1)を使ってimmutableにするというのはどうか - その手の平は尻もつかめるさ
  • シェルスクリプトを書くときにいつもやるやつを調べた

    bash のシェルスクリプトを書くときに、いつも脳死で以下をやっている。(同僚が整備してくれたものをコピペしている) エディタなり CI で shellcheck をまわす set -euxo pipefail と冒頭に書く こんな感じ #!/bin/bash set -euxo pipefail いつまでもコピペではさすがにアレなので、意味を調べたメモ。 shellcheck koalaman/shellcheck: ShellCheck, a static analysis tool for shell scripts イケてない書き方に警告を出してくれる それぞれの警告にはエラーコード割り振られていてとても便利 エラーコードごとに正誤例、解説が書かれているのでわかりやすい SC1000 の例 CI もそうだし、エディタのプラグインも充実 しているのでとりあえず入れておくと良い set

    シェルスクリプトを書くときにいつもやるやつを調べた
  • シェルスクリプトの処理境界が鮮明になる「名前付きブロック記法」なるものを考えてみた

    シェルスクリプトは長くなると処理の境界が不鮮明になりがち。 コメントで処理の境界を表現する工夫はよく見かけるが、もっと良い方法はないか考えてみた。 :コマンド、&&演算子、複合コマンド()や{}を組み合わせて書くと、処理の境界線がはっきりする。

    シェルスクリプトの処理境界が鮮明になる「名前付きブロック記法」なるものを考えてみた
  • Bashアプリケーションをテストする | POSTD

    以前、bashスクリプトをテストする仕事に取り組んだことがあります。最初、Pythonユニットテストを使うことにしましたが、プロジェクトに外部技術を持ち込むのは気が進みませんでした。そこで、仕方なく、悪名高い bash で書かれたテスト用フレームワークを使いました。 既存ソリューションの概要 手に入るソリューションを探してGoogle検索しましたが、選択肢はほんの少ししかありませんでした。そのうちいくつかについて、詳しく見ていきましょう。 重要になるのは、どんな基準でしょうか? 依存関係: bass のテスト用フレームワークを選ぶときに、 python 、 lua などのシステムパッケージも一緒に引きずり込むのは嫌ですね。 インストールの難しさ:継続的な開発の実装とTravis CIでの継続的な統合も仕事の1つだったので、私にとってインストールにかかる時間と手間数が妥当だということは、重要

    Bashアプリケーションをテストする | POSTD
  • 原理原則で理解するbashの仕組み - Qiita

    はじめに 以前書いたエントリー、重大な脆弱性(CVE-2017-5932)で少し話題になったbash4.4の補完機能の便利な点で、bash4.4からでないとタブの補完機能のソート処理が制御できないという問題について、ソースコードレベルで調べた結果をまとめていたのですが、bashの実装そのものを深く掘り下げ過ぎてしまい、内容が膨大になったので、何回かに分けて書こうと思います。 今回はbashが起動されてからインタラクティブモードでキーボードの入力を待ち受けるまでのお話です。普段使っているbashがどのような処理を行っているのか一緒に覗いてみませんか? 検証ソースコード Bash version 4.1.0(1) release GNU bashの生誕 bashのプロセスが起動されるのはOSへのログイン時にユーザーのログインシェルがbashに設定されている場合、あるいはログイン後に明示的にba

    原理原則で理解するbashの仕組み - Qiita
  • bashのTips色々 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    bashのTips色々 - Qiita
  • Batsを使って手軽にCLIプログラムのテストをする - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    Batsを使って手軽にCLIプログラムのテストをする - Qiita
  • Advanced Bash-Scripting Guide

    This tutorial assumes no previous knowledge of scripting or programming, yet progresses rapidly toward an intermediate/advanced level of instruction . . . all the while sneaking in little nuggets of UNIX® wisdom and lore. It serves as a textbook, a manual for self-study, and as a reference and source of knowledge on shell scripting techniques. The exercises and heavily-commented examples invite ac

  • Shell startup scripts — flowblok’s blog

    Update (2020-03-29) When I originally wrote this blog post, my intent was to describe how things worked on a typical system at the time. Unfortunately, the operation of bash startup scripts is dependent on patches added by OS distributions, compile-time options and if bash thinks it was invoked by sshd or rshd. I have no desire to add complexity to this post, so instead please read this as a rough

    tanakaBox
    tanakaBox 2013/02/23
    .zprofileに、source ~/.profileと書いてる。
  • いますぐ実践! Linuxシステム管理

    「いますぐ実践! Linux システム管理」はこちらです。 メルマガの解除、バックナンバーなども、以下からどうぞ。 https://www.usupi.org/sysad/ (まぐまぐ ID:149633) その他、作者に関するページは、概ね以下にございます。 https://www.usupi.org/kuri/ (まぐまぐ ID:126454) http://usupi.seesaa.net/ (栗日記ブログ) https://twitter.com/kuriking/ (twitter) https://facebook.com/kuriking3 (facebook) https://jp.pinterest.com/kuriking/pinterest) https://www.instagram.com/kuri_king_/ (instagram) [バックナンバーのトップへ

  • bashをzshに負けないぐらい高機能化するためのtips - 計算機と戯れる日々

    はっきり言って先方予測と複数行編集は無理。だけど代替手段がありそうだ。 ということで、bashでどこまでzshに近づけるかチャレンジしてみる。 使用環境は環境はubuntu8.10 以下を.bashrcに追加 if [ -f /etc/bash_completion ]; then . /etc/bash_completion fi function share_history { history -a; history -c; history -r; } PROMPT_COMMAND='share_history' shopt -u histappend export HISTTIMEFORMAT="%y/%m/%d %H:%M:%S: " export HISTSIZE=300000 function fceditor () { tt=/tmp/$$.sh; cat $1 | ( re

    bashをzshに負けないぐらい高機能化するためのtips - 計算機と戯れる日々
    tanakaBox
    tanakaBox 2009/12/18
    まぁまぁ便利になる。
  • Linux Bash Shell Scripting Tutorial Wiki

    Linux Bash Shell Scripting Tutorial Written by Vivek Gite. Copyright 1999-2017 Vivek Gite and its contributors. Some rights reserved. Chapter 1: Quick Introduction to Linux What Is Linux? Who created Linux? Where can I download Linux? How do I Install Linux? Linux usage in everyday life What is Linux Kernel? What is Linux Shell? Unix philosophy But how do you use the shell? What is a Shell Script

    tanakaBox
    tanakaBox 2009/09/29
    チュートリアル形式。大体理解してるつもりだが、分かりやすそう。
  • 作例から学ぶスクリプト作成のコツ [6/27更新] | OSDN Magazine

    面倒な作業を繰り返し行っていることに気が付いたとき、多くのユーザーはその作業を肩代わりしてくれるツールがないか探すことだろう。しかし、出来合いのツールが自分の要求に完全にマッチするとは限らない。そこでそのような場合は、OSSの精神に則り「無いものは自作する」というのはどうだろうか。プログラミングの経験がなくても、シェルスクリプトなら普段利用しているコマンドを組み合わせて比較的簡単に作ることができる。あるいは、これを機に何かスクリプト言語を学んでみるのよいだろう。以下で紹介する記事は、あなたがスクリプトを作成するときに、有用なヒントを与えてくれるはずだ。 Pythonを用いたCGIスクリプティング入門 2008年06月06日 Web開発者にCommon Gateway Interface(CGI)スクリプティングについての質問をすると、おそらく返ってくる大多数の回答は「Perlを使っています

    作例から学ぶスクリプト作成のコツ [6/27更新] | OSDN Magazine
    tanakaBox
    tanakaBox 2008/01/29
    小気味よいスクリプトいっぱい。
  • bashにて複数端末間でコマンド履歴(history)を共有する方法 (iandeth.)

    Tera Term 等の端末を複数同時に立ち上げて作業したり、screenにて複数の仮想端末を同時並行で操作する際、コマンド実行履歴が端末間で共有できなくて困る事が多々あります。「さっきのfindコマンドをもう一度... 引数どう書くんだっけなぁ... あ、確かコマンド履歴にあったはずだなぁ... ちっ、それはあっちの端末の履歴だったか」みたいな。zshには端末間のコマンド履歴を常に同期できる'SHARE_HISTORY' なるオプション(*1)があって素敵なのですが、同じことを bash で実現する方法を調べたのでご紹介。 (*1) zshの同機能について詳しくはITmedia記事 "豪傑の三種の神器【後編】" を参照の事 不具合) 通常設定のbashで困る事 1. 複数端末間でコマンド履歴の共有ができない 同時に立ち上げている端末間で履歴の共有ができなくて不便に感じることがある。 2.

    tanakaBox
    tanakaBox 2008/01/22
    bashでzshライクな履歴共有
  • エスケープシーケンスについて

    注) ESC[mと数値を省略するとESC[0mと同じ意味になる。(デフォルト値) ESC[a;b;...;xmとして複数指定が可能。 赤い文字を点滅させる場合、ESC[5;31mとする。 ESC[0mはメーカーの規定した初期値。 ESC[1mは強調でハイライトもしくは太字になる。 ESC[5mは点滅すなわちブリンクとなる。 ESC[7mはリバースすなわち反転となる。 ESC[8mは非表示で文字を見せないため、シークレットともいう。 色は、黄色を黄、マゼンダを紫、水色を水と表記した。 さらに、~地とすることによって、背景が~色であることを示している。 ③カーソル移動 a.移動, ESC[Y;XH または ESC[Y;Xf  カーソルをY行目のX桁目に移動する。 b.上, ESC[YA  カーソルをY行上へ移動する。 c.下, ESC[YB  カーソルをY行下へ移動する。 d.右, ESC[X

    tanakaBox
    tanakaBox 2007/07/27
    VT-100エスケープシーケンスが参考になります。
  • Open Tech Press | ハウツー:Vimをbash用IDEとして利用する

    Vimはそのままでもシェルプログラミング用の非常に優れたエディタだが、ほんの少し調整するだけで、スクリプトを書くための格的なIDEに変身もする。Vimの調整は自分で行なうことも可能だが、Fritz Mehner氏によるBash Supportプラグインをインストールすれば手軽に行なうことができる。 Bash Supportをインストールするには、zipアーカイブをダウンロードして ~/.vimディレクトリにコピーし、アーカイブを展開する。また、~/.vimrcファイルの中にいくつかの個人情報を付け加えておくと便利なので、~/.vimrcファイルを開いて以下のような3行を追加しよう。 let g:BASH_AuthorName = 'Your Name' let g:BASH_Email = 'my@email.com' let g:BASH_Company = 'Company Name

    Open Tech Press | ハウツー:Vimをbash用IDEとして利用する
    tanakaBox
    tanakaBox 2007/06/19
    便利?
  • Geekなぺーじ:10のUNIX小技

    IBMのサイトで「Learn 10 good UNIX usage habits」という記事が発表されていました。 面白かったので要約してみました。 変な部分があるかも知れないので詳細は原文をご覧下さい。 原文とは一部異なります。 ページスペースなどの関係でコマンド引数などを短く省略しています。 原文のサンプルコマンドが間違っていたりするので、修正している部分もあります。 原文を修正しているのは、tar.gzをzオプションを使わないでxfvしようとしているところと、xargsにlsではなくls -lを渡している部分です。 あと、説明文を短くしてしまっています。 1. ディレクトリの作成 良く使うコマンドの一つであるmkdirですが、面倒臭い使い方をしていませんか? 悪い例 ~/ $ mkdir a ~/ $ cd a ~/a $ mkdir b ~/a $ cd b ~/a/b/ $ m

    tanakaBox
    tanakaBox 2007/04/24
    小技。
  • 連載記事 「ステップ・バイ・ステップ・シェルスクリプト」

    2つの顔を持つソフトウェア:シェル ステップ・バイ・ステップ・シェルスクリプト(1) この連載では、シェルスクリプトで実用的なプログラムを組むことを目標にして、シェルの基的な知識を説明していきます

    tanakaBox
    tanakaBox 2007/03/28
    参考になる。