- 投稿日:2020-06-26T21:02:38+09:00
Windows Subsystem for Linuxが表示されない
WSLついて
WSL(Windows Subsystem for Linux)とは、Linuxのバイナリ実行ファイルをWindows 10およびWindows Server上でネイティブ実行するための互換レイヤーのこと。
Windows上でLinux環境を利用するために、「Windows Subsystem for Linux」を有効化する必要がある。事象
Windowsの機能を表示し、Wから始まる項目を探してみても「Windows Subsystem for Linux」が見つからない・・・・
原因を調べたら、32bitだと表示されないとのこと。
自分のPCは64bitのため、関係なし。原因
Windows10のバージョンが2004のため、どうやら名称が翻訳されたらしい。
「Linux用Windowsサブシステム」を有効化することで解決した!
- 投稿日:2020-06-26T18:52:00+09:00
Linux(ubuntu)を知らない人がWindows上でLinuxコマンドを実行する方法【Rとpythonの動作確認まで】
この記事の目的
- Windowsユーザー向けだよ(Win10)
- Linux(ubuntu)とかわからなくても大丈夫だよ
- とりあえず動かせるところまで紹介するよ
記事を書くまでの経緯
新しいライブラリが出た時にgithub見に行ったらチュートリアルに
sudo,~.sh,wget
とかlinux系のコマンドが出てきて今までは
「Linux環境...VirtualBoxたてるか...でも重いから嫌い...ぐぬぬ...」
ってなってたんですが、
windowsでも簡単に試したいと思って調べてたら、
windowsでもubuntuが動かせるみたいなので紹介。step-1 Windows Subsystem for Linux(WSL)の有効化
win10では標準の機能としてLinux環境をwindows上で実行することができます。
使ってみた感じHyper-VやVirtualBoxよりも使いやすいので使いやすさを味わってみてほしい※Windows Subsystem for Linuxにチェックを付ける
step-2 Ubuntuをダウンロード
今回は18.04LTSを使いますが、各自のやりたいことによって選んでください。
2020/06/26時点では20.04までダウンロードできる。インストールした後起動し、IDとpassを設定
passはデフォルトでは表示もされなければ、打ち込んでも*記号が出てきたりもしないので打ち間違いのないように。step-3 Ubuntuコマンドを打ち込む(アップデートとRの追加)
バージョン確認
cat /etc/lsb-release
アップデート
sudo apt update
Rのダウンロード先を追加
echo 'deb https://cran.rstudio.com/bin/linux/ubuntu bionic-cran35/' | sudo tee -a /etc/apt/sources.listエディタで追加されていることの確認
sudo nano /etc/apt/sources.list
「Ctrl + X」でnanoを抜ける
key追加
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9コマンドに問題なければ
gpg: Total number processed: 1 gpg: imported: 1が返ってくると思う
最後に
sudo apt install r-base sudo apt updatestep-4 pythonとRが起動できるかだけ確認する
pythonはデフォルトのままでpython3と打ち込むと開く
Rもpythonも抜けるときは「Ctrl + Z」RやPython側から「パッケージが入ってない」と言われたら上記のように起動した後
install.packagesなりpip installなりを実行する。以上
これで今後Linux環境が必要な時に試せる
やったぜメモ:フォルダ移動が面倒な時
フォルダを移動するときに
cmdと同じく
cd ~~~~
で移ってもいいけど、使いたいフォルダのアドレスに「bash」と打ち込めばらくちん参考記事
Windows Subsystem for Linux (WSL1) をインストールしてみよう!
【WSL入門】第1回 Windows 10標準Linux環境WSLを始めよう
最新のRをUbuntuにインストール
- 投稿日:2020-06-26T16:34:58+09:00
【AWS EC2】Amazon Linux2でやっておきたい設定
概要
EC2を起動したらまずはやっておきたい設定周り
環境
- AWS EC2
- OS: Amazon Linux 2
- AMI ID: amzn2-ami-hvm-2.0.20200520.1-x86_64-gp2
- セキュリティグループ: SSH 22 を開けておく
1. サーバーの時刻をJSTにする
- デフォルトはUTCになっている
- timezoneをAsia/Tokyoに変更してJSTにしておく
- timezoneを変更したらcrondも再起動しておく
$ timedatectl status Local time: Fri 2020-06-26 06:10:18 UTC Universal time: Fri 2020-06-26 06:10:18 UTC RTC time: Fri 2020-06-26 06:10:18 Time zone: n/a (UTC, +0000) NTP enabled: yes NTP synchronized: no RTC in local TZ: no DST active: n/a $ sudo timedatectl set-timezone Asia/Tokyo $ timedatectl status Local time: Fri 2020-06-26 15:50:10 JST Universal time: Fri 2020-06-26 06:50:10 UTC RTC time: Fri 2020-06-26 06:50:09 Time zone: Asia/Tokyo (JST, +0900) NTP enabled: yes NTP synchronized: no RTC in local TZ: no DST active: n/a $ sudo systemctl restart crond $ date Fri Jun 26 16:03:47 JST 20202. プロンプトの変更
- デフォルトだと情報が少ないので変更する
- 変更前:
[ec2-user@ip-XX-XX-XX-XX ~]$
- 変更後:
[16:17:47 ec2-user@ip-XX-XX-XX-XX ~]$
.bashrc
にexport PS1
を追記する
- 全体に反映したい場合は
/etc/bashrc
の$PS1
を編集する- sourceコマンドで反映するのをお忘れなく
$ vi .bashrc # User specific aliases and functions export PS1='\[\033[37m\][\t \[\033[36m\]\u\[\033[37m\]@\h \[\033[32m\]\W\[\033[37m\]]$ ' $ source .bashrc3. ロケールの変更
- やらなくても良いが、日本語環境にしたいのであればやる
$ localectl status System Locale: LANG=en_US.UTF-8 VC Keymap: n/a X11 Layout: n/a $ sudo localectl set-locale LANG=ja_JP.UTF-8 $ sudo localectl set-keymap jp106 $ localectl status System Locale: LANG=ja_JP.UTF-8 VC Keymap: jp106 X11 Layout: jp X11 Model: jp106 X11 Options: terminate:ctrl_alt_bksp4. よく使うものをインストール
以外と何も入ってないので、使うものはインストールする。
git
$ sudo yum install -y git $ git -version git version 2.23.3参考
- 投稿日:2020-06-26T16:09:47+09:00
LPIC-1(レベル1)受験記録
概要
先日、LPIC-1を受験し合格しましたので、記録を残します。
この記録が、これからを受験される方にとっての目安や参考になればと思います。受験資格
LPIC-1(レベル1)
結果(点数)
- 101 : 受験1回目で不合格(480点)。2回目で合格(620点)。
- 102 : 一発合格(680点)。
(合格ラインはおそらく500点)
プロフィール(学習前)
エンジニアとして就業して約4ヶ月。Linuxコマンドはたまに使う程度で、コマンドがなぜ動くのかわかっていない。
学習時間(おおよそ)
勉強開始〜合格までで2ヶ月弱。
- 101 : 40時間(1回目まで) + 40時間(2回目まで)
- 102 : 40時間学習教材
- Linux教科書 LPICレベル1 (あずき本)
- Linux教科書 LPICレベル1 スピードマスター問題集 (白本)
- ping-t : 102用の有料版サービスも利用(101用は無料)
私のオススメは、下記手順です。
1. ping-tで全問を金メダルにする。(問題を解く際は、「答えの確認」よりも「解説を読むこと」が重要)
2. あずき本を読み、全体像をつかむ。(問題を解くだけでは断片的な知識であるため)
3. 白本の問題を解く。
4. 白本の模擬試験問題を解く。
5. (余裕があれば)ping-tの模擬試験問題を解く。おそらく、1.のステップで0.5〜1ヶ月ぐらいかかるので、時間はいくらあっても足りません。
焦らずに集中して取り組み、進捗具合によっては臨機応変に手順や計画を見直したほうが良いと思います。あずき本は、無くてもなんとかなるかと思いますが、あったほうが良いです。(当然ですが)
所感
- 時間が許すなら、3ヶ月程度の学習期間を設けたほうが良いです。
- 試験に合格するためだけでなく、Linuxの理解を深めるため。
- Linuxの知識は基本であるため、他の技術を学ぶ際に理解しやすくなる(と思います)。
- 101で1度不合格になった時はかなり落ち込みましたが、追い込まれたことで逆に火が付きました。(悔しさをバネに ってやつです。)
- 資格を取るという目標があるため学習に熱が入り、結果として深い理解ができました。
- Linuxの理解、熱心に学習した経験 の2つの側面から、非常に良い経験になったと思います。
- 投稿日:2020-06-26T13:54:18+09:00
Linuxのリダイレクト vol.1
今日はリダイレクトについて。
リダイレクトとは
出力の向かう先を変更すること、つまりあるページに移行したときに、強制的に別ページに飛ぶことである。
Linuxでは、向かう先を変更するとは、標準入力、標準出力、標準エラー出力のこと。このコマンド例上では、以下の通りである。
・標準入力:echo Hello_World
・標準出力:Hello_World
・標準エラー:-bash: ech: コマンドが見つかりません
コマンド例
[root@taki ~]# echo Hello_World
Hello_World
[root@taki ~]# ech Hello_World
-bash: ech: コマンドが見つかりませんリダイレクトの使用方法
・標準出力をファイルへ出力する
→画面に出力される文字列をファイルへ保存できる
→コマンドラインでは画面は文字列で大量に埋め尽くされる。何もしなければ、結果が上へ画面外へどんどん流れていってしまう。結果を確認しようと思っても確認できないという状況が発生する。
→リダイレクト使いファイルに結果を保存閲覧する標準入力、標準出力、標準エラー
Linuxではデフォルトで以下のように割り振られている。
・標準入力→0
・標準出力に→1
・標準エラー出力→2実際にやってみよう
- 標準出力 ※1は省略可能
① 標準出力
[root@taki ~]# echo Hello_world
Hello_world② Hello_WorldをTest_Hello_World.txtに出力している
[root@taki ~]# echo Hello_World > Test_Hello_World.txt
[root@taki ~]#③ ②の確認
[root@taki ~]# cat Test_Hello_World.txt
Hello_World④ Hello_WorldをTest_Hello_World.txtに出力している
[root@taki ~]# echo Hello_World > Test_Hello_World.txt
[root@taki ~]#⑤ Close_WorldをTest_Hello_World.txtに出力している
[root@taki ~]# echo Close_World >> Test_Hello_World.txt
⑥ ⑤の確認
[root@taki ~]# cat Test_Hello_World.txt
Hello_World
Close_World以上よりわかることは、
記号 説明 > 標準出力の出力先を指定 >> 標準出力の出力先を指定し、標準入力出力先に追記 参考文献
https://eng-entrance.com/linux-redirect
長くなったから今日はこの辺で。表を加えることが出来た。表の前には1行空欄を。
- 投稿日:2020-06-26T13:54:18+09:00
Linuxのリダイレクト
今日はリダイレクトについて。
リダイレクトとは
出力の向かう先を変更すること、つまりあるページに移行したときに、強制的に別ページに飛ぶことである。
Linuxでは、向かう先を変更するとは、標準入力、標準出力、標準エラー出力のこと。このコマンド例上では、以下の通りである。
・標準入力:echo Hello_World
・標準出力:Hello_World
・標準エラー:-bash: ech: コマンドが見つかりません
コマンド例
[root@taki ~]# echo Hello_World
Hello_World
[root@taki ~]# ech Hello_World
-bash: ech: コマンドが見つかりませんリダイレクトの使用方法
・標準出力をファイルへ出力する
→画面に出力される文字列をファイルへ保存できる
→コマンドラインでは画面は文字列で大量に埋め尽くされる。何もしなければ、結果が上へ画面外へどんどん流れていってしまう。結果を確認しようと思っても確認できないという状況が発生する。
→リダイレクト使いファイルに結果を保存閲覧する標準入力、標準出力、標準エラー
Linuxではデフォルトで以下のように割り振られている。
・標準入力→0
・標準出力に→1
・標準エラー出力→2実際にやってみよう
- 標準出力 ※1は省略可能
① 標準出力
[root@taki ~]# echo Hello_world
Hello_world② Hello_WorldをTest_Hello_World.txtに出力している
[root@taki ~]# echo Hello_World > Test_Hello_World.txt
[root@taki ~]#③ ②の確認
[root@taki ~]# cat Test_Hello_World.txt
Hello_World④ Hello_WorldをTest_Hello_World.txtに出力している
[root@taki ~]# echo Hello_World > Test_Hello_World.txt
[root@taki ~]#⑤ Close_WorldをTest_Hello_World.txtに出力している
[root@taki ~]# echo Close_World >> Test_Hello_World.txt
⑥ ⑤の確認
[root@taki ~]# cat Test_Hello_World.txt
Hello_World
Close_World以上よりわかることは、
記号 説明 > 標準出力の出力先を指定 >> 標準出力の出力先を指定し、標準入力出力先に追記 参考文献
https://eng-entrance.com/linux-redirect
長くなったから今日はこの辺で。表を加えることが出来た。表の前には1行空欄を。
- 投稿日:2020-06-26T11:30:11+09:00
【centos8】logrotateが上手く起動しない
はじめに
これまでcentos6でlogrotateは使っていたが、centos8で実装した際に躓いた点があったのでメモしました。
➀課題
centos8で実装した際はファイルはrotateされるが、データがrotateされない。
➁大まかなlogrotateが回る流れ。
(例)
➀/etc/cron.dailyの中のlogrotateファイルが毎分起動(/etc/logrotate.confを呼び出す)
↓
➁/etc/logrotate.conf設定ファイルが読まれる(dailyで/etc/logrotate.dディレクトリの中のファイルを実行)
↓
/etc/logrotate.dの中にsyslogファイルあり。syslogの中にrotateされたいファイルのパスを記述。
↓
指定したファイルのrotateが実行される。➂解決策
centos8では/etc/logrotate.dのディレクトリの中に、centos6にはなかったsyslog.rpmnewファイルが存在している。
logrotate.dのディレクトリの中でsyslog、syslog.rpmnewの2つのファイルで内容が重複していると上手くrotateされない。内容を重複しないようにすることが必要。➃修正したら再起動と自動起動
systemctl restart rsyslog.servicesystemctl enable rsyslog.service⑤接続確認
-fオプションで強制rotateして上手くrotateしているか確認。
logrotate -f /etc/logrotate.confデータが上手くrotateされていれば完了。
- 投稿日:2020-06-26T01:10:19+09:00
(初心者) コアとかスレッドとかってなんだ
発端
ジョブとか,タスクとか,コアとか,スレッドとか,なんとなく使ってるけど,お互いの関係はあんまり正確にわかってないなぁということで.
いくら計算機が専門ではないとはいえ,さすがに情報学を学ぶ者としてどうなんだとなったので簡単にまとめてみた.
結論
- スレッド,プロセス,ジョブ,タスクは概念でプログラムそのものの構成要素
- プロセスはプログラムの実行単位,つまりプログラムの一番大きなひとかたまり
- スレッド⊂プロセス
- ジョブ,タスクはわりと曖昧らしい
- プロセッサ,コア,CPUは物理的に存在するPCの構成要素
- プロセッサ=CPU
- コア⊂CPU
詳しく
プロセスとスレッド
これが一番わかりやすい.1つのプロセスの中に1つ以上のスレッドが作られる.
プロセスが親でスレッドが子.
ジョブとタスク
使われ方は環境などによって変わり,わりと曖昧であることが多いらしい.よかった.適当に使っていたが,あながち間違いじゃなかった.
一応Linux系だと,
- ジョブは複数のプロセスをまとめたもの
- タスクはプロセスやスレッドの総称らしい.
プロセッサとコアとCPU
CPU(=プロセッサ) の中に,実際に処理を行う部品(コア) があるという構図.
実際にはコアがCPUとして認識されてプロセスやスレッドを割り当てる.
【疑問】6コア12スレッドのCPUは1コアあたり2スレッドなのか?
正直この辺がよく分からなくて調べた.答はNo.
コアはあくまでもプロセスやスレッドを処理する場所なので,コアにどのスレッドを割り当てるのかはプロセスやスレッドができてからの話.
なので,まず並列に走らせることができるスレッドの上限が12で,それを割り当てるコアが6個あるというのが正しそう.
つまり.スレッドの上限が12の場合,必然的にプロセスの上限は12ということになりそう.
例えば,3つのプロセスで12スレッド全部使う場合,こんな感じの割り当て方が考えられると思う.
プロセス名 スレッド数 例1 スレッド数 例2 A 4 6 B 4 4 C 4 2 Reference