[過去ログ] くだらねえ質問はここに書き込め! Part 244 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
655(7): 2021/06/13(日)11:46 ID:8uxgXDKq(1) AAS
$ top とやると普通にtopが動きますが
$ sh /usr/bin/top とやっても動きません
$ sh シェルスクリプト は動きます
なんでか教えて下さい賢者様
656: 2021/06/13(日)11:47 ID:kDWNq6kw(1/3) AAS
>>654
>そのままホームディレクトリのダウンロードフォルダに置いたまま使って良いんでしょうか?
その使い方で問題ないですよ。むしろその方が無難だと思いますよ
657(1): 2021/06/13(日)11:53 ID:kDWNq6kw(2/3) AAS
>>655
コマンドの使い方が間違っているからです。
$ /usr/bin/top
なら動くでしょう?
658(1): 655 2021/06/13(日)11:58 ID:+NVzDbjK(1) AAS
>>657
賢者様、私の質問の仕方が悪かった様ですみません
シェルはどうして実行バイナリ名を命令するとバイナリが走るのか、仕組みを知りたくて質問させて頂きました
659: 2021/06/13(日)12:08 ID:FUPqCC9B(1/3) AAS
ちょっとまって
賢者になってくるから
660(1): 2021/06/13(日)12:13 ID:FUPqCC9B(2/3) AAS
ふぅ
バイナリっていうのはテキストエディタで中を見てもめちゃくちゃで読めないもファイルのことだよ
topは中を見てもわからないからバイナリ
シェルスクリプトはテキストエディタでみてわかるからバイナリじゃない
shはシェルスクリプト(テキストのソースコード)を実行するコマンド
shはバイナリを実行するコマンドじゃなくてシェルスクリプトを実行コマンド
661: 655 2021/06/13(日)12:23 ID:NUC19c+j(1) AAS
>>660
賢者様、さすがにその位はわかるんですが、
シェルでコマンドバイナリを直接入力してエンターすると
何故バイナリプログラムが走るのかに興味がありまして
パケット節約の為に通信しない時は機内モードにしているので
いちいちidが変わっている事は御容赦下さい
662(1): 2021/06/13(日)12:24 ID:kDWNq6kw(3/3) AAS
>>658
>>658
バイナリ実行がコマンドとして定義されているからでしょう。
それ以上の答えはこのスレの範囲を越えるので私では無理です。
人間 → シェル → バイナリ(機械語)の実行
人間が直接コンピュータ本体に指示を与えることは出来ません。
あいだで仲介するシェルを通じて命令します。
663(1): 655 2021/06/13(日)12:37 ID:1H34sh5d(1) AAS
>>662
要するに実行可能バイナリ名の文字列を命令すると
「あー、shである俺自身の機能じゃないけど呼んではみるわ」みたいな感じですかね
何となくわかりました
お付き合い頂き有り難うございました
664: 2021/06/13(日)13:04 ID:FUPqCC9B(3/3) AAS
違うよ
665(2): 2021/06/13(日)13:25 ID:MS+8EjMv(1) AAS
>>663
聞く前にマニュアルくらい読んだら?
666: 2021/06/13(日)13:38 ID:PmY0374Y(1) AAS
>>665
manのどこに載ってたっけ?
俺は質問内容を考えた事も無かったんで知らんが
667(1): 2021/06/13(日)13:44 ID:3Ct2ZDCN(1/2) AAS
>>665
まあそう冷たくしない。
マニュアルも面白いもんじゃないし。
外部リンク[html]:linuxjm.osdn.jp
>>655 は上のページから
> オプション処理の後に引き数が残っており、かつ -c オプションと -s オプションのいずれも指定されていない場合、 最初の引き数はファイル名とみなされ、 そのファイルにシェルコマンドが記述されているとみなされます。
つまりそもそも >>655 でバイナリを指定してる時点でsh(bash)の想定外だね。
668: 2021/06/13(日)14:08 ID:qj7Qr8cE(1) AAS
シェルスクリプトでも実行権限が付与されてればshコマンド無しで実行できるし、topコマンドでも実行権限が無ければ「$ /usr/bin/top」で実行できない
shコマンドでテキストファイルが実行できてバイナリファイルが実行できないのはshコマンドの問題
669(1): 2021/06/13(日)14:17 ID:3Ct2ZDCN(2/2) AAS
>>667 だとちょっと分かりづらいか。
>>667 で言ってるのは >>655 で書かれたパターンのうち「sh シェルスクリプト」や「sh /usr/bin/top」のこと。
>>655 のパターンうち「top」をいきなり実行する場合のルールは同じ以下のページから
外部リンク[html]:linuxjm.osdn.jp
「コマンドの実行」セクションを参照してください。
670: 655 2021/06/13(日)14:51 ID:685BZrsT(1) AAS
>>669
これですか
> コマンドが単語に分割された後に、 単純なコマンドとそれに対する引き数リスト (引き数リストは省略可能) となった場合、以下の動作が行われます。
> コマンド名にスラッシュが含まれない場合、 シェルはコマンドの位置を特定しようとします。 その名前のシェル関数が存在すれば、前に 関数 で説明したように...
腹に落ちるのに少々時間がかかりそうですが、すごくためになる内容ですね
マニュアル全体の説明も充実している様で、単に読み物としても非常に面白いです
669さん、そして他の賢者の皆様、素晴らしい文献に誘導して頂き有り難うございました
671(1): 2021/06/13(日)15:22 ID:I/E47GLd(1) AAS
command -v /usr/bin/top
/usr/bin/top
file /usr/bin/top
/usr/bin/top: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV),
dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0,
BuildID[sha1]=d4fd52be0612e63121335a430fe47f8bbd9fe009, stripped
ELF 64-bit LSB shared object、つまり、.so、Windows で言うDLL
672: 2021/06/13(日)15:28 ID:Byedy8Kk(1) AAS
quickey.pyってウィンドウ切り替えスクリプト使ってたんですが、
Debianでpython関係のパッケージ名が随分変わったせいか動かなくなってしまいました
バックグラウンドで起動してたら新規ウィンドウ立ち上げないでそっちをアクティブにするアプリランチャーありますか?
synapseとalbertとulauncherは試しましたが現状を無視して常に新規ウィンドウ立ち上げしてしまいます……
673: 2021/06/13(日)16:34 ID:MEQeZ8li(1) AAS
>>671
ダウト! WindowsではDLLを直接実行できない
674(4): 2021/06/14(月)16:08 ID:RWeym4Gm(1) AAS
Windowsが終わるのでLinuxに乗り換えようと思う
オススメの選択肢を教えてください
上下前次1-新書関写板覧索設栞歴
あと 328 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.221s*