-->

2022/11/24

my settings(TBC)

 > cat .bashrc

source /Users/shoma/.bash_profile

-----

> cat .bash_profile

#cutで10文字に切理詰めて表示

#PS1='\[\e[0;32m\]$(echo "\u@\h"|cut -c 1-10):$(tty |sed s/.*ttys//g) \[\e[0;36m\]\j \w\n!\!-> \[\e[m\]'

PS1='\[\e[0;32m\]$(echo "\u@\h"|cut -c 1-10):$(tty |sed s/.*ttys//g) \[\e[0;36m\]\j \w\n\[\e[0;36m\]!\!-> \[\e[m\]'

export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/sbin

# export LSCOLORS=gxfxcxdxbxegexabagacad

export LSCOLORS=Exfxcxdxbxegedabagaccx

HISTSIZE=5000       #現在使用中のbashが保持する履歴数

HISTFILESIZE=5000   #履歴ファイルに保存される履歴数

# HISTCONTROL=ignoredups  #同じコマンドが連続する場合は1回だけ記録する

# HISTCONTROL=ignorespace #コマンドの頭にスペースを付けて実行すると記録しない

HISTCONTROL=ignoreboth    #ignoredupsとignorespaceどちらも設定する

HISTIGNORE=history     #historyは記録しない

#history -a --save cache to bash_history

#history -n --load from bash_history

#stty -a,bind -p shows current settings.

#source ./bash_profile -- effect immediately!

stty stop undef

#for WSL                                                                                                            

cd

-----

> cat .inputrc

$if bash

# for vi mode

set editing-mode vi

set keyseq-timeout 20


set show-mode-in-prompt on

set vi-ins-mode-string "\1\e[34;1m\2i)\1\e[0m\2"

set vi-cmd-mode-string "\1\e[31;1m\2c)\1\e[0m\2"


$endif


-----

> cat .vimrc

"===== 表示設定 =====

set number "行番号の表示

set title "編集中ファイル名の表示

set showmatch "括弧入力時に対応する括弧を示す

set list "タブ、空白、改行を可視化

set visualbell "ビープ音を視覚表示

set laststatus=2 "ステータスを表示

set ruler "カーソル位置を表示

syntax on "コードに色をつける

set showmatch matchtime=1 "対応する括弧やブレースを表示

set showcmd "ウィンドウの右下にまだ実行していない入力中のコマンドを表示

"set cursorline "カーソルラインをハイライト

"行が折り返し表示されていた場合、行単位ではなく表示行単位でカーソルを移動する

set nocursorline "カーソルラインをハイライトしない

autocmd InsertEnter,InsertLeave * set cursorline! "インサートモードのみカーソルラインをハイライト

nnoremap j gj

nnoremap k gk

nnoremap <down> gj

nnoremap <up> gk

set showmatch "括弧の対応関係を一瞬表示する

source $VIMRUNTIME/macros/matchit.vim "Vimの「%」を拡張する

"VIMのモードでカーソルを変える

let &t_SI = "\<Esc>]50;CursorShape=1\x7"

let &t_SR = "\<Esc>]50;CursorShape=2\x7"

let &t_EI = "\<Esc>]50;CursorShape=0\x7"



"===== 文字、カーソル設定 =====

set encoding=utf-8 "ファイル読込時の文字コード指定

scriptencoding utf-8 "Vim script内でマルチバイト文字を使う場合の設定

set fenc=utf-8 "文字コードを指定

set fileformats=unix,dos,mac "改行コードの自動判別. 左側が優先される

set virtualedit=onemore "カーソルを行末の一つ先まで移動可能にする

set ambiwidth=double "□や○文字が崩れる問題を解決

set expandtab "タブ入力を複数の空白入力に置き換える

set tabstop=4 "画面上でタブ文字が占める幅

set softtabstop=4 "連続した空白に対してタブキーやバックスペースキーでカーソルが動く幅

set autoindent "改行時に前の行のインデントを継続する

set smartindent "改行時に前の行の構文をチェックし次の行のインデントを増減する

set shiftwidth=4 "smartindentで増減する幅

set whichwrap=b,s,h,l,<,>,[,],~ "カーソルの左右移動で行末から次の行の行頭への移動が可能になる

set backspace=indent,eol,start "バックスペースでの行移動を可能にする


"===== 検索設定 =====

set incsearch "インクリメンタルサーチ. 1文字入力毎に検索を行う

set ignorecase "検索パターンに大文字小文字を区別しない

set smartcase "検索パターンに大文字を含んでいたら大文字小文字を区別する

set hlsearch "検索結果をハイライト

"ESCキー2度押しでハイライトの切り替え

nnoremap <silent><Esc><Esc> :<C-u>set nohlsearch!<CR>

set wrapscan "検索時に最後まで行ったら最初に戻る


"===== その他 =====

set history=10000 "履歴を10000件保存

set wildmenu "コマンドモードの補完

set clipboard+=unnamed "OSのクリップボードと連携する(要コンパイル済VIM)


"マウスでカーソル移動やスクロールを可能にする

if has('mouse')

    set mouse=a

    if has('mouse_sgr')

        set ttymouse=sgr

    elseif v:version > 703 || v:version is 703 && has('patch632')

        set ttymouse=sgr

    else

        set ttymouse=xterm2

    endif

endif


"クリップボードからペーストする時だけインデントしないようにする

if &term =~ "xterm"

    let &t_SI .= "\e[?2004h"

    let &t_EI .= "\e[?2004l"

    let &pastetoggle = "\e[201~"

    function XTermPasteBegin(ret)

        set paste

        return a:ret

    endfunction

    inoremap <special> <expr> <Esc>[200~ XTermPasteBegin("")

endif


"WSL用yankをシステムクリップボードに書き出す

" WSL yank support

let s:clip = '/mnt/c/Windows/System32/clip.exe'  "

if executable(s:clip)

     augroup WSLYank

         autocmd!

         autocmd TextYankPost * if v:event.operator ==# 'y' | call system(s:clip, @0 ) | endif

     augroup END

endif


"augroup Yank

"  au!

"  autocmd TextYankPost * :call system('/usr/bin/iconv -t SHIFT_JIS |/mnt/c/Windows/System32/clip.exe', @")

"augroup END


"WSL用Color設定

color industry

2020/01/09

Managing lifetime of APFS snapshot (Catalina) ..[Update Monterey]

APFS snapshots are great!... If you haven't tried macOS recovery from APFS snapshot, please try it (macOS recovery-> Restore from Time Machine-> select local snapshot), it may rollback to old system just in a minute!
But macOS (Catalina) keeps the "APFS snapshot" for Only 24 hours and then deletes it automatically, It cannot be directly controlled by the user.

However, we can extend/control the Lifetime of APFS snapshots by taking advantage of the property that "Mounted APFS snapshots are not deleted".

Remark.
"tmutil mountlocalsnapshots" command doesn't seem to be the case (automatically deleted even if mounted..).
The following is valid only with the “mount_apfs” command.

Example.
1.There are two snapshots that are older than 24 hours.
$ tmutil listlocalsnapshots /
com.apple.TimeMachine.2020-01-08-004327 **Over 24h 
com.apple.TimeMachine.2020-01-08-015245 **Over 24h 
com.apple.TimeMachine.2020-01-08-050434
com.apple.TimeMachine.2020-01-08-062935
com.apple.TimeMachine.2020-01-08-073858
com.apple.TimeMachine.2020-01-08-094946
com.apple.TimeMachine.2020-01-08-120712
com.apple.TimeMachine.2020-01-08-130215
com.apple.TimeMachine.2020-01-08-150315
com.apple.TimeMachine.2020-01-08-170418
com.apple.TimeMachine.2020-01-08-194014
com.apple.TimeMachine.2020-01-08-204437
com.apple.TimeMachine.2020-01-08-214559
com.apple.TimeMachine.2020-01-08-224630
com.apple.TimeMachine.2020-01-08-234634
2.Mount just one of them. (com.apple.TimeMachine.2020-01-08-015245)
$ mkdir /var/tmp/2020-01-08-015245
$ mount_apfs -o nobrowse -s com.apple.TimeMachine.2020-01-08-015245 / /var/tmp/2020-01-08-015245
mount_apfs: snapshot implicitly mounted readonly
$

$ mount
...
com.apple.TimeMachine.2020-01-08-015245@/dev/disk1s1 on /private/var/tmp/2020-01-08-015245 (apfs, local, nodev, nosuid, read-only, journaled, nobrowse, mounted by hoge)
$

$ df
...
com.apple.TimeMachine.2020-01-08-015245@/dev/disk1s1  489825072  323761528  154301464    68%  1455542 9223372036853320265    0%   /private/var/tmp/2020-01-08-015245
3.Create new snapshot and automatically delete old one, then Mounted snapshot is not deleted.
$ tmutil localsnapshot /
Created local snapshot with date: 2020-01-09-025905
$

$ tmutil listlocalsnapshots /
com.apple.TimeMachine.2020-01-08-015245 **mounted snapshot is not deleted
com.apple.TimeMachine.2020-01-08-025856
com.apple.TimeMachine.2020-01-08-050434
com.apple.TimeMachine.2020-01-08-062935
com.apple.TimeMachine.2020-01-08-073858
com.apple.TimeMachine.2020-01-08-094946
com.apple.TimeMachine.2020-01-08-120712
com.apple.TimeMachine.2020-01-08-130215
com.apple.TimeMachine.2020-01-08-150315
com.apple.TimeMachine.2020-01-08-170418
com.apple.TimeMachine.2020-01-08-194014
com.apple.TimeMachine.2020-01-08-204437
com.apple.TimeMachine.2020-01-08-214559
com.apple.TimeMachine.2020-01-08-224630
com.apple.TimeMachine.2020-01-08-234634
com.apple.TimeMachine.2020-01-09-025905
$

2019/10/26

Use administrator privileges with Touch ID from ShellScript / Terminal


From Terminal (sudo)

Add line auth sufficient pam_tid.so to /etc/pam.d/sudo
$ cat /etc/pam.d/sudo
auth       sufficient     pam_tid.so
auth       sufficient     pam_smartcard.so
auth       required       pam_opendirectory.so
account    required       pam_permit.so
password   required       pam_deny.so
session    required       pam_permit.so

ex.

$ sudo su

From ShellScript

Use osascript like followings..
osascript -e 'do shell script "Command or ShellScript" with administrator privileges'

ex.(using with heredocument)

$ osascript <<EOD
do shell script "whoami" with administrator privileges
EOD

2019/10/17

Changes in softwareupdate(8) (Catalina)


1.New feature fetch-full-installer


$ softwareupdate --fetch-full-installer --full-installer-version  xx.xx.xx
Downloading and installing xx.xx.xx installer
Installing: 14.0%
...



2.Response Format (label title is Added)


$ softwareupdate -l
Software Update Tool

Finding available software
Software Update found the following new or updated software:
* Label: macOS 10.15 Update- 
    Title: macOS 10.15 Update, Version: , Size: 962326K, Recommended: YES, Action: restart,





ref. softwareupdate(8) in catalina

% softwareupdate
usage: softwareupdate  [ ...]

** Manage Updates:
 -l | --list  List all appropriate update labels (options:  --no-scan, --product-types)
 -d | --download  Download Only
 -e | --cancel-download  Cancel a download
 -i | --install  Install
  
ref2.

——

$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.14.6
BuildVersion: 18G103

$ softwareupdate -l --include-config-data
Software Update Tool

Finding available software
Software Update found the following new or updated software:
   * Safari13.0.3MojaveAuto-13.0.3
 Safari (13.0.3), 67268K [recommended]

$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.14.6
BuildVersion: 18G103

$ softwareupdate -l --include-config-data
Software Update Tool

Finding available software
Software Update found the following new or updated software:
   * Security Update 2019-001-10.14.6
 Security Update 2019-001 (10.14.6), 1285122K [recommended] [restart]
   * XProtectPlistConfigData_10_14-2107
 XProtectPlistConfigData (2107), 68K [recommended]


——
% sw_vers
ProductName: Mac OS X
ProductVersion: 10.15
BuildVersion: 19A602

% softwareupdate -l --include-config-data
Software Update Tool

Finding available software
Software Update found the following new or updated software:
* Label: AppleKextExcludeList_10_15-15.1.1
 Title: Incompatible Kernel Extension Configuration Data, Version: 15.1.1, Size: 1028K, Recommended: YES,
* Label: macOS 10.15.1 Update-
 Title: macOS 10.15.1 Update, Version:  , Size: 4787879K, Recommended: YES, Action: restart,
* Label: XProtectPlistConfigData_10_15-2107
 Title: XProtectPlistConfigData, Version: 2107, Size: 68K, Recommended: YES,

% sw_vers
ProductName: Mac OS X
ProductVersion: 10.15.1
BuildVersion: 19B88

% softwareupdate -l --include-config-data
Software Update Tool

Finding available software
Software Update found the following new or updated software:
* Label: GatekeeperCompatibilityData-1.0
 Title: Gatekeeper Compatibility Data, Version: 1.0, Size: 7108K, Recommended: YES, 
% 

2019/05/30

MS Office Update設定をCLIで(Mojave/Office 365)


MS Office 365のソフトウエアアップデート設定/CLIのメモ

ユーザ毎のアップデートポリシーは

~/Library/Preferences/com.microsoft.autoupdate2.plist

で設定値は

HowToCheck < Manual | AutomacicCheck | AutomacicDownload >

 

ChanelName External

 

ChanelName InsiderFast

で設定

ex.

$ defaults read ~/Library/Preferences/com.microsoft.autoupdate2.plist HowToCheck
Manual
$ defaults write ~/Library/Preferences/com.microsoft.autoupdate2.plist HowToCheck AutomaticDownload
$ defaults read ~/Library/Preferences/com.microsoft.autoupdate2.plist ChannelName
InsiderFast
$ defaults delete ~/Library/Preferences/com.microsoft.autoupdate2.plist ChannelName

ref.
-Deploy preferences for Office for Mac
<https://docs.microsoft.com/deployoffice/mac/deploy-preferences-for-office-for-mac>

2019/05/22

Macトラブル時のFirstAid

Macトラブル時のFirstAid説明のメモ
個別ケースで色々ありますが、とりあえずやってみて欲しいことです

-目次-

0.バックアップを取る
1.外部接続機器を外して、可能ならWi-Fi,Bluetoothもオフにする
2.Apple Diagnosticsを試す
3.First Aidを試す
4.NVRAMクリアー,SMCリセット,セーフモード起動で試す
5.新規ユーザを作成してそのユーザで試す
6.カーネルキャッシュ,キャッシュを再構築する
7.macOS復元でSSD/HDDを初期化/消去しクリーンインストールして試す
8.AppleStoreに修理に出す



0.バックアップを取る

まずはバックアップします
TimeMachineでもrsyncでもFinderコピーでも…これをしないと始まりません^^

1.外部接続機器を外して、可能ならWi-Fi,Bluetoothもオフにする

可能な限りすべての外部接続機器を外します
この後の作業でインターネット接続が必要になりますので、それが可能な場合に限りますが、Wi-FiもBluetoothもオフにします
(Wi-Fi:ネットワーク環境設定,Bluetooth:Bluetooth環境設定)

2.AppleDiagnosticsを試す

Apple Dianogtics( D + 起動 )を試します(古い機種はApple Hardware Test..下記参)
大まかなハードウェア問題が解ります
-Mac での Apple Diagnostics の使い方
https://support.apple.com/ja-jp/HT202731

3.FirstAidを試す

macOS復元起動して( Command + R + 起動 )、ディスクユーティリティ>対処ボリュームを選択>First Aidを試します(対象ボリューム選択を忘れずに..)
大まかなファイルシステム問題が修正できます

-macOS 復元について
https://support.apple.com/ja-jp/HT201314

-Mac で「ディスクユーティリティ」を使用してディスクを修復する
https://support.apple.com/ja-jp/guide/disk-utility/dskutl1040/mac

4.NVRAM(PRAM)リセット,SMCリセット,セーフモード起動で試す

これらは別々に行ってよいのですが、一気に行う事もできます
NVRAMのリセットとSMCのリセットは機種によってやり方が違うので下記を参考に実施してください
セーフモードはシフトキーを押しながら起動します

-Mac で NVRAM または PRAM をリセットする
https://support.apple.com/ja-jp/HT204063

-Mac の SMC (システム管理コントローラ) をリセットする方法
https://support.apple.com/ja-jp/HT201295

-セーフモードを使って Mac の問題を切り分ける
https://support.apple.com/ja-jp/HT201262

5.新規ユーザを作成してそのユーザで試す

新規ユーザを作成して、そのユーザで試します

-Mac で別のユーザアカウントを使って問題を検証する方法
https://support.apple.com/ja-jp/HT204443

6.カーネルキャッシュ,キャッシュを再構築する

アプリケーション>ユーティリティ>ターミナルを起動して以下を試してみてください
$ sudo kextcache -system-prelinked-kernel
$ sudo kextcache -system-caches
$ sudo update_dyld_shared_cache -force

7.macOS復元でSSD/HDDを初期化/消去しクリーンインストールして試す

macOS復元起動(Command + r + 起動)して、ディスクユーティリティでSSD/HDDを初期化/消去します(HighSierra以降はAPFSでフォーマットしてください)
その後、macOSを再インストールを選び、新規インストール/クリーンインストールします
この時、Time Machineバックアップから復元は選ばずに、新規インストールでまっさらなシステムを作るようにしてください(あとで復元できます)
新規インストール後トラブルが再発しないか試してください
再発しないようでしたらアプリケーション>ユーティリティ>移行アシスタントを使って、バックアップから復元します

-macOS 復元について
https://support.apple.com/ja-jp/HT201314

-macOS SierraのためのDisk Utility: 「ディスクユーティリティ」を使用してボリュームを消去する
https://support.apple.com/kb/PH22241?viewlocale=ja_JP&locale=ja_JP

-macOS 復元から macOS を再インストールする方法
https://support.apple.com/ja-jp/HT204904

-コンテンツを新しい Mac に移行する方法
https://support.apple.com/ja-jp/HT204350

 

8.Appleサポートに連絡する

電話、チャット、メール、対面のサポート修理を受けることができます
まだWeb等公になっていないサポート情報があることもありますので、下記を参考に連絡してください
そのまま修理依頼をすることもできます(特別な理由がある場合以外は Apple Store直営店 ,Apple 正規サービスプロバイダー での修理をオススメします)

-サポート 私たちがお手伝いさせていただきます。(Apple)
https://getsupport.apple.com

とりあえず,以上

2019/05/13

空き容量表示とTime Machineローカルスナップショット

APFSの空き容量表示のざっくり説明用のメモです
あくまで大まかな理解のためなので、例えばここでは...ボリューム間での空き容量共有等は省きます

-目次-
1.ボリュームの空き容量表示は2種類ある(パージ可能な領域を含めるか?否か?)
2.パージ可能な領域とはなにか?
3.ローカルスナップショットを削除する方法

1.ボリュームの空き容量表示は2種類ある(パージ可能な領域を含めるか?否か?)

macOSでボリューム空き容量を「みる方法」が幾つもあり、違う値を示すことがあります
まずは...

デスクトップ/アイコン下の表示、Finderでメニューから「情報を見るウインドウ*1」内の空き容量表示、Finderウインドウのステータスバー欄、このMacについてのストレージタブ欄の4つ.
これらは容量が圧迫してきたらシステムが自動的に削除する(と書かれている)「パージ可能な領域」を含めた(大きな)空き容量を表示しています

*1.Finderの「情報を見るウインドウ」は厄介で...空き領域 と 使用領域 の両方パージ可能な領域 を含めて表示しています...ここでは 空き領域容量 + 使用領域容量 が ボリューム全容量 とはならないのです(〜パージ可能領域が二重に数えられている)
つぎに...
ディスクユーティリティの表示、コマンドラインのdf(1)diskutil(8)の表示...の3つ.
これらは「パージ可能な領域」を含めずに(小さい)空き容量を表示しています

そのため、上の2つの図では空き容量が違って表示されています


2.パージ可能な領域とはなにか?

では「パージ可能な領域」とはなにか?ですが「このMacについて」の「その他」と「パージ可能」とは?によると、各アプリで設定してあれば、視聴済みのムービーとテレビ番組や、メールアプリの添付書類などが含まれるそうです
また、ここには書かれていませんが、Time Machineローカルスナップショットも含まれます*2(-Time Machineローカルスナップショットについて)
上の2つの図では70GB程度のTime Machchineローカルスナップショットと他に6.5GB…合計76.5GBちょっとのパージ可能領域がある場合の図になっています

*2 Mac の使用済み/利用可能ストレージ領域を表示する にかかれている内容と違って, アップルメニュー>このMacについて>ストレージ のシステム領域には Time Machineローカールスナップショットは含まれていません 



3.ローカルスナップショットを削除する方法

Time Machineローカルスナップショットがある場合も上記によると、Time Machineを自動作成をオフにすると数分で無くなるそうです(と書かれてある)
...ですがそうならない場合^^;は....ターミナルからコマンドを使って削除することができます

まずTime Machineローカルスナップショットがあるか?の確認はターミナルで
tmutil listlocalsnapshots /
と入力すると、ある場合は以下のようにそのリストが表示されます

$ tmutil listlocalsnapshots /
com.apple.TimeMachine.2019-05-12-140656
com.apple.TimeMachine.2019-05-12-145559
com.apple.TimeMachine.2019-05-12-160112
...


すべて削除して良ければ、例えば
tmutil listlocalsnapshotdates / |grep ^[0-9] |xargs -L 1 tmutil deletelocalsnapshots
と入力すると、以下のように削除されます

$ tmutil listlocalsnapshotdates / |grep ^[0-9] |xargs -L 1 tmutil deletelocalsnapshots
Deleted local snapshot '2019-05-12-140656'
Deleted local snapshot '2019-05-12-145559'
Deleted local snapshot '2019-05-12-160112'
...


また、今回想定対象ではなく、迂闊に紹介するのはちょっと怖いのですが...コマンドライン/ローカルスナップショットについては、もう少し詳しく書いたものもありますのでご参考までに...(at your own riskで!!)
以上.

フォロワー