私がよく使うコマンド集となります。 参考に頂けたら幸いです。 随時更新するかと思います。 コマンドを打つ前に覚えておく事 ①サーバに負荷がかかるコマンドを打つ場合、下記をコマンドの先頭に付けましょう $ ionice -c 2 -n 7 nice -n 19 # -c 2:ディスクI/Oの実行優先度をベストエフォートで実行 # -n 7:さらにこのコマンドの優先度を低くする # -n 19:プロセスの実行優先度を一番低くする
変数の値がヌルかなどの条件により、代入する値や表示する内容を変えることができる。 ${var:-word} varに値が入っていないならwordを値として返す ${var:=word} varに値が入っていないならwordを代入する ${var:?word} varに値が入っていないならword出力する ${var:+word} varに値が入っていたらwordを値として返す :は省略可能で省略した場合、変数の値が未設定かヌルが代入されている場合にヌル文字が 入っている変数として扱う。未定義の変数の場合は値が入っていない変数として扱う。 $ var1=abc $ echo ${var1:-xyz} #値が入っていればそのまま表示 abc $ var1= $ echo ${var1:-xyz} #値が入っていなければ-以降を表示 xyz $ echo $var1 #値は入っていないまま $
時代遅れひとりFizzBuzz祭り、今回はbashのよるシェルスクリプトだ。id:eel3:20100531:1275307408 にて/bin/shによる素のシェルスクリプトでFizzBuzzを書いたのだが、余りに遅かった。今度はbashの拡張機能を使って高速化してみようと思う。 移植性というものは厄介だ代物だ。前回のFortranは最新規格こそFortran 2008だが、実際の所Fortran 2003にフル対応できていない処理系もそれなりにあるようだ。新たにコードを書く場合でも処理系の都合を考えるとFortran 90ないし95をベースとするのが妥当だったりする。しかしFortran 90や95に従って実装しても、実際に他の処理系への移植を試みると様々な問題に遭遇するようだ。 シェルスクリプトの場合も大変だ。中で叩いているコマンドが存在しない――というケースは除外したとしても、複数
次のように、拡張子の除去やファイル名の取得などで、よく使われます。 $ mypath=/home/hoge/foo.txt $ echo ${mypath%.*} → 拡張子を除く /home/hoge/foo $ echo ${mypath##/*/} → ファイル名のみを得るfoo.txt 理解しておくと便利なシェルの制御構造 bashは単純なコマンドだけではなく制御文も受けつけます。制御構造を使うと定型的な処理を行うのが楽になります。 コマンドの繰り返し シェルで繰り返しを行うにはfor文、while文、until文などがあります。ここでは、コマンドライン上でよく利用されるfor文、while文を紹介します。 for文 for文ではリストから項目を1つずつ取り出します。取り出した値は、指定した一時変数に格納され、処理内容が実行されます。処理内容はdoとdoneの間に記述します。 $
Build your very own .bash_profile bash preview HalloweenBash — bash — 80x24 Your Configuration short hostname : current dir basename (space) user $ 1.) Drag these into (Your Configuration) above date (Day Month Date) short hostname full hostname current shell jobs terminal device (newline) user shell name time (24h HH:MM:SS) time (12h HH:MM:SS) time (12h AM PM) time (24h HH:MM) bash version long b
cles::blog 平常心是道 blogs: cles::blog NP_cles() « コピペだけでレポートを作らせる :: AWS が Memcached 互換の Amazon ElastiCache をリ... » 2011/08/24 パイプでつないだコマンドの終了ステータスをとる sh 375 1へぇ パイプでつないだコマンドの終了ステータスをとる方法が分かったのでメモ。 普通はあまり使わないテクニックですが、シェルスクリプトを組むときにパイプの前半部分の終了コードが必要になることがあります。 $ hogecmd | tee -a hoge.txt 例えば上記のようなコマンドの直後に$?で終了ステータスを取得すると、hogecmd ではなく、tee -a hoge.txt の部分の終了ステータスになってしまって、シェルスクリプトで条件分岐を書くときに困るのです。この制約を突
2024年02月 / 01月≪ 1234567891011121314151617181920212223242526272829≫03月 環境パスは何かと設定する機会が多いと思う。 各ユーザ毎に設定したい時、システムがbashであれば ~/.bashrc に export ..... などを記述することで済む。 だが、システムのユーザが多く共用したいパスの場合は、各個人が設定するのは面倒である。 そこで、システムを使うユーザ全体に対して環境パス(環境変数)を設定する。 Debianでは、以下のような順に設定ファイルを読み込む。 1./etc/profile 2./etc/bash.bashrc 3.~/.bash_profile もしなければ3-1へ 3-1.~/.bash_login もしなければ3-2へ 3-2.~/.profile 4.~/.bashrc そこで、1か2にexpo
色々と不便なので、busybox と bash を入れてみた。 ビルドは以下のようにして static で。 ダウンロードしたファイルを展開し、その直下で実施。 ○busybox $ make oldconfig $ make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm CFLAGS=--static LDFLAGS=--static ○bash $ CC=arm-none-linux-gnueabi-gcc CFLAGS=-static LDFLAGS=-static ./configure --host=arm-none-linux-gnueabi --build=i686-gnu-linux --without-bash-malloc $ make これで adb shell で入っても使い易くなった。
cles::blog 平常心是道 blogs: cles::blog NP_cles() « cles::blog 7周年 :: セキュリティ担当者のための脆弱性対応ガイド » 2011/02/28 bash の $(( )) と expr はどこが違う? sh 83 2へぇ bashでちょっとした数値の演算をするときは $(( )) か、 expr を使うのが定石と思うのですが、今日までこの2つに挙動の違いがあるということを知りませんでした。 前者は0で始まる数値を受け取ると、8進数リテラルと解釈してしまうようで、値が基数よりも大きいという「value too great for base」というエラーを吐きますが、後者にはこのような機能がないようで、0から始まる数値であっても10進数で解釈されています。もしやと思って実験してみましたが、16進数もいけるようです。例えばこんな感じ。 $
今更ながら、Emacs のシェルスクリプトモードについて、主に構文入力についてまとめてみます。 便利すぎて手に馴染みすぎて、もはや忘れていますorz でも手が覚えているので、順番に打ってまとめてみました(笑 [重要なこと]anything + auto-complete も有効にしておくと、編集が楽すぎます。 [重要なこと]anything + auto-complete も有効にしておくと、編集が楽すぎます。 大事なことなので、2 回書きました。 ちなみに、当方の環境は VineSeed Emacs 23.2, Vine Linux 5.1 Emacs 23.1 です。 シェル宣言:C-c : sh-set-shell 1行目の Shell: から決めます。 なんちゃら.shを作り始めたら、すぐに手が「C-c :」を動いてしまいます(笑 Shell (default /bin/bash)
このうち CTRL-r の後方検索はあまり馴染みがないかもしれないが, 指定したパターンをヒストリから検索してくれるもので, 希望のコマンドが出てくるまで CTRL-r を押し続けるか, より詳しくパターンを指定することで効率良くヒストリ機能を利用できる. (emacs を利用している人はどちらかというと前方検索 CTRL-s の方が馴染みがあるかもしれないが基本は同じである.) テキスト補完 ヒストリ機能は過去の入力の再利用によって作業効率を高めるのであった. しかしながら, これから新しく入力しようとしているコマンドに対しては役に立たない. そのためのサポートとしてあるのがこのテキスト補完である. 例えば,カレントディレクトリに this_is_an_example_of_long_file_name.c という長い名前の C プログラムがあったとしよう. これをコンパイルするのに
最終更新 2019-01-27 UNIX/Linux のシェル sh・bash・csh・tcsh のリダイレクトを説明する。ファイルへの出力、コマンド出力を別のコマンドの入力とする、標準入力・標準出力・標準エラー出力、パイプなどもあわせて説明する。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く