Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wordpress-seo domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/vinascript/html/wp-includes/functions.php on line 6114
Thực thi Command Line trên Linux sử dụng Python - VinaScript

Latest Post

Triển khai dự án PHP, Mysql với Nginx trên Docker Tìm hiểu về HTML – Ưu điểm, nhược điểm và cách hoạt động của HTML

Để thực hiện các lệnh dòng lệnh trên hệ điều hành Linux, chúng ta có thể tiến hành theo các phương pháp sau:

1. Sử dụng module os

Module os là một thư viện có sẵn trong Python, cho phép chúng ta truy cập và sử dụng mà không cần phải cài đặt thêm. Hãy xem xét ví dụ dưới đây:

import os
os.system('ls -l /usr')

Đoạn code sẽ gọi command: “ls -l /usr ” sẽ liệt kê danh sách file và thư mục tại thư mục “/usr” của hệ điều hành

Trường hợp chúng ta muốn chạy lệnh trên Linux và lưu nó vào 1 biến trong Python.

Chúng ta dùng hàm os.popen(), khác với hàm os.system(). Nó sẽ ngăn không output ra stdout mà lưu nó vào 1 biến trong Python.

import os
stream = os.popen('cat /etc/services')
output = stream.read()
print(output)

2. Sử dụng module subprocess

Module subprocess cũng là module tích hợp sẵn trong Python, nó được sử dụng phổ biến hơn và mềm dẻo hơn với nhiều đối số đầu vào.

import subprocess

process = subprocess.Popen('ls -l /usr',
                           stdout=subprocess.PIPE,
                           stderr=subprocess.PIPE,
                           shell=True
                           )
stdout, stderr = process.communicate()
print(stdout.decode('utf-8'))
  • stdout sẽ lưu kết quả của command
  • stderr sẽ lưu lỗi của command trong trường hợp phát sinh lỗi

Trường hợp chúng ta muốn đọc từng line trong kết quả output

import subprocess

process = subprocess.Popen('ls -l /usr',
                           stdout=subprocess.PIPE,
                           stderr=subprocess.PIPE,
                           shell=True
                           )
while process.poll() is None:
    line = process.stdout.readline()
    print('<', line.strip().decode('utf-8'), '>')

3. Sử dụng module paramiko

Module paramiko thực sự là một công cụ mạnh mẽ để thực hiện các lệnh trên hệ điều hành Linux. Không chỉ có khả năng chạy các lệnh trên máy tính cục bộ, module này còn cho phép bạn thực thi các lệnh trên máy chủ từ xa thông qua kết nối SSH.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *