Điểm:2

Open Ubuntu terminal using batch file on windows with command?

lá cờ cn

I automate many processes on windows using batch files and putty.

E.g ( login_server7.bat ):

start C:\Users\Jack\Documents\putty.exe -ssh 1.1.1.1 -l user123 -pw "bleh"

How am I able to start an Ubuntu terminal and run a command automatically after opening a file?

Rather than manually opening the ubuntu terminal and typing my commands in?

Cannot see anything elsewhere on this topic. Regards

Điểm:2
lá cờ cn

Việc thực thi của WSL là C:\Windows\System32\wsl.exe. Bạn chỉ có thể gõ wsl trong Dấu nhắc lệnh của Windows và bạn sẽ đăng nhập vào phiên bản WSL mặc định. Hoặc gõ wsl -h để có được danh sách tất cả các tùy chọn có sẵn. Trong các tệp hàng loạt, bạn có thể sử dụng:

C:\Windows\System32\wsl.exe <tập lệnh hoặc lệnh của bạn>

Hoặc nếu bạn cần chạy lệnh với quyền root:

C:\Windows\System32\wsl.exe sudo <tập lệnh hoặc lệnh của bạn>

Có lẽ cách chính xác hơn là sử dụng wsl -e -- <lệnh>, nhưng ở trên hoạt động tốt cho tôi. Đây là ví dụ chi tiết hơn: Ubuntu 18.04 trên WSL cron daemon không chạy sau khi khởi động lại.

Điểm:2
lá cờ vn

Như ps4080câu trả lời của đề cập, cách đúng đắn để làm điều này là wsl -e -- <lệnh> (hoặc, thông thường wsl -e <lệnh>).

Tuy nhiên, thực tế có khá nhiều sắc thái mà bạn có thể gặp phải với kỹ thuật này và thật tuyệt khi hiểu điều gì đang xảy ra với mỗi câu thần chú chính xác để bạn có thể sử dụng đúng khi cần:

wsl <lệnh>

  • Chạy shell mặc định cho người dùng hiện tại
  • ... dưới dạng trình bao không đăng nhập, không tương tác
  • ... trong thư mục được chuyển vào bởi tiến trình Windows sở hữu
  • chạy <command> trong vỏ đó

Tùy thuộc vào vỏ của bạn, bạn có thể thấy điều này với wsl ps -eH:

  PID TTY THỜI GIAN CMD
    1 ? 00:00:00 bắt đầu
   18? 00:00:00 bắt đầu
   19? 00:00:00 bắt đầu
   20 điểm/0 00:00:00 cá
   28 điểm/0 00:00:00 ps

Lưu ý rằng rất khó để thấy điều này khi đánh đập là vỏ mặc định của bạn kể từ -c kết quả trong một ẩn giám đốc điều hành.

Thực tế là điều này chạy trong thư mục của tiến trình Windows sở hữu có thể hữu ích, vì bạn có thể làm:

wsl ls -lh

... trong PowerShell để nhận kích thước tệp "con người có thể đọc được", thứ gì đó khó làm một cách đáng ngạc nhiên nếu không thì.

Phần khó nhất của việc này là vòng loại thứ hai. WSL chạy trình bao của bạn dưới dạng trình bao không đăng nhập, không tương tác khi bắt đầu theo cách này. Điều này có nghĩa rằng ~/.bashrc~/.bash_profilekhông phải có nguồn gốc khi khởi động. Điều này có thể gây ra sự nhầm lẫn khi cố gắng chạy một lệnh yêu cầu phải thực hiện điều gì đó trong tệp khởi động (ví dụ: đặt biến môi trường).

wsl -e <lệnh>

  • chạy <command> như cái vỏ
  • ... trong thư mục được chuyển vào bởi quá trình sở hữu

Các -e hoàn toàn bỏ qua trình bao mặc định của bạn.

> wsl ps -eH
  PID TTY THỜI GIAN CMD
    1 ? 00:00:00 bắt đầu
    7? 00:00:00 bắt đầu
    số 8 ? 00:00:00 bắt đầu
    9 điểm/0 00:00:00 điểm

Điều này có thể là khinh bỉ hiệu quả hơn vì bạn tránh được chi phí khởi động của trình bao, nhưng điều đó thường không đáng lo ngại.

wsl -e bash -lic <lệnh>

  • chạy đánh đập làm trình bao của bạn (bất kể đó có phải là trình bao mặc định hay không)
  • Buộc nó phải là một trình bao tương tác, đăng nhập (-li) để có thể ~/.bashrc~/.bash_profile (và/hoặc những người khác) có nguồn gốc
  • ... trong thư mục được chuyển vào bởi tiến trình Windows sở hữu
  • chạy <command> trong vỏ đó

Đây là phiên bản để sử dụng nếu lệnh cần bất kỳ thứ gì từ cấu hình khởi động của bạn.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.