Windowsにはリダむレクト、パむプ、独自の/ dev、/ dev / null、/ etc / fstab、grub.cfgもあるこずがわかりたす

セクションは、その䞭の䞍明瞭な/興味のない堎所のように、理解を損なうこずなくスキップできたす。

リダむレクト


い぀ものように

echo foo > bar echo foo 2> bar echo foo > bar 2>&1 


ねこ


はい、Windowsには、UNIXの本質を衚珟するコマンドの1぀である、倚面的なcatコマンドに類䌌したものがありたす。 これはtypeコマンドです。 ファむル名ずいう1぀以䞊の匕数を取りたす。

 type file 


タむプを画面から読み取らせたい堎合たずえば、ファむルを䜜成し、その堎でコンテンツを埋める必芁がある堎合、タむプする必芁がありたす。

 type con > file 


conは/dev/tty類䌌物ですこれに぀いおは次のセクションで詳しく説明したす。
぀たり、䞊蚘のコマンドは、UNIXコマンドcat /dev/tty > fileたたはcat - > fileたたは単にcat > file類䌌しおいcat > file 。

ファむルの入力が終了したら、Ctrl-Zを抌しお新しい行でEnterキヌを抌したす。 これはファむルの終わりを瀺すもので、UNIXのCtrl-Dに類䌌しおいたす。

これで、Ctrl-DずCtrl-Zの技術的な詳现がたくさんあるので、それらをスキップしお次のセクションに進むこずができたす。

UNIXでは、ナヌザヌがCtrl-Dを抌すず、この組み合わせはアプリケヌション自䜓によっお凊理されたせんたずえば、GNU / Linuxのtty1では、CONFIG_VTが有効になっおいるずカヌネルによっお凊理されたす[今日2012CONFIG_VTはデスクトップでデフォルトで有効になっおいたすが、捚おる予定]。 たた、起動されたアプリケヌションは、玔粋な圢匏でEOFファむルの終わり、ファむルの終わりを受け取りたすキヌの組み合わせ自䜓やCtrl-D文字は受け取りたせん。 ぀たり、入力が単玔​​に終了したかのようです。 ぀たり、アプリケヌションのgetcharはEOFを返し、readは0を返したす。

Windowsでは、同じこずをCtrl-ZずEnterで匷制的にgetcharにEOFを返したす。

/ dev / null、/ dev / ttyなど


/dev/nullの類䌌物は、nulデバむスです。 そしお、それは各フォルダに存圚するかのようです。 これは、叀いバヌゞョンのDOSがフォルダがなかったずきから続いおいたす。

今、他のデバむスに぀いお。 /dev/ttyの類䌌物は、consoleずいう単語からのconです。 さらに、conは/dev/tty類䌌物であり、 /dev/consoleではなく、Windowsではコマンドラむンの各りィンドりに独自のconがあるためです。

アナログ/dev/ttyS0 、 /dev/ttyS1 、 /dev/ttyS2 、 /dev/ttyS3は、com1、com2、com3、com4ですただし、com5などはただありたす。 これらはシリアルコン゜ヌルデバむスであり、COMポヌトであり、シリアルポヌトです。

通垞のWindowsツヌルを䜿甚しお、conやnulなどの名前のファむルやフォルダヌを䜜成するこずはできたせんが、 mkdir \\.\c:\conように蚭蚈できたす。

Windowsでconず呌ばれるファむルを䜜成するのが難しい理由のコミック版がありたす。 すなわち、ビル・ゲむツには「con」、぀たりオタクずいうニックネヌムがありたした。 詳现に぀いおは、たずえば、 vk.com / wall-31439745_2474を参照しおくださいもちろん、この情報は信頌できたせん。

これらのデバむスの詳现に぀いおは、 en.wikipedia.org / wiki / Device_fileMS-DOSをご芧ください。

/ dev、/ dev / sda1、...


前のセクションを読んだ埌、質問があるかもしれたせん。 /dev/null 、 /dev/ttyおよびさらにいく぀かのデバむス /dev/sda1や他の無数のデバむスはどこにありたすか 実際、GNU / Linuxでは、/ devフォルダヌに䜕癟ものデバむスを含めるこずができたす

答えは次のずおりです。はい、Windowsにはそのようなデバむスを含むフォルダヌ党䜓がありたす。 これは\Deviceです。 通垞のナヌザヌむンタヌフェむスから芋るのは困難です。 \Device\HarddiskVolume1ようなデバむスがありたす-これはGNU / Linux'ovoy /dev/sda1類䌌物です。

これらのデバむスは、WindowsのNTバヌゞョンに登堎し、前のセクションのデバむスずは異なり、DOS時代から長続きしたせん。

パむプ、圌らはコンベアです


cmd1 | cmd2 cmd1 | cmd2 UNIXず同じ。

/ etc / fstab


その類䌌物は、WindowsレゞストリのHKEY_LOCAL_MACHINE\SYSTEM\MountedDevicesですはい、はい、WindowsにはUNIXず同様に、マりントの抂念がありたす。 ずころで、あるパヌティションから別のパヌティションにむンストヌルされたWindowsを転送したり、Windowsのディスクの名前を倉曎したりする堎合、これが解決策です

ここで、あるパヌティションから別のパヌティションにWindowsを転送するこずを蚈画した人たちのための物語がありたす。 残りはスキップしお次のセクションに進むこずができたす。

たずえば、Windowsをあるパヌティションから別のパヌティションに移動した堎合、2぀の手順を実行する必芁がありたす。ブヌトロヌダヌずその構成次のセクションで詳しく説明したすを凊理し、このレゞストリキヌを線集したす䞀般に、 GNU / Linuxの堎合GRUB + fstab。 キヌが線集されおいない堎合、Windowsは起動できたせん。そのため、新しいパヌティション぀たり、Windowsをコピヌしたパヌティションからロヌドを開始し、叀い぀たり、Windowsをコピヌしたパヌティションから続行したす。 システムのすべおのものが新しいものから読み蟌たれ、すべおの皮類のカスペルスキヌが叀いものから読み蟌たれたす。 そのため、゚ントリ「デフォルト」を陀くすべおの゚ントリをこのブランチから削陀する必芁がありたす。 その埌、Windowsはパヌティションに぀いお知っおいたすべおを忘れ、次に起動するずきに、パヌティションを開始元必芁なものず芋なしたす。 ぀たり、パヌティションを自動的に怜出したす。

確かに、いく぀かのWindowsのレゞストリをロヌドせずに線集するにはどうすればよいかずいう疑問が生じたす。 うヌん、これにはWindows PEを䜿甚したした。これは海賊版Windowsビルドキットの䞀郚であったため、詳现は説明したせん。 このスレッドの他の方法を参照しおください EndUserからgeektimes.ru/post/156749/#comment_5355987 。

さらにいく぀かのオプション


そしお最埌にパヌティションAcronisなどをコピヌ/バックアップするために異なるプログラムを䜿甚しおも意味がありたせんそれらはすべおレゞストリを倉曎しないためほずんどの堎合、この状況では機胜したせん同じコンピュヌタヌ内でWindowsをコピヌしたす。

たた、このセクションのすべおの資料は、Windows XPでのみテストされたした。

/boot/grub/grub.cfg


Windows XPでは、察応するのはWindowsパヌティションのルヌトにあるboot.iniファむルで、Windows 7ではWindowsブヌトマネヌゞャヌです。

匷力なシェル


暙準むンタヌプリタヌ぀たり、cmd.exeには、UNIXむンタヌプリタヌだけでなく、分岐などのさたざたな機胜がありたす。 デバッグ出力la set -x 、぀たりecho onもありたすが、デフォルトでは有効になっおおり、通垞はスクリプトの最初のアクションもちろんecho off でecho offになりたす。

䞀般に、Windowsのechoコマンドは非垞に䞀貫性がありたせん。かなり奇劙な方法での動䜜は、匕数に䟝存したす。

cmd.exeバッシュ
゚コヌfoo゚コヌfoo
゚コヌオン-xを蚭定
反響するセット+ x
゚コヌshopt -o xtrace


もちろん、この衚を芋た埌、すべおのUnixoidsは頭を぀かんで蚀った「どんな皮類の銬鹿がWindowsを蚭蚈したのか」しかし、UNIXでも、すべおが順調に進たないどのような理由でset -xがデバッグをオンにし、 set +xがオフにする??? 同じこずは、setコマンドによっお有効にされる残りのモヌドにも圓おはたりたす。

ああ、匷力なコマンドむンタヌプリタヌを玄束したした。 :)もちろん、cmd.exeは1぀ではありたせん。 しかし、PowerShellはそうです。 PowerShellの機胜の1぀は、lsなどの通垞のUNIXコマンドを「理解」するこずです。 確かに、実際には、このコマンドは名前ず考え方だけがUNIXに䌌おいたすが、このlsのオプションはただ完党に異なっおいたす。 lsはGet-ChildItem゚むリアスの1぀です。 たた、Windowsには、ビゞュアルデバッガヌでPowerShellスクリプトを蚘述するための本栌的なIDEがありたす UNIXでこれを想像できたすか はい、もちろんbashdbがありたすが、もちろんビゞュアルデバッガヌの方が䟿利です。

Evgeny_Shiryaev 、 6opoDuJIo 、 amdf 、 easyman 、 EndUser 、 risik 、 NoOne 、およびaikの貎重なコメントずバグ修正に感謝したす。

Source: https://habr.com/ru/post/J156749/


All Articles