Bash の勉強を始めた頃、頭がごちゃごちゃになって調べたこと、わかるとほんのちょっとうれしくなったことを5個ピックアップしてみました。 - 目次 - aliassudo='sudo ' と aliassudo='sudo -E ' bash -c /dev/null grep -rl xargs で任意の位置に引数を展開する - 説明 - 1. aliassudo='sudo ' alias コマンドを使うと、長いコマンドを別名で登録できて、とても便利です。 でもそのままsudo と組み合わせると、エラーになります。 例えば、la という登録名で、ls -a を実行させると、sudo la でエラーになります。 bash のマニュアルには、以下のように書かれています。 alias [-p] [name[=value] ...] value の末尾に空白があると、エイリアスが展開

Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに シェルスクリプトで二重起動防止やロックをする方法を検索すると、いろいろな方法や書き方が見つかりますが、どれを使えばよいのか、本当に正しく動くのか、不安になりますよね? ディレクトリ (mkdir) やシンボリックリンク (ln) を使った独自実装の例も見かけますが、エラー発生時や予期せぬ電源断、CTRL+C で止めたときなどでも問題は発生しないのでしょうか? まず、ディレクトリやシンボリックリンクを使った独自実装はしない。これを肝に銘じてください。シェルスクリプトでのロック管理はとても難しく、一般的な排他制御の知識に加えて、シ

を設定してから再度試した所 bar が表示された。backupcopy は編集中のファイルによって自動で判別する auto がデフォルトになっている為、試す際には明示的に yes に設定しないといけない。 bash の実装確認 evalstring.c の parse_and_execute でコマンドが処理されており、input.c の with_input_from_buffered_stream で読み込みの準備が行われている。バッファの読み込みの本体は y.tab.c つまりパーサから直接呼ばれており、このパーサは fgets(3) で読み込まれつつ実行される為、一括でファイルが読み込まれている訳ではない。 while/do でループ実行した際に、ファイルを書き換えられたら戻り先はどうなるか、についてはスクリプトはバッファ付きで読み込まれており、そのバッファがファイルシステムから読

はじめに チーム開発でシェルスクリプト(特にBash Script)を書く際に守るべきルールをまとめます。 シェルスクリプトのコードレビューをする際等にお役立てください。 スクリプト名 -区切りの小文字英数字(いわゆるkebab-case)をつける。拡張子は.sh. これは特に理由があるわけではないので_区切りでもよいし、チーム内にzshやfish等の他Shell愛好家がいる場合は拡張子は.bashでも良い。どちらにせよチーム内では統一しておかないと混乱の元となる。 改行コード LFを使用する。CRLFだと動作しないので書く際に間違うことはないが、Windows上のgitのautocrlf設定によってはご丁寧にCRLFでチェックアウトされてしまう。 避けるためにはgit config --global core.autocrlf inputとするか、.gitattributesをレポジトリ

rm -rf /やったことある人。 私はないです。 以下はAndreas Müller(Twitter /GitHub / LinkedIn / Medium )による記事、9Evil Bash Commands Explainedの日本語訳です。 9Evil Bash Commands Explained 初めてターミナルを使って、そしてそれを理解したときのことを覚えています。 あらゆるファイルにアクセスし、全てのプログラムを実行し、黒い画面に何かを入力するだけでシステムの全てを完全に掌握できることに気がついた、あの感覚。 そしてもちろん、致命的ミスを犯して全てを失った、あのときの恐怖も。 私は本当はシステム管理者ではありませんが、長年にわたってLinux/UNIXベースのシステムで作業してきたので、コマンドを実行しようとしてEnterキーを打つことを躊躇う状況に何度も遭遇しまし

Opensource.comは6月14日(米国時間)、「Bash tips for everyday at the commandline|Opensource.com」において、知っていると、日常の活動においてキーストロークを減らすことができる隠し機能やショートカットを紹介した。 紹介されているテクニックは次のとおり。 複数のターミナルでbashを使っている場合、そのすべてのコマンド履歴を保存するようにする設定 shopt -s histappend 直前のコマンドを先頭にsudoを追加して実行する。管理者権限が必要なコマンドを間違ってsudoを指定せずに実行した場合に利用するsudo !! 直前のコマンドの引数を!*に展開して実行する コマンド !* コマンド履歴から該当しそうなものを探す方法 history | grep キーワード インタラクティブにコマンド履歴検索を実行 Ct

こんにちは、hachi8833です。社内Slackで見かけたmorimorihogeさんの以下の書き込みで目から鱗が落ちました。 ~/.bashrcで何かを出力してしまうと、rsyncなどのsshパイプで問題が生じることがあるそうです。 参考: 知らないとrsyncでもハマるシェル初期化 - Qiita これをきっかけに、できるかぎり一次情報を元になるべく一般的になるようにまとめてみました。 シェルスクリプト(.bashrcや.bash_profileなども含む)はあまりに自由に書けてしまい、LinuxディストリビューションやmacOSによって作法がまちまちだったりするので、外してはいけないポイントがどこかを知りたかったのでした。 対象はbashとsh(Bourne Shell)に限定します。また、デスクトップGUIの設定ファイルについては最小限にとどめます。 bashのmanページ 元記

BashはLinuxやUnixでもっとも広く使われているシェル、あるいはコマンド言語の1つです。多くのLinuxディストリビューションをはじめmacOS、Windows 10のLinux互換機能であるWindows Subsystem forLinuxなどではBashが標準のシェルとして設定されています。 GNUプロジェクトは、そのBash(Bourne Again Shell)の最新バージョンとなるBash 5.0のリリースをメーリングリストで発表しました。 Bash 4.0のリリースは2009年2月のことでしたから、約10年ぶりのメジャーバージョンアップ。2016年9月に登場したBash 4.4からは約2年4カ月ぶりとなります。 バグフィクスと新機能 Bash 5.0の大きな変更点は、おもに bash 4.4で発見された大きなバグの修正といくつかの新機能の追加だと説明されています。

はじめにGoogleさんがShellスタイルガイドを共有していたので、いくつか気になった点をピックアップしました。 自分のShellスタイルはかなり我流なので、自省の意味も込めてコメントも併記します。Googleスタイルガイドの元ネタ (Python/C++/Java/Rとかだけでなくdocumentガイドなど色々あります) https://github.com/google/styleguide Shellスタイルガイド (今回はこちら) http://google.github.io/styleguide/shell.xml本当は人間がチェックするのではなくcpplintのためXML定義なのかもですが、気にしない気にしない。 (見たところcpplintはc++だけだと思ってます) commitフックでshell系のlint走らせろっていうのが今風なのかもしれませんが、キニシナイキ

自分用にメモしておく コマンド実行 CMD1; CMD2, CMD1 && CMD2 ;はCMD1の結果に関わらずCMD2も実行される &&はCMD1の結果が正常な場合のみCMD2が実行される CMD1 || CMD2 - 失敗時に後続コマンドを実行する CMD || printf "%b" "MSG"でエラーメッセージを表示する エラーメッセージ表示後exit 1したい場合 = CMD || { printf "%b" "FAILED.\n" ; exit 1 } CMD || printf "%b" "FAILED.\n" ; exit 1と波括弧無しで書くと期待通り動作しない(CMDが成功時もexit 1してしまう) CMD & - バックグラウンド実行 CMD &で[1] 4592のようにジョブ番号とプロセスIDが表示される killしたければkill %ジョブ番号 か kill

正式リリースされたWindows 10Creators Updateで、Bash onWindowsはどう進化するのか? その強化点と新機能を紹介する。 ← 前回 連載 INDEX 2016年8月にリリースされたWindows 10 Anniversary Update(ビルド14393)に続く、大型アップデートのWindows 10Creators Updateのリリースが2017年春ごろとうわさされている。Anniversary Update登場以降、Windows 10の新機能をいち早く試せるInsider Previewで小規模なリリースは継続されてきており、Bash on Ubuntu onWindows(以下BoW)も同様に機能強化が行われてきている。本稿では、Anniversary Update以降で追加され、Creators Update正式リリース版で使用可能とな
Windows Subsystem forLinuxの具体的な話をする前に、Linux系での表記などについて簡単に解説しておく。Windows系では、特殊フォルダを含めて、階層化ディレクトリを「フォルダ」と表現するようになっているためこれに従うが、Linux系では「ディレクトリ」と呼ぶことが多いため、Linux側での表現は「ディレクトリ」する。 意味的には同じことになるが、WSL内とWindows側では同じ場所でもパスが違うため、用語を使い分ける。WSL側では、たとえば、ユーザー、shiodaのホームディレクトリは「/home/shioda」となるが、これはWindows側では「%Userprofile%\appdata\local\lxss\home」フォルダとなる。また、このユーザーディレクトリは、Linuxでは、「~」で表現できる。 たとえば、ユーザーフォルダの下にある「abc.t

UNIXやMacを使用しているユーザーならば誰でも一度はシェルスクリプトを作成した経験があると思います。どんな環境でも使い回せるポータビリティの高さが魅力ですが、プログラミング言語としてみると独特な部分が多く、なんとなく苦手意識を持っている方も多いかもしれません。本日紹介する「Bash Infinity Framework」はそんなシェルスクリプトの概念を完全に変えてしまうBash用のフレームワークです。 モジュラーかつ軽量で、C#やJava、JavaScriptといった他の言語のコンセプトを取り入れ、プラグ&プレイで必要な機能だけを追加していける特徴を持っています。 主な特徴は以下の通りです: 自動エラーハンドリング 名前付きパラメータ($1、$2ではなくて) 配列とマップをパラメータとして引き渡せる try-catchの実装 独自例外のthrow キーワードのインポート 出力を改善す

備忘録を兼ねて、ブログを書いておきます。 きっかけは、昨日のはてブでホットエントリに上がっていた下の記事です。 元記事から、GitHub のソースコードにたどりついて、少しだけ内部のコードを読みました。 https://github.com/niieani/bash-oo-framework どうも、Pure Bash で書かれているようですね。 OO という名前が現すように、オブジェクト指向で書けるように型システムをも実装しているようです。と、これは記事でも紹介されていましたが。 さて、この記事を読む数カ月前に、私は Bash onRails なるものを作っていた人を知ったので、それを想起しました。 Bash onRails は @emasaka さんが作ったRails モドキで、「Bash の機能だけでいかにRuby onRails っぽいことができるか」を実践したパロディ企
Bash onWindows 知っている人は知っていますが、Windows 10に今夏のアップデートで Bash が入るなんていうシェル芸人を目指す人間としては聞き逃せないニュースが入ってきました。 少し出遅れましたが、探検してみたいと思います。 インストール Insider Previewを有効にしてもなかなか落ちてこないという焦らしプレイ以外には特に困った点もないです。 ここで丁寧に解説するようなものでもないので他記事のリンクで割愛します。Windows 10のbash onWindowsを試す Bash onWindows 10を使い始めてみた。 ( @kmry2045 ) 初回起動の使用許諾的なところまでは進んでから探検を開始します。 (備考) 上で紹介した記事はWindows 10build 14316 ベースで書かれています。 この記事を書き始めてから妙にPCが重か

Build に合わせて情報が出てきたものですが。 われらが、ぺんぺん師匠がまとめてくださっています。ぺんぺん師匠、まじ、ぺんぺん。Windows で Ubuntu バイナリ(bash)が動作することの概略Windows 10でUbuntuのBashが動作可能に? [速報]マイクロソフト、BashシェルをWindowsに搭載。Emacs、VT100などサポート。Build 2016 詳細はこちら。 CommandLine-Documentation BASH Running in Ubuntu onWindows Run Bash on Ubuntu onWindows Ubuntu onWindows — The Ubuntu Userspace forWindows Developers Developers can run Bash Shell and user-mode
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く