7と8のリビジョン間の差分
2019-05-13 14:28:17時点のリビジョン7
サイズ: 5473
編集者: TakanoriKono
コメント:
2019-05-13 14:38:06時点のリビジョン8
サイズ: 6759
編集者: TakanoriKono
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 69: 行 69:
効率のよい作業
 * 不必要にディレクトリを移動しない。
  * projectAディレクトリにいる状態で他のディレクトリにあるファイルへは、./scripts/setup.shのようにファイルへ至る相対パスを指定してアクセスできる。
  * emacsウィンドウを何個も開かない。ウィンドウの起動に時間が掛かるので、emacsでは一つのウィンドウで複数のファイルを開く。サクッとテキストファイルの中身を見たい場合には{{{less}}}コマンドを使う。{{{less ./scripts.setup.sh}}}のように。
  * buildディレクトリでのコンパイルも{{{(cd build; make)}}}のように、複数のコマンドを「;」で区切って全体を「()」で囲むことでディレクトリ移動をしないですむ。
 * ファイルを探したい場合
  * {{{find . -name setup.sh}}}のようにすると今いるディレクトリ(「.」)以下のどこかにsetup.shという名前のファイルが無いか探してくれる。
 * テキストファイルからの情報の抽出や加工。
  * grep, sed, sort, cut, awk, diff, cat, echo等のコマンドとパイプを組み合わせるといろいろなことができる。
行 70: 行 80:
設定ファイルでやることは以下のようなものである。 設定ファイル({{{scripts/setup.sh}}})でやることは以下のようなものである。

Linuxの設定

環境設定

シェルの起動スクリプト(~/.bashrcや~/.zshrc)に書いておく。

alias setupATLAS='source ${ATLAS_LOCAL_ROOT_BASE}/user/atlasLocalSetup.sh'
alias setup_root6='source /cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.16.00/x86_64-centos7-gcc48-opt/bin/thisroot.sh'
alias root='root -l'
export LPDEST=hpxprint1
# Personal
prompt="%m:%/>"
export EDITOR='emacs -nw'
alias cds="cd /nfs/space1/$USER"
unset SSH_ASKPASS
# ATLAS
alias gridproxy='voms-proxy-init -voms atlas -valid 72:00:00'
export ALRB_rootVersion=6.14.04-x86_6-slc6-gcc62-opt

他にも自分にとって便利な設定をいろいろ追加して好きな作業環境を作る。上の例も不要なものは除いたり修正して構わない。

  • 環境変数の設定
    • よく使われる環境変数は、PATH, LD_LIBRARY_PATH,
  • 別名(alias)の定義
    • これは長いコマンドに対して、短い代わりのコマンド名のようなものを与えることができる。
  • 関数の定義
    • 設定に一行より長いコマンドの実行が必要な場合、それらをまとめて関数を作ることもできる。

環境変数とは、作業中にシェル(コマンド入力を解釈・実行しているプログラム)が管理しているもので、シェルが呼び出した他のプログラムと共有することができる。どのような環境変数が定義されているかは

printenv

で確認できる。自分で使うことを目的に独自の環境変数を使ってもよい。

いろいろなソフトウェア

プログラム

使い方

説明

ATLAS環境

setupATLAS

実行後、lsetupというコマンドが有効になり他のソフトウェアの設定が可能になる。

ROOT

setup_root6

ROOTバージョン6.16.10が使えるようになる。

インストールされていないソフトウェアがあったらシステム管理者に相談すること。

ファイル・システム

各ユーザーの作業領域はホームディレクトリ(/home/$USER)の他に数TBの作業用ディスク領域(/nfs/space1, /nfs/space2, /nfs/space3)がある。基本的な使い方としては、ホームディレクトリには設定ファイルなどの必要最低限のファイルのみを保存して、データ解析のように大きな容量を必要とするものは作業用ディスクに保存すること。

作業の流れ(例)

計算機を使って何かをするときには、何か目的があることが普通である。目的とすることをここでは「プロジェクト」と呼んでおく。

  • プロジェクトの例:文書を書く、プログラムを書く、データを解析する、等...

プロジェクト毎に、その作業をするための専用のディレクトリを作っておくとファイル管理や作業環境の整備が楽である。例えば、こんな感じ。

cd /nfs/space3/$USER
mkdir projectA
cd projectA
mkdir scripts work dev sw analysis

これは一例だけど、projectAという名前(内容を連想できる分かり易い名前がよい)というディレクトリの中にいくつか別のディレクトリを作っている。

ディレクトリ

用途

scripts

スクリプトを保存する。

work

作業用ディレクトリ

dev

プログラムを開発する場合、ソースコードを保存するディレクトリ

|| build || プログラムのコンパイル作業をするためのディレクトリ(最近はcmakeを使うことが多いので)

sw

コンパイル済みプログラムを保存するディレクトリ

analysis

データ解析をするときのディレクトリ

作業の流れ

  1. ターミナルを立ち上げて、cd projectAで作業ディレクトリに移動する。
  2. 作業に取り掛かるときには source ./scripts/setup.sh を一度実行して作業環境の初期設定をする。

  3. プログラムを書く。 emacs ./dev/.../a.cxx& でテキスト・エディタを開いてソース・ファイルを編集する。

  4. buildディレクトリに移動(cd build)してコンパイルする(make)。コンパイルが成功したらプログラムをswディレクトリにインストールする(make install)。

  5. プログラムを実行するためにworkディレクトリに移動(cd work)する。プログラムを実行する(a.exe)。

効率のよい作業

  • 不必要にディレクトリを移動しない。
    • projectAディレクトリにいる状態で他のディレクトリにあるファイルへは、./scripts/setup.shのようにファイルへ至る相対パスを指定してアクセスできる。
    • emacsウィンドウを何個も開かない。ウィンドウの起動に時間が掛かるので、emacsでは一つのウィンドウで複数のファイルを開く。サクッとテキストファイルの中身を見たい場合にはlessコマンドを使う。less ./scripts.setup.shのように。

    • buildディレクトリでのコンパイルも(cd build; make)のように、複数のコマンドを「;」で区切って全体を「()」で囲むことでディレクトリ移動をしないですむ。

  • ファイルを探したい場合
    • find . -name setup.shのようにすると今いるディレクトリ(「.」)以下のどこかにsetup.shという名前のファイルが無いか探してくれる。

  • テキストファイルからの情報の抽出や加工。
    • grep, sed, sort, cut, awk, diff, cat, echo等のコマンドとパイプを組み合わせるといろいろなことができる。

このような流れで作業をするためには、初期設定ファイル(scripts/setup.sh)やCMakeLists.txtファイルを適切に書かなければならない。 設定ファイル(scripts/setup.sh)でやることは以下のようなものである。

projectDir="/.../.../projectA"
# sw/ディレクトリの下にインストールしたプログラムを呼び出せるように環境変数を設定
export PATH=$projectDir/sw/bin:$PATH
export LD_LIBRARY_PATH=$projectDir/sw/lib:${LD_LIBRARY_PATH}
# その他の設定

日本語入力

「Windowsマーク」+「スペースキー」でキーボード入力の言語を変換できる。かな入力になったら、漢字変換は「スペースキー」で変換候補を切り替えられる。

LinuxSetup (最終更新日時 2021-08-26 06:54:11 更新者 TakanoriKono)