windows10でUbuntuを使えるようにして、g++でコンパイルしてHello!
■windows10でUbuntuを使えるようにする。
・windowsの機能の有効化または無効化
「windows」キーと「x」キーを同時押し、「設定」を選択
☜「windows」キー( ゚Д゚)
設定画面の検索で「windowsの機能の有効化または無効化」を検索
フル名で検索して出てこない場合は
”機能”とか、”有効化”とかの単語で検索してみて下さい。
Windows Subsystem for Linux (Beta)を探し、
チェックを入れます。
・再起動。
・開発者モードの有効化
同様に、設定画面の検索から「開発者向け」を検索する。
開発者向け画面で開発者モードにチェックする。
「windows」キーと「x」キーを同時押し、「ファイルを指定して実行」を選択
名前に cmd といれてOK
■パッケージのアップデート
sudo apt update
sudo apt upgrade
sudo apt install texlive-full
■ホームディレクトリの変更方法
cドライブにhomeするのはお勧めできません。
外部HDDをhomeにしておくのが無難です。
DOSコマンドの場合
cd /d s:\
と/dオプションで別ドライブに移動できます。
ubuntuの場合
DOSコマンドプロンプトからbashでubuntuに切り替えて
ls /mnt/にてドライブ名の確認ができる。
ls ディレクトリのファイル、フォルダ表示
cd ディレクトリの移動
cat ファイルの中身表示
その他にコマンドはありますのでググってみて下さい。
sudo vi /etc/passwd
viは、UNIX環境におけるファイル編集エディタ。
(※ここは、viを使わずにwindowsのメモ帳使って編集しても
構わないと思います。)
sudoは、スーパーユーザー(管理者)で編集する。
パスワードは、bashをインストールした際のパスワード入れる。
viの主なコマンド
:q 終了
:wq 上書き保存
:q! 強制終了
i 挿入
dd 行削除
yy 行コピー
p 貼り付け
u やり直し
x 一文字削除
それぞれのコマンド打つ際には、ESCキーを押す癖を。
とりあえず困ったら、ESCキー( ゚Д゚)
username:x:1000:1000:"",,,:/home/username:/bin/bash
の行を私の場合は以下のように変更。
(※usernameはbashインストール時のusernameとなります。)
sfuku:x:1000:1000:"",,,:/mnt/s/plog/ubuntu/home:/bin/bash
ここで、bashを終了する前に、元のホームディレクトリにあった設定ファイルを新しい
ホームディレクトリにコピーする必要があります。
cd ~
cp -p .* /mnt/s/plog/ubuntu/home
DOSコマンドから
bash ~
にてubunstu切り替えて、カレントディレクトリの確認
■g++でコンパイルしてHello!
とりあえず、定番のHello表示。
ファイル名をhello.cppとした。
ついでに、stdが使えるか確認。
viで編集せずとも、メモ帳開いて編集出来ます。
notepad.exe hello.cpp
viで編集し、notepad.exe(メモ帳)で開いたら以下のようになっている。
これはUNIX(ubuntu)環境とwindows環境の改行コードが異なるため。
詳しくはググってみて下さい。
hello.cpp
の中身は cat コマンドにて以下の方に示したのでコピーしてみて下さい。
g++ hello.cpp
実行はコンパイル時にファイル名が指定されていなければ
./a.out
が作成されていますので、これを実行する。
sfuku@DESKTOP-AIHI2B4:~$ vi hello.cpp
sfuku@DESKTOP-AIHI2B4:~$ cat hello.cpp
#include <stdio.h>
#include <vector>
#include <iostream>
using namespace std;
struct USER
{
string name;
int age;
};
int main(int argc, char** argv){
vector<USER> users;
for(;;)
{
USER user;
cout << "qで終了" << endl;
cout << "name : " << endl;
cin >> user.name;
if(user.name == "q")break;
cout << "age : " << endl;
cin >> user.age;
users.push_back(user);
}
for(int i=0; users.size()>i; i++)
{
printf("hello %s(%d)\n", users[i].name.c_str(), users[i].age );
}
return 0;
}
sfuku@DESKTOP-AIHI2B4:~$
sfuku@DESKTOP-AIHI2B4:~$
sfuku@DESKTOP-AIHI2B4:~$ g++ hello.cpp
sfuku@DESKTOP-AIHI2B4:~$ ./a.out
qで終了
name :
太郎
age :
44
qで終了
name :
こええええ
age :
22
qで終了
name :
q
hello 太郎(44)
hello こええええ(22)
sfuku@DESKTOP-AIHI2B4:~$
■シェルの確認
ちょっとした確認したい場合にコマンドからシェルを使えると便利。
なので、for文などが使えるか確認。
sfuku@DESKTOP-AIHI2B4:~$ s1="." ; for l in `ls -1 $s1`; do t=`date`; echo "$l"; done
a.out
hello.cpp
Windowsの実行形式(dir)等も使えるみたいだ。
s1="." ; for l in `dir $s1`; do t=`date`; echo "$l"; done
■環境をアンインストールする場合
lxrun /uninstall /full
lxrun /install
以上です。
参考
Bash on Ubuntu on Windowsをインストールしてみよう! - Qiita