ターミナルに関するまとめ

ターミナルに関するまとめ

概要

昨日、MSYSとかMinGWとかについて調査を行ったので本日はTerminalに関する調査を行う。

めっちゃわかりやすい解説

用語解説

ターミナルとは?

  • 黒い画面のアレ、特に外側のGUIのこと。
  • 中身の文字列は、シェルの機能

シェルとは?

カーネルとは?

コマンドラインインタプリタ

  1. ソースコードを直接実行する
  2. ソースコードを何らかの効率的な中間表現に変換しながら実行する
  3. コンパイラが生成し出力した、コンパイル済みの中間表現を実行する。
  • ユーザによりキーボードから入力される文字列の行のコマンドを解釈し、OSやプログラミング言語処理系などに渡す、コマンドラインインターフェースであり、 CUIを構成する要素である。
  • OSの標準ユーティリティとしては、コマンドラインシェルがある。
  • いくつかのプログラミング言語処理系が持つそれに関してはREPLを参照。

REPL

  • Read-Eval-Print-Loop
  • 対話型評価環境
  • プログラム

端末とは

  • ホストコンピュータから見た、ケーブル末端の入出力装置。

端末エミュレータとは

  • 端末のエミュレータ

端末エミュレータの種類

xtermとは
  • 標準的な端末エミュレータ。ユーザは一つのディスプレイの中に複数のxtermを表示し、同時に作業を行うことができる。
  • 参考

TeraTermとは

  • 日本人によって開発されたリモートログオンクライアント
  • 参考

PuTTYとは

  • MIT Licensseで開発、公開しているリモートログオンクライアント

mintty

TTYとは

テレタイプ端末, 印刷電信機 擬似的なテレタイプ通信機のことをptyと呼ぶ。

シェルとかについて

シェルについて

概要

git-bashを業務で使用しているが、その仕組み及び、分類についてあんまりわかってないので 業務もくそ暇だしまとめる。

カーネルについて

概要

シェルを語る前の予備知識として、カーネルに関する記述をまとめる。
ロックマンXのアイリスの兄のカーネルとは無関係。
揚げた鳥を売る髭のおじいちゃんとも無関係なので注意すること。

Wikipediaの抜粋

コピペしか能がない馬鹿なのでwikiの説明をそのままコピペする。
逆にすがすがしいだろ?

カーネル(英: kernel)は、階層型に設計されたオペレーティングシステム (OS) の中核となる部分である。アプリケーションとハードウェアレベルでの実際のデータ処理との間の架け橋である。システムのリソースを管理し、ハードウェアとソフトウェアコンポーネントのやりとりを管理する
みんな大好きwikipedia

つまり、ハード(CPUやらMemoryやら)とアプリケーションの架け橋を提供するモノ。

シェルについて

概要

いよいよ本題のシェルについてまとめるよ。
お察しの通り、コピペです。

Wikipediaの抜粋

そりゃあんた、コピペですよ。 だって俺が手打ちした文章なんて糞の価値もないんだから。

シェル (英語: shell) はオペレーティングシステム (OS) のユーザーのためにインタフェースを提供するソフトウェアであり、カーネルのサービスへのアクセスを提供する。
あなたのとなりにWikipedia

つまり、ハードとアプリケーションの架け橋をするカーネルさんを使うためのソフトウェアということ。

シェルの種類

Unixシェル

  • Bourne Shell
  • bash
  • zsh

Unix以外のシェル

  • cmd.exe
  • Googole Shell

プログラミング言語のシェル

  • プログラミング言語処理系に対するコマンドラインインタプリンタも、一種のシェルである。

  • JavaScript shell
  • PHPsh

グラフィカルシェル

  • Windows Shell
  • GNOME

MinGW(Minimalist GNU for Windows)

概要

端末を自分で設定しようとすると、いつもなんか出てくるMinGW
こいつなんやねんってことでとりあえずまとめてみました。(まとめる=>コピペする)

Wikipediaの抜粋

MinGW(ミン・ジー・ダブリュー、Minimalist GNU for Windows)はGNUツールチェーンのWindows移植版である。 そうさ僕らのWikipedia

GNU(OS)をWindowsで動作させるためのツール群。

MSYS(Minimal System)

概要

MinGwとMSYSの差異についてはとてもわかりにくいので
この章では、その差分について記述する(Wikipediaが)

Wikipediaの抜粋

MSYS(Minimal SYStem)は、Windows上で動作するUnixシェル(Bash)やテキスト操作ユーティリティ(gawk, sed, findutil)、ソースコードパッチ用ツール(diffutil), アーカイブツール(tar, bzip2, zlib)を統合したパッケージである。MinGWを補う目的で作られた。 あの日みたWikipediaの記事の項目名を僕は知らない

つまり、MinGWだとあまりに最低限過ぎるので、不足しているツールを補足する目的で作られたパッケージ群。
MinGW + MSYS = Windows上でGNUの開発ができるよ! ってていう感じ。

CygWin

概要

Windowsで「bash使うんならCygwinだよCygwin」などとどや顔での給う輩がおりますが
てめえこんにゃろう、Cygwinってなんなのかわかってんのか? わかってねえんだったらちゃんとこれ読め
教えてやるよ(Wikipediaが)

Wikipediaの抜粋

Cygwin(シグウィン)は、Windowsオペレーティングシステム上で動作するUNIXライクな環境の一つである。フリーソフトウェアである。 Wikipediaのくせになまいきだ

コンパイルできるってことは、ぶっこんだUnixのコマンドを解釈してくれるだろう?
そういうことだ。わいるどだろ?

以上

めもまとめ

2018年 2月 2日 金曜日 15:57:48

就業中メモ

ツールチップ

  • Tips

CSS,HTMLでTool Tip実装

2018年 2月 5日 月曜日 11:11:16

Java

JavaにおけるCastについて

  • Javaには変数のデータ型を変換することができる“型キャスト”と呼ばれる機能が存在する。

書式

  • (type)var
int integerVariant=0;
(String)integerVariant;

注意点

  • 小さな型を大きな型に変換することは可能である。(拡大変換)
  • しかし、大きな型を小さな型に変換する際には、正しく変換されるとは限らないのである(縮小変換)

注意点2

下記は可能 (※ HamsterはAnimalのサブクラス)

Animal animalHamster = new Hamster();
Hamster hamukichi = (Hamster)animalHamster;

下記は不可能 (※ tamaの実態はcatオブジェクトであるため)

Animal tama = new Cat();
Hamster hamukichi = (hamster)tama;

下記で解消可能

Animal tama = new Cat();
if ( cat interfaceof Hamster) {
    Hamster hamukichi = (Hamster)tama;
}

三項演算子

  • ifの省略形だよ

書式

  • 条件式 ? Trueの場合に実行する式 : Falseの場合に実行する式

indicatorStateについて

  • indicatorState -> 状態インジケータ

2018年 2月 5日 月曜日 11:11:16

Java

JavaにおけるCastについて

  • Javaには変数のデータ型を変換することができる“型キャスト”と呼ばれる機能が存在する。

書式

  • (type)var
int integerVariant=0;
(String)integerVariant;

注意点

  • 小さな型を大きな型に変換することは可能である。(拡大変換)
  • しかし、大きな型を小さな型に変換する際には、正しく変換されるとは限らないのである(縮小変換)

注意点2

下記は可能 (※ HamsterはAnimalのサブクラス)

Animal animalHamster = new Hamster();
Hamster hamukichi = (Hamster)animalHamster;

下記は不可能 (※ tamaの実態はcatオブジェクトであるため)

Animal tama = new Cat();
Hamster hamukichi = (hamster)tama;

下記で解消可能

Animal tama = new Cat();
if ( cat interfaceof Hamster) {
    Hamster hamukichi = (Hamster)tama;
}

三項演算子

  • ifの省略形だよ

書式

  • 条件式 ? Trueの場合に実行する式 : Falseの場合に実行する式

indicatorStateについて

  • indicatorState -> 状態インジケータ

2018年 2月 7日 水曜日 09:19:38

2018年 2月 8日 木曜日 11:03:23

Vim

カーソルの単語を検索する

  • *: カーソルの単語を検索
  • #: カーソルの単語を上方向に検索
  • vim

    インデント

    コマンド    説明
    =   選択行のインデント修正
    ctrl-t, ctrl-d  挿入モードでインデントを追加/削除
    >>  インデント
    <<  インデントを削除
    :set shiftwidth=4   インデント幅をスペース4つ分にする
    :set autoindent オートインデントをON
    :set smartindent    スマートなオートインデントをON

    Java

    Rectangle

    • Rectangle=長方形

    // 座標 (a,b)に(幅=c、高さ=d)のRectangleを生成Rectangle hoge = new Rectangle(a,b,c,d)`

    Window.setBounds(int x, int y, int width, int height)

    • 位置の調整 & サイズ変更
    • JFrameにも適応可能

    Window.setSize(int width, int height)

    • サイズ変更
    • JFrameにも適応可能

    BevelBorder

    • bevel=斜面
    • 窪みを描画するクラス BevelBorder java.lang.Object 上位を拡張 javax.swing.border.AbstractBorder 上位を拡張 javax.swing.border.BevelBorder —

    Qt

    Loaderの使い方

    必要とされたときに、コンポーネントを作成することができる。

    import QtQuick 2.0
    
    Item {
        width: 200; height: 200
    
        Loader { id: pageLoader }
    
        MouseArea {
            anchors.fill: parent
            onClicked: pageLoader.source = "Page1.qml"
        }
    }
    
    

    その他

    JSPとは

    Webサーバ(ホームページのファイルを置くサーバ)上でお仕事をするJavaのプログラムで、HTMLファイルとJavaのプログラムが合体したもの

    16進数のカラーコードの意味

    • #000000= RGB(0,0,0)
    • RGBを16進数で表記しているだけ

作業中のメモ

作業中のメモ

Markdown

画像貼り付け

  • ![alt属性](url "タイトル")

vim

指定した文字列が存在(する/しない)行を削除

  • :g/abc/d
  • :vabc/d
  • 前も書いた気がする。

bash

clipboardへの出力

  • echo test > /dev/clipboard
  • pandoc -f markdown -t html test.md > /dev/clipboard
  • 超便利。 シェルスクリプト書いてもいいけどコマンド覚えなさそうなので作らないでおく。

以上