linuxコマンドについて、疑問な点があり質問させて貰いました。
ターミナルを起動し(linuxOSにログインする前の状態です)、「pwd」と入力しましたら、現在操作しているディレクトリのパスが表示されましたが、「pwd」コマンドはlinuxコマンドである為、CentOSなどにログインしていないと(linuxOS上でないと)使用出来ないのではないか、と疑問に思いまして...
この点につきまして、教えてもらえましたら幸いです。
※OSはMAC mojave,ターミナルはiterm2,shellはfishを使用しております。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/22 01:38 編集
回答4件
0
どうでもいい話が混じっていますので、読み物程度でお読み下さい。
pwd
はUNIXにおいてカレントディレクトリを表示するだけのシェル組み込みコマンドまたは実行ファイルです。Wikipediaによると1974年にはすでにUNIX上に実装されていたようです(このころ、Linuxはまだ存在しません)。
pwd
はBourne ShellをはじめとしたUNIXで使われるほとんどのシェルにおいて組み込みコマンドとして実装されています。また、組み込みコマンドとは別に実行ファイルとしても入っている場合がほとんどですが、UNIXのシェル環境で実行した時のpwd
は組み込みコマンドのほうが使用されます。取りあえず、UNIXであればpwd
が使えるとだけ覚えて下さい。
さて、Linuxについてです。LinuxはUNIX用に作られたオープンソースのソフトウェアがUNIXを使わずに実行出来ることを目的で開発されました。LinuxはUNIXではありませんし、そもそも作れたのはカーネルだけですが、同じくシェルや各実行ファイルをUNIXと互換かつオープンソースなものに入れ替えようとするGNUプロジェクトのプロダクトと組み合わせて一つのOS(そのためGNU/Linuxと呼ぶ人もいる)としてできあがりました。
UNIXとの互換性を維持するには、各コマンドもまた同じで無くてはなりません。その一つがpwd
になります。つまり、Linuxでpwd
が使えるのは、UNIXでpwd
が使えたからと言う理由以外に存在しません。
さて、Macですが、MacはMac OS XからDarwinというBSD系UNIXを元に作成されることになりました。言ってしまえば、今のmacOSはFreeBSDやOpenBSDといったBSD系UNIXの兄弟、SolarisやAIXといったSystemV系UNIXの従姉妹です。UNIXですので、pwd
はもちろんあります。むしろLinuxにあるpwd
よりも本家本元の流れを組んでいるpwd
です。むしろ、オリジナルはLinuxよりもMacと言っても良いぐらいです。
さて、カレントディレクトリ表示といえばpwd
と言われるぐらい浸透していきましたが、この流れに嫉妬したMicrosoftも考えました。pwd
をWindowsでも使えるようにすれば良いと。PowerShellのコマンドは基本的に"動詞-名詞"の形をしておりpwd
というコマンドはこの形式あってません。ですので、PowerShellにおいてカレントディレクトリの表示はGet-Location
と似ても似つかぬ物です。では、あなたの環境のPowerShellでpwd
と実行してみてください。ほら、カレントディレクトリが表示されたでしょ?(表示がディレクトリ名だけでは無いので違うと思うかも知れませんが、これは、PowerShellのオブジェクトとして扱っているからです。)これは何かというとGet-Location
にエイリアスを貼っているだけです。いまや、pwd
はWindowsでも使えるグローバルなコマンドになったのです。
投稿2019/10/22 02:49
総合スコア21737
0
ベストアンサー
「pwd」コマンドはlinuxコマンドである為、CentOSなどにログインしていないと使用出来ないのではないか、と疑問に思いまして...
MacOSにログインしMacOSのterminalでMacOSのpwdコマンドを実行しているだけです。
MacOSはUnix系のOSです。Unix系のOSではカレントディレクトリのパスを取得するコマンドpwd
が存在する。
https://ja.wikipedia.org/wiki/Pwd
一般にUnix系などのオペレーティングシステム (OS) では、プロセスは何らかのカレントディレクトリに「居る」。pwdは、自分自身のプロセスのカレントディレクトリのフルパス(absolute pathname)を、それを取得するシステムコールgetcwd(2)を利用するなどして取得し、標準出力に出力する。
https://ja.wikipedia.org/wiki/MacOS
NeXTのOPENSTEPの技術をベースに開発されたMacintosh専用オペレーティングシステムである。オープンソースのオペレーティングシステム「Darwin」をベースとし、POSIXに準拠したUNIXである
投稿2019/10/22 01:38
総合スコア7918
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/22 01:48
2019/10/22 01:50
2019/10/22 01:52
0
ログインしていないと使用出来ない
当然といえば当然だと思います。・・・ログインしなければ、「カレント・ディレクトリ」もありません。
・・・疑問を持った経緯は何でしょう?
[追記]下記はLinuxからFreeBSDにログインした時のものですが、この場合もLinuxにはログインした状態でBSDにログインしています・・・ログイン前のpwdはLinux側、その後はBSD側のディレクトリが表示されます。
分かりますか?
text
1usr ~ % pwd 2/home/xxxxx 3usr ~ % server 4Password for kondo@svr.cateye.jp: 5Last login: Sat Oct 19 10:48:47 2019 from 192.168.1.50 6FreeBSD 11.3-RELEASE-p3 (GENERIC) #0: Mon Aug 19 21:08:43 UTC 2019 7 8Welcome to FreeBSD! 9 10Release Notes, Errata: https://www.FreeBSD.org/releases/ 11Security Advisories: https://www.FreeBSD.org/security/ 12FreeBSD Handbook: https://www.FreeBSD.org/handbook/ 13FreeBSD FAQ: https://www.FreeBSD.org/faq/ 14Questions List: https://lists.FreeBSD.org/mailman/listinfo/freebsd-questions/ 15FreeBSD Forums: https://forums.FreeBSD.org/ 16 17Documents installed with the system are in the /usr/local/share/doc/freebsd/ 18directory, or can be installed later with: pkg install en-freebsd-doc 19For other languages, replace "en" with a language code like de or fr. 20 21Show the version of FreeBSD installed: freebsd-version ; uname -a 22Please include that output and any error messages when posting questions. 23Introduction to manual pages: man man 24FreeBSD directory layout: man hier 25 26Edit /etc/motd to change this login announcement. 27Nice bash prompt: PS1='([$(tput md)]\t <\w>[$(tput me)]) $(echo $?) $ ' 28 -- Mathieu <mathieu@hal.interactionvirtuelle.com> 29svr ~ % 30svr ~ % pwd 31/usr/home/xxxxx 32svr ~ %
投稿2019/10/22 01:32
編集2019/10/22 01:52総合スコア6851
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/22 01:37
2019/10/22 01:38
2019/10/22 01:41
2019/10/22 02:05 編集
0
雑にいうと、 Mac は Linux 同様 UNIX 系の OS をベースにして作られてるから
Linux と(完全に互換ではないが)同様のコマンド群が使える、ということですね。
詳しく突っ込まれると分からないのでリンクを貼っておきますよ。
https://ja.wikipedia.org/wiki/MacOS
BSD系UNIXをベースに開発された。
投稿2019/10/22 01:29
編集2019/10/22 01:33総合スコア484
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/22 01:53 編集
2019/10/22 01:55 編集
2019/10/22 02:01
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。