探検


OS XをUnixとして使ってる人の為のスレ 18 [無断転載禁止]©2ch.net

レス数が900を超えています。1000を超えると表示できなくなるよ。
2023/09/18(月) 17:50:52.13ID:j7bq6OEJ0
>>807
それは変なwTerminalアプリの話のようなw
>>791の最初のは違うようだけど
同じセッションの意味がちょっとわからない。新しいウィンドウでの=新しいセッション、ウィンドウ毎=セッションのつもりだった
別ウィンドウ=別プロセスのシェルのWorking Directoryを「わざわざ」Terminalが取得してでなきゃ実現しなさそうだけど
2023/09/18(月) 18:10:26.52ID:YklZIZaA0
>>808
あー、ログインシェルのセッションということでOSがログイン/ログアウトと認識する単位のつもりだった
login(1)で開始されてlastコマンドで履歴が見えるやつ
>>791の上のやつはターミナルのウィンドウのことをセッションと呼んでるなあ
紛らわしくてすまん

要はMacでもひとつのターミナルウィンドウの中で普通にUNIXコマンドを実行したりbashやzshを入れ子起動してもwdはそのままなのと同じで
Linuxのターミナルアプリは何ら特殊なことはなく一般コマンドと同じに過ぎないというだけ
wdはそのままなのが普通で変更するほうが「わざわざ」
2023/09/18(月) 18:17:48.51ID:j7bq6OEJ0
>>809
了解。俺も単にかっちょいいからパクっただけだからwすまん

その「わざわざ」をしなければ、シェルが使いづらいやんと思うのだけど
シェルの起動直後だけデフォ(しつこいが$HOMEが普通)、以後、そのシェルがまたシェルを起動しても元のシェルのWorking Directoryのままってのは、セッションのためのシェルを起動するときにTerminalアプリ自身のWorking Directoryを変えて単に起動したシェルが継承してるだけというのが逆にシンプルになると思うが
2023/09/18(月) 18:40:11.14ID:YklZIZaA0
ぶっちゃけ大抵のターミナルアプリにも固定するような設定はあるので使い辛いと思う人もいるんだろうな
俺も最初はMacと動作が違うので戸惑ったが慣れてしまった
逆にTerminal.appだって昔は$HOME固定だったけどいつの頃かすでに開いているウィンドウがある場合は
新しいウィンドウも同じディレクトリになる設定ができるようになったし
2023/09/18(月) 20:39:54.25ID:TH8UtMi00
なんだこのスレ
813名称未設定
垢版 |
2023/09/18(月) 21:28:56.17ID:O5fz+Vup0
なるほどみんな有難う!
だいぶMacOSは違うようだね
hage.commandを起動するとTerminal.appが起動されるので
Terminal.appのWDってのは分かった
hoge.commandではなくてアプリケーションプログラムをFinderから起動したらどうなるのかな?
といってもMacOSのアプリケーションプログラムって単純なバイナリじゃなかったんだっけ?
例えばgccでビルドしたhello worldをFinderからダブルクリックしたらWDはどこになるの?
Terminal.appは呼ばないと思うんだけどもやっぱり$HOMEかな?
2023/09/18(月) 21:36:29.40ID:TH8UtMi00
/をつければ絶対パス
/をつけないなら相対パス
2023/09/18(月) 21:42:25.57ID:O5fz+Vup0
>>814
ダブルクリックしたら?
2023/09/18(月) 21:45:57.58ID:TH8UtMi00
>>815
乳首が勃起する
2023/09/18(月) 23:58:44.62ID:d5S5VROE0
もう自分で検証して報告してくれ
ワイはその都度いい感じに動くようにチェックしつつディレクトリは調整するからいちいち知らん
2023/09/19(火) 00:26:56.69ID:JxRtRQA50
>>817
そんな寂しいこと言わず付き合って下さい!
デスクトップにフォルダ hoge を作成し
その中に以下を hage.c として保存して下さい
#include <stdio.h>
int main (){
FILE *fp = fopen ("mage.txt", "w");
return 0;
}
以下のようにビルドして
$ gcc -o hage hage.c
出来た hage をFinderでダブルクリックして下さい
mage.txtはどこにできますか?
フォルダhogeですか? Desktopですか? $HOMEですか?
たぶん$HOMEだと予想しますが
2023/09/19(火) 05:14:30.26ID:Zk3wdnQA0
>>818
検証する必要もねぇ
ユーザーのホームディレクトリにテキストが作成される。
/の有無はグラフィカルユーザインターフェースアシスタンスで補助する簡易機能だから
0でカレントディレクトリ取得しろ
昔はBASH_SOURCEだけどもzshからは0でいい

検索できんならmanこしろ
2023/09/19(火) 05:19:39.39ID:OR7cPwcw0
普通のアプリのカレントディレクトリはサンドボックス、とか
2023/09/19(火) 10:19:28.39ID:JxRtRQA50
>>819
おお有難う

>ユーザーのホームディレクトリにテキストが作成される。
Windowsと挙動は変わらんね

>検索できんならmanこしろ
実機はまだないんだ
2023/11/19(日) 02:54:12.03ID:uxCR2Zj20
ふと、自分のzshのPS1とかPROMPTの値が気になったのですが。

環境変数の一覧を見たいときってenvコマンド? この中にはないですね
setだと出ますね。あれ、もしかしてただの変数だっけ?
2023/11/19(日) 07:11:09.66ID:ZFDHVOMV0
export付ければenvでも出る
export付けなくてもプロンプトなzshプロセス内でなのでただの変数でもいい
.zshrcなんぞ読み込まずにzshプロセスを起動したらPS1とかPROMPTの設定が無い
てとこかな
2023/11/19(日) 07:20:25.49ID:ZFDHVOMV0
>zshプロセスを起動したら
PS1とかPROMPT設定してるzshプロセスからね
sudo -s
ってすると、rootの.zshrcなどを読もうとしてのも同じようなもん
PS1とかPROMPTが失われてデフォのになる。exportしていたら引き継がれて同じようなカスタムプロンプトになる
2023/11/27(月) 18:21:06.04ID:v+KfbMMu0
XSI Shell Command Language

Shell Variables
Variables are initialised from the environment (as defined by the XSH specification) and can be given new values with variable assignment commands. If a variable is initialised from the environment, it is marked for export immediately; see the export special built-in. New variables can be defined and initialised with variable assignments, with the read or getopts utilities, with the name parameter in a for loop, with the ${name=word} expansion or with other mechanisms provided as implementation extensions. The following variables affect the execution of the shell:

PS1(, PS2, PS4) に限らず、元々ただの変数。同名の環境変数があればその値に初期化初期化されるってだけな
2023/11/27(月) 18:27:34.86ID:v+KfbMMu0
POSIX
2. Shell Command Language

2.5.3 Shell Variables
Variables shall be initialized from the environment (as defined by XBD Environment Variables and the exec function in the System Interfaces volume of POSIX.1-2017) and can be given new values with variable assignment commands. If a variable is initialized from the environment, it shall be marked for export immediately; see the export special built-in. New variables can be defined and initialized with variable assignments, with the read or getopts utilities, with the name parameter in a for loop, with the ${ name= word} expansion, or with other mechanisms provided as implementation extensions.
The following variables shall affect the execution of the shell:
2023/11/28(火) 22:06:40.42ID:BNgf9/r10
>>822の疑問に回答をありがとうございます >>823-826
2023/11/28(火) 22:12:32.78ID:BNgf9/r10
ところで、
zshで日本語のファイル名のファイルを作ると、ファイル名がUnicodeの分解形でなく
合成形になっていることがある気がするのですが、同じような現象にあったり、
なぜそうなるか/そうするかをご存知の方はいらっしゃいますでしょうか
2023/11/28(火) 22:37:58.80ID:8GKgyV7r0
apfs自体はどちらでも記録できてどちらでもアクセス可能で
Cocoaフレームワークは分解(正確にはmodifided NFD)するけど、zshは素通しだからじゃない?
2023/11/29(水) 01:20:50.86ID:78Ym/uzH0
あ、ちょっとわかりました、「が」というファイル(だけ)があるとき
% echo * | iconv -f utf-8 -t utf-16le | od -x -A n
304c 000a
% ls | iconv -f utf-8 -t utf-16le | od -x -A n
304b 3099 000a
2023/11/29(水) 01:24:32.70ID:78Ym/uzH0
>>829
なるほど
ところでAPFSのファイル名の扱いってHFS+と同じと思っていんですかね
そのへんの仕様に関するドキュメントが見当たらないような気がするのですが
2023/11/29(水) 09:45:38.08ID:5rj6rJp90
ごめん>>829は間違い。Macのzshはワイルドカード展開でNFC正規化するらしい
だから>>830はlsが返してきてるほうがディスクに記録されてる形式だと思う

HFS+はファイルシステム側がファイル名をmodified NFD変換して保存する、apfsはしない
どちらもアクセス自体はどの形式でもできる、だったはず
ぐぐったらFAQがあった
ttps://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/APFS_Guide/FAQ/FAQ.html
2023/11/30(木) 08:40:54.38ID:nnlSMUVx0
>>832
APFSはシェルから触ったら何もしないのかな? そういえば示申問題ってありましたよね
シェルでやればこんなことも(あ、5chのUnicode処理がわからないけど):
% ls
神 神︀ 神󠄀
見た目で区別が付かない(注: 環境による)。種明かしをすると
% ls -C | gsed -r 's/\s+//g' | iconv -f utf-8 -t utf-16le | od -x -A n
fa19 795e fe00 795e db40 dd00 000a
ちなみにデフォのsedの正規表現サポートに耐えられずGNU sedを使っています

一方Finderで示神(U+FA19)を作ろうとすると神にされてしまう。こっちは素のNFDですか?
2023/11/30(木) 17:49:14.45ID:nnlSMUVx0
>>832
>ごめん>>829は間違い。Macのzshはワイルドカード展開でNFC正規化するらしい

結局これって何のためなんですかね。コマンドラインでファイル名を扱うときの
「文字幅」問題を何とかしようとか?
しかし上でやったようにls等からファイル名を受け取とる場合もあるしなあ
2023/12/02(土) 09:15:38.20ID:6RnYjEce0
scutilというのがありますよね
「コンピュータの名前」に関して HostName, LocalHostName, ComputerName と
複数あるようですが、これらの関係・違いってなんですかね
2023/12/02(土) 09:24:10.33ID:mvveSJCp0
ComputerName: MacOSのFinderなどの表示で通常使われる名前
LocalHostName: Bonjourで使われる名前
HostName: UnixとしてのPosix系システムAPIで使われる名前
2023/12/02(土) 11:35:22.56ID:2TlsHpzr0
デフォルトではHostNameが空でLocalHostNameをHostNameとして使ってるように見える
Bonjour名は(LocalHostName).localになる

Montereyまではシステム環境設定の共有名を変えると
ComputerNameとLocalHostNameが同時に変更されたけど
Ventura以降はLocalHostNameしか変わらなくなって
ComputerNameを変えるには一般→情報→コンピュータ名を変えるというスタイルになった
2023/12/04(月) 08:41:02.31ID:ivTwpHIz0
>>836 >>837
なるほど、わかりやすい解説をありがとうございます
2024/01/07(日) 09:52:14.50ID:5ZhDjfPB0
Emacsの入れ方は何パターンかあるようですが、皆さんどうされてますか?

なんとなく、Emacs Mac Port版というのをhomebrewで入れてみたんですが、
ターミナルでemacsと入れてGUIのウインドウが立ち上がった後も、キー入力の
フォーカスがターミナルに残ってしまい、困っています。
2024/01/07(日) 10:25:16.33ID:pW5idtLf0
自分でビルドしてるよ
armとのuniversal版を作ってる
最近はgnutlsも必要だから
.appパッケージ内に全部納めるのかなり面倒
2024/01/07(日) 11:39:59.87ID:5ZhDjfPB0
おお素晴らしい
自分も大昔はビルドとかしたんですけど、その頃はMach-Oのアンダンプが上手くいかな
かったりして、手直ししたりして。今はもう楽な方に流されたい一方
2024/01/07(日) 14:35:23.13ID:Q0mteRmo0
MacPortsを使っているので、emacs-mac-appをインストールしています
sudo port install emacs-mac-app
するだけ
2024/01/07(日) 14:35:58.78ID:tLXSKpHl0
こんなのが
https://github.com/railwaycat/homebrew-emacsmacport/issues/359
When I launch it from the terminal with emacs it launches just fine but any text I write is instead written in the terminal.
2024/01/14(日) 23:00:24.44ID:AyxoBdsi0
おっとレスが遅くなってしまった
>>843 まさにそれですね

というわけで自分でビルドを、と言ってもこの方のパッチを使わせてもらっただけ
https://github.com/takaxp/ns-inline-patch

elispとかの場所に関して、上記のは.app内にある感じですね。コマンドラインから
起動すると実行ファイル相対で場所を探す? 変なsymlinkとかしちゃいけなそう
2024/01/23(火) 21:04:46.97ID:B2Qav+pg0
ターミナルでプロセスを見たらsoftwareupdatedというのが暴走している感じ
なのでsudo killしようとしたらOperation not permittedとなってしまいます。
何か設定が足りないのでしょうか。
2024/01/23(火) 21:13:03.69ID:Ob//khdg0
MacOSのrootはrootless機能で出来ないことがいっぱいだから

試してないけど、これとか参考になる?
https://superuser.com/questions/1658393/sudo-kill-9-pid-doesnt-kill-softwareupdated-in-mac
2024/01/24(水) 23:42:29.03ID:qAKC56wq0
やること終わったら静まるんじゃないのsoftwareupdated
動くのが嫌ならシステム環境設定で自動アップデートとか止めといた方がいいんちゃう、今後に向けて
2024/03/01(金) 09:05:59.92ID:gEN8Y5Xm0
/home/ユーザー名 みたいなディレクトリを用意したいのだけど、rootでも
作れないですね
今ってセキュリティーの関係で勝手な場所にディレクトリを作ったりはできないん
でしたっけ。あ、Sonomaです
2024/03/01(金) 10:38:03.20ID:T31HaMdf0
この辺とか? https://zenn.dev/tomoakinagahara/articles/955eec5d723fea
2024/03/01(金) 15:13:24.19ID:sPp4spVa0
>>849
横からだけどいい情報サンクス
2024/03/01(金) 15:37:34.55ID:gEN8Y5Xm0
>>849
なるほど。早速情報をありがとうございます。Linuxと場所を揃えたりしたかった
んですよね

macOSのファイルシステムは変わってますよね。そういえば、アプリケーション
なんかは、OS付属のアプリと自分で入れたアプリを重ねて表示してる感じですが、
(OS付属のアプリはread-onlyなどこかにあるようなので)、
あれはもしかしてああいうファイルシステムなのか単にFinderの機能なのか
2024/05/02(木) 13:28:10.81ID:1jwqoZHk0
うにくす
2024/08/08(木) 07:52:31.09ID:bGMyw13f0
外付けディスクをアンマウントしようとしたら、「ターミナルが使っている」と言われました
で、そのディスクを踏んでいるターミナルウインドウを閉じたけど駄目
プロセスをよく見るとloginが走っているのですね。邪魔くさい
これってログインシェルがどうたら... でしたっけ
2024/08/08(木) 17:49:28.18ID:fwhXw5jK0
loginは関係ないだろう
単にシェル(もしくはそこから起動された何かのプロセス)でワーキングディレクトリとして外付けディスクのどこかに居てっての普通(他にまさしく何かファイルを開いていたらもあるが)
ワーキングディレクトリを移動するか、そのシェル/プロセスが無くなればなんだが、ウィンドウを閉じてもか。まだなんかシェルプロセス(もしくはTerminal後の他のプロセス)が残ってたとかかな

プロセスのワーキングディレクトリは lsof でわかるよ
2024/08/08(木) 17:59:31.84ID:fwhXw5jK0
〜が使ってるからアンマウントできない/消すことできない って場合は、
sudo lsof -nP | grep '/Volumes/以下対象の'
で、大体はわかる。解決する
稀に引っかからないでどこで掴んでるねんって場合もある。Finder強制再起動したら解決したりする。それでもな場合も稀も稀にある
2024/08/16(金) 03:54:09.04ID:OQHvasuQ0
>>854
遅レスですみません、ちょっとわかったかもです。login関係「ある」

たまに新規タブで現在と同じディレクトリからスタートする新規シェルを起動するのだけど、
このときloginとzshが起動する。この後このタブ(シェル)内でcdしたときzshのcwdは変わるけど
loginは最初の場所に居続ける

で、「このlogin要るんかい」って思ったんですけど、要るのかな、と
2024/08/17(土) 02:55:55.47ID:4T2Y7LNq0
昔のUNIXみたいに、ログインシェルが起動してそこから子プロセスとして対話シェル等が起動、
みたいになってないですよね
2024/08/17(土) 03:19:05.56ID:3hM4DtMK0
UNIXではX環境へのログイン時にloginコマンドや~/.profileも実行されて仮想ターミナルではそれを引き継ぎますが
OSXではGUIログイン時には実行されず、ターミナルのタブごとにloginコマンドが動いたり~/.profileが実行されたりします
よく言われるbashの挙動の違いなんかもこれが原因
2024/08/17(土) 12:13:51.32ID:1AZ5xtUK0
>>856
"Terminal"だからな
loginで認証しloginが対話シェル起動しての手順は変わらない。単に認証しないってオプションでlogin起動してるだけな
Last login とか出てるでしょ、最初に

>新規タブで現在と同じディレクトリからスタートする新規シェル
どうやってやるのかわからんけど、そんなことできるならそりゃloginのwdはそうなるかもね
シェルが終了したらloginも終了するのが普通だから(*)、残るのが何か別の問題(おま環的な?)があるんだろうなとしか思えないな
*)見てみればわかるように、シェルを終了(exitとかcontrol-dとか)すれば、loginも消える、ウィンドウは残っていても

login要るか要らないかは、まあ要る/都合がいいんでしょとしか。そこに文句言ってもしょうがないような
2024/08/17(土) 12:19:39.82ID:1AZ5xtUK0
ちなみに。ちなみにでもないけどw、
シェルで*もう)何もしてないシェルしか動いてないのに、ウィンドウ閉じようとしたら まだなんか動いてるけどいいんか? 的なアラートが出るのがウザい(主に気分的に。終了と思ってるのに邪魔されるような)ので、俺はcontrol-d command-wするようにしてる
2024/08/17(土) 12:40:08.51ID:1AZ5xtUK0
>>857
どの昔のことなのかはわからんが、/etc/passwdが全権持っていた頃から、ログインシェルは対話シェル(/etc/passwdで指定された)で、loginがそのログインシェル=対話シェルを起動するだけじゃないの
862名称未設定
垢版 |
2024/08/17(土) 16:06:35.69ID:4AaANAdU0
シェルってコマンド実行環境ていう意味で?
自分以外のユーザのシェルは/usr/bin/passwdにしてある
2024/08/17(土) 16:56:12.13ID:Z2xTZ/Af0
PASSWD(5)
NOLOGIN(8)
864名称未設定
垢版 |
2024/08/23(金) 12:33:08.87ID:pa5QYZ5J0
2年くらいは
そのうちにそんな負けてへんやろ
どんだけ食って
2024/08/23(金) 13:20:27.72ID:1fa7rBVo0
体調を崩して
https://i.imgur.com/J1J1olS.jpeg
2024/08/23(金) 14:13:11.74ID:RXW3IivA0
食った量そのまま太るから
867名称未設定
垢版 |
2024/08/23(金) 14:47:58.12ID:pIIfaHgH0
ご来店いた
2024/09/30(月) 07:18:29.86ID:wY43CQZO0
/bin/bashを直接入れ替える方法ってあります?
拾ってきたスクリプトとかで/bin/bashを直接参照しているものがたまにあるけど
/bin/bashに非互換な部分があるようで & 上記のようなスクリプトを探してbashのパスを
書き換えるのが面倒なので

と思ったんですが、もしかして>>849さんの情報でいけちゃう?
2024/09/30(月) 09:58:14.32ID:WobHzjIA0
わざわざOSが弄りにくくしてる物を入れ替えようとか考えちゃダメよダメダメ
2024/09/30(月) 17:48:49.21ID:/TjkEmzr0
いいじゃないのぉ〜
2024/10/01(火) 08:49:17.53ID:dLrWAKRH0
>>868
拾ってきたスクリプトを書き換えれば?
2024/10/01(火) 10:06:01.54ID:oRwLDJa90
Sequoia に入っているbashは古いんだね。気づかなかった
2024/10/02(水) 21:46:42.19ID:F6kYb8qh0
ぶっちゃけUnix系はLinuxを中心に回っている感があり、彼らはGNUが前提のようで
macOSのBSD系と相入れない部分があったり
今日も、スクリプトを走らせたら「date の -d オプションなんて知らんがな」というのを見た
macOSユーザーとしてはどう対処していけばいいでしょうか
2024/10/02(水) 22:26:09.61ID:NqOuFu0O0
BSD系とGNUが相容れないんじゃなくてGPL3とAppleが相容れないんだ
気に入らないならhomebrewで好きなものを入れればいいだけ
2024/10/02(水) 22:41:49.23ID:ltdFY1yn0
規格準拠度はmacOSのほうが上というか、ストールマンはPOSIXなんてゴミだ勝手にやるという立場なので…
2024/10/04(金) 14:26:26.41ID:xcwvlzU30
brewでGNU系を少し入れてみたけど.... dateの場合、デフォはgdateという名前になり、dateコマンド
を置き換えるにはaliasかPATHで/opt/homebrew/opt/coreutils/libexec/gnubinを先頭に?
なんだかなー
インストール時に名前が「gなんちゃら」になるのとならないのは、どう違うのかな?
2024/10/04(金) 17:36:35.74ID:J7OX3XqN0
それこそ標準のコマンドを知らずのうちに置き換えて依存してるスクリプトの挙動等をおかしくしないための安全策だろ
もっと安全側に倒すとcurlとかkeg-onlyと言ってsymlinkすらされないものもある
必要なら各自がg抜いてln -sするなりaliasするなりすればよし
2024/10/27(日) 22:17:55.89ID:Dh0YQlFx0
/bin/shのecho(ビルトインのやつ)は-nオプションがないんですね
そういうものですか。地味に驚き
対話的なスクリプトで、改行しないメッセージを出したい時ってどうしてましたっけ
/bin/echoとするか、printfとか?
2024/10/27(日) 22:28:05.74ID:7ds91Div0
echoの非互換含めた諸々の問題を解決するためにできたのがprintfらしいのでprintfでいいのでは
2024/10/27(日) 22:31:27.12ID:lVMzdbpb0
manね(まぁね)
2024/10/31(木) 02:40:39.85ID:rk0uc8Bv0
おれが使ってたのはシェルのビルトインだったw
882名称未設定
垢版 |
2024/11/18(月) 15:37:00.99ID:cHVH3wR20
manの日本語化は無理ですかね?
環境︰macOS Sequoia 15.1 AppleSiliconマシン

古いマシンで古いOSの記事なら見るのですが
AppleSiliconマシンで日本語化したという記事は見かけませんでした
何かしらのアドバイスを頂けますと幸いです
2024/11/18(月) 18:17:29.61ID:KtDRBQoR0
コマンドによってはFreeBSDかLinuxから日本語ページをパクってくるにしても、全般的には無理だろー
誰も用意してねー気がする
884名称未設定
垢版 |
2024/11/18(月) 19:03:38.00ID:cHVH3wR20
やはり無理なので誰も試してないんですね。
スッキリしました。
2024/11/18(月) 22:48:09.67ID:z0x06XOd0
可能不可能でいえば/usr/share/man/ja/に日本語訳ぶちこめば日本語になるでしょ
誰もやらないというだけで、あなたがやってもいいのよ
886名称未設定
垢版 |
2024/11/19(火) 14:11:30.94ID:kNdgYdC50
WSL2 ubuntuで簡単に日本語化できるしbarrierでmacからも操作できるのでこれでいいです
2024/11/19(火) 18:32:56.50ID:9FPfAkLd0
何言ってんのか全然わからん
888名称未設定
垢版 |
2024/11/22(金) 00:26:06.72ID:wAitSfE80
10年以上前に配布してた人はいた(配布先のリンクはもうない)

OSX 10.6のmanコマンドを日本語化
https://qiita.com/suzuken/items/e9bbe1eb7de6a0cb690a
2024/11/22(金) 01:28:30.99ID:E1FgVR/P0
Linux(GNU)との区別は大事だよね
この前うっかりリナックサーの書いたスクリプトを実行したら
sedが変なバックアップファイルを作った
2024/11/22(金) 16:01:41.66ID:5+rSkJSu0
sedの-iオプションは毎回迷うし、POSIX的には未定義なんでどっちが正しいとかも無いから困るな
891名称未設定
垢版 |
2024/11/24(日) 08:32:06.74ID:i3XzJdYj0
psもいつのまにか-efになったなあと思ってman見たらTigerまではbsdだったのね
2024/11/26(火) 06:39:23.40ID:WMPJB+rp0
>>891
今もBSDではある
が、Single UNIX Specification を取得するためには必要な改変をしただけじゃね
POSIX(Single UNIX Specificationの規定もPOSIXベースだったはず)は最低限度の規定しかしてないんだから、BSDはPOSIX準拠をうたってはいない(?)が元のBSDが変えろとも言えるが、影響を考えたら変えないという選択肢が当然BSDにあっても不思議でもないしな
2024/11/26(火) 07:22:25.05ID:OMJJC+hC0
macOS の Apple Open Source が Appleのサイトから消えて、ちょっと探し回った。GitHubに移ったんだろなとは思って探してもなかなか掴めなかったw

https://raw.githubusercontent.com/apple-oss-distributions/adv_cmds/cdf02e0cae3e27f8dae7acab14d87daa962eda1f/ps/ps.c

* Copyright (c) 2004 - Garance Alistair Drosehn <[email protected]>.
* All rights reserved.
*
* Significant modifications made to bring `ps' options somewhat closer
* to the standard for `ps' as described in SingleUnixSpec-v3.

やっぱwだったね

多分Appleがかなり改変をしまくってると思う(このps.cは追ってないが、他のでそうだった)が、元のBSDのが古っw 元のBSDの進化具合とかは見てなく、このソース表記で判断しただけだが
2024/11/26(火) 14:05:15.29ID:gM+E+gt40
>>893
>多分Appleがかなり改変をしまくってると思う

は?

https://github.com/freebsd/freebsd-src/commit/a4c8a745a85b18d74de1d63ac7aa7508cb86cff9
2024/11/26(火) 16:00:58.12ID:6diwR5VH0
SUSv3に言及してるが、SUSv3に準拠はしてない修正だな
2024/11/26(火) 16:02:25.54ID:gM+E+gt40
というわけでそのコメント自体はFreeBSDで、somewhat closerと書いてあるように
そこまでSUSに寄ってない (significant modificationsをしたという割にはw)
ちなみにこのときにFreeBSDのpsに-Aオプションが追加されたが、FreeBSDのmanには
-Aは記載がなく、「隠しオプション」状態のようだw

>>893のDarwinのソースには if (u03) {} みたいなのが追加されてて、これがSUSv3/
UNIX 2003を意識した変更だと思われ、そしてそれはFreeBSDにはない

というわけで
>多分Appleがかなり改変をしまくってる
を一応検証してみました
2024/11/26(火) 16:04:38.43ID:KPrcD6980
言い訳草
2024/11/26(火) 16:32:51.38ID:gM+E+gt40
>>言い訳草
何も言い訳してない。間違いを正したのと興味で調べただけ
一番最後の方しか読めずにレスするタイプ?
2024/11/26(火) 16:46:12.00ID:gM+E+gt40
しかし、githubベースになって、変更の履歴が見やすくなったのはちょっとだけいいかな
上で書いたif (u03)という変更も実際Tigerの後、Leopardで入ったことがわかる
そしてFreeBSDのコードのベースが、ずっと変わっていないというのもわかるw
Darwinレイヤーにセキュリティのパッチが必要なこともあると思うのだが、こんな古いソース
のままメンテしてるのだろうか

あと、コミットのメッセージとタイムスタンプからするに、今までのtarballを一つずつ
インポートしただけのようで、コミット=その作業で残念ではある
本来のコード変更の時刻も、中の人のリアルなコミットメッセージも見れたりはしないw
2024/11/26(火) 17:11:39.59ID:zLHrQGAj0
>間違いを正した
だって
未だそんな姿勢だから言い訳しかしないわなって感じ
2024/11/26(火) 17:15:10.34ID:zLHrQGAj0
因みに、Darwinレイヤー ではない扱いぽいよ、Appleでは
Appleのサイトにあった頃から、macOS/iOSのオープンソース部分
Darwinプロジェクトには含まれてない、Darwinはマジ根幹部分
2024/11/26(火) 17:26:55.49ID:ZTbsYUrO0
あと、Darwinプロジェクトは紆余曲折があって、今はXNUが正式かな
まあ、元からDarwin,XNU共に正式名。使い分けがわからんかったがw uname でも Darwin だしどっちでもええんやだけどな
Darwinプロジェクトと書いて、プロジェクト/リポジトリ的には今はXNUが表立ってってのようてことで
2024/11/26(火) 18:00:33.10ID:aJcvrVKd0
横からだけど
ハイブリッドなんだから名称にこだわる必要ないと思う
904名称未設定
垢版 |
2024/11/26(火) 22:07:14.14ID:3HLv82U50
>>882
man日本語化する必要あるの?ChatGPTに聞くのでいいのじゃ?
2024/11/27(水) 13:59:19.17ID:cHojDlIe0
>>902
そうなんだ。Darwrin=UNIX部分、XNU=カーネルだったと思ったが

>>903
とりあえずシステムの分類名はいるよね。GNUのconfigureとか、バイナリツールとか
>>902にあるようにunameがDarwinと返すので、少なくとも対外的にはDarwinということに
2025/02/17(月) 03:47:15.80ID:UQ/wAHj10
sshのときにリモートでscreenを走らせてます
これでsshが勝手に切れてもセッションは残って回復できるのがいいのだが、
再接続時、画面の更新やスクロールがおかしくなる場合が多々
ちなみにローカル: ターミナル.appからssh リモート: なんかのLinuxでscreen

上記はターミナルのリセットをすれば一応直るのだが、以前にやったことを確認する
ために、できれば画面とかスクロールとかをクリアしたくない
あとscreenを再接続 (screen -r) したときデフォで画面をクリアする、これもいらない
というわけで、上記の状況で
- 画面の更新やスクロールを壊さないようにする
or
- 画面やスクロールをクリアしないようにscreenのセッションを再開する
方法はないかなと、どなたかご存じないでしょうか
2025/02/17(月) 16:34:10.46ID:rGinMIot0
.screenrcで termcapinfo xterm* ti@:te@ したら
2025/02/19(水) 13:48:20.69ID:bx65g5m/0
>>907
なるほどいい感じです、ありがとうございます
2025/04/30(水) 03:31:00.62ID:YhnBmV1E0
Finderから複数のアイテムをTerminalにドロップした場合、ファイル名にスペースなどが入っていたらエスケープして一つの文字列となるようにしてくれるんだが、
item\ 1 item\ 2
for などで文字列リテラルの場合はエスケープを認識してくれのだが、
for item in item\ 1 item\ 2; do echo "$item"; done
item 1
item 2
変数に入れるとエスケープ無効になるのが変な仕様
items='item\ 1 item\ 2'
#itemsは実際にはreadなどで取得
for item in $items; do echo "$item"; done
item\
1
item\
2
正規の仕様のようだが(エスケープではなく$が入ってる文字列の場合とかとか考えるとまあそうか)。文字列リテラルを用いるのと同じようにevalするしかないのか
items='item\ 1 item\ 2'
eval 'for item in '$items'; do echo "$item"; done'
item 1
item 2
2025/04/30(水) 04:42:17.67ID:8ciRTQOP0
一筆書きとはいかんね。$変数でposixパスは結構やっかい
awkも一捻り入れないと出力が空白にされる
2025/04/30(水) 19:45:28.57ID:YhnBmV1E0
だよなぁ
一つだと別に何も問題ないのに、コマンド引数として直接なら問題ない(=それしか考えてないか今ので目一杯か)のになぁ
ドロップした複数のを一つ一つ処理しようとして(使いたいコマンドが一つのファイルした対象にできない、とか、複数のフォルダを一つ一つ処理してそれ毎の統計を一つの処理後毎にとか)、必要毎に最後のを書くのがなんか嫌、普通のは別に嫌でないんだがw

で、とりあえず次のようなの書いた
2025/04/30(水) 19:50:20.98ID:YhnBmV1E0
dropsrun() {
local line
local i
while printf '\n>>> %s >>>\n' "$1"; read -r line
do
while read i
do
$2 "$i"
done < <(eval 'for i in '$line'; do echo "$i"; done')
done
}
2025/04/30(水) 20:01:21.48ID:YhnBmV1E0
第一引数がメッセージ、第二引数がやりたいコマンド

dropsrun 'Drop Here' 'ls -l'
ってすると、ドロップしたのを一つずつ ls -l する(意味ないがw)

実際には、
onebyonels() {
onebyonels_internal() {
echo "## $1"
ls -l "$1"
}

dropsrun 'Drop Here' onebyonels_internal
}
ていう使い方

(こういうのは rcファイルで関数としてのシェルコマンドとして使っていて、internal関数が事後に残るのが気持ち悪いので unset -f して消そう。そしたらtrap INTも必要、trap INTが既に実装したら〜とはまり>>912はなんかすごいことになったw楽しかったけど)
2025/05/01(木) 06:41:52.38ID:8Q7FmwJv0
そういうのをやりたくないからbashもzshも配列がある
posix準拠にこだわるなら仕方ないが…
2025/05/01(木) 15:16:28.98ID:7E8OTj8O0
言うほど変わらんやろ
916名称未設定
垢版 |
2025/06/03(火) 15:36:29.10ID:dWN/aTRf0
macos 15.5 Apple silicon
date (GNU coreutils) 9.7

.zshrc
alias date='date "+%Y年%m月%d日 %A %H時%M分%S秒"'

エラー-----------------------------------------------
date: extra operand ‘+%Y-%m-%d’
Try 'date --help' for more information.
---------------------------------------------------------

2025年06月03日 火曜日 15時15分48秒 (# 表示はされます)

どうしても、エラーの原因がつかめません
よろしくお願いします

コマンドをターミナルに直打ちするとエラーはでませんで正常表示されます
2025/06/03(火) 17:49:36.50ID:IQBsGyDR0
そもそもエイリアスの定義とエラーメッセージの引数が全く違うし
dateを実行したときに実際に何が動いてるか調べたら?

他の箇所でdateに別のエイリアスを割り当てている、dateという名のシェル関数が定義されてる等
2025/06/03(火) 18:23:02.24ID:wuQ/ftBG0
>>917
>そもそもエイリアスの定義とエラーメッセージの引数が全く違うし

エンコーディングの問題という可能性はあるかな
今日びデフォでUTF-8になってそうではあるが
919名称未設定
垢版 |
2025/06/04(水) 03:44:32.84ID:8iOFD4kd0
which dateするとなんて出るか気になった

あともし
alias Date='date "+%Y年%m月%d日 %A %H時%M分%S秒"'
だと問題ないなら
alias date='/bin/date "+%Y年%m月%d日 %A %H時%M分%S秒"'
みたいにフルパスにしてみるとか
920名称未設定
垢版 |
2025/06/04(水) 11:17:02.67ID:1yrRIOSO0
916です

which date → /opt/homebrew/opt/coreutils/libexec/gnubin/date

表示OK → alias Date="date '+%Y年%m月%d日%A%H時%M分%S秒'"
表示OK → alias Date="/bin/date '+%Y年%m月%d日%A%H時%M分%S秒'"
結論
aliasの デート を Date の ディーを D大文字にするとOKということでした。
(d小文字dateはエラーを吐く)
皆さんお知恵のほど、ありがとうございました。
2025/06/04(水) 11:55:24.65ID:PUd7XCMY0
再帰になるってことかな
2025/06/04(水) 12:03:10.01ID:Y3hKhxrh0
ただ単にzhsだから小文字大文字の区別が働いて変数かクラスか分かれただけでは?
case補完入れたら解決したやつも動かなくなりそう
923名称未設定
垢版 |
2025/06/09(月) 20:57:24.92ID:C+j95t7C0
どなたか
popでmailを読み出しているのですが
1年あるいは3年以上前のメールを削除することが
mail.appでは出来ない(1ヶ月以前は可能)のを
なんとか実行出来ないでしょうか
もう12年分メールが溜まっていて
古すぎるメールを削除したいのです
2025/06/10(火) 01:21:53.93ID:tVXaWJnv0
スレ違いかと思ったが、コマンドでというかtelnet(今はcurlか)なんとかか
POPで古いメールって...そもそもPOPの使い方が間違ってる。12年分??本当にPOPサーバーにあるの??
POP telnet でググればなんかいっぱいあるな
とりあえず
https://www.itbook.info/network/pop2.html
で必要なのが簡潔に書かれていそう
2025/06/10(火) 01:51:40.28ID:tVXaWJnv0
>telnet(今はcurlか)
は、curlをtelnetとして使うのだったが、curlがpopと会話できるのね(popに対応してんのねぇ)
https://uchy.me/blog/20240706005/
スクリプトで簡潔に書けるな
2025/06/10(火) 02:57:26.38ID:wT4CKdMZ0
認証はOAuthとかもなかったっけ。大概はPOP3Sなのかな
まサーバ次第ということで。基本curlでいけそうだが
2025/06/10(火) 11:56:12.32ID:tVXaWJnv0
SSL/TLSに対応してないメールサーバはなんか色々あったな
POPでは他に先にsmtpしとけとか
928名称未設定
垢版 |
2025/06/11(水) 05:35:54.09ID:8QXqZ2F60
>>924
ありがとうございます
すっかり忘れてしまってましたが
むかしtelnetでPOPにアクセスしてどうにかしたなと思い出しました
2026/05/03(日) 17:43:51.26ID:KOasgWz80
最近のmacOSってnroffとか無いみたいですね。manはあるのでroff系のコマンドも
どこかに入っていたりします?
2026/05/04(月) 11:24:38.77ID:HGn4aGUD0
https://opensource.apple.com/releases/ 見た感じ、Ventura 13以降は入ってなさそう
2026/05/04(月) 12:11:29.89ID:mfZM6Xq90
>>930
調べていただいてありがとうございます

どうも今はmandocというコマンドになっているようですね
manなんて古臭いものでもちょっとずつ変化していくようで

そもそもはLinuxあたりで作られたとあるコマンドの日本語のmanを入手して
「これってmacOS上でも読めるのかな?」と試そうと思ったのでした
それに関しては、とりあえず文字コードをUTF-8にしたら大丈夫っぽいです
2026/05/08(金) 22:43:24.60ID:+3kyJLnz0
改訂新版が出てたので買ってみた。
https://gihyo.jp/book/2026/978-4-297-15579-7
2026/05/12(火) 17:11:09.12ID:VvwOCfqC0
>>932
目次を見た限り、macOSに依存しない部分までこんなに書く必要あるんかなあと
一方でDockerとかGit等の項目もある。でも説明が浅そうで誰得の項目になりそうな予感
とはいえこれだけ網羅されてるのは価値があるかな
2026/05/13(水) 01:47:36.46ID:G2N7cIBE0
どうでもいい内容が多かった
古いLinux関係の著書は良いものがあったと思うが
これは冗長でお勧めしない
2026/05/13(水) 16:23:09.74ID:94fCYt2h0
ターミナルので設定でフォントがSF Monoになってるんだけど
このフォントってもしかしてターミナル以外では使えない(フォントのメニューに
出てこない)?
2026/05/13(水) 16:49:26.01ID:wqjFq0ne0
/System/Applications/Utilities/Terminal.app/Contents/Resources/Fontsに実体があるよ
2026/05/13(水) 20:37:46.61ID:WkuF5d4d0
>>935
SF Monoはここにもあるよ(Version 18.0d1e1)
https://developer.apple.com/fonts/
2026/05/15(金) 09:58:31.00ID:b7LmqKAA0
>>936 >>937 情報をありがとうございます。とりあえず>>937のフォントをインストール
したらどのアプリでも使えるようになりました

が、元の疑問は:ターミナルのテキストをコピーしてテキストエディット等に貼ると
Menloになります。まあSF Monoとどちらも固定幅フォントですが、微妙に
見た目が違い、個人的にはペースト後もSF Monoになって欲しいです

最初、コピペしたときMenloになるのはフォールバックしているのかな、と思った
んですが、SF Monoを別途インストールしたあとも、コピペするとMenloになります
2026/05/15(金) 12:21:38.22ID:EjgMZMCG0
ターミナルがコピー時に余計なことしてる疑い
コンソールからコピペしたらSF Monoになった
2026/05/15(金) 12:35:35.07ID:EjgMZMCG0
939
なんも意味ないことをやった感(恥
2026/05/15(金) 19:32:33.91ID:T+Q7HK/w0
https://github.com/chbrown/macos-pasteboard/blob/master/pbv.swift を使って
ターミナルでテキストをコピー、swift pbv.swift public.rtf とやったら\fonttblにMenloが
2026/05/17(日) 14:50:30.02ID:/5pKzzqP0
ターミナルに表示される、文字(罫線素片)で作られた表をテキストエディタに
コピペすると表がずれることがあります

罫線素片は英語のフォント(例 SF Mono)でも入っていて、長さ(文字幅)は
いわゆる半角、短い長さのデザインになっている
一方日本語のフォント(例 Osaka Mono)では全角で入っている
なのでどちらだと思って表が作られているかによるようですね
2026/05/18(月) 07:37:46.82ID:CJdYmQEh0
一つには、大昔に考えられた等幅・文字の全角・半角というものをUnicodeになって
いろんな言語・種類の文字が混ざるターミナルでどう維持していくのかという
2026/05/18(月) 17:44:24.35ID:IYzZd7j90
Unicodeの東アジア文字幅定義がいい加減で、小さい四角が全角なのにそれより大きい四角とされているものが半角になってたりするので
実態としてほぼすべてのフォントがそんなもん無視して勝手に文字幅付けてるんだよなあ
レスを投稿する

レス数が900を超えています。1000を超えると表示できなくなるよ。

ニューススポーツなんでも実況