Hướng dẫn can i use linux commands in python? - tôi có thể sử dụng các lệnh linux trong python không?

Linux là một trong những hệ điều hành phổ biến nhất được sử dụng bởi các nhà phát triển phần mềm và quản trị viên hệ thống. Nó là nguồn mở, miễn phí, có thể tùy chỉnh, rất mạnh mẽ và thích nghi. Làm cho nó trở thành một lựa chọn lý tưởng cho máy chủ, máy ảo (VM) và nhiều trường hợp sử dụng khác.

Do đó, điều cần thiết là bất kỳ ai làm việc trong ngành công nghệ để biết cách làm việc với Linux vì nó được sử dụng ở hầu hết mọi nơi. Trong hướng dẫn này, chúng ta sẽ xem xét cách chúng ta có thể tự động hóa và chạy các lệnh Linux trong Python.

Mục lục

  • Điều kiện tiên quyết
  • Giới thiệu
  • Xây dựng ứng dụng cho máy chủ Ping
  • Mã số
  • Sự kết luận

Điều kiện tiên quyết

  • Giới thiệu
  • Xây dựng ứng dụng cho máy chủ Ping

Giới thiệu

Xây dựng ứng dụng cho máy chủ Ping

Mã số

import os
cmd = 'ls -l'
os.system(cmd)

Sự kết luận

Hiểu biết cơ bản về Linux và kịch bản shell.

Kỹ năng lập trình cơ bản trong Python.Python có một bộ thư viện phong phú cho phép chúng tôi thực thi các lệnh shell.
Một cách tiếp cận ngây thơ sẽ là sử dụng thư viện os:Hàm os.system() cho phép người dùng thực thi các lệnh trong Python. Chương trình trên liệt kê tất cả các tệp bên trong một thư mục. Tuy nhiên, chúng ta có thể đọc và phân tích đầu ra của lệnh.
Trong một số lệnh, bắt buộc phải đọc đầu ra và phân tích nó. Thư viện subprocess cung cấp cách tiếp cận tốt hơn, an toàn hơn và nhanh hơn cho việc này và cho phép chúng tôi xem và phân tích đầu ra của các lệnh.Hệ điều hành
quá trình phụChức năng hệ điều hành đã được không dùng nữa. Nói cách khác, chức năng này đã được thay thế.

Mô -đun phụ đóng vai trò thay thế cho điều này và Python chính thức khuyến nghị sử dụng quy trình phụ cho các lệnh shell.

OS.System trực tiếp thực thi các lệnh shell và dễ bị tổn thương.

Mô -đun phụ vượt qua các lỗ hổng này và an toàn hơn.

Chức năng hệ điều hành chỉ cần chạy lệnh shell và chỉ trả về mã trạng thái của lệnh đó.

Mã số

Sự kết luận

Hiểu biết cơ bản về Linux và kịch bản shell.

Kỹ năng lập trình cơ bản trong Python.

Hướng dẫn can i use linux commands in python? - tôi có thể sử dụng các lệnh linux trong python không?

Python có một bộ thư viện phong phú cho phép chúng tôi thực thi các lệnh shell.

import subprocess  
  
def ping(servers):
    
    # The command you want to execute   
    cmd = 'ping'
  
    # send one packet of data to the host 
    # this is specified by '-c 1' in the argument list 
    outputlist = []
    # Iterate over all the servers in the list and ping each server
    for server in servers:
        temp = subprocess.Popen([cmd, '-c 1', server], stdout = subprocess.PIPE) 
        # get the output as a string
        output = str(temp.communicate()) 
    # store the output in the list
        outputlist.append(output)
    return outputlist
  
if __name__ == '__main__': 
    
    # Get the list of servers from the text file
    servers = list(open('servers.txt'))
    # Iterate over all the servers that we read from the text file
    # and remove all the extra lines. This is just a preprocessing step
    # to make sure there aren't any unnecessary lines.
    for i in range(len(servers)):
        servers[i] = servers[i].strip('\n')
    outputlist = ping(servers) 
    
    # Uncomment the following lines to print the output of successful servers
    # print(outputlist)

Hướng dẫn can i use linux commands in python? - tôi có thể sử dụng các lệnh linux trong python không?

Một cách tiếp cận ngây thơ sẽ là sử dụng thư viện os:

Hàm os.system() cho phép người dùng thực thi các lệnh trong Python. Chương trình trên liệt kê tất cả các tệp bên trong một thư mục. Tuy nhiên, chúng ta có thể đọc và phân tích đầu ra của lệnh.

Trong một số lệnh, bắt buộc phải đọc đầu ra và phân tích nó. Thư viện subprocess cung cấp cách tiếp cận tốt hơn, an toàn hơn và nhanh hơn cho việc này và cho phép chúng tôi xem và phân tích đầu ra của các lệnh.

  • Hệ điều hành

  • Đối số

    import subprocess  
      
    def ping(servers):
        
        # The command you want to execute   
        cmd = 'ping'
      
        # send one packet of data to the host 
        # this is specified by '-c 1' in the argument list 
        outputlist = []
        # Iterate over all the servers in the list and ping each server
        for server in servers:
            temp = subprocess.Popen([cmd, '-c 1', server], stdout = subprocess.PIPE) 
            # get the output as a string
            output = str(temp.communicate()) 
        # store the output in the list
            outputlist.append(output)
        return outputlist
      
    if __name__ == '__main__': 
        
        # Get the list of servers from the text file
        servers = list(open('servers.txt'))
        # Iterate over all the servers that we read from the text file
        # and remove all the extra lines. This is just a preprocessing step
        # to make sure there aren't any unnecessary lines.
        for i in range(len(servers)):
            servers[i] = servers[i].strip('\n')
        outputlist = ping(servers) 
        
        # Uncomment the following lines to print the output of successful servers
        # print(outputlist)
    
    9 là tùy chọn và có thể được sử dụng để đặt nơi bạn muốn subprocess hiển thị đầu ra. Theo mặc định, đầu ra được gửi đến thiết bị đầu cuối. Tuy nhiên, nếu bạn không muốn đổ đầu ra lớn vào thiết bị đầu cuối, bạn có thể sử dụng os1 để gửi đầu ra của một lệnh sang lệnh tiếp theo. Điều này tương ứng với tùy chọn os2 trong Linux.

  • Đối số os3 cũng là tùy chọn và được sử dụng để đặt nơi bạn muốn các lỗi được hiển thị. Theo mặc định, nó gửi các lỗi đến thiết bị đầu cuối. Vì chúng tôi cần có được một danh sách các máy chủ không thể đạt được, chúng tôi không cần phải thay đổi điều này. Các máy chủ không thể đạt được (lỗi) sẽ được hiển thị cho chúng tôi trên thiết bị đầu cuối.

Đầu ra của lệnh được lưu trữ trong một biến gọi là os4. Hàm os5 cho phép chúng tôi đọc đầu ra và hàm os6 có thể được sử dụng để chuyển đổi nó thành một chuỗi. Khi chúng ta nhận được đầu ra, chúng ta có thể phân tích nó để chỉ trích xuất các chi tiết thiết yếu hoặc chỉ hiển thị nó như hiện tại. Trong ví dụ này, tôi đang lưu trữ đầu ra trong danh sách để sử dụng trong tương lai.

Sự kết luận

Tóm lại, tự động hóa là một trong những chủ đề nóng nhất trong ngành và hầu hết mọi công ty đang đầu tư số tiền khổng lồ để tự động hóa các nhiệm vụ thủ công khác nhau. Trong hướng dẫn này, chúng tôi đã khám phá quá trình tự động chạy và phân tích các lệnh Linux trên nhiều máy chủ bằng Python.

Một cách cũ để làm điều này là bằng cách sử dụng các tập lệnh shell. Tuy nhiên, sử dụng Python cung cấp cho các nhà phát triển nhiều quyền lực hơn và kiểm soát việc thực thi và đầu ra của các lệnh. Bây giờ bạn đã hiểu những điều cơ bản của việc thực thi các lệnh Linux, bạn có thể tiếp tục và thử nghiệm các lệnh khác nhau và xây dựng các ứng dụng phức tạp và mạnh mẽ hơn.


Đóng góp đánh giá ngang hàng của: Saiharsha Balasubramaniam

Tôi có thể chạy lệnh Linux trong Python không?

Có hai cách để chạy các lệnh Linux với Python: sử dụng mô -đun HĐH và sử dụng mô -đun phụ.using the os module and using the subprocess module.

Tôi có thể sử dụng các lệnh shell trong python không?

Có, hàm hệ thống () của mô -đun HĐH là cách đơn giản nhất để thực thi các lệnh shell trong python.Tuy nhiên, nó có hai nhược điểm lớn.Đầu tiên, bạn chỉ có thể nhận mã thoát của lệnh shell và không thể nhận được đầu ra hoặc lỗi tiêu chuẩn từ HĐH.. However, it has two major disadvantages. Firstly, you can only get the exit code of the shell command and cannot get the standard output or error from os.

Chúng ta có thể chạy các lệnh Unix trong Python không?

Bạn không thể sử dụng các lệnh Unix trong tập lệnh Python của mình như thể chúng là mã Python, tên Echo gây ra lỗi cú pháp vì Echo không phải là một câu lệnh hoặc chức năng tích hợp trong Python.Thay vào đó, sử dụng tên in.Để chạy các lệnh Unix, bạn sẽ cần tạo một quy trình con chạy lệnh. as if they were Python code, echo name is causing a syntax error because echo is not a built-in statement or function in Python. Instead, use print name . To run UNIX commands you will need to create a subprocess that runs the command.

Bạn có thể chạy lệnh bash trong Python không?

Thực hiện một tập lệnh bash hiện có bằng mô -đun phụ Python.Chúng tôi cũng có thể thực hiện một tập lệnh Bash hiện có bằng mô -đun phụ Python.. We can also execute an existing a bash script using Python subprocess module.