超新人プログラマー（見習）がLinux練習のためにWindowsアプリのUbuntuを触ってみた

#1.自己紹介
都会で頑張る田舎者です。
文系大学卒の元OLです。
ひょんなことからデータサイエンシストへ弟子入りし、プログラミングの世界に導かれやってきました。
Python、git、docker、Ubuntu、raspberry piなどなどを修行しております。

修行の成果を記事にし、同じようにプログラミングの世界に飛び込もうか考え中の方にも参考になればと幸いですm(_ _)m

今回は、前回の[超新人プログラマー（見習）がWindows10にUbuntuをインストール〜Windowsアプリ編〜](https://qiita.com/petadimensionlab/items/80ca2c6b1137b657c246)より、
インストールしたUbuntuアプリをLinuxコマンドの練習を兼ねて触ってみました。
そこで少しですが気になった点・まとめていきたいと思います。

#2.Linuxコマンド練習
まずは、簡単なコマンドを使ってみる。

・mkdir
　ディレクトリ”petapetapeta”を作成。

```shell-session:linux_comannd
$ mkdir petapetapeta
```

・ls
　作成されたか確認。

```shell-session:linux_comannd
$ ls
petapetapeta
```

・cd
　ディレクトリ”petapetapeta”に移動してみよう。
　$　の前が移動したディレクトリ名になってたらOK。

```shell-session:linux_comannd
$ cd petapetapeta/
~/petapetapeta$
```


・touch
　新規ファイルを作ってみる。

```shell-session:linux_command
$ touch test.py
```

・nano
新規ファイルを編集してみる。
※vim でもOK！

```shell-session:linux_command
$ nano test.py
```

テキストエディタが立ち上がりますので、思う存分入力。
私は下記を入力。pythonを動かしてみましょう！

```python:test.py
a = 1 + 2
print(a)

b = 'Hello World'
print(b)
```

python実行！

```shell-session:linux_command
$ python3 test.py
3
Hello World
```

できたできた！！
ちなみに、`python test.py` と入力しても実行されませんでした。
`python3`と入力しましょう！

#2.参考URL
コマンド集は下記サイトから拝借。ありがたやありがたやm(_ _)m

・[ブクマ必至！Linuxコマンド一覧表【全33種】](https://www.sejuku.net/blog/5465)
→基本はこれでOK！
・[基本的なコマンド集](https://rat.cis.k.hosei.ac.jp/article/linux/command.html)
→基本・・・？とても詳しいと感じます！！（超新人レベルより）
・[【touch】Linuxで新規ファイル作成をするコマンド](http://uxmilk.jp/8395)
→CUIでテキスト・ファイルを作るには？？と思い検索。
・[Raspberry Pi | viより直感的！標準エディタ”nano”の使い方ガイド](http://www.tapun.net/raspi/raspberry-pi-nano-guide)
→テキストエディタって？？と思い検索。
・[最強のテキストエディタ・Vim入門！導入から活用法まで紹介](https://tech-camp.in/note/technology/1455/)
→vimは上級者向けっぽい・・・。

#3.試行錯誤
###1.Windows上ではどんな感じ？
Ubuntuアプリで作成したユーザーディレクトリですが、Windows上には、
「C:\Users\[winユーザー名]\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\[ubuntuのユーザー名]」にあります。（デフォルト）

そこで、先ほど作成した　「petapetapeta」 フォルダを捜索。
![ubuntuフォルダ](https://dl.dropboxusercontent.com/s/8i2zjh69z4fdjqy/ubuntu%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80.png?dl=0)
ありました！！

<img width="488" alt="testpy.png" src="https://qiita-image-store.s3.amazonaws.com/0/241094/9f69504d-a6f9-9433-e8cb-6c7cbaca0bbd.png">

「test.py」　ファイルもありましたよ。


###2.Windows上で操作①**※注意！！**
もしや・・・・Ubuntuアプリへのファイル共有・移動もGUI操作で簡単？と思い、
試しにテキストアプリ（[Sublime Text](https://www.sublimetext.com/)等）で作成したPythonファイル「test02.py」を上記で発見したWindows上のディレクトリ　「petapetapet」　内に直接置いてみました。

```python:test02.py
c = 100 + 200
print(c)

d = 'Hellooo Wooorld'
print(d)
```

<img width="618" alt="test02.png" src="https://qiita-image-store.s3.amazonaws.com/0/241094/db6dd078-9674-4ffb-5a22-1abd8b1aa44e.png">


UbuntuアプリのコンソールでPython実行！
・・・しかし、`No such file or directory`とエラーが出て読み取れませんでした。そもそも、認識していないようですな。


```shell-session:linux_command
$ python3 test02.py
python3: can't open file 'test02.py': [Errno 2] No such file or directory
$ ls
test.py
```
認識方法があるのかいろいろ調べてみましたが、わかりませんでした。。。
もし対策があれば　どなたかご教示いただけますと幸いです(;_;)
$\color{red}{\rm ※注意！！}$
**@Masato-I　さまからご指摘いただきましたが、
[Do not change Linux files using Windows apps and tools](https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/)とMicrosoft の blogに記載されております。
よって、Windows上で操作①とWindows上で操作②は不適切であると考えられますので、自己責任でお願いいたします！！**

こちらでも発見次第、更新したいと思います！

###3.Windows上で操作②**※注意！！**
無理を承知で。。。
Ubuntuアプリで作成した「test.py」をWindows上のフォルダから開いて編集してやろう。。。

テキストアプリ（Sublime Text等）で開いて編集・上書保存し、

```python:test.py（編集・上書保存）
a = 1 + 2000000
print(a)

b = 'Hello Hello World'
print(b)
```

Ubuntuアプリのコンソールで、Python実行！！！

```shell-session:linux_command
$ python3 test.py
2000001
Hello Hello World
```
なんと、できたーーーーー！！！
Linux初心者に優しい！！


###4.Git経由
ちなみに、　”Windows上で操作①”　で認識されなかった「test02.py」ファイルを　
gitにpushしてUbuntuアプリ内の「petapetapeta」フォルダにクローンして...
と、めんどっちい操作をするとちゃんと認識されましたよ。

まだ不慣れなので時間かかりますなあ(;_;)

---
Linuxコマンドの練習をしていたら、気になる点が出てきたので試行錯誤してみました。
今まで作成したファイル等をUbuntuアプリで使いたい！！ってなった時どないしたらええやろか・・・と気になったので。

また後日師匠（データサイエンシスト）が作成した解析用のファイルをちょこっと動かしてみたいと思います！

追記（2018.3.27）：Windows上で操作①、Windows上で操作②での注意事項を追記しました。
てことは、やっぱりGitかな？？