X



OS XをUnixとして使ってる人の為のスレ 18 [無断転載禁止]©2ch.net
0001名称未設定
垢版 |
2016/05/06(金) 04:16:59.70ID:Kkeqv6zz0
OS X を Unix として使ってる人の為のスレです。

■関連スレ
Fink 使ってるの洩れだけなのかっ!?【rev.2】
http://potato.2ch.net/test/read.cgi/mac/1166780804/
MacPorts でワクワク UNIX ライフ Part 3
http://potato.2ch.net/test/read.cgi/mac/1315401888/
Homebrew でゾクゾク UNIX ライフ2
http://potato.2ch.net/test/read.cgi/mac/1309843497/
AppleScript アップルスクリプト 質問、発表 6
http://potato.2ch.net/test/read.cgi/mac/1387630245/
【中の人】Automator【小人】3人目
http://potato.2ch.net/test/read.cgi/mac/1416219152/
【タマニハ】MacにLinux入れようよ!その4【チガウノ】
http://potato.2ch.net/test/read.cgi/mac/1277458655/
Mac de Emacs総合スレ v7
http://potato.2ch.net/test/read.cgi/mac/1328699139/
Mac Vim 再び
http://potato.2ch.net/test/read.cgi/mac/1133534694/
Macでプログラミング{11}
http://potato.2ch.net/test/read.cgi/mac/1414566499/

■前スレ
Mac OS XをUnixとして使ってる人の為のスレ 17
http://potato.2ch.net/test/read.cgi/mac/1383436068/
0802名称未設定
垢版 |
2023/09/18(月) 17:16:29.24ID:j7bq6OEJ0
>>801
Terminalアプリで自動実行する場合のWorking Directoryはどこやねんって話で、
Terminal アプリで新しいウィンドウを開いて新しいセッションの場合は、ファイラーは関係なく、あくまでもTerminal アプリがどうってのじゃないかなあ
ファイラーからTerminal アプリへはWorking Directoryに依存しない、絶対パスなんぞで目的のスクリプトファイルが渡されるだけのような
まあ、これまたスクリプトファイルのあるディレクトリをWorking Directoryにsる変なTerminalアプリがあるかもしれないけどw
0803名称未設定
垢版 |
2023/09/18(月) 17:17:46.72ID:9yWLBNSQ0
>>800
「何」にか書けないでしょう?
私は何にも拘っていませんから
0804名称未設定
垢版 |
2023/09/18(月) 17:19:58.47ID:j7bq6OEJ0
何につけズバリと教えてもらわなければ気が済まない/わからないんだなww
まあ無自覚な方か
0805名称未設定
垢版 |
2023/09/18(月) 17:27:34.13ID:YklZIZaA0
>>802
launchdのあるMacと違ってLinuxでは起動したやつが直接の親になるだけだから(.desktop経由で起動する等特殊な例を除く)
ファイラーがターミナルを起動するときに子プロセスへのwdの継承は行われてるはず
そのときファイラーがwdをどこにしてるかと、ターミナル側が上書きするかどうかは別の話で
0806名称未設定
垢版 |
2023/09/18(月) 17:34:12.17ID:j7bq6OEJ0
>>805
そこかーら、新しいセッション(login shellの起動?)のためには、Terminal自身がWorking Direcorryを変えて(普通は$HOME)じゃね
なので、新しいセッションでは普通は$HOME、変なw変更できるのでは>>791のよな変なデフォかTerminalアプリの設定されたとこでTerminal自身がWorking Direcorryを変えてそれを継承してシェルが始まるんじゃないのかな
0807名称未設定
垢版 |
2023/09/18(月) 17:45:08.13ID:YklZIZaA0
なんか俺も何やってるのかわかんなくなってきたな、そもそもLinuxの動作の深堀りに意味はないよな…

>>806
Macではターミナルウィンドウ毎にlogin(1)が実行されるけど
Linuxではウィンドウシステムにログインした時点でターミナルレベルのログインも済まされてて全部同じセッションなんですわ
だからターミナルアプリか.shrcあたりが余計なことしてない限りwdはそのまま
(引用するのは癪だが>>790が書いてあるとおり)
0808名称未設定
垢版 |
2023/09/18(月) 17:50:52.13ID:j7bq6OEJ0
>>807
それは変なwTerminalアプリの話のようなw
>>791の最初のは違うようだけど
同じセッションの意味がちょっとわからない。新しいウィンドウでの=新しいセッション、ウィンドウ毎=セッションのつもりだった
別ウィンドウ=別プロセスのシェルのWorking Directoryを「わざわざ」Terminalが取得してでなきゃ実現しなさそうだけど
0809名称未設定
垢版 |
2023/09/18(月) 18:10:26.52ID:YklZIZaA0
>>808
あー、ログインシェルのセッションということでOSがログイン/ログアウトと認識する単位のつもりだった
login(1)で開始されてlastコマンドで履歴が見えるやつ
>>791の上のやつはターミナルのウィンドウのことをセッションと呼んでるなあ
紛らわしくてすまん

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

その「わざわざ」をしなければ、シェルが使いづらいやんと思うのだけど
シェルの起動直後だけデフォ(しつこいが$HOMEが普通)、以後、そのシェルがまたシェルを起動しても元のシェルのWorking Directoryのままってのは、セッションのためのシェルを起動するときにTerminalアプリ自身のWorking Directoryを変えて単に起動したシェルが継承してるだけというのが逆にシンプルになると思うが
0811名称未設定
垢版 |
2023/09/18(月) 18:40:11.14ID:YklZIZaA0
ぶっちゃけ大抵のターミナルアプリにも固定するような設定はあるので使い辛いと思う人もいるんだろうな
俺も最初はMacと動作が違うので戸惑ったが慣れてしまった
逆にTerminal.appだって昔は$HOME固定だったけどいつの頃かすでに開いているウィンドウがある場合は
新しいウィンドウも同じディレクトリになる設定ができるようになったし
0813名称未設定
垢版 |
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かな?
0814名称未設定
垢版 |
2023/09/18(月) 21:36:29.40ID:TH8UtMi00
/をつければ絶対パス
/をつけないなら相対パス
0817名称未設定
垢版 |
2023/09/18(月) 23:58:44.62ID:d5S5VROE0
もう自分で検証して報告してくれ
ワイはその都度いい感じに動くようにチェックしつつディレクトリは調整するからいちいち知らん
0818名称未設定
垢版 |
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だと予想しますが
0819名称未設定
垢版 |
2023/09/19(火) 05:14:30.26ID:Zk3wdnQA0
>>818
検証する必要もねぇ
ユーザーのホームディレクトリにテキストが作成される。
/の有無はグラフィカルユーザインターフェースアシスタンスで補助する簡易機能だから
0でカレントディレクトリ取得しろ
昔はBASH_SOURCEだけどもzshからは0でいい

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

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

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

環境変数の一覧を見たいときってenvコマンド? この中にはないですね
setだと出ますね。あれ、もしかしてただの変数だっけ?
0823名称未設定
垢版 |
2023/11/19(日) 07:11:09.66ID:ZFDHVOMV0
export付ければenvでも出る
export付けなくてもプロンプトなzshプロセス内でなのでただの変数でもいい
.zshrcなんぞ読み込まずにzshプロセスを起動したらPS1とかPROMPTの設定が無い
てとこかな
0824名称未設定
垢版 |
2023/11/19(日) 07:20:25.49ID:ZFDHVOMV0
>zshプロセスを起動したら
PS1とかPROMPT設定してるzshプロセスからね
sudo -s
ってすると、rootの.zshrcなどを読もうとしてのも同じようなもん
PS1とかPROMPTが失われてデフォのになる。exportしていたら引き継がれて同じようなカスタムプロンプトになる
0825名称未設定
垢版 |
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) に限らず、元々ただの変数。同名の環境変数があればその値に初期化初期化されるってだけな
0826名称未設定
垢版 |
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:
0828名称未設定
垢版 |
2023/11/28(火) 22:12:32.78ID:BNgf9/r10
ところで、
zshで日本語のファイル名のファイルを作ると、ファイル名がUnicodeの分解形でなく
合成形になっていることがある気がするのですが、同じような現象にあったり、
なぜそうなるか/そうするかをご存知の方はいらっしゃいますでしょうか
0829名称未設定
垢版 |
2023/11/28(火) 22:37:58.80ID:8GKgyV7r0
apfs自体はどちらでも記録できてどちらでもアクセス可能で
Cocoaフレームワークは分解(正確にはmodifided NFD)するけど、zshは素通しだからじゃない?
0830名称未設定
垢版 |
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
0831名称未設定
垢版 |
2023/11/29(水) 01:24:32.70ID:78Ym/uzH0
>>829
なるほど
ところでAPFSのファイル名の扱いってHFS+と同じと思っていんですかね
そのへんの仕様に関するドキュメントが見当たらないような気がするのですが
0832名称未設定
垢版 |
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
0833名称未設定
垢版 |
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ですか?
0834名称未設定
垢版 |
2023/11/30(木) 17:49:14.45ID:nnlSMUVx0
>>832
>ごめん>>829は間違い。Macのzshはワイルドカード展開でNFC正規化するらしい

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

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

なんとなく、Emacs Mac Port版というのをhomebrewで入れてみたんですが、
ターミナルでemacsと入れてGUIのウインドウが立ち上がった後も、キー入力の
フォーカスがターミナルに残ってしまい、困っています。
0840名称未設定
垢版 |
2024/01/07(日) 10:25:16.33ID:pW5idtLf0
自分でビルドしてるよ
armとのuniversal版を作ってる
最近はgnutlsも必要だから
.appパッケージ内に全部納めるのかなり面倒
0841名称未設定
垢版 |
2024/01/07(日) 11:39:59.87ID:5ZhDjfPB0
おお素晴らしい
自分も大昔はビルドとかしたんですけど、その頃はMach-Oのアンダンプが上手くいかな
かったりして、手直ししたりして。今はもう楽な方に流されたい一方
0842名称未設定
垢版 |
2024/01/07(日) 14:35:23.13ID:Q0mteRmo0
MacPortsを使っているので、emacs-mac-appをインストールしています
sudo port install emacs-mac-app
するだけ
0844名称未設定
垢版 |
2024/01/14(日) 23:00:24.44ID:AyxoBdsi0
おっとレスが遅くなってしまった
>>843 まさにそれですね

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

elispとかの場所に関して、上記のは.app内にある感じですね。コマンドラインから
起動すると実行ファイル相対で場所を探す? 変なsymlinkとかしちゃいけなそう
0845名称未設定
垢版 |
2024/01/23(火) 21:04:46.97ID:B2Qav+pg0
ターミナルでプロセスを見たらsoftwareupdatedというのが暴走している感じ
なのでsudo killしようとしたらOperation not permittedとなってしまいます。
何か設定が足りないのでしょうか。
0847名称未設定
垢版 |
2024/01/24(水) 23:42:29.03ID:qAKC56wq0
やること終わったら静まるんじゃないのsoftwareupdated
動くのが嫌ならシステム環境設定で自動アップデートとか止めといた方がいいんちゃう、今後に向けて
0848名称未設定
垢版 |
2024/03/01(金) 09:05:59.92ID:gEN8Y5Xm0
/home/ユーザー名 みたいなディレクトリを用意したいのだけど、rootでも
作れないですね
今ってセキュリティーの関係で勝手な場所にディレクトリを作ったりはできないん
でしたっけ。あ、Sonomaです
0851名称未設定
垢版 |
2024/03/01(金) 15:37:34.55ID:gEN8Y5Xm0
>>849
なるほど。早速情報をありがとうございます。Linuxと場所を揃えたりしたかった
んですよね

macOSのファイルシステムは変わってますよね。そういえば、アプリケーション
なんかは、OS付属のアプリと自分で入れたアプリを重ねて表示してる感じですが、
(OS付属のアプリはread-onlyなどこかにあるようなので)、
あれはもしかしてああいうファイルシステムなのか単にFinderの機能なのか
レスを投稿する


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