Paepoi

Paepoi » macOS Tips » macOS を Linux のように使う

macOS を Linux のように使う

# 最終更新日 2020.02.17

bash_profile と bashrc
筆者が使っている Fedora の ~/.bash_profile と ~/.bashrc のデフォルト内容です。

.bash_profile
# Get the aliases and function
if [ -f ~/.bashrc ]; then
	. ~/.bashrc
fi
.bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi

# User specific environment
PATH="$HOME/.local/bin:$HOME/bin:$PATH"
export PATH
macOS の bash も上記二つを $HOME に作成すれば読み込んでくれます。
これで .bashrc を使ったカスタマイズが Linux 同様にできるようになります。
たとえばプロンプトを Fedora と同じ表示にしたい場合 .bashrc の最後に以下を追記。
PS1='[\u@\h \W]\$ '
ところで Linux の標準シェルは bash であるとはかぎりません、Debian 系は違うようです。
RedHat 系はすべて bash ですので Fedora, CentOS 等を利用したほうが懸命です。

zprofile と zshrc
zsh で上記に相当するのが ~/.zprofile と ~/.zshrc です。
カスタムするなら ~/.zshrc を作成して書き込んでおきましょう。
下記は筆者がやっている内容です、説明は省きます。
# ~/.zshrc @ User specific environment

PATH="$HOME/.local/bin:$HOME/bin:$HOME/.nodebrew/current/bin:$PATH"
export PATH

# Fedora like Prompt
PS1="[%n@%m %1~]%# "
#RPROMPT="[%~]"

# alias
alias ll="ls -l"
alias jxa="osascript -i -l JavaScript"
alias jsc=/System/Library/Frameworks/JavaScriptCore.framework/Versions/A/Resources/jsc

$HOME/bin と $HOME/.local.bin
PATH="$HOME/.local/bin:$HOME/bin:$PATH"
を指定しましたけど macOS デフォルトにはどちらのディレクトリもありません。
mkdir bin
mkdir .local
cd .local
mkdir bin
のように地味にコマンドを打って作ってください。
使い分けは自由ですが筆者が実際に Fedora でやっている例を以下に。
~.local/bin には rar 等のネットで拾ったコマンドを入れる。
~bin にはよく書き換えて使う使い捨てスクリプトを入れておく。

使い捨てスクリプトは拡張子一括変更や連番ファイルのダウンロード等々。
一行書き換えすれば使い回せるので手の届きやすい ~/bin に置いておくと便利。

実行スクリプト
macOS も実行パーミッションを付ければシバンによるスクリプト実行が可能。

Finder から command+O で使うには更に拡張子を外す必要がある。
ただこの場合カレントディレクトリは $HOME に指定されてしまう。
なので以下のようにしてカレントディレクトリを移動してから使う必要がある。

sh の場合
#!/bin/sh
cd `dirname "$0"`
# 以下普通にスクリプトを書く
Python3 の場合
#/usr/bin/env python3

import sys, os

os.chdir(os.path.dirname(sys.argv[0]))
# 以下同文
Terminal.app が無意味に立ち上がるのを無視すれば Linux 同様に使える。

Python3 Node.js
macOS はサンドボックスが年々厳しくなり大半の野良アプリが起動できません。
Python3 は公式サイトのインストーラで入れたものなら問題なく起動できます。
多分今後は標準で入るようになると思いますけど。
Welcome to Python.org

Node.js は検索でよく見つかる brew で入れると起動できないようです。
下記 nodebrew から入れたものは問題なく起動できます。
GitHub - hokaccha/nodebrew: Node.js version manager

気がついた人も多いと思いますが筆者は brew なんて入れていません。
Ubuntu の痛い人達と同様にインストールしかしない人用。

拡張子
macOS ではコマンドでは UNIX ですが GUI は拡張子に左右されます。
スクリプトでコマンドを自作した場合実行パーミッションだけではアイコンは変わらない。
拡張子を取っ払うとコマンドのアイコンになります。
Linux はそんなアイコンありませんけどね。
cp test.sh test
chmod +x test
img/cmd.png

Copyright(C) sasakima-nao All rights reserved 2002 --- 2020.