11Sep
Στην ενημερωμένη έκδοση των δημιουργών, το κέλυφος 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:
Program \ Files \ \( x86 \) / Internet \ Explorer / iexplore.exe
Σημειώστε το "\" πριν τους χαρακτήρες χώρου και αγκύλης.Αυτοί οι χαρακτήρες πρέπει να "ξεφύγουν" ή το Bash δεν θα συνειδητοποιήσει ότι οι χαρακτήρες είναι μέρος μιας διαδρομής αρχείου.
Πώς να περάσετε ένα επιχείρημα σε μια εντολή
Το κέλυφος Bash μεταβιβάζει τα επιχειρήματα απευθείας στις εντολές που εκτελείτε.
Για παράδειγμα, εάν θέλετε να κάνετε ping example.com, θα εκτελέσετε:
/mnt/c/Windows/System32/ PING.EXE example.comΉ, αν θέλετε να ανοίξετε το αρχείο hosts των Windows στο 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 εντολήΓια παράδειγμα, για να εκτελέσετε την εντολήεντολή που είναι ενσωματωμένη στη γραμμή εντολών, θα εκτελέσετε την ακόλουθη εντολή:
/mnt/c/Windows/System32/ cmd.exe / C dirΤρόπος προσθήκης καταλόγων στο μονοπάτι
Το περιβάλλον υπηρεσιών Windows για περιβάλλον Linux αντιμετωπίζει εκτελέσιμα Windows ανάλογα με τον τρόπο που αντιμετωπίζει τα δυαδικά αρχεία Linux.Αυτό σημαίνει ότι μπορείτε να προσθέσετε έναν κατάλογο που περιέχει τα αρχεία. exe στη διαδρομή και στη συνέχεια να εκτελέσετε αυτά τα αρχεία. exe απευθείας.Για παράδειγμα, για να προσθέσετε τον κατάλογο System32 στη διαδρομή σας, θα εκτελούσατε:
export PATH = $ PATH: /mnt/c/Windows/ System32Θα μπορούσατε στη συνέχεια να εκτελέσετε τα αρχεία. exe των Windows που βρίσκονται στο φάκελο System32 απευθείας:
PING.exe example.com notepad.exe cmd.exe / C dirΠώς να διοχετεύσετε την έξοδο μιας εντολής σε άλλη
Η έξοδος μιας εντολής των Windows μπορεί να μεταφερθεί σε μια εντολή Linux και αντίστροφα.Για παράδειγμα, μπορείτε να χρησιμοποιήσετε την εντολή ipconfig.exe -all για να ορίσετε λεπτομέρειες σχετικά με τις διεπαφές δικτύου και να την διοχετεύσετε στην εντολή grep Linux για να αναζητήσετε την έξοδο.Για παράδειγμα, για να καταχωρίσετε όλες τις πληροφορίες σχετικά με τη σύνδεσή σας και να αναζητήσετε τμήματα που ταιριάζουν με τη διεύθυνση IPv4, θα εκτελέσετε:
/mnt/c/Windows/System32/ ipconfig.exe -all |grep "Διεύθυνση IPv4"Αυτή είναι η βασική διαδικασία.Αυτές οι εντολές θα λειτουργήσουν επίσης όταν ενσωματωθούν σε μια δέσμη ενεργειών Bash, έτσι μπορείτε να γράψετε ένα σενάριο Bash που ενσωματώνει εντολές των Windows και βοηθητικά προγράμματα του Linux.Εάν τρέχει στο κέλυφος Bash, θα λειτουργήσει σε ένα σενάριο Bash.
Και αν θέλετε να χρησιμοποιήσετε την εντολή "bash -c" για να εκτελέσετε τις εντολές Bash από την τυπική γραμμή εντολών των Windows.