= 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が使えるようになる。 || インストールされていないソフトウェアがあったらシステム管理者に相談すること。<
> ROOTのDisplayが開かなかったら、まず、 '''''再起動してみる''''' 。次にXQuartzのversionを確認。[[https://www.xquartz.org/releases/XQuartz-2.7.8.html| XQuartz 2.7.8]]じゃないとROOTのDisplayが開かない可能性がある。<
> == ファイル・システム == 各ユーザーの作業領域はホームディレクトリ(/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で作業ディレクトリに移動する。 1. 作業に取り掛かるときには{{{ source ./scripts/setup.sh }}}を一度実行して作業環境の初期設定をする。 1. プログラムを書く。{{{ emacs ./dev/.../a.cxx& }}}でテキスト・エディタを開いてソース・ファイルを編集する。 1. buildディレクトリに移動({{{cd build}}})してコンパイルする({{{make}}})。コンパイルが成功したらプログラムをswディレクトリにインストールする({{{make install}}})。 1. プログラムを実行するためにworkディレクトリに移動({{{cd work}}})する。プログラムを実行する({{{a.exe}}})。 このような流れで作業をするためには、初期設定ファイル({{{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} # その他の設定 }}} ==== 作業の効率化 ==== * 不必要にディレクトリを移動しない。 * 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等のコマンドとパイプを組み合わせるといろいろなことができる。 == 日本語入力 == 「Windowsマーク」+「スペースキー」でキーボード入力の言語を変換できる。かな入力になったら、漢字変換は「スペースキー」で変換候補を切り替えられる。