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

もうろくして、基本を忘れたのでメモメモ。 シェルがbashの場合。 /etc/profile ログインしてまず読み込む。ユーザ全体向けの環境変数を設定。 /etc/profile.d/ /etc/profileのスクリプトにより/etc/profile.d/の下にあるスクリプトが実行される。 ~/.bash_profile 個別ユーザ向けの環境変数を設定する。 ~/.bashrc ~/.bash_profileのスクリプトによって実行されるエイリアスなどシェルの基本設定。 /etc/bashrc ~/.bashrc のスクリプトによって実行される全ユーザ向けの設定。 Linux起動の仕組みを理解しよう[init/inittab] ここもしっかり理解しておきたいですね。!! わかりやすい説明に感謝です。
なお、時間設定方法や書式についてはここでは解説しません。 拙作「くろんメーカ」をお使いください。 くろんメーカ - crontab用のコマンドを自動で生成します。 そのままコピペしてお使いください。 crontab -e で直接編集しない 有名な話ですが、crontab -r とやってしまうと全てが一瞬で消え去ります。 まさにバルス! 間違えて crontab -r してしまい、crontab をふっとばしてしまった。つか、隣同士にある -e と -r で編集と削除とか、酷いよ><。。。 crontab -r を安全にする - antipop 必ずローカルファイルに設定を書いたうえで、それを反映させるようにしましょう。 $ crontab -l > ~/crontab # 現在の設定をバックアップ $ vi ~/crontab # ローカルファイルを編集 $ crontab < ~/cro
私は多くの時間をターミナルの前で過ごしていて、そのほとんどをGitコマンドのタイピングに費やしています。ワークフローを高速化して、毎日何百というキーストロークを節約するために、Bashのエイリアスと関数を使って1組のコマンドラインショートカットを作りました。 Git Bashエイリアスと関数 Gitではエイリアスを設定できますが限定的であり、節約できるキーストロークは、ほんの数ストロークです(例えば、”git checkout”の代わりに”git co”とタイプすることはできますが、まだ”git”とタイプしなければなりません)。Bashはターミナルのデフォルトのコマンドラインインタープリタなので、Bashエイリアスを設定して、さらにキーストロークを減らすこともできます。 これが、私のGit Bashエイリアスと関数のリストです。ご自分のエイリアスや関数の保存先ファイル(例えば、~/.bas
記事内に広告が含まれています。This article contains advertisements. Bashの脆弱性CVE-2014-6271をOS X で修正する方法です。詳細は以下から。 昨日明らかになったBashの脆弱性「環境変数に仕込まれたコードを実行してしまうBASHの脆弱性」は既にUbuntuなどでは修正されていますが、OS X ではまだ”command line tools“にアップデートがかからないので、self updateする方法をまとめました。 チェック方法 ターミナル.appを起動して以下の一行を実行 env x='() { :;}; echo vulnerable' bash -c "echo hello" この状態で vulnerable hello と脆弱”vulnerable”と出れば脆弱性が存在します。 HomebrewやMacPorts Homeb
naoya @naoya_ito シェルでパスワード入力プロンプトでるじゃないですか。途中まで打って間違えたとするじゃないですか。Ctrl + u 打つとリセットできるの知ってた? 俺は知ってた 2014-04-07 19:40:06
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Vimの最低限の操作 ファイルを開く $ vim path/to/file bashでTabを押すと補完が効く。 補完が効かないときは大抵タイプミスしている。 上書き保存して終了 Escを押してから:wq 保存しないで終了 Escを押してから:q! Vimのチュートリアルで勉強 $ vimtutor 画面移動 Ctrl+F/Ctrl+BでForward/Backに1画面分移動できる。 少しだけ応用編 文字の検索 /searchwordで検索、nで次へ、Nで前へ 文字の置換 :%s/from/to/gでfromに一致する文字をtoに全部置
不慣れな環境を不意にいじった時にあるあるネタ。 とりあえずー とか言って勢いで書いたsetupスクリプトを実行してみたら意外と時間かかって、 ちょっと目を離した隙にsshの接続が切れちゃいました! 。。。ありますよね。ほんとよくありますよね。 そうなる予感はあったんだ なんて後の祭りです。ふとした油断から、screenもnohupすらも使わずにやってしまって、こんなことに。 shellがHUPしなかったからプロセスは生きてるものの、ログが見れないから進行状況がわからない。 うまく行ってるのかどうかモヤモヤした気持ちのまま、プロセスが終わるのをじっと待つ。。。 まぁ実に切ないです。 こんな時、いつも思うこと。 このプロセスの出力、もっかいstdoutに繋げられたらいいのに。。。 はい。というわけでつなげましょう。 長い前座ですみません。 切り離したプロセスを用意 #!/bin/bash wh
インフラ担当の池田(@mikeda)です。 tmuxを使い初めて1年くらいになりました。 今日はtmuxの、普段のオペレーションでよく使ってる機能を紹介します。 複数サーバで同時オペレーション tmuxにはキー入力を全てのpaneで同期する機能があります。 この機能を使って複数paneでそれぞれ別のサーバにsshログインすると、 複数サーバに同じコマンドを打ったり、 内容が同じ設定ファイルであればviで同時編集したりができます。 同期する/しないはコマンドでも切り替えられますが、 set-window-option synchronize-panes on set-window-option synchronize-panes off tmux.confにショートカットを設定しておくと便利です。 bind e setw synchronize-panes on bind E setw sy
最新の類似投稿としてシェルスクリプトのコーディングルール2014も併せてどうぞ。 2014/10/09追記 ぼくがシェルスクリプトを書くときに気にしていること、過去の失敗で書き留めたことを忘れないために。 1. グローバル変数は大文字 PATH や HOME など、環境変数が大文字なので、エクスポートする変数を大文字で書くという習慣は一般的であるような気がしますが、エクスポートする変数を抱えるシェルスクリプトを作成する機会が稀なので。 グローバル変数は大文字 ローカル変数は小文字 エクスポートする変数も大文字 関数内からグローバル変数にアクセスする場合がありますが、やはり区別していると、可読性が増すような気がするのでお勧めです。 2. awk を知る Unix 上にて文書処理をするときに、数多くのフィルタコマンド(grep、cut、tr、head、sort、uniq、sed、awk、wc、
GUIに対するCUIの優位性の1つとして、作業の自動化が挙げられる。普段行う作業を1つのコマンドにまとめたり、複数のファイルに対して同じ処理を繰り返し行ったりといったことが比較的簡単なのだ。WindowsにもWSH(Windows Script Host)が用意されている。しかし、Linuxのbashスクリプトの方が簡単なのだ。 シェルスクリプトの基本はコマンドを並べること コマンドによる作業を自動化するには、その内容を記述したテキストファイルを用意すればいいのです。このテキストファイルを「シェルスクリプト」といいます。 最も簡単な自動化 最も簡単なシェルスクリプトは、コマンドをそのまま並べることです。例えば、tarコマンドでファイルのバックアップを取るとしましょう。単純にルートディレクトリから下を全部バックアップするにしても、/devや/tmpは必要ないですね。すると、
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く