0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

7/26 MAC環境大改善プロジェクト!!!

Last updated at Posted at 2024-07-26

Refferences

dotfile作成で学んだこと

dotfileの作り方参考
https://zenn.dev/dani_rk/articles/19db34c9296ba7

Makefileとは

  • Makefileがあるディレクトリ内でmakeまたはallを実行するとそのファイル内の最初の行が実行される。cが使えるならどこでも使える便利ファイル。
  • dotfile内の.shファイル実行に使用される

InitファイルあれこれをInstallする

init.sh
#!/bin/zsh

# Check operating system
if [ "$(uname)" != "Darwin" ] ; then
	echo "Not macOS!"
	exit 1
fi

# Install Rosetta 2 for Apple Silicon
if [ "$(uname -m)" = "arm64" ] ; then
  /usr/sbin/softwareupdate --install-rosetta --agree-to-license
fi

# Install xcode
xcode-select --install

# Install brew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
if [ "$(uname -m)" = "arm64" ] ; then
  eval "$(/opt/homebrew/bin/brew shellenv)" > /dev/null
fi

解説

  • あなたのOSはDarwin(mac)?Linux判定
  • exit 1は以上終了 0は正常
  • uname -mでプロセッサ確認 -> arm64はapple silicon。 x86系はその他
  • binはls cdなどのOSで使う処理が入ってて、sbinはsystem内部系の処理が入ってる。(losettaってコマンドとかで使わないから確かに)

  • curl:
    • さまざまなプロトコル(HTTP、HTTPS、FTP、SMTP等)に対応しているデータ転送系コマンド
    • GETやPOSTなどのリクエストメソッド、ヘッダーやリクエストボディのカスタマイズが簡単
    • SSL/TLSによる暗号化通信に対応。プロキシ経由の通信に対応
  • eval:
    • 引数を1つにまとめて,コマンドとして実行したり、引数として与えられた文字列をそのままコマンドとして実行します。
  • 最後のコードは呪文。。/dev/nullは出力のゴミ箱??

linkファイル シンボリックリンクを貼ってcommandや設定をグローバルに反映する

link.sh
#!/bin/zsh

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"

for dotfile in "${SCRIPT_DIR}"/.??* ; do
    [[ "$dotfile" == "${SCRIPT_DIR}/.git" ]] && continue
    [[ "$dotfile" == "${SCRIPT_DIR}/.github" ]] && continue
    [[ "$dotfile" == "${SCRIPT_DIR}/.DS_Store" ]] && continue

    ln -fnsv "$dotfile" "$HOME"
done

解説

  • dirname "$0": $0 はスクリプトのファイル名を表します。dirname "$0" はスクリプトが置かれているディレクトリのパスを取得します。
  • "${SCRIPT_DIR}"/.??*: スクリプトのディレクトリ内の隠しファイル(ドットファイル)をリストします。.??* は .から始まる「2文字以上のファイル」を意味します。例えば .bashrc
  • それらをdotfileとしてルーぴんぐ!
  • [[ "$dotfile" == "${SCRIPT_DIR}/.〜〜" ]] && continueこれはループしているdotfileつまり、そのドットファイルのpathが〜〜ノファイルと一致した場合、continueする <ーーーーー シンボリックリンクをつける必要がないから
  • lnコマンドはお馴染みリンク貼りコマンド 左のパス -> 右のパスへ貼り付ける

defaults.sh MACの設定ファイル

詳しくは
https://memo.yammer.jp/posts/macos-defaults

defaults:sh
#!/bin/zsh

if [ "$(uname)" != "Darwin" ] ; then
	echo "Not macOS!"
	exit 1
fi

# Remap the emoji picker to the Fn key
defaults write com.apple.HIToolbox AppleFnUsageType -int 2

# Enable full keyboard access for all controls
defaults write NSGlobalDomain AppleKeyboardUIMode -int 3

~~~~~~~~~~などなど

***上のリンクの記事にあるように今使っているMacの設定を変えてその差分を見ることでどのパラメータが変化したか確認できる

defaults read > before

# GUI上で設定を変更する -> 大事!時間あけすぎも注意

defaults read > after
diff before after
colordiff(brew install colordiff)などを使うと捗る

あとがき

typeコマンド

  • ls やyarn などのコマンドがどのパスに存在しているか確認できる便利

-d

  • -d はテストオプションで、指定したパスがディレクトリかどうかをチェックします。
    if [ ! -d $DOTFILES_PATH ]; then

tput装飾一覧

色番号 色
0:黒 1:赤 2:緑 3:黄色 4:青 5:マゼンタ 6:シアン 7:白

$ tput setaf <色番号> #文字色を色番号にする
$ tput setab <色番号> #背景色を色番号にする
$ tput cup <y座標> <x座標> # 上からx行目左からy文字目にカーソル移動
$ tput bold #太字
$ tput clear # clearコマンドと同じ効果
$ tput sgr0 # 装飾解除
$ tput cols # ターミナルの横幅を文字数で出力
$ tput lines # ターミナルの縦幅を文字数で出力
$ tput civis # カーソル非表示
$ tput cnorm # カーソル表示

プロセッサアーキテクチャの違いとは

  • uname -aで確認できる

M1Macの開発って他と違うアーキテクチャだから色んなPackageのインストールがうまくいかないことが多いよね?
Losettaとかインストールいるし
https://zenn.dev/skrikzts/articles/0e35a39a484d78

ざっくり紹介

ARM64
ARM64(またはAArch64)は、モバイルデバイスや組み込みシステムなど、エネルギー効率や省電力性が重視される環境向けに設計された64ビットのプロセッサアーキテクチャです。
ARMプロセッサは、スマートフォン、タブレット、IoTデバイス、クラウドサーバーなど、さまざまなデバイスで広く利用されています。 ARM64アーキテクチャは、低消費電力でありながら高性能を実現しています。

x64
x64(またはx86-64、AMD64)は、主にデスクトップやサーバー向けに使用される64ビットのプロセッサアーキテクチャです。
x64プロセッサは、Intelのx86アーキテクチャを拡張したものであり、64ビットのアドレス空間をサポートし、大容量メモリの利用や高性能な演算が可能です。一般的なパーソナルコンピュータやサーバーでは、x64アーキテクチャが広く採用されています。

その他の便利MAC TOOLS

  • rcmd
  • rectangle
  • MonitorControlLite
  • Arc
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?