OS
パソコンのOSごとの記録。
iOS
Settings
Keyboard
[Settings]-[General]-[Keyboards] が設定項目。
Gboard
スマホの日本語入力 目からウロコの楽々ワザとは? | NIKKEIリスキリング
iOS版のGboardはAndroid版と異なり機能が劣る。標準キーボードを使ったほうがいいらしい。
Space
ASCII.jp:iPhoneで常に半角スペースを入力できるようにする方法
- [ALL KEYBOARDS]-[Smart Punctuation]=On: Off推奨。
- [KANA]-[Smart Fullwidth Space]=On: =Off推奨。
これで常に半角スペース入力になる。
瞬間切替
iPhoneは裏ワザだらけ、英数字と記号を思い通りに入力 スマホ日本語入力再入門(3) - 日本経済新聞
英語キーボードで1文字だけ数字や記号を入力したいことがある。
その場合、[数字切替] キーをドラッグしたまま、入力したいキーで離す。すると、数字や記号を1文字だけ入力して、英字モードに戻る。切替の手間が省けて楽。
Other
iPhoneは裏ワザだらけ、英数字と記号を思い通りに入力 スマホ日本語入力再入門(3) - 日本経済新聞
- [ALL KEYBOARDS]-[Auto-Punctuation/自動大文字入力]=On: Off推奨。英語キーボード切替時に先頭が自動で大文字になる機能。英語圏の人なら便利だが非英語圏なら邪魔。
- [ALL KEYBOARDS]-[Auto-Correction]=On: Off推奨。一般的な綴でない場合、誤入力と判断され、変換のデフォルトが修正候補になる。
- [ENGLISH]-["." Shortcut]=On: On推奨。英語キーボードには.がない。これがオンだと、スペースのダブルタップで.を入力できる。
Network
テザリング
出典:
- iPhoneのテザリングがすぐに途切れてしまいます!? - いまさら聞けないiPhoneのなぜ | マイナビニュース
- iPhoneまたはiPadを使ってMacをインターネットに接続する - Apple サポート (日本)
無通信状態が90秒ほどしばらく続くと省電力設計のため、自動的にオフになる。これが困る。Andriodは自動オフにはならない。
いくつか対策がある。
- [Personal Hotspot] (インターネット共有) 画面の表示を維持。自動ロックも解除しておく。
- USB/Wi-FiではなくBluetooth経由にする。⇢Bluetooth接続はMontary以上で不能。
Bluetooth経由のほうが、範囲が短く、電力消費量も抑えられるので、Bluetoothがよさそう。他にはUSB接続。
Bluetooth接続はできなくなっているので、画面表示か通信しておくしかない。
Instant Hotspot
出典:
- MacからiPhoneの電話回線を利用できる「インターネット共有」のやり方 - iPhoneユーザーのためのMacのトリセツ | マイナビニュース
- Instant Hotspot を使ってパスワードを入力せずにインターネット共有で接続する - Apple サポート (日本)
Bluetoothでのテザリングはできないものの、類似機能のInstant Hotspotで実現できるらしい。
いくつか条件がある。
- iPhone/iPadでインターネット共有 (Personal Hotspot) 対応。
- 全デバイスで同じApple IDでiCloudにログイン。
- 全デバイスでBluetoothオン。
- Wi-Fiオン.
[Personal Hotspot]-[Allow Others to Join] をオンにしなくても自分だけ接続できるのが利点。逆にいうとこれくらい。Bluetoothをオンにしないといけないぶん、余計な通信処理が入る。使わなくていい。
Bluetooth
出典:
MacS v12.1 (Monterey) からiOSでのBluetooth接続が不能になった。
Wi-FiかUSBで接続する。実務的には困らないはず。
Saving
通信を節約する方法がいくつかある。
- Wi-Fiを使う場合、Wi-Fiのアクセスポイントごとの設定で [Low Data Mode] がある。これをオンにすると節約できる。
- SIMの場合、[Cellular Data Options]-[Low Data Mode] がある。[Low Data Mode]=onにすると、自動更新や写真の動機などのバックグラウンドタスクが停止される。
- ブラウザーのコンテンツブロッカー。例えば、1Blocker。メディアを無効にするカスタムルールで、大幅に節約できる。
- [Advanced customize]-[custom rule]-[new rule]
- .+/Block all type resource=off/
2 番目に、Safari をコンテンツ ブロッカーと一緒に使用することをお勧めします。私は 1Blocker を使用していますが、メディアを無効にするカスタム ルールを作成して、帯域幅を大幅に節約できます。[高度なカスタマイズ]、[カスタム ルール]、[新規ルール] の順に進み、正規表現に.+(ドットとプラス記号はすべての URL に一致します) を入力し、[すべてのタイプのリソースをブロック] をオフに切り替え、画像、フォント、RAW、SVG、メディア、ポップアップをオンに戻します。保存します。これにより、これらの特定のリソース タイプをすべて読み込む要求がグローバルにブロックされ、帯域幅を大幅に節約できます。
Sound
出典: iPhoneの音量を調整する - Apple サポート (日本)。
音量は左サイドボタンで上下できる。左上のスイッチがマナーモードの切替になっている。消音モードと呼んでいる。
「複数アカウントを使いこなす、iPhoneメールアプリの知られざる便利機能 | 日経クロステック(xTECH)」
iPhoneのメールアプリは標準のMailを使うのがよいだろう。K-9がないから。複数アカウントにも対応しているが、設定が若干特殊。アプリ設定からではなく、iOS本体の設定から行う。
App
いくつか必要なアプリがあるので整理する。
Switcher
出典: iPhoneで開いているアプリを切り替える - Apple サポート (日本)。
アプリスイッチャーという機能で、現在実行中のアプリを変更可能。Androidはホームの上スワイプ、右ボタンだった。iOSはホームのダブルクリック。
KeePass
パスワード管理アプリ。iOSは別になる。KeePass XCはQtを使っているからビルドできるはずなんだけど。
「iOS 向けの Keepass クライアントの備忘録 | hyt adversaria」を見る限り、KeePassiumが良さそう。
Camera/Video
Camera
出典: iPhoneのカメラ解像度を変更し写真/動画サイズを軽くする便利技 – 格安SIM初心者教室
iPhoneのデフォルトのカメラは解像度が高すぎて写真のファイルサイズがかなり大きい。変更できない。せいぜいインカメラで撮影するくらい。
LINE Cameraが定番のカメラアプリらしい。こちらは解像度を柔軟に設定できる。
[Settings]-[Saving]-[Resolution]-[Medium] に変更。これでデフォルトの半分になる。
「iPhoneのカメラ解像度を変更し写真/動画サイズを軽くする便利技 – 格安SIM初心者教室」はもっと小さい。こちらがいいだろう。
Low Cameraはもっと小さいが、小さすぎて細かい文字が見えなくて困る。調べた。
「2024|無音カメラアプリおすすめランキング11選|無料|高画質 | Good!Apps」が参考になった。
Simple Camがよかった。基本はこの1.2MPか0.3MP。外観だけでいいならLowCameraとか。
rank | OS | name | url | Free | level | MP | resolution px | size KB | square | 備考 |
4 | iOS | LowCamera | Very Low | 0.05 | 144x144 | 25 | x | |||
4 | iOS | LowCamera | Low | 0.1 | 360x360 | 50 | x | |||
4 | iOS | LowCamera | Medium | 0.2 | 480x480 | 100 | x | 画質が低すぎる。 | ||
4 | iOS | LINE Camera | Medium | 2 | 1512x1512 | 1024 | x | 画質をもう少し落としたい。 | ||
2 | iOS | 低画質カメラ | - | 動画のみ。 | ||||||
3 | iOS | 0.3MPCamera | 480x640 | - | いまいち。正方形がない。 | |||||
3 | iOS | 0.3MPCamera | 240x320 | - | いまいち。正方形がない。 | |||||
3 | iOS | 0.3MPCamera | 120x160 | - | いまいち。正方形がない。 | |||||
3 | iOS | default | Photo | 12 | 3024x4032 | 2300 | x | |||
3 | iOS | default | Photo | 9 | 3024x3024 | 2600 | x | |||
3 | iOS | Capera | Max | 12 | 3024x4032 | 2300 | - | 正方形がない。 | ||
3 | iOS | Capera | FullHD | 1920x1080 | - | |||||
3 | iOS | Capera | HD | 1280x720 | - | |||||
3 | iOS | Capera | VGA | 640x720 | - | |||||
3 | iOS | Capera | CIF | 352x288 | - | |||||
3 | iOS | Lo-Fi Cam | https://apps.apple.com/bz/app/lo-fi-cam/id1607751695 | 192x144 | - | 正方形がない。 | ||||
3 | iOS | Lo-Fi Cam | https://apps.apple.com/bz/app/lo-fi-cam/id1607751695 | 352x288 | - | 正方形がない。 | ||||
3 | iOS | Lo-Fi Cam | https://apps.apple.com/bz/app/lo-fi-cam/id1607751695 | 480x360 | - | 正方形がない。 | ||||
3 | iOS | Lo-Fi Cam | https://apps.apple.com/bz/app/lo-fi-cam/id1607751695 | 640x480 | - | 正方形がない。 | ||||
3 | iOS | Lo-Fi Cam | https://apps.apple.com/bz/app/lo-fi-cam/id1607751695 | 960x540 | - | 正方形がない。 | ||||
3 | iOS | Lo-Fi Cam | https://apps.apple.com/bz/app/lo-fi-cam/id1607751695 | 1280x720 | - | 正方形がない。 | ||||
5 | iOS | Simple Cam | 0.3 | 480x480 | 100 | x | 必要な範囲を網羅できている。 | |||
5 | iOS | Simple Cam | 1.2 | 960x960 | 200 | x | 必要な範囲を網羅できている。 | |||
5 | iOS | Simple Cam | 1.9 | 1200x1200 | 300 | x | 必要な範囲を網羅できている。 | |||
5 | iOS | Simple Cam | 5 | 1936x1936 | 800 | x | 必要な範囲を網羅できている。 | |||
5 | iOS | Simple Cam | 8 | 2448x2448 | 1500 | x | 必要な範囲を網羅できている。 | |||
5 | iOS | Simple Cam | 12 | x | 必要な範囲を網羅できている。 | |||||
3 | iOS | MiraCamera | 9 | 3024x3024 | 2700 | x | いまいち。 | |||
3 | iOS | Foodie | standard | 3 | 1920x1920 | 1600 | x | いまいち。 | ||
3 | iOS | SODA | standard | 3 | 1920x1920 | 1800 | x | いまいち。 | ||
2 | iOS | Pro Camera | - | x | ||||||
1 | iOS | Q Camera | x | - | ||||||
1 | iOS | AutoCam | x | - | ||||||
2 | iOS | SkyCamera | 0.8 | 750x1000 | - | |||||
2 | iOS | StageCamHD | 1280x720 | x | ||||||
2 | iOS | StageCamHD | 1920x1080 | x | ||||||
2 | iOS | StageCamHD | 3024x3024 | x | ||||||
2 | iOS | StageCamHD | 2592x1936 | x | ||||||
2 | iOS | StageCamHD | 3264x2448 | x | ||||||
2 | iOS | BeautyPlus | x |
Video
- How To Make Square Videos With An iPhone - YouTube
- iPhoneで正方形の動画を撮る方法 | アレルギーでも猫と暮らす!~ミニマルな暮らしでアレルゲンカット~
- How to Set iPhone Camera Aspect Ratio to Square by Default - YouTube
標準のカメラアプリで正方形の動画の撮影方法。photoで正方形にして、撮影ボタン長押しで正方形で動画撮影可能。右にスライドでモードロックとのこと。
カメラアプリの設定で、 [Preserve Settings]-[Creative Controls] でデフォルト正方形を維持できる。
Record Square Format Videos on iPhone with These Apps
動画撮影アプリのおすすめ人気ランキング【2024年】 | マイベスト
正方形の動画撮影アプリ。
Clips
Apple純正の動画作成ソフト。
Favorite
写真も動画も基本はFILTISTでOK。ただし、ズーム不能なので、ズーム時だけ別アプリを使う。
- LISTIST=動画・写真=720x720ズームなし。
- MONOV=動画720x720ズーム。
- Simple Cam=写真ズーム。
通常はLISTISTで動画も写真も撮影。ズームが必要な場合だけ、MONOV/Simple Cam。
ズーム用を1アプリで対応できればよかったのだが、うまいのがない。LINE Cameraが近かったのだけど、動画が最大30 s。惜しかった。しかたない。
LINE Camera
正方形で写真と動画に対応。サイズも大きすぎない。ズームも対応。ただし、動画は30 sまで。これが惜しい。
QR
Ref: QRコードで開いたWEBサイトの履歴がiPhoneで残らない問題、これで解決 | マイナビニュース.
QRコードを読み取ると、QRコードリーダーアプリ内ブラウザーで開けれて、Safariの履歴に残らない。開いた後に、右下でSafariで開き直すと、タブで開き直せる。基本はすぐ開き直したほうがいい。
いや、標準のQRコードリーダーで開いた後に、Safariで開き直すと、状態が違うのか、吉野家のレシートアンケートなどはエラーになる。サードパーティーアプリを使ったほうがいい。
QRコードアプリおすすめ2選&ランキングTOP10 無料・人気のアプリを編集部が厳選!【2024年】 | iPhone/Androidアプリ - Appliv
QRQRがいい。
Windows
Other
高速スタートアップ
出典:
- Windows シャットダウンしてもバッテリー 減る | cocotiie
- 富士通Q&A - [Windows 11 高速スタートアップを無効にする方法を教えてください。 - FMVサポート : 富士通パソコン]
電源オフにしているのに、バッテリーが何故か減っている。原因は [高速スタートアップ] とのこと。
[コントロールパネル]-[ハードウェアとサウンド]-[電源オプション]-[電源ボタンの動作を選択する]-[現在利用可能ではない設定を変更します]-[シャットダウン設定]-[高速スタートアップを有効にする (推奨)] をオフにする。
勝手にスリープする
システムがすぐにスリープしてしまうのは、「システム無人スリープタイムアウト(System unattended sleep timeout)」機能が働いているためだと考えられる。これは、システムがWOL(Wake On LAN)や何らかのイベントなどで、自発的にスリープから起動した場合、そのまま何も操作せずに放っておくと、一定時間後にまた自動的にスリープ状態に移行するための機能である。
システム無人スリープのタイムアウトを設定する項目を有効化するには、コマンドプロンプトで以下のpowercfgコマンドを実行すればよい。再起動などは必要なく、[電源オプション]にタイムアウトを設定する項目が表示される。
powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE
これだとダメ。
一応元に戻す。
powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 +ATTRIB_HIDE
「Windows10で勝手にスリープになる現象を防ぐための対処法 | TechMemo」
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0
このレジストリーの値を0から2に変更する。
システム無人スリープタイムアウトが表示されるので0にするとなくなる。らしい。
そのほか、ディスプレイの電源を切るのはやはりだめ。パソコンの省エネ機能が働いて、処理が止まる。
Startup
Microsoft TeamsなどOSの起動時に勝手に自動起動するアプリがある。制御する方法がいくつかある。
[設定]-[アプリ]-[スタートアップ] で制御できる。大半はこれで制御できる。
ほかに、Explorerのshell:startupか%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startupにショートカットがあると、それでも自動起動する。
録音
Windows10で録音がしたい!ボイスレコーダーを使用した音声の録音方法を解説
プレインストールのボイスレコーダーで録音できる。
Theme
Ref: デスクトップのテーマを変更する方法<Windows 11>|サポート|dynabook(ダイナブック公式).
OSのテーマでデフォルトのライト・ダークが決まる。
[スタート]-[設定]-[個人用設定]
Hardware
Keyboard
Ref: FMV Q&A - [Windows 11 キーを押し続けたときに、同じ文字が連続して入力される速度を調整する方法を教えてください。 - FMVサポート : 富士通パソコン].
[コントロールパネル]-[キーボード]
Mouse
[コントロールパネル]-[マウス]
- ポインター オプション
- ポインターの速度を選択する (デフォルト=左から6 (6/11))
- ☑ポインターを自動的に既定のボタンの上に移動する。
- ☑Ctrlキーを押すとポインターの位置を表示する。
コントロール パネル\すべてのコントロール パネル項目\コンピューターの簡単操作センター\マウスを使いやすくします
- マウスポインター
Explorer
[フォルダーオプション]-[表示]
- ファイルおよびフォルダー
- ☑チェックボックスを使用して項目を選択する。
- ファイルとフォルダーの表示
- ☑隠しファイル、隠しフォルダー、および隠しドライブを表示する。
- □登録されている拡張子は表示しない
Mac
System
Mouse
マウスポインター速度 macデフォルト4/10。
DiscreteScroll
- Macのマウスホイールの加速度を無効にして Windowsと同じ動きにする方法、macOSのクソな UI動作仕様を修正 (macOSのマウスホイールのスクロールの加速度の動きにはイラついている人が世界中に大勢居ます)
- GitHub - emreyolcu/discrete-scroll: Fix for macOS's unnecessary scroll wheel acceleration
Macのマウスホイールのスクロールは加速度に応じる。高速に動かすと移動量が増える。指が疲れる。
加速度を無視して、Windows同様に一定量の移動にしてくれるのが、DiscreteScroll。
Applications
Macの実行ファイルは.appファイル。これは/Applicationsに配置されている。Laucnhpadはこのディレクトリー内を表示している模様。
lanchctl
- Macでの環境変数(environment variables)の設定方法 #MacOSX - Qiita
- launchd, launchctlについて(導入編) · GitHub
- Mac の launchctl ってなんだ? - IT戦記
- LaunchDaemons (launchctl, launchd.plist) の使い方 - maruko2 Note.
Macでシステム起動時の処理を管理する仕組み。Mac OS 10.10以上で導入されている。
GUIなど、システムグローバルで環境変数を反映させたい場合、ここに登録する必要がある。
plistファイルを作成して、それをlanchctl loadして登録になる。unloadで解除になる。
- plistのファイルのパスは、主に以下2通り。
/Library/LaunchAgents/*****.plist
: システム全体で有効になる。~/Library/LaunchAgents/*****.plist
: ログインユーザのみで有効になる。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>setenv.M2_HOME</string>
<key>ProgramArguments</key>
<array>
<string>/bin/launchctl</string>
<string>setenv</string>
<string>M2_HOME</string>
<string>/usr/local/Cellar/maven31/3.1.1/libexec</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ServiceIPC</key>
<false/>
</dict>
</plist>
上記のような形式。
配置したら、コマンドで即座に反映できる。
launchctl load ~/Library/LaunchAgents/SSLKEYLOGFILE.plist
値を修正した場合、一度unloadしてからloadする。
Finder
拡張子の表示
https://support.apple.com/ja-jp/guide/mac-help/mchlp2304/mac
- MacのFinder で、「Finder」>「設定」と選択してから、「詳細」をクリックします。
- 「すべてのファイル名拡張子を表示」を選択するか選択を解除します。
Screenshot
場所の変更
https://support.apple.com/ja-jp/guide/mac-help/mh26782/mac
起動中の [オプション] で選べる。
保存形式の変更
https://www.pc-koubou.jp/magazine/76550
defaults write com.apple.screencapture type jpg
戻すとき。
defaults write com.apple.screencapture type png
IME
変換Enter 2回
Mac日本語入力、エンター2回でなく1回で変換する方法
https://ischool.co.jp/2019-08-05-japanese-input-in-mac-how-to-convert-at-once-instead-of-twice/
MacのIMEは変換後確定にEnter2回必要。これが面倒。1回にすることができる。
[システム設定]-[キーボード]-[入力ソース]-[編集]-[日本語]-[☑️Windows風のキー操作]
これで1回で済む。
追加辞書
Macの追加辞書に読み込むためのテキストファイルを作成する - Apple サポート (日本)
単語の読み,
単語,
品詞,
(,,
メモ)
要素 | 説明 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
単語の読み | 単語の読みをひらがなで入力します。長さは32文字以下にする必要があります。
単語にASCIIカンマやスペースを含める場合は、単語を引用符(“”)で囲みます。 単語にASCII引用符(")を入力する場合は、単語を1バイトの引用符で囲み、1バイトの引用符の周囲に連続する2つの1バイトの引用符を入力します。 | ||||||||||
単語 | 目的の変換結果を入力します。1つの単語の長さは64文字以下にする必要があります。単語には、Unicodeコンソーシアムで定義されている文字と記号であれば、どれでも使用できます。 | ||||||||||
品詞 | 次のいずれかの品詞を指定します:
| ||||||||||
メモ | メモはオプションです。メモの前には2つのASCIIカンマ(,, )を入力します。メモはユーザ辞書には登録されません。
|
これで登録する。登録手順。
- [設定]-[キーボード]-[テキスト入力]-[入力ソース]-[編集]
- [日本語-ローマ字入力]-[追加辞書]
- ここにドラッグ・ドロップするか、右クリック-[辞書をインストール] を選ぶ。
入力ソースの追加辞書の部分がグレーにな… - Apple コミュニティ
登録方法に癖がある。
- 辞書ファイルの拡張子はtxt
- 品詞の指定が重要。基本は普通名詞。
Keybind
https://support.apple.com/ja-jp/102650
キー | 内容 | ||
---|---|---|---|
option-command-電源
option-command-メディア取り出しキー |
スリープ | ||
Keychain
Macのキーチェーンアクセスとは?
https://support.apple.com/ja-jp/guide/keychain-access/kyca1083/mac
「macOS」で「キーチェーンアクセス」を使う--パスワードを見つけて変更するには
https://japan.zdnet.com/article/35190535/
dockのkeychainアプリでMacのパスワードマネージャー。KeePassXCと似たようなことができる。OS標準だから安全・安心?
Passwords
Apple、今秋リリース予定のiPhoneとMacに新しいパスワードアプリ搭載
https://news.mynavi.jp/techplus/article/20240613-2964379/
2024年秋に [Passwords] という新しいOSアプリが登場。従来のKeychainをベースに、WiFiパスワードなど一元管理のためのアプリの模様。
こちらを使うのが良さそう。
[システム設定]-[パスワード] からアクセスする模様。
Other
破損App
Macで"壊れているため開けません"の古いappを開く #Mac - Qiita
xattr -rc /Applications/LegacyAwesome.app
これで属性を除去して解決することが多い。
UNIX
Other
cron
About
UNIX系OSのジョブ管理ツール。タスクの定期実行を可能にする。
cronの名前は時間を意味するギリシア語chronosに由来する。
指定した時間に1回だけ実行するなら、atがある。電子メールの送信などで役立つ。
Format
cronの動作はcrontab (cron table) ファイルで指定する。
以下の形式になっている。
# ┌───────────── 分(0〜59) # │ ┌───────────── 時(0〜23) # │ │ ┌───────────── 日(1〜31) # │ │ │ ┌───────────── 月(1〜12)JAN-DEC # │ │ │ │ ┌───────────── 曜日(0〜6〈日〜土〉、一部のシステムでは7も日曜日) SUN-SAT # │ │ │ │ │ # │ │ │ │ │ # * * * * * [予約するコマンド]
日時部分はいくつか指定方法がある。
- すべて。
- /n: nごとに実行 (*/5)。
- ,: 複数の時間間隔を指定 (1,2,3)
- -: 範囲。
- %: コマンド内の%はエスケープされていないと改行文字に変換され、標準入力としてコマンドに渡される。
ユーザーはcrontab -eで自分の設定ファイルを編集できる。crontabファイルの直接編集は非推奨で、crontabコマンドでの修正が推奨されている。
ファイルの他に標準入力も受け付ける。
Command
- 編集: crontab -e
- 表示: crontab -l
- 削除: crontab -r
-u: 実行ユーザー指定。
オプションを指定しない場合、引数のファイルの内容のcronを実行する。引数がなければ標準入力。
既存のcrontabの内容を編集したい場合、方法が2種類ある。
- crontab -e
- (crontab -l ; echo ) | crontab: crontab -lで現在のcrontabの内容が出力されるので、これを加工してcrontabに再度流し込む。
- crontab [file]
2の方法は融通が利く。crontab [file] でファイルにcrontabの内容を記載しておいて、これをVCSで管理というのも悪くはない。
Log
/var/log/cron
cron - Verify if crontab works - Ask Ubuntu
デーモン自体の確認は以下。
systemctl status cron systemctl restart cron
cronへの登録時のコマンドが標準出力を持つ場合、メールでユーザーに内容を送信する。
この挙動が鬱陶しいので、cronへの登録時にログを全て破棄するような設定が奨励されることがある。
>/dev/null 2>&1
crontabのガイドライン #CentOS - Qiita
ただ、全部捨てると失敗時も、いつから失敗しているかの情報も一切わからない。残したほうがいい。
>>/var/log/log_$(date +\%Y\%m\%d).log 2>&1
環境変数
POSIXにあるように、HOME/LOGNAME/PATH/SHELLのみが最低限デフォルト値が用意されていて存在が保証される。
cronの環境変数。
echo '* * * * * env >/tmp/env.log' | crontab
FROM php:7.3.23-apacheのDebian 10の場合。
HOME=/root LOGNAME=root PATH=/usr/bin:/bin SHELL=/bin/sh PWD=/root
PATHはcommand -p getconf PATHを参照していると思われる。
cronに登録したコマンドが動作しない理由の一つがPATH。注意する。crontab内では変数の代入などは独自拡張になる。基本は実行するスクリプトファイルか、最後のコマンド実行部分で自分で設定する。
anacron
システムのcrontab (cronとanacronの違い) #Linux - Qiita
cronの亜種にanacronがある。
- 遅延実行: サーバーダウンなどでスキップされた処理を、復帰時に実行する。
- 負荷分散: 最小1日単位のスケジュールしかできない代わりに、自動でサーバーの負荷をみて分散実行してくれる。
guide
crontabのガイドライン #CentOS - Qiita
crontabでの実行開始時間は検討が必要。0分と00:00は他のサブシステムの定期タスクの密集時間のことが多いのでここは避けて5分や10分にずらすのが無難。
systemd
GNU/Linux向けのシステム管理ソフトウェア。大量のソフトの統合。サーバーソフトウェアの管理で非常に重要。
systemdのメインデーモンの/sbin/systemdは/sbin/initにリンクされていて、既存のSysV initを置換する最初のプロセスとなる。
ssytemd自体は本体の他に4のコンポーネントから構成。
- utility
- daemon
- target: ユニットのグループ化や処理の順序や依存関係の定義。unitの一種。
- unit: systemdの管理処理の単位。System V initのサービスに相当。
systemdはsystemdの管理対象となる処理の単位のユニットでシステムを管理する。ユニットは12のタイプがある。
- service: デーモンの開始と制御担当。
- socket
- target
- device
- mount
- automount
- timer
- swap
- path
- slice
- scope
- special
特に重要なのはserviceユニット。
Unit
ユニットファイルはini形式のテキストファイル。
Unit File Load Path
https://chatgpt.com/c/6753b416-3d48-800b-ae6d-fcb43df956e3
いくつもの検索パスがある。が、基本的にはいかに配置する。
- system: /etc/systemd/system/
- $XDG_CONFIG_HOME/systemd/user/ ($XDG_CONFIG_HOMEのデフォルトは~/.config)
従って、基本は~/.config/systemd/userに配置すればいい。
systemctl
systemdとservice managerの制御用のコマンド。状態管理からユニットの登録・削除など基本はこのコマンドとサブコマンドで全部対応する。非常に重要。
systemctl
[OPTIONS...] COMMAND [UNIT...]
--userオプションでユーザー扱いしない場合、sudoで管理者権限が必要。
基本的な流れは以下となる。
- ユニットファイル (.service) を作成して配置 (/etc/systemd/system or ~/.config/systemd/user)。
- systemctl enable [unit] で登録。
- systemctl restart [unit] で起動。
Commands
COMMANDは種類ごとに以下を解釈。大量にある。
Unit Commands (Introspection and Modification)
ユニット自体を制御するコマンド。
- list-units
- list-automounts
- list-paths
- list-sockets
- list-timers
- is-active
- is-failed
- status
- show
- cat
- help
- list-dependencies
- start
- stop
- reload
- restart
- try-restart
- reload-or-restart
- try-reload-or-restart
- isolate
- kill
- clean
- freeze
- thaw
- set-property
- bind
- mount-image
- service-log-level
- service-log-target
- reset-failed
- whoami
重要なもの。
- 情報
- status: ユニットの情報を表示。動作確認。稼働やエラーの確認などができる。問題があったらまずこれで確認。
- list-units: systemdのメモリー内に存在 (実行中・ロード済み) するユニットを一覧。
- 操作
- restart: 手動再起動。
- start: 手動起動。
- stop: 手動停止。
- 設定
- reload: ユニットにユニット固有の設定のリロードを指令する。apache2の場合httpd.conf。
- daemon-reload: ユニットの設定をリロードする。apacheの場合apache.service。
Unit File Commands
- list-unit-files
- enable
- disable
- reenable
- preset
- preset-all
- is-enabled
- mask
- unmask
- link
- revert
- add-wants
- edit
- get-default
- set-default
ユニットファイルの操作。
- list-unit-files: システムにインストール済みの全ユニットファイルを一覧。list-unitsと異なり、読み込んでいないものも表示する。ユニットファイルの存在と有効・無効状態の確認に使う。あまり使わないと思う [https://chatgpt.com/c/6753b416-3d48-800b-ae6d-fcb43df956e3]。
- enable: ユニットを有効にする。設定ファイルの場所からシンボリックリンクを作成する。
- disable: ユニットを無効にする。シンボリックリンクを削除。
- Machne Commands
- list-machines
- Job Commands
- list-jobs
- cancel
- Environment Commands
- show-environment
- set-environment
- unset-environment
- import-environment
- Manager State Commands
- daemon-reload
- daemon-reexec
- log-level
- log-target
- service-watchdogs
System Commands
- is-system-running
- default
- rescue
- emergency
- halt
- poweroff
- reboot
- kexec
- soft-reboot
- exit
- switch-root
- sleep
- suspend
- hibernate
- hybrid-sleep
- suspend-then-hibernate
特に便利なもの。
- poweroff: 電源をオフにできる。
Options
オプションも大量にある。
- -t, --type=
- --state=
- -p, --property=
- -P
- -a, --all
- -r, --recursive
- --reverse
- --after
- --before
- --with-dependencies
- -l, --full
- --value
- --show-types
- --job-mode=
- -T, --show-transaction
- --fail
- --check-inhibitors=
- -i
- --dry-run
- -q, --quiet
- --no-warn
- --no-block
- --wait
- --user
- --system
- --failed
- --no-wall
- --global
- --no-reload
- --no-ask-password
- --kill-whm
- --kill-value=
- -s, --signal=
- --what=
- -f, --force
- --message=
- --now
- --root=
- --image=
- --image-policy=
- --runtime
- --preset-mode=
- -n, --lines=
- -o, --output=
- --firmware-setup
- --boot-loader-menu=
- --boot-loader-entry=
- -reboot-argument=
- --plain
- --timestep=
- --mkdir
- --marked
- --read-only
- --drop-in=
- --when
- --stdin
- -H, --host=
- -M, --machine=
- -C, --capsule=
- --no-pager
- --legend=
- -h, --help
- --version
特に重要なオプション
- --user: ユーザーとしてservice managerを呼び出す。このオプションを指定することでユーザー権限でsystemdを使える。
- --system: システムとして実行。デフォルト。
systemd-system.conf
systemdの設定ファイルとその格納場所。
システムとユーザーとで参照するファイル・場所が異なる。
- システム: 以下のsystem.confとsystem.conf.d/*.confをこの優先順位で解釈。
- /etc/systemd
- /run/systemd
- /usr/lib/systemd
- ユーザー: ホームディレクトリー、システムの優先順位でuser.confとuser.conf.d/*.conf。
- ~/.config/systemd
- システムのディレクトリー (/etc/systemd /run/systemd /usr/lib/systemd)
特に、ユーザーの~/.config/systemdが重要。ユーザーが自由にできる。
user
- https://chatgpt.com/c/6753b416-3d48-800b-ae6d-fcb43df956e3
- ユーザー権限で systemd のサービスを稼働させる方法 - pyopyopyo - Linuxとかプログラミングの覚え書き -
- CentOS7のsystemdでuserインスタンスを起動する
- レンタルサーバーでNode.jsアプリを永続化する
基本はOS管理なのでroot権限で動作する。が、ユーザー別に登録したりもできる。 そのポイントを整理する。
- ~/.config/systemd/user/*.serviceにユニットファイルを配置。
- systemctlコマンドには常に--userオプションを指定する。
- systemctl --user enable [service]
- systemctl --user restart [service]
なお、ユーザーユニットは、ユーザーがログイン中のみ有効。ログアウト中も稼働させるには、lingerでの登録が必要。
このlingerでの登録が対応していないことが共用サーバーには多い。
その場合はしかたないので、cronで終了していたら再起動するコマンドを登録する。
pgrep -f "node index.js" > /dev/null || (cd index.jsがあるパス && node index.js)
Other
辞書
IMEの辞書登録の駆使で作業効率が大幅に変わる。
頻出単語を入力しておくと良い。
- 個人情報
- 住所
- 氏名
- 電話番号
- メールアドレス
- 人名
- 同僚などよく連絡する人の苗字は登録しておくと楽かも。
- 挨拶
- ありがとうございました。
- よろしくお願いします。
- ご確認お願いします。
- 数字
- 上付き
- 下付き
- 丸付き
RDP
VNCとの違い
* https://www.routerhosting.com/rdp-vs-vnc-remote-desktop-comparison/
* https://superuser.com/questions/32495/whats-the-difference-between-rdp-vs-vnc
* https://ja.wikipedia.org/wiki/%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97
* https://ja.wikipedia.org/wiki/Virtual_Network_Computing
* https://ja.wikipedia.org/wiki/Remote_Desktop_Protocol
RDPは意味を送受信している、VNCは画像を送受信している。扱うデータ量・負荷が違う。
教育だとか、サポートなどではVNCが有利。普段の使用ではRDPのほうが有利。
リモートデスクトップ
https://www.tmp1024.com/articles/solve-black-screen-when-ubuntu-remote-desktop
Ubuntu 19.10でのWindows 10からのリモートデスクトップの手順を整理する。
まずxrdp (0.9.9-1) をインストールする。
sudo apt install xrdp
その後、Ubuntuはサインアウト・ログアウトする。
Windows 10のリモートデスクトップ (mstsc.exe) を実行して、Ubuntuのホスト名やIPアドレスで接続する。
RDPでのログインユーザーが既にログイン済みだと画面が真っ黒になるらしい。
[リモートデスクトップでアクセスしたら真っ黒の画面が表示される問題の解決 \| 人と情報](https://www.tmp1024.com/articles/solve-black-screen-when-ubuntu-remote-desktop)
そのほか、ログイン時に認証ダイアログが毎回表示される。これはどうにかしたい。
それ以外は良好。
Keybind
App Menu
いわゆる右クリックのコンテキストメニュー。これをショートカットキーで実現する方法一応ある。
Macの場合。「Macの右クリック - Apple サポート (日本)」にあるように、Control-左クリックか、2本指クリック。
- macos - Context Menu (Right Click) keyboard shortcut in Mac OS X - Super User
- Access & Customize Context Menu (Right-click Menu) on Mac
上記にあるように、F12でもできるらしい。ただし事前設定が必要。
[System]-[Accessibility]-[Pointer Control]-[Alternate pointer actions]=[on] にする。これでF12で開ける。右側のオプションボタンで変更もできる。
Key code
Mac
Ref: macos - Where can I find a list of Mac virtual key codes? - Stack Overflow.
以下のコマンドで一覧を確認できる (Mac v14.2.1、MacBook Air (M1, 2020)、 JIS配列)。
grep 'kVK_.*=' /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Headers/Events.h
一覧。
kVK_ANSI_A = 0x00, kVK_ANSI_S = 0x01, kVK_ANSI_D = 0x02, kVK_ANSI_F = 0x03, kVK_ANSI_H = 0x04, kVK_ANSI_G = 0x05, kVK_ANSI_Z = 0x06, kVK_ANSI_X = 0x07, kVK_ANSI_C = 0x08, kVK_ANSI_V = 0x09, kVK_ANSI_B = 0x0B, kVK_ANSI_Q = 0x0C, kVK_ANSI_W = 0x0D, kVK_ANSI_E = 0x0E, kVK_ANSI_R = 0x0F, kVK_ANSI_Y = 0x10, kVK_ANSI_T = 0x11, kVK_ANSI_1 = 0x12, kVK_ANSI_2 = 0x13, kVK_ANSI_3 = 0x14, kVK_ANSI_4 = 0x15, kVK_ANSI_6 = 0x16, kVK_ANSI_5 = 0x17, kVK_ANSI_Equal = 0x18, kVK_ANSI_9 = 0x19, kVK_ANSI_7 = 0x1A, kVK_ANSI_Minus = 0x1B, kVK_ANSI_8 = 0x1C, kVK_ANSI_0 = 0x1D, kVK_ANSI_RightBracket = 0x1E, kVK_ANSI_O = 0x1F, kVK_ANSI_U = 0x20, kVK_ANSI_LeftBracket = 0x21, kVK_ANSI_I = 0x22, kVK_ANSI_P = 0x23, kVK_ANSI_L = 0x25, kVK_ANSI_J = 0x26, kVK_ANSI_Quote = 0x27, kVK_ANSI_K = 0x28, kVK_ANSI_Semicolon = 0x29, kVK_ANSI_Backslash = 0x2A, kVK_ANSI_Comma = 0x2B, kVK_ANSI_Slash = 0x2C, kVK_ANSI_N = 0x2D, kVK_ANSI_M = 0x2E, kVK_ANSI_Period = 0x2F, kVK_ANSI_Grave = 0x32, kVK_ANSI_KeypadDecimal = 0x41, kVK_ANSI_KeypadMultiply = 0x43, kVK_ANSI_KeypadPlus = 0x45, kVK_ANSI_KeypadClear = 0x47, kVK_ANSI_KeypadDivide = 0x4B, kVK_ANSI_KeypadEnter = 0x4C, kVK_ANSI_KeypadMinus = 0x4E, kVK_ANSI_KeypadEquals = 0x51, kVK_ANSI_Keypad0 = 0x52, kVK_ANSI_Keypad1 = 0x53, kVK_ANSI_Keypad2 = 0x54, kVK_ANSI_Keypad3 = 0x55, kVK_ANSI_Keypad4 = 0x56, kVK_ANSI_Keypad5 = 0x57, kVK_ANSI_Keypad6 = 0x58, kVK_ANSI_Keypad7 = 0x59, kVK_ANSI_Keypad8 = 0x5B, kVK_ANSI_Keypad9 = 0x5C kVK_Return = 0x24, kVK_Tab = 0x30, kVK_Space = 0x31, kVK_Delete = 0x33, kVK_Escape = 0x35, kVK_Command = 0x37, kVK_Shift = 0x38, kVK_CapsLock = 0x39, kVK_Option = 0x3A, kVK_Control = 0x3B, kVK_RightCommand = 0x36, kVK_RightShift = 0x3C, kVK_RightOption = 0x3D, kVK_RightControl = 0x3E, kVK_Function = 0x3F, kVK_F17 = 0x40, kVK_VolumeUp = 0x48, kVK_VolumeDown = 0x49, kVK_Mute = 0x4A, kVK_F18 = 0x4F, kVK_F19 = 0x50, kVK_F20 = 0x5A, kVK_F5 = 0x60, kVK_F6 = 0x61, kVK_F7 = 0x62, kVK_F3 = 0x63, kVK_F8 = 0x64, kVK_F9 = 0x65, kVK_F11 = 0x67, kVK_F13 = 0x69, kVK_F16 = 0x6A, kVK_F14 = 0x6B, kVK_F10 = 0x6D, kVK_F12 = 0x6F, kVK_F15 = 0x71, kVK_Help = 0x72, kVK_Home = 0x73, kVK_PageUp = 0x74, kVK_ForwardDelete = 0x75, kVK_F4 = 0x76, kVK_End = 0x77, kVK_F2 = 0x78, kVK_PageDown = 0x79, kVK_F1 = 0x7A, kVK_LeftArrow = 0x7B, kVK_RightArrow = 0x7C, kVK_DownArrow = 0x7D, kVK_UpArrow = 0x7E kVK_ISO_Section = 0x0A kVK_JIS_Yen = 0x5D, kVK_JIS_Underscore = 0x5E, kVK_JIS_KeypadComma = 0x5F, kVK_JIS_Eisu = 0x66, kVK_JIS_Kana = 0x68
Keyhac
About
Mac版はmac_portブランチ。
Mac
Mac版は英語サイト (craftware - Keyhac) からじゃないとダウンロードできないので注意する。
マニュアル: keyhac: User Manual。
またWindowsと異なり、exeファイルと同じ場所のconfig.pyを読み込んだりはしてくれない。
$HOME/Library/Application Support/Keyhac/に配置する必要がある。
また、そもそもキーコード自体が異なるので、一部は専用に作る必要がある。
Base
config.py内にconfigure(keymap)関数を定義して、この中で設定を記述していく。
引数のkeymapにはKeymapオブジェクトが渡されるのでこれを操作することで設定する。
keymap_global = keymap.defineWindowKeymap()
Keymap.defineWindowKeymapでWindowKeymapオブジェクトを返す。このオブジェクトに対してグローバルキーマップを定義していく。
これが基本。
基本的に全部文字列。キーコードを指定する部分は数値も可能だが、10進数の文字列にしておいたほうがいい。
Modifier
keymap.defineModifierで、Shift/Ctrlのように同時押しに意味のあるキー (modifier) を追加できる。
スペースの左右のキーにShift/Ctrl相当の機能をもたせる上で非常に重要。
# ユーザモディファイアキーの定義 keymap.defineModifier( 235, "User0" )
上記の例では235のキーコードにU0のモディファイアキーを設定している。U0はUser0の短縮表記。ただし、Windows専用。短縮表記は使わない方がいい。
Policy
- スペースの左右のキー (Windows=変換/無変換、Mac=英数/かな) をモディファイアキーに追加。
- LSS/RSSと表記 (Left Side Space/Right Side Space)
- Ctrl/Cmd=CCと表記。
- SpaceはCtrlのワンショットモディファイア。
- LSS=Shift、RSS=U0、Space=CC。
hjklのVimのキー移動を定義したいから、RSSはU0。これは確定。
U0の操作にShiftを組み合わせたいことがあるからLSS=Shiftがいい。
キーの違いで、Windows/Macで共有と独立部分がある?