Αρχική σελίδα » πως να » Πώς να εκτελέσετε τα προγράμματα των Windows από το Bash Shell των Windows 10

    Πώς να εκτελέσετε τα προγράμματα των Windows από το Bash Shell των Windows 10

    Στην ενημερωμένη έκδοση δημιουργών, το κέλυφος Bash των Windows 10 σας επιτρέπει πλέον να τρέχετε δυαδικά αρχεία των Windows και τις τυπικές εντολές Command Prompt, ακριβώς από το Bash. Μπορείτε να εκτελέσετε προγράμματα Linux και Windows από το ίδιο κέλυφος Bash ή ακόμη και να ενσωματώσετε τις εντολές των Windows σε μια δέσμη ενεργειών Bash.

    Τι πρέπει να ξέρετε

    Ακολουθούν μερικές βασικές λεπτομέρειες που πρέπει να γνωρίζετε για αυτή τη λειτουργία:

    • Λογαριασμός χρήστη: Τα προγράμματα που εκκινούνται από το κέλυφος Bash θα εκτελούνται σαν να είχαν ξεκινήσει από τον τρέχοντα λογαριασμό χρήστη των Windows.
    • Δικαιώματα: Αυτά τα προγράμματα θα έχουν τα ίδια δικαιώματα με τη διαδικασία Bash.exe. Επομένως, αν θέλετε αυτές οι εντολές να έχουν πρόσβαση διαχειριστή, θα πρέπει να εκτελέσετε το κέλυφος Bash ως Διαχειριστής.
    • Κατάλογος εργασίας: Τα προγράμματα των Windows μοιράζονται τον ίδιο "κατάλογο εργασίας" ως κέλυφος Bash. Έτσι, εάν εκτελέσετε μια εντολή που παραθέτει τα περιεχόμενα του τρέχοντος καταλόγου, θα απαριθμήσει τα περιεχόμενα του τρέχοντος καταλόγου εργασίας στο κέλυφος Bash. Χρησιμοποιήστε το CD εντολή για την αλλαγή καταλόγων εργασίας.

    Με αυτό κατά νου, ας ρίξουμε μια ματιά στο πώς να εκτελέσετε ένα πρόγραμμα.

    Πώς να εκτελέσετε ένα πρόγραμμα των Windows

    Για να εκτελέσετε ένα πρόγραμμα των Windows, εισαγάγετε τη διαδρομή στο αρχείο .exe του προγράμματος στο κέλυφος Bash. Θυμηθείτε ότι η μονάδα δίσκου Windows C: είναι διαθέσιμη στο / mnt / c στο Bash. Το περιβάλλον Bash είναι επίσης διάκριση πεζών-κεφαλαίων, επομένως πρέπει να καθορίσετε τη σωστή χρήση κεφαλαίων.

    Ας υποθέσουμε ότι θέλετε να ξεκινήσετε το βοηθητικό πρόγραμμα Ping που βρίσκεται στο C: \ Windows \ System32 \ PING.EXE. Θα εκτελέσετε την ακόλουθη εντολή:

    /mnt/c/Windows/System32/PING.EXE

    Η ακόλουθη εντολή δεν θα μπορούσε να λειτουργήσει, επειδή το Bash είναι ευαίσθητο στις πεζούλες:

    /mnt/c/windows/system32/ping.exe

    Αυτό είναι λίγο πιο περίπλοκο εάν η διαδρομή περιέχει πολύπλοκες χαρακτήρες όπως τα κενά και τα παράθυρα, όπως και οι φάκελοι του Προγράμματος Αρχείων. Πρέπει να "διαφεύγετε" τους χώρους, τις αγκύλες και άλλους πολύπλοκους χαρακτήρες, προθέτοντάς τους με ένα χαρακτήρα "\".

    Για παράδειγμα, ας υποθέσουμε ότι θέλετε να εκτελέσετε το πρόγραμμα Internet Explorer που βρίσκεται στο φάκελο C: \ Program Files (x86) \ Internet Explorer \ iexplore.exe. Θα πρέπει να εκτελέσετε την ακόλουθη εντολή στο Bash:

    / mnt / c / Πρόγραμμα \ Αρχεία \ \ (x86 \) / Internet \ Explorer / iexplore.exe

    Σημειώστε το "\" πριν τους χαρακτήρες του διαστήματος και του βραχίονα. Αυτοί οι χαρακτήρες πρέπει να "ξεφύγουν" ή ο Bash δεν θα συνειδητοποιήσει ότι οι χαρακτήρες είναι μέρος μιας διαδρομής αρχείου.

    Πώς να περάσετε ένα επιχείρημα σε μια εντολή

    Το κέλυφος Bash μεταβιβάζει τα επιχειρήματα απευθείας στις εντολές που εκτελείτε.

    Για παράδειγμα, εάν θέλετε να ping example.com, θα εκτελέσετε:

    /mnt/c/Windows/System32/PING.EXE example.com

    Ή, εάν θέλετε να ανοίξετε το αρχείο Windows hosts στο Notepad, θα εκτελέσετε:

    /mnt/c/Windows/System32/notepad.exe "C: \ Windows \ System32 \ drivers \ etc \ hosts"

    Χρησιμοποιείτε την τυπική διαδρομή αρχείων των Windows όταν μεταφέρετε μια διαδρομή αρχείου απευθείας σε ένα πρόγραμμα των Windows. Αυτό οφείλεται στο γεγονός ότι ο Μπάς περνά άμεσα το επιχείρημα. Το Notepad.exe και άλλα προγράμματα των Windows αναμένουν μια διαδρομή αρχείων των Windows.

    Πώς να εκτελέσετε μια ενσωματωμένη εντολή

    Ορισμένες εντολές των Windows δεν είναι αρχεία .exe, αλλά ενσωματώνονται στην ίδια τη Γραμμή εντολών. Για παράδειγμα, αυτό περιλαμβάνει το dir μπορεί να εκτελεστεί κανονικά σε μια γραμμή εντολών. Για να εκτελέσετε μια τέτοια εντολή, πρέπει να εκτελέσετε την εντολή cmd.exe δυαδική συσχετισμένη με τη Γραμμή εντολών και να την δώσετε ως εντολή με το / C, όπως π.χ.:

    /mnt/c/Windows/System32/cmd.exe / C εντολή

    Για παράδειγμα, για να εκτελέσετε το dir εντολή ενσωματωμένη στη γραμμή εντολών, θα εκτελέσετε την ακόλουθη εντολή:

    /mnt/c/Windows/System32/cmd.exe / C dir

    Πώς να προσθέσετε καταλόγους στο μονοπάτι

    Το περιβάλλον των υπηρεσιών Windows για Linux αντιμετωπίζει τα εκτελέσιμα αρχεία των Windows παρόμοια με τον τρόπο που αντιμετωπίζει τα δυαδικά αρχεία Linux. Αυτό σημαίνει ότι μπορείτε να προσθέσετε έναν κατάλογο που περιέχει τα αρχεία .exe στη διαδρομή και στη συνέχεια εκτελέστε τα αρχεία .exe απευθείας. Για παράδειγμα, για να προσθέσετε τον κατάλογο System32 στη διαδρομή σας, θα εκτελέσετε:

    εξαγωγή PATH = $ PATH: / mnt / c / Windows / System32

    Θα μπορούσατε στη συνέχεια να εκτελέσετε τα αρχεία .exe των Windows που βρίσκονται στο φάκελο System32 απευθείας, όπως έτσι:

    PING.exe example.com
    notepad.exe
    cmd.exe / C dir

    Πώς να διοχετεύσετε την έξοδο μιας εντολής σε άλλη

    Η έξοδος μιας εντολής των Windows μπορεί να μεταφερθεί σε μια εντολή Linux και αντίστροφα. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε το ipconfig.exe -όλος εντολή για να καταγράψετε λεπτομέρειες σχετικά με τις διεπαφές δικτύου και να τις συνδέσετε στο Linux grep εντολή για αναζήτηση στην έξοδο. Για παράδειγμα, για να ορίσετε όλες τις πληροφορίες σχετικά με τη σύνδεσή σας και να αναζητήσετε ενότητες που ταιριάζουν με τη διεύθυνση IPv4, θα εκτελείτε:

    /mnt/c/Windows/System32/ipconfig.exe -όλος | grep "Διεύθυνση IPv4"

    Αυτή είναι η βασική διαδικασία. Αυτές οι εντολές θα λειτουργήσουν επίσης όταν ενσωματωθούν σε μια δέσμη ενεργειών Bash, ώστε να μπορείτε να γράψετε ένα σενάριο Bash που ενσωματώνει τόσο εντολές των Windows όσο και βοηθητικά προγράμματα Linux. Εάν τρέχει στο κέλυφος Bash, θα λειτουργήσει σε ένα σενάριο Bash.

    Και αν θέλετε να πάτε με τον άλλο τρόπο, μπορείτε να χρησιμοποιήσετε την εντολή "bash -c" για να εκτελέσετε τις εντολές Bash από την τυπική γραμμή εντολών των Windows.