kiwo's blog

PythonのPythonista3で遊んでます。パソコン系の話題が好き!

【初心者】Macのターミナルの基本操作【方法】

Macのターミナルの基本操作

f:id:kassaaaah:20190617170610j:plain

どうもこんにちはkiwoです。
今回はみんな大好きターミナル操作です。

始めに

突然ですが僕は今Macを使っていてシェルはzshを使用しています。

ターミナル操作をしているといかにもパソコン!って感じが好きです笑

今日はそんなターミナル操作の基本について書いていこうと思います。

本題

まずはターミナルを起動します。

commandとスペースキーを同時押しで「ターミナル」と入力するとすぐに出てきますね。

では起動しましょう。
Macではデフォルトがbashなのでとりあえずbashでやっていきます。

こんな感じの画面ですね

f:id:kassaaaah:20190617154101p:plain

では何かしらのコマンドを打ってみましょう!


まずは自分が今どこのディレクトリのいるか把握する場合は

$ pwd

これだけです。
起動時はホームディレクトリにいます。

ではホームディレクトリにどんなファイルやフォルダがあるか見ましょう。

$ ls

でok。
lsについてはこちらの記事に詳しく書いてます!

www.kiwoblog.com

このコマンドで今いるディレクトリのファイルが見えますね。

では次にディレクトリを移動しましょう。
今回のコマンドではデスクトップに移動します。

$ cd Desktop

これでデスクトップのディレクトリに移動しました。

一つ上のディレクトリの戻りたい場合

$ cd ..

ではデスクトップに新しいディレクトリを作ります。

$ mkdir test

testというフォルダができたか先程のlsのコマンドで確認してみてください。

次に新しく作ったtestフォルダに移動します。

$ cd test

このフォルダは空なのでここにpythonのファイルを作ってみます。

ここで一旦pwdコマンドを使ってtestディレクトリに居るか確認しましょう。

画像の様になってたらOKです。

f:id:kassaaaah:20190617162318p:plain

ではpythonファイルを作成します。

$ touch plus.py

これでplus.pyという空のファイルが作成されます。
この中身のコードをいじるにはviかvimというコマンドを使います。

$ vi plus.py

するとこの様な画面になります。

f:id:kassaaaah:20190617162823p:plain

僕の場合は少しこのvimというやつをいじってるので色が変わったりしてますが気にしないでください。

この画面から「i」を押すとインサートモードになってファイルにコードが記述出来る様になります。
別のキーで行頭からの入力の開始や行末からの開始が出来たりしますが、ここでは「i」を使ってます。

ではplus.pyに記述をします。
とりあえず簡単な足し算です。

コードはこんな感じで

print(100+200)

画像だと

f:id:kassaaaah:20190617163429p:plain



記述が完了すると
左上の「esc」を押します。

これでインサートモードから抜けます。

ですがここでは保存ができてないのでこのコードの保存とviの終了をするコマンドを打ちましょう。

保存して終わる場合は「:wq」を打ちます。
これでokです。

ではコードの実行をしていきます。

pwdコマンドでtestディレクトリに居る事を確認してから

$ python plus.py

これでターミナルに計算結果が表示されたら成功です。

以上が簡単なターミナル操作になります。

最後に

ターミナル操作は慣れると作業効率がかなりアップします。
GPU(アイコンとか)の表示とかもなく無駄に右クリックとかしなくてもファイルのコピーや削除がすぐに出来るので面倒臭がりな僕にはかなり助かります。

それにパソコン使ってるぜ!(ドヤ)
が出来るので中二病が治らない僕にが胸熱。

スタバでやってると白い目で見る人が少数いるのでご注意を笑

Xcodeで簡単にAR体験!

f:id:kassaaaah:20190524225600p:plain

XcodeでAR体験してみよう

どうもこんにちはkiwoです。


今回はiPhoneMac有線で繋がずにXcodeを使ってARの体験をしてみるまでをやってみます!

なんとXcodeではARのサンプルが入っていてすぐに体験することができます。


はじめに


まずはARの説明ですが拡張現実というやつで皆さんお馴染みのポケモンgoなんかでも使われてますね。

twitterを見ていると名刺をカメラに移すとfacebookやインスタ等の情報が立体的に表示されるというのも見かけました!

またAR専用のメガネをつけて道を歩いていると目的地までガイドを表示するテストがAppleかどこかの会社がやってました。

この様にARはロマン溢れて個人的にはVRよりも需要があるんじゃないかなと思ってます。


では本題の前に

macOS Mojave 10.14.4
Xcode Version 10.2.1
iPhone7
を使用しています。


本題


それではやっていきます。


Xcodeを起動してプロジェクトを作ります。
そこでこれを選択!

f:id:kassaaaah:20190524220948p:plain

プロジェクト名と保存先を決定します。

するとARに必要なファイルがすでに作成されてます。

次にXcodeiPhoneの接続です。

最初の段階では残念ながらライトニングケーブルが必要ですのでiPhoneMacを繋ぎましょう!

まずはApple IDが必要なので連携していきます。

上の画面にあるXcodeをクリックしてPreferencesを選択してアカウントのところで設定しましょう。
僕はここで地味に苦戦したので良かったら他の方が分かりやすく解説している記事がたくさんあるのでぐぐってみてくださいw

f:id:kassaaaah:20190524222151p:plain

出来るとこんな感じの表示になります。

次にお待たせの有線撤去作業です。


まずは前提として同じwi-fiで繋がっていること。

上のバーのWindowからDevices and Simulatorsを選択してここにチェックをいれます。

これだけです。

成功できたらシミュレータの機種を選ぶ上の方にデバイスがあるのでそこの右側に地球みたいなマークが出たらOKです。

では実行してみましょう1

恐らく始めてする方は「〜を信頼してください」とか表示されるかもしれませんがiPhone側の設定をすると大丈夫です。

なんか色々エラーが出たりすると思いますがぐぐりましょう!笑

僕の場合はエラーが出でiPhoneの再起動で実行できました。

するとホーム画面にアイコンがでます。


これを実行すると!


こんな感じ!
ちょっと感動します。

以上がAR体験になります。

簡単なので是非やってみてください。

プログラミング初心者がxcodeで遊ぶ。

f:id:kassaaaah:20190518100319p:plain



どうもこんにちはkiwoです。

Macを買ってからpythonで遊んでいたのですがちょっと行き詰まってきたのでxcodeで遊んでいきたいと思います

今回すること



プログラムを表示するアプリを作るまでをします!



そんなの楽勝だろwと思ったのですが地味にメモらなければいけない様な事もあったので備忘録としてもこのブログを書きます!

まず前提としてxcodeをインストールしている事として話を進めます。



よし!やってみよう



ではxcodeの起動から

ここで赤丸の所を選択します。

f:id:kassaaaah:20190518093837p:plain

single view appを選択します。

f:id:kassaaaah:20190518093909p:plain


プロジェクトの名前を決めて保存場所を選びます。

赤線のところは本名が出ちゃったので隠してます笑
それから左にあるMain.storyboardを選択します。

f:id:kassaaaah:20190518094131p:plain




お次はiPhoneの画面が表示された右上にあるここ!

f:id:kassaaaah:20190518094253p:plain

を選択してから検索できるので「label」と検索してこの画面が表示されます。


f:id:kassaaaah:20190518094315p:plain

Labelをドラッグしながら画面まで持っていきます

それから右上にある中途半端なオリンピックのマークみたいなところを選択すると

f:id:kassaaaah:20190518094402p:plain

コードがでてきました!

そこからcontrolを押したまま配置したlabelをドラッグしながら13行目の
override func viewDidLoad() {
の上まで持っていきます。

そうするとこの様な画面が出てくるので

f:id:kassaaaah:20190518094427p:plain

nameのところでlabelと打ってconnect!

この様なコード
@IBOutlet weak var label: UILabel!
が追加されたらOKです。

f:id:kassaaaah:20190518094508p:plain

この辺のコードをこんな感じに変えます。

@IBOutlet weak var label: UILabel!
    override func viewDidLoad() {
        let test: Int = 123
        label.text = "\(test)"
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }
	 


変数testに123の数字を入れてlabelのテキストに代入しました。

それから左上のここをで好きな機種を適当に選択。
f:id:kassaaaah:20190518094752p:plain

これで左上の再生ボタンみたいなところをクリック!

シミュレータが起動するのでこの様に表示されます。

f:id:kassaaaah:20190518094847p:plain




はいこれでOKです。


もし何も表示されなかったらここをmainに変えてみるといけるかもです。

f:id:kassaaaah:20190518095008p:plain

さいごに


今回はここまでになります。

スクショしまくってまじで疲れました。

youtubeとかでも解説しようかなと思うので希望される方がもし入れば応援してもえると頑張ります笑

コンピューターのウイルスについて話す。

どうもこんにちはkiwoです。

今回はコンピューターのウイルスについて記事を書いていきます!

はじめに

まず世間のハッカーのイメージはこんな感じだと思います笑

f:id:kassaaaah:20190415070449p:plain

ですがハッカーとは「コンピューターに関して深い知識を持った者」が正しい意味です。

世間のイメージのハッカーは正しくは「クラッカー」です。

お菓子じゃないので注意を。

そんなクラッカーがよくする手口として世間では「パソコンにウイルスを感染させる悪い人」のイメージだと思いますが
先程と似た様に正しくは「パソコンにマルウェアを感染させる悪い人」の方が正しいでしょう。

というわけで今回はマルウェアのお話でもしていきます!

マルウェアにはどんなのがあるのか?

f:id:kassaaaah:20190415093158p:plain

まずよく言われているコンピューターのウイルスは狭義的な意味を持ちます。
正しくはマルウェアと呼びます。

マルウェアは英語にするとmalwareとなり”malicious”「悪意のある」と”software”「ソフトウェア」を合わせた造語です。

ウイルスとはマルウェアの種類の一つとなります。

ではよくあるマルウェアの紹介です!

まず先程も言いましたが
「ウイルス」についてです。

ウイルスの特徴として自己伝染機能潜伏機能発病機能のどれかを持っています。
データの消去や改ざん等を使用者の意図に関係なく行われる恐ろしいものです!

次もネットに通じている人ならよく見ると思いますトロイの木馬です。

f:id:kassaaaah:20190415093251p:plain

これは普通にプログラムが動いている様に見えて実は裏で悪い事をしているマルウェアです!

なので発見しにくいのが特徴です。

データの一斉消去など分かりやすい事はしないのですがこっそりと悪い事をする卑怯者というイメージです笑

知らない間にバックドアという侵入口も密かに作られている事が多くやっかいな代物ですね。


次はスパイウェアです。

f:id:kassaaaah:20190415093407p:plain

これはウイルスと違って他のPCに感染や増殖等することはありませんがPC利用者の趣味や個人情報を収集してインターネット上の特定のサイトに送るのが特徴で情報収集に特化したマルウェアです。

次は「ボット」です。

f:id:kassaaaah:20190415093511p:plain

これはワームの一種ですが感染だけではなく遠隔操作や拡張機能等を行う悪質なプログラムです。
スパムメールの発信やDoS攻撃や情報収集をします。

他にもランサムウェアキーロガーなどたくさん種類があります!


そしてこの多くのマルウェア主にOSに感染します。

特にwindowsに感染します。

これはなぜかと言うと単純に使用者が多いからです。
使用者が少ないMacのOSを狙っても効率が悪いですよね。

その為更に攻撃するツールを作るにはwindowsだと色々揃ってますがMacだとあまりなく攻撃するツールを作るにも手間と時間とコストがかかりますよね。

およそ8倍程コストがかかるそうですが今Macが普及し、もしかしたらもっと安く攻撃ツールが揃ってるかもしれませんのでMacだからといって油断はしないほうが良いです。

さいごに

どれだけ良いセキュリティソフトを使っても使用者次第ではマルウェアに感染します。

もしくは人自身が悪意を持って直接情報を悪用するケースの方が多いかもしれません。

これからIoTが進んでセキュリティは更にシビアになってくるかと思います。

そんな時に自分や身近な人を守るためにはやはり自分で知識を付けるしかないと思います。

最強のセキュリティは自分で正しい知識を身につける事かもしれませんね(ドヤ

pythonのDjnagoでhtmlファイルでhello worldしよう。

f:id:kassaaaah:20190409213803p:plain

pythonDjangoでテンプレート使います!

どうもこんにちはkiwoです。

今回はタイトルにある様にpythonDjangohello worldのページを作るまでをしていきたいと思います!

そこでテンンプレートを使用し、htmlを使っていきます!

はじめに

まず僕の環境ですが

MacBook Air

Python 3.6.6
Django 2.1.7
です!

特にDjangoはバージョンによってコードが変わってくる様なので注意が必要です。
PythonDjangoはインスールしている前提でこの記事を書いていきます。

プロジェクト作成


初めにDjangoのプロジェクトを作る前にファイルを作りたいフォルダに移動します。
今回は取り敢えずデスクトップに作ります。

$ cd Desktop	 
$ django-admin startproject page

これでこの様なディレクトリが作られます。

f:id:kassaaaah:20190403091641p:plain

各々のファイルが何の役割か知りたい方はぐぐってみてくださいw
僕は感覚的にしか分かってないので説明はしませんというより出来ませんw

理解しようとすると難しい言葉が次々に出てきてややこしいのでw

実践してこういうファイルはこんな事が出来るのか!って進めて行くのがオススメかと思います。

では次にこのプロジェクトにアプリケーションを追加しましょう!

$ python manage.py startapp myapp

もう一度ディレクトリを見てみます。

f:id:kassaaaah:20190403092636p:plain

できました。
あ、あとちなみにこれはtreeコマンド使ってます。

page/settings.pyのコード変更

myappというアプリケーションを作りましたがDjangoのプロジェクト(pageフォルダ)にはまだ繋がりはありません。

なのでpageファイルのsettings.pyというファイルのコードを触って繋げていきましょう。
このファイルはDjangoの設定をする為のファイルになります。

このファイルのコードを画像の様に変更します。

f:id:kassaaaah:20190403094148p:plain

これでOKです。

あとは58行目にあるDIRSという所にコードを追加しましょう!
追加するコードはこちら!

os.path.join(BASE_DIR, 'templates'),

テンプレートはこれやで!ってDjangoに教えてる感じです。

画像にすると

これを

f:id:kassaaaah:20190407105303p:plain

こうしましょう

f:id:kassaaaah:20190407105414p:plain


完了したらtemplatesがフォルダを作成しましょう!

templatesフォルダの作成

プロジェクトのディレクトリで

$ mkdir templates

それからhtmlファイルを作ります

$ touch index.html

これでhtmlファイルはできました。

ついでにindex.htmlに以下のコードを

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
Hello World
</body>
</html>

page/urls.pyのコード変更


次にpage/urls.pyのコードをいじっていきます。

コードの上に

from django.conf.urls import include, url

を追加します。

それからurlpatternsの所に

url(r'^myapp/', include(('myapp.urls', 'myapp'),)),

を追加します。

こんな感じです。
f:id:kassaaaah:20190407112254p:plain

ここで注意が必要なんですが他のサイトでよくあるコードをそのまま記述すると古いページ内容ですとDjangoのバージョンが違う為エラーがでます。

例えば…
namespace='myapp'
のコードをよく見かけます。

Djangoの2.1ではurl関数にnamespaceがあればエラーがでます。

myapp/view.pyのコード変更

次はmyapp/view.pyの編集です。

def hello_template(request):
    return render(request, 'index.html')

を追加します。

f:id:kassaaaah:20190407113143p:plain

myapp/urls.pyの作成とコード変更

次にmyappにurls.pyファイルをつくります。
さっきみたいにtouchコマンドでちゃちゃっとやっちゃいます。
page/urls.pyとmyapp/urls.pyの二つがあって間違えやすいので注意を!

ではmyapp/urls.pyをいじっていきます!

コードはこんな感じで!

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^template/$', views.hello_template, name='hello_template'), 
]


これで準備OKです!お疲れ様です!

最終的にはこの様な感じの構造になります。

f:id:kassaaaah:20190409213734p:plain

ランサーバーしよう!

ではターミナルでプロジェクトのディレクトリに移動してから

$ python manage.py runserver

ここで文法エラーなどがあればエラーが表示されます。
成功すればこの様に表示されます。

f:id:kassaaaah:20190407120259p:plain

成功すればローカルホストに接続しましょう。
http://127.0.0.1:8000
上記に接続してもページは見つかりませんので
URLの最後に/myapp/templateを追加してください!

http://127.0.0.1:8000/myapp/template/

上記に接続すると

f:id:kassaaaah:20190409214533p:plain

これでindex.htmlが表示されましたね。


ここまでやりましたがエラーが出た時はだいたいしょうもないミスでしょう笑

僕の場合はコード変更して保存がちゃんと出来てなかったりコピペミスとかでエラーがでてました笑

さいごに

以上が簡単なDjangoの使い方です!

Djangoは少し難しいかと思いますが情報が豊富で解説なんかもたくさんあるのでwebフレームワークにはオススメかと思います!

個人的にも今勉強してて面白く楽しませてもらってます!

皆さんもこの機会に勉強してみては?笑



0から始めたUNIXコマンド備忘録(ls編)

f:id:kassaaaah:20190304080101p:plain

どうもこんにちはkiwoです。
今回はUNIXのコマンドの備忘録としてlsコマンドの紹介をします。

はじめに

まずlsコマンドの説明ですが
lsコマンドは今いるディレクトリのファイルやらフォルダを表示してくれます。


こんな感じで

$ ls	 

f:id:kassaaaah:20190304073301p:plain


lsのみのコマンドだとシンプルに表示するだけです。

なのでオプションの説明もします!


本題の備忘録

まずは

$ ls -a	 

これもかなり使用頻度が高いと思います。
いわゆる隠しファイル的なのも表示してくれるコマンドです。

ファイル名が「.bashrc」などになっており先頭に「.」ドットがあると
このファイルは非表示となります。

それを見る為に-aというオプションがあります。

実行すると

f:id:kassaaaah:20190304073440p:plain

お次は

$ ls -F	 


これはディレクトリには「/」の記号を、実行可能ファイルには「*」を、シンボリックファイルには「@」が表示されます。

f:id:kassaaaah:20190304073917p:plain

こういった具合ですね。
lsコマンドをして表示されたもののこのファイルってなんだっけ?ってなった時に便利だと思います。

次は

$ ls -l	 


このコマンドはファイルのタイプやらサイズやら最終更新日時が表示されます。

f:id:kassaaaah:20190304074440p:plain

$ ls -t	 

これは更新日時が新しい順にlsを表示してくれます。

$ ls	-u 

これは最終アクセス日時です。

$ ls -R	 

これは実行しない方が良いと思います笑
サブディレクトリのファイルとディレクトリが表示されて大量に表示されるので実用的でないと思います。

自分も鬱陶しくて途中でctrlとc押しちゃいました笑

$ ls -1	 

ただ一列に表示するだけです。
ls -tと一緒に使用すると見やすいです。

組み合わせて更新日時が新しい順に一列に表示します。

$ ls -t -1

こんな感じです。

f:id:kassaaaah:20190304074819p:plain


さいごに

いかがでしたか?
役に立つオプションが知れたわ〜って方が入れば嬉しいです。
今回のシェルはbashを使いましたがzshにすればもっと便利になります。

最近UNIX操作にはまってるのでちょいちょい記事を上げていこうかと思います!

ありがとうございました!

zshが出来ること

f:id:kassaaaah:20190304084908p:plain

どうもこんにちはkiwoです。
今回はよく目にするbashよりzshやろ!!」
について記事を書いていきます。

その前にzshについて説明ですが

Z shell(ズィーシェル、zsh)はUnixのコマンドシェルの1つである。 対話的なログインコマンドシェルとしても、強力なシェルスクリプトコマンドのインタープリターとしても使うことができる。
zsh は数多くの改良を含んだBourne Shellの拡張版という見方もできる。のみならず、bashkshtcshの非常に有用な機能も一部取り込まれている。また、Windows上でネイティブUnix環境を提供する Interix サブシステム上ではUnix版のソースコードをビルドしてWindows上で使用することができる。

wiki引用

読んでもよく分かりません。笑
とりあえず何か便利なんだろうなーぐらいの感覚。笑
そんな自分が素人ならではの目線で紹介します!


取り敢えず使ってみた


まず自分自身あまりzshについて理解しておらず
「今の環境構築とかパスとか変わったら嫌だしもっと勉強してからで良いかあー」
と思ってました。

ところがある日暇すぎてzshでも触ってみようかなと思い、使ってみることに…
ネットに記事を見ながら.zshrc(zshの設定とか保存するファイル)に良さげな設定をしてみました。

とりあえず適当にディレクトリ移動しよー
と思ってcdからのtabキー…

するとこんな画面が自動で!
f:id:kassaaaah:20190303083430p:plain

そんでtabキーで選択できる。。。!

f:id:kassaaaah:20190303083534p:plain

クッソ楽やん。。。

正直な感想がこれでした
今までちみちみタイピングしてたのが馬鹿らしくなるほどに。。。笑

でもネットだとbashでの設定の仕方とかあるしなあ。。。
と思ってましたが大丈夫!
そんな方はログインシェルの設定を飛ばしましょう。
だいたいネットにある記事を読んでるとログインシェルの変更の手順がありますが、ターミナルで
f:id:kassaaaah:20190303083830p:plain
enterで…
f:id:kassaaaah:20190303084013p:plain
と打つだけでbashからzshに切り替えれるのでそこまで効率を求めない方は大丈夫です。
行頭に%とあったらzshになってます。

戻る場合は
f:id:kassaaaah:20190303084206p:plain
これだけ

では実際にzshで遊んでいきます。
※設定とか(.zshrcファイル)は既に変えていて色んな方のブログにあるのを適当に引用してます。
取り敢えずはコマンド補完機能やらcdコマンド省略やら入れてるので気になる人は「zsh 設定」とか「zsh オススメ」とかでググると良いです。

まずcd

僕の場合Desktopに色々なデータを置いているのでDesktopに移動します。


f:id:kassaaaah:20190303084717p:plain
「Des」まで打った後に必殺のtabキーを押すと…

f:id:kassaaaah:20190303084836p:plain


なんと自動でcd Desktopが表示されました!

いつも打ち込んでたのがアホらしくなります笑


cdコマンドの省略ですが、
個人的にはコマンドは打ちたいのでこの機能はあんまり使ってませんが笑
今自分が何のコマンドをしているのかちゃんと把握したいので。

でも何回も同じコマンド使うわ〜って方にはうってつけですよね!

まとめ


今回はcdコマンドしか使ってませんが初心者の方に
zshというやつがどういった事が出来るのか少しでも把握してもらえれば嬉しいです。

色々書いてたら頭に入りきらないので今回はこれだけですが
ぐぐると鬼の様に情報があるのでQiitaやら色々ぐぐってみるとzshの便利さが分かると思います。

zsh食わず嫌いしてる方は是非一度使ってみてはどうでしょうか?
僕自身そうでしたが今までかなり面倒な事してたなあ…というのが正直な感想です。

とりあえずやってみるが正義でした…笑