タグ

*nixとshellに関するpipeheadのブックマーク (8)

  • シェルスクリプトを実行するときにピリオド(ドット)をつける理由

    シェルスクリプトを実行するときにピリオド(ドット)をつける理由を紹介します。 1.はじめに 次のようなスクリプト(foo.sh)があるとします。 #!/bin/bash foo=123 echo $foo このスクリプトを実行するとき、コマンドラインに次のように先頭にピリオド(ドット)を単独で入力します。 [hoge@server123 ~]$ . ./foo.sh なぜ先頭にピリオドを入力するのか、意味が分かりません。 2.先頭に入力したピリオド(ドット)の意味 先頭のピリオドをつけずにスクリプトを実行した場合、新たなシェルが起動し、そこからこのスクリプトが起動され、スクリプトが終了すると起動した新たなシェルも終了します。 が、ドットコマンドでスクリプトを起動すれば、新たなシェルは起動せずカレントシェルからこのスクリプトを起動します。 何が便利かというと、たとえばスクリプトで設定した変数

    シェルスクリプトを実行するときにピリオド(ドット)をつける理由
    pipehead
    pipehead 2015/10/19
    > ピリオドの代わりにsourceでも同じ効果があるようです。
  • bash(csh)のhashとか言う、気づかないけど便利な機能 - それマグで!

    hashってなに? 起動したコマンドが、何処にあったのか、2回目以降のPATH検索を省略する機能です。 PATH環境変数を変えた後、コマンド行方不明⇛hashによるキャッシュ PATHをいじった後に、コマンドの場所変更が、反映されないことってあるよね #bashの場所の確認 takuya$ which bash /usr/local/bin/bash # 消してやる takuya$ rm /usr/local/bin/bash #消しても /bin/bashにあることを確認 takuya$ which bash /bin/bash #PATH=/bin: あるから bashで起動するよね! takuya$ bash -bash: /usr/local/bin/bash: No such file or directory ## あれれ?おかしいなー bashを削除しても、/bin/bash

    bash(csh)のhashとか言う、気づかないけど便利な機能 - それマグで!
    pipehead
    pipehead 2015/01/24
    > PATHをいじった後に、コマンドの場所変更が、反映されないことってあるよね
  • aliasとシェル関数の使い分け - ももいろテクノロジー

    aliasとシェル関数の違いについてのメモ。 たとえばgrepコマンドを常にロケール非依存にて扱い処理を高速化するにあたり、一見、次の二つの定義は同等に見える。 alias grep='LC_ALL=C grep --color=auto' grep() { LC_ALL=C command grep --color=auto "$@" } しかし、これらは実際は異なる。 具体的には、aliasはインタラクティブモードの場合のみ機能し、シェル関数は非インタラクティブモードにおいても参照される。 また、同名のシェル関数とエイリアスが存在する場合、まずエイリアスが展開された後、シェル関数が実行される。 したがって、常にコマンドそのものを置き換えたい場合はシェル関数、端末から実行した場合のみ置き換えたい場合はaliasを使うことが好ましい。 たとえば、grepにおいてロケールは常に無視したい、色

    aliasとシェル関数の使い分け - ももいろテクノロジー
    pipehead
    pipehead 2014/12/13
    > 常にコマンドそのものを置き換えたい場合はシェル関数、端末から実行した場合のみ置き換えたい場合はaliasを使うことが好ましい。
  • source または .(ドット)コマンド - ぷ~ろぐ

    ぐはああ、 /com/android/sdklib/ISdkLog=コマンドプロンプトでeclipse -clean (立場が変わっても…) ぐはああ、 /com/android/sdklib/ISdkLog=コマンドプロンプトでeclipse -clean (立場が変わっても…) ◎聖闘士星矢Ω第1話星矢が救った命!甦れ聖闘... (ぺろぺろキャンディー) 静岡:淡島リゾートとシダックスと”てんかん発作”の彼女 (脳挫傷による見えない障害と闘いながら) 複数のボタンの動作を設定する (初心者の初心者のためのAndroidアプリ開発!) オープンソースナレッジベース : Opensource Knowlege Base (オープンソースナレッジベース : Opensource Knowlege Base) 川崎:相変わらずの“勝負弱さ”/磐田戦から (サッカーはエンターテインメントだ!)

    source または .(ドット)コマンド - ぷ~ろぐ
  • Linux上でシェルが実行される仕組みを,体系的に理解しよう (bash 中級者への道) - 主に言語とシステム開発に関して

    バッチのまとめTOPへ bash 初級者は,簡単なコマンドが並んだだけの小さなスクリプトを書くことができる。 しかしシェルの動作原理をよく理解しておらず, 一歩進んだことをやろうとするとつまずく。 シェルスクリプトの中級者になるためには, Linux上でシェルが動作する仕組みを体系的に理解しておく必要がある。 (1) シェルとコマンドについて (1−1) シェルとは,OSに命令を出すために,OSを包んでいる外膜である。 (1−2) Linuxログイン時には,そのユーザ用のログインシェルが起動する。 (1−3) ユーザが打ち込んだコマンドは,実行前に,bashによって整形される。 (1−4) コマンドの先頭の文字列は,実行可能ファイルか,またはbashの組み込みコマンドである。 (2) コマンド間の連携について (2−1) コマンド呼び出しとは,サブプロセスの生成である。 (2−2) 親プロ

    Linux上でシェルが実行される仕組みを,体系的に理解しよう (bash 中級者への道) - 主に言語とシステム開発に関して
    pipehead
    pipehead 2011/06/17
    シェルとコマンドについて, コマンド間の連携について, シェルと端末について
  • 【linux】bashコマンドライン編集 at softelメモ

    sshでログインしていろいろと操作をする人は、コマンドラインでTABキーを押すとコマンドやファイル名が補完されるのを知っていると思う。 TABキーでの補完は基中の基。コマンドラインはもっと高機能。 他にもカーソル移動、左右方向への削除、ワード単位の移動&削除、過去のコマンド検索などが可能。 CTRL-b もしくは ← 後方(左方)に1文字分移動する CTRL-f もしくは → 前方(右方)に1文字分移動する CTRL-h もしくは DEL 後方(左方)に1文字削除する CTRL-d 前方(右方)に1文字削除する CTRL-a 行の先頭に移動する CTRL-e 行の最後に移動する CTRL-k 行の最後まで削除する ESC b 後方(左方)に1ワード移動する ESC f 前方(右方)に1ワード移動する ESC DEL 後方(左方)に1ワード削除する ESC CTRL-h 後方(左方)に1

    【linux】bashコマンドライン編集 at softelメモ
    pipehead
    pipehead 2009/10/31
    キーバインド
  • Hack 1. cd コマンド用にベースディレクトリを定義する CDPATH を使用する - bobchinの日記

    何度も特定の親ディレクトリのサブディレクトリへ cd を実行している場合、 その親ディレクトリに対して CDPATH をセットすることができます。 以下に説明するように親ディレクトリを指定せずにサブディレクトリへの cd を実行できます。 [ramesh@dev-db ~]# pwd /home/ramesh [ramesh@dev-db ~]# cd mail -bash: cd: mail: No such file or directory [Note: これは現在のディレクトリ下に mail ディレクトリがあるかを検索しています] [ramesh@dev-db ~]# export CDPATH=/etc [ramesh@dev-db ~]# cd mail /etc/mail [Note: これは /etc ディレクトリしたに mail があるかを検索しています。現在のディレクト

    Hack 1. cd コマンド用にベースディレクトリを定義する CDPATH を使用する - bobchinの日記
  • ドットコマンド - mooz deceives you

    知識のようで、結構知らないことってあるもんだね。 $ . スクリプト名前 とすると、 #! で指定されたインタプリタの代わりに現在のシェルがスクリプトを読み込んで実行するらしい。 例えばシェルスクリプトを使ってディレクトリを移動したいとき、 #!/bin/sh cd /hoge/ pwd のようなファイルを cd_hoge.sh として実行しても $ pwd /home/owner $ ./cd_hoge.sh /hoge $ pwd /home/owner のようになり、現在のシェルでディレクトリの移動は行われない。 ここでドットコマンドを使うと、 $ pwd /home/owner $ . cd_hoge.sh /hoge $ pwd /hoge となって、見事 /hoge に移動できた。

  • 1