物理の駅 by onsanai

Physics Station → PhSt 質問・疑問・間違いの指摘は、コメントに書くか、直接伝えるときっと良いことがあります。主にWindows or Ubuntu用の記事です

WSL (Ubuntu系)における便利なコマンド一覧

Windows Subsystem on Linux

自分用のメモとして随時更新

インストールパッケージをアップデート。これをしないと何もできない。

sudo apt update
sudo apt upgrade

Anacondaをインストールする

sudo sh Anaconda3-2018.12-Linux-x86_64.sh

ビルドツールを一括でインストール。gccやmakeなどがインストールされる。

sudo apt install build-essential

ファイルをダウンロード

wget https://ファイル名

debファイルのインストール

sudo dpkg -i code_1.32.3-1552606978_amd64.deb

なんか壊れた時

sudo apt --fix-broken install

gccのバージョン

gcc -v

bashを実行する時に読み込まれるもの。bash_profileとbashrcは何がどう違うの?

pico ~/.bash_profile
source ~/.bash_profile
pico ~/.bashrc
source ~/.bashrc

ROOTのインストール

export ROOTSYS=/(インストールしたフォルダ)/root_v6.16.00.Linux-ubuntu18-x86_64-gcc7.3
export PATH=$PATH:$ROOTSYS/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ROOTSYS/lib
# echo $ROOTSYS

" スプラッシュを表示させないには以下を記述

alias root="root -l"

.rootlogon.C の例

https://gitlab.com/yoshimoto/root_macros/commits/master/.rootlogon.C

~/.rootrc の例。GuiのFontサイズを変更できる。

Gui.DefaultFont:            -*-helvetica-medium-r-*-*-12-*-*-*-*-*-iso8859-1
Gui.MenuFont:               -*-helvetica-medium-r-*-*-12-*-*-*-*-*-iso8859-1
Gui.MenuHiFont:             -*-helvetica-bold-r-*-*-12-*-*-*-*-*-iso8859-1
Gui.DocFixedFont:           -*-courier-medium-r-*-*-12-*-*-*-*-*-iso8859-1
Gui.DocPropFont:            -*-helvetica-medium-r-*-*-12-*-*-*-*-*-iso8859-1
Gui.IconFont:               -*-helvetica-medium-r-*-*-10-*-*-*-*-*-iso8859-1
Gui.StatusFont:             -*-helvetica-medium-r-*-*-10-*-*-*-*-*-iso8859-1

ROOTをグラフィックスなしで起動する

ROOT -b

GUI用の

sudo apt install xfce4-terminal
sudo apt install xfce4

# .bash_profile または .bashrcに
export DISPLAY=:0.0
# high DPIのときは
export GDK_SCALE=2
export GDK_DPI_SCALE=2

# GUIのテストには
xeyes

VcXsrv.exe(おそらく C:\Program Files\VcXsrv\ あたりにある) のプロパティから 高DPI設定の変更 → 高いDPIスケールの動作を上書きします。 のチェックを入れる

[備忘録]高DPI環境での WSL+VcXsrv の設定 - Qiita

ただし、一部アプリでは無効なので、あまりご利益はないかもしれない。(例: ROOT)

WSLにSSH接続する

https://qiita.com/ezmscrap/items/30eaf9531e240c992cf1

sudo apt install openssh-server
sudo nano /etc/ssh/sshd_config
# PasswordAuthentication no ->
# PasswordAuthentication yes
sudo service ssh restart

gdbを起動できませんでした。システムにgdbが見つからないため、インストールが必要です。システムのパッケージマネージャーを使用してインストールしてください。

と出るので、インストールする

sudo apt install gdb

Poco C++ Librariesをインストールする

https://pocoproject.org/docs/00200-GettingStarted.html#9

Javaのインストール

sudo add-apt-repository ppa:webupd8team/java

sudo apt update
sudo apt install oracle-java8-installer

NVIDIAのドライバをインストールする

https://packages.ubuntu.com/ja/bionic/nvidia-384

384を入れる時は

sudo apt update
sudo apt install nvidia-384
nvidia-smi

最新のを入れる時は

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-390
sudo apt install nvidia-410

両立できないので、どちらかだけよ。

ホームディレクトリにユーザーがあるか確認

ls -l /home

ユーザーのパスワードがあるかで確認

cat /etc/passwd

ユーザーの追加

sudo adduser newusername

ユーザーの削除

sudo userdel -r deletableusername

SRIM 2013を日本語版 Windows 10 64bitで動かすためのメモ

とても個人的なメモなので、使えなくても泣かないお約束で。

SRIM本体は下記のURLからインストールする。

http://www.srim.org/SRIM/SRIMLEGL.htm

Msvbvm50.dll がないと怒られるので、下記URLからMsvbvm50.exeダウンロードし実行する

https://support.microsoft.com/ja-jp/help/180071/file-msvbvm50-exe-installs-visual-basic-5-0-run-time-files

RICHTX32.OCX がなんとかってエラーが出るので、下記URLから Visual Basic 6.0 Service Pack 6 をダウンロード

Download Visual Basic 6.0 Service Pack 6 from Official Microsoft Download Center

適当なフォルダに展開し、さらにフォルダ内の RichTx32.CAB を展開する。

RICHTX32.OCX というファイルがあるので、 C:\Windows\SysWOW64 にコピーし、管理者権限のコマンドプロンプト

cd C:\Windows\SysWOW64
regsvr32 RICHTX32.OCX

を実行する。同様の処理をさらに4つのファイルで行う

  • COMDLG32.CAB
  • MSFLXGRD.CAB
  • TABCTL32.CAB
  • COMCTL32.CAB
regsvr32 COMDLG32.OCX
regsvr32 MSFLXGRD.OCX
regsvr32 TABCTL32.OCX
regsvr32 COMCTL32.OCX

これで、 SR.exe (静的にdE/dx やStragglingを計算するソフト)や、 TRIM.exe (動的に粒子を打ち込むソフト)が動くはずである。

TRIM.exe を実行するための TRIM.in ファイルを作るための TIN.exe は動かない。 SRIM.exe に特段の機能は無い。

pythonでファイルを1行ずつ読み込む+書き出す方法

行頭に # 付きはコメント行、空白行は読み飛ばす

読み込み1

def read_txt(filename):
    lines = []
    for line in open(filename, 'r'):
        if len(line) == 1:
            continue
        if line[0] == "#":
            continue
        lines.append(line)
    return lines

読み込み2

def read_data12(filename):
    items = {}
    for line in open(filename, 'r'):
        if len(line) == 1:
            continue
        if line[0] == "#":
            continue
        item_list = line.split()
        items["data1"] = float(item_list[0])
        items["data2"] = float(item_list[1])
    return items

読み込み3

data1 = []
data2 = []
for line in open(filename, 'r'):
    if len(line) == 1:
        continue
    if line[0] == "#":
        continue
    item_list = line.split()
    data1.append(float(item_list[0]))
    data2.append(float(item_list[1]))

print(data1)
print(data2)

書き出し1

data1 = [1, 2]
data2 = [3, 4]
with open(filename, 'w') as f:
    for d1, d2 in zip(data1, data2):
        f.write(str(d1)+" "+str(d2)+"\n")

出力すると以下のようになる

1 3
2 4

Portable版のVisual Codeを更新(アップデート)する方法

記憶喪失になった時用のメモ

  • zipをダウンロードする
  • zipを解凍する
  • 展開先のVSCode用のフォルダの data 以外を削除する
  • 解凍したデータを削除したフォルダに入れる

以上。 data を消してしまうと泣くので気をつけよう。

C# WPFで グリッドマーク上にTextBlockやRectangleを配置する

供養

var textBlock = new TextBlock
{
    HorizontalAlignment = HorizontalAlignment.Center,
    VerticalAlignment = VerticalAlignment.Center,
    Text = text,
    FontSize = 0.1
};
var rectangle = new Rectangle
{
    Stroke = Brushes.Black,
    StrokeThickness = 0.3
};
Grid.SetColumn(textBlock, x);
Grid.SetRow(textBlock, y);
Grid2.Children.Insert(0, textBlock);

Grid.SetColumn(rectangle, x - 1);
Grid.SetColumnSpan(rectangle, 3);
Grid.SetRow(rectangle, y - 1);
Grid.SetRowSpan(rectangle, 3);
Grid2.Children.Insert(0, rectangle);