Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
注意このドキュメントは、すでにshまたはbashでそれなりにスクリプトを書いている人向けに書かれています。自分が対象読者でないと思ったら、すっぱりと読むのをあきらめてください。時間の無駄です。 このドキュメントではBash version 3.x 系(3.1以降) 4.x 系を対象にしています。2.x 系だと微妙に文法が違うところがあるので注意してください。ちなみに 4.x 系だと、変態なことをしなくても同じことができたり(連想配列が使えるようになったはず)、逆にもっと変態なことができたりします。(2013/09/11 追記) 書きかけで放置している間にメイン環境が 4.x になりました。3.x と 4.x でどこが違うかもう覚えてないし調べるのも面倒なので 4.x 系前提でいきます。 このドキュメントは、主にPOSIXなshにはないBashの機能を使い倒すことを目的としています。ここにあ
.bash_profile はログイン時にのみ実行されます。具体的な用途は: 環境変数を設定する (export する変数) 環境変数はプロセス間で勝手に受け継がれるのでログイン時のみ設定すれば十分です。 .bashrc は対話モードの bash を起動する時に毎回実行されます。具体的な用途は: 環境変数でない変数を設定する (export しない変数) エイリアスを定義する シェル関数を定義する コマンドライン補完の設定をする これらは bash を起動する度に毎回設定する必要があるものです。 その他 .bash_profile ? .bashrc ? いろいろあるけどこいつらなにもの? を参照。もっと突き詰めたい人は Linux: .bashrcと.bash_profileの違いを今度こそ理解する。 Bash 以外のシェルを使用しない人は .bash_profile と .bashrc
インストール記事はすでに沢山あるので、使用中に困ったことと、インストール直後のカスタマイズに焦点を絞って記事にする。 インストール手順 Qiita上の下記記事が丁寧でわかりやすかった。 http://qiita.com/Aruneko/items/c79810b0b015bebf30bb 要は次の3ステップを実行すれば良い。 1. 開発者モードを有効化する 2. Windows Subsystem for Linux(Beta) を有効化して再起動する 3. コマンドプロンプトを開いて bash と打ち込み、ユーザ名とパスワードを入力する 日本語文字化け 上記の bash の打ち込みの後に、ダウンロードとファイル展開が始まるのだが、その時点で画面の日本語が激しく文字化けした。途方にくれて管理者コマンドプロンプトから lxrun /uninstall /full で一旦削除し、lxrun /
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? シェルスクリプトは、Unix 系環境で仕事をするエンジニアなら誰もが一度は書くであろうにもかかわらず、書き方や特性を熟知している人が少ない言語です。この記事は、シェルスクリプトを書くときに罠を踏まないようにするために最低限あなたが気を付けるべき tips 集です。「たかがシェルスクリプト」とは思わないでください。生半可に書かれたシェルスクリプトはあなたの (チームの) 生産性をかえって低下させます。 Shebang に bash を明示しろ Bash でしか使えない機能のことを俗に Bashism と言います。Bashism はもちろん
GPLv3: free as in freedom documented on the ShellCheck Wiki available on GitHub (as is this website) already packaged for your distro or package manager supported as an integrated linter in major editors available in CodeClimate, Codacy and CodeFactor to auto-check your GitHub repo written in Haskell, if you're into that sort of thing.
bash の解説なんて、ネット上には結構あったりするのだが、これをわざわざ公開しようというのは、次の理由による。 某ソフトハウスでのUNIX講座用に書いてしまったから。 ネット上にある bash 解説だと、表面的な構文解説程度であり、きっちりスクリプト言語として使い倒すレベルの解説はあまりない。まあ、プログラミング言語として凝ったサンプルもやってみようじゃないの、というノリで割とディープに解説する。 アクセスを増やすための人気取り(苦笑)。 まあ、そんな不純な目的による bash 解説である。とはいえ、日常的に使い慣れている bash であっても、「え、こんな使い方があったの!?」という発見もあることであろう。苦笑しながらでも読んでくれたまえ。だから、初歩的なリダイレクションなんかは解説しないからそのつもりで。 ちなみに参考書としたのはオライリー・ジャパン刊「入門 bash 第2版」である
なぜStackOverflowか Upvote/Downvoteの仕組みにより、自然とベストプラクティスが蓄積されている 世界中のプログラマの目に晒されているため質が高い 答えが幾つか出されているため視野が広がる・一つの手法に固執することがない 英語の勉強にもなる StackOverflowのおすすめの見方 質問はまずしっかり理解する それに対する答えを比較してみて、なぜそう動くのかを考える コメント欄はFont Size的には小さいが、かなり濃いコメントが書かれていることが多いので暇なら目を通す 10. Looping through the content of a file in Bash? ファイルの内容をループで取得するためのベストプラクティス。 (2015/10/23 : 本節修正しました。@heliac2000 さん、@kawazさん、ありがとうございました。詳しくは本記事コ
ログファイルを空にしたいときなど、いつも忘れるので・・・。 : > file % : > file これが一番シンプルですね。 : という区切りのコマンドがあり、それを file にリダイレクトしてあげるとファイルが空になります。man bash には以下のように記述されています。おそらくzshでは一番シンプルです。 ・・・ A : separates the event specification from the word designator. ・・・ ・ ・ ・ SHELL BUILTIN COMMANDS Unless otherwise noted, each builtin command documented in this section as accepting options preceded by - accepts -- to signify the end of
Mac LeopardにFlex SDKを入れた時に環境変数のPATHをいじったけど、その時ちゃんと設定してないはずのMacPorts用のPATHも設定されてる事に気がつきました。 でもFlex SDK用のPATHを設定したら、MacPorts用の設定が消えてしまい、不思議に思ったので調べてみました。 結論 Flex SDK用のPATHを記述するために ~/.bash_profile を作成した事で、MacPortsのインストーラーが用意した ~/.profile が読み込まれなくなった事が原因でした。 MacPortsはインストール後に自分でPATHに追加する必要があると説明する所もありましたが、恐らくもともと ~/.bash_profile か ~/.bash_login を作ってある環境だったからかも知れません。 もしくは、昔のMacPortsではそうだったのかも。 読み込み順序 U
bashが起動する際、設定ファイルがどのような順番で読み込まれるかを調べてみた bashのソースコードには maybe_execute_file (SYS_PROFILE, 1); if (act_like_sh) /* sh */ maybe_execute_file ("~/.profile", 1); else if ( (maybe_execute_file ("~/.bash_profile", 1) == 0) && (maybe_execute_file ("~/.bash_login", 1) == 0)) /* bash */ maybe_execute_file ("~/.profile", 1); と書かれている つまり、 /etc/profile を読み込む ↓ ~/.bash_profile と ~/.bash_login を読み込む (もし、どちらのファイルも無
.bashrcや.bash_profileの読み込み順序がいまいち覚えられないので、まとめてみました。 bash起動時に読み込むファイル シェルを起動する度に、環境変数やエイリアス、関数を定義するのは非効率で面倒です。 そのため、それらの定義を自動的に行うための設定ファイルが用意されています。 bashの設定ファイルには、下記のものがあります。 /etc/profile:ログイン時に実行され、全ユーザーから参照される .bash_profile:ログイン時に実行される .bash_login:~/.bash_profileがない場合、ログイン時に実行される .profile:~/.bash_profile、~/.bash_loginがない場合ログイン時に実行される .bashrc:bash起動時に実行される .bash_logout:ログアウト時に実行される /etcディレクトリ以下の設定
ユーザーの入力をカーネルに伝えまたその逆を行う、いわば両者の橋渡しを行うプログラムをシェルといいます。ユーザーから見てカーネルを包んでいる貝殻(shell)のように見えることからそう名付けられました。 シェルには多くの種類がありますが、Linuxにおけるデファクトスタンダードになっているbashについてどんな機能があるかを見ていきます。 補完 まず知っておきたい基本的な機能が補完です。コマンドプロンプトでTabキーを押すことで、コマンド名やファイル名を補完することが出来ます。 $ ls abc1 abc2 def $ cat a[Tab] $ cat abc 確定できる部分までが補完されました。ここからさらに2回Tabキーを叩くと候補が表示されます。 $ cat abc[Tab][Tab] abc1 abc2 リダイレクト・パイプ リダイレクトとパイプという機能を理解するにはプロセスがどの
ユーザーのホームディレクトリには、.bash_profileや.bashrcといったファイルがある。どんなファイルがあるかは、-aオプション付きでlsコマンドを実行すると表示される。 $ ls -a ./ .bash_history .bashrc .emacs .rpmmacros rpm/ ../ .bash_logout .canna .emacs-color.el .screenrc tmp/ .Xdefaults .bash_profile .cshrc .emacs.el .xemacs.el この中の.bash_profileと.bashrcは、共にログインしたときに実行される設定用のシェルスクリプトだが、両者にはもちろん違いがある。 .bash_profileは、ログイン時だけに
条件1. /bin/shの実体がbashのディストリビューション RHEL CentOS Scientific Linux Fedora Amazon Linux openSUSE Arch Linux (自ら設定した場合: Debian, Ubuntu) 条件2. 動作環境 CGI (レンタルサーバでありがちなCGIモードのPHP等も含む) Passenger(Ruby) 条件3. プログラム内容 Passengerは全死亡 *1 systemや `command`、 '| /usr/lib/sendmail' などで外部コマンド実行 *2 PHPのmailやmb_send_mail、その他フレームワーク等を介したメール送信 *3 以下は条件1が不要 明示的にbashを呼ぶ 先頭で #!/bin/bash や #!/usr/bin/env bash しているプログラムを実行 (rbenv
Bashのヒストリをダイエットしました。ダイエットして減った分、よりたくさんのコマンド履歴が確保出来ました。 履歴を確保するとタイプ量が減って仕事早くなるッス。 重複する履歴を保存しない 重複するコマンドは最新一件に限定する。重複は保存しない ~/.bashrc #重複履歴を無視 export HISTCONTROL=ignoredups Ubuntuなら最初から設定してあったように思える。 空白から始めたコマンドを保存しない 履歴に保存したくないコマンドは空白から記述する ~/.bashrc #空白から始めたコマンドを無視 export HISTCONTROL=ignorespace コマンド例 $ □cat /etc/passwd|grep takuya #↑空白入れることで保存されない。 空白を履歴に追記しない、重複履歴を保存しない ignorespaceとignoredupsを同時
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く