Thoát y trong python là gì?

Tìm hiểu cách sử dụng các hàm, lớp, vòng lặp, v.v. trong tập lệnh Python của bạn để đơn giản hóa các tác vụ quản trị hệ thống phổ biến

Đã đăng. Ngày 30 tháng 3 năm 2022 . %t phút đọc . của Peter Gervase [Sudoer], Bart Zhang [Red Hat]

Hình ảnh

Trò chuyện WOCinTech, CC BY 2. 0

Python là một trong những ngôn ngữ phát triển phổ biến nhất; . Python có nhiều trường hợp sử dụng và hướng dẫn này khám phá cách sử dụng nó để tạo tập lệnh cho các tác vụ quản trị hệ thống phổ biến

Hình ảnh

Tải ngay

Đây là môi trường được sử dụng trong hướng dẫn này. Hệ điều hành là Red Hat Enterprise Linux 8, 4. 18. 0-348. 12. 2. el8_5. x86_64 và phiên bản Python là python36-3. 6. 8-38. mô-đun + el8. 5. 0+12207+5c5719bc. x86_64. Hệ thống của bạn không cần phải khớp với điều này một cách hoàn hảo; . Để tải xuống Python, bạn có thể sử dụng kho lưu trữ của hệ điều hành hoặc tải phiên bản mới nhất từ ​​Python. tổ chức

Những thứ cơ bản

Để bắt đầu với những điều cơ bản, đây là tập lệnh Hello World bằng Python

$ cat hello.py3
#!/usr/bin/python3
print["hello world!"]
$ python3 hello.py3
hello world!
$ echo $?
0

Dòng đầu tiên trong

$ echo $?
0
0 có shebang [
$ echo $?
0
1] và sau đó là đường dẫn đến tệp Python thực thi

Kiểm tra trình thông dịch Python qua công cụ giao diện dòng lệnh [CLI] của

$ echo $?
0
2. Điều này cho thấy trình thông dịch dựa trên phiên bản 3. 6

$ rpm -qf /usr/bin/python3
python36-3.6.8-38.module+el8.5.0+12207+5c5719bc.x86_64
$ ll /usr/bin/python3
lrwxrwxrwx. 1 root root 25 Feb  3  2020 /usr/bin/python3 -> /etc/alternatives/python3

Dòng thứ hai của tập lệnh Hello World gọi hàm

$ echo $?
0
3 với đối số là
$ echo $?
0
4 Print là hàm Python tích hợp cho phép người dùng in thông báo tới dòng lệnh. Điều này đặc biệt hữu ích cho việc gỡ lỗi nhanh chóng. Hàm là một đoạn mã mà bạn có thể sử dụng mà không cần nhập lại trực tiếp vào chương trình của mình mỗi khi bạn muốn sử dụng nó. Chúng tôi sẽ sớm đi sâu vào việc xây dựng các chức năng tùy chỉnh

Sau khi chạy tập lệnh Hello World, hãy xác minh lối thoát sạch bằng cách lặp lại mã trả về của lệnh trước đó

$ echo $?
0

Nếu có vấn đề với tập lệnh, mã trả về sẽ khác 0. Bạn sẽ học cách sử dụng các mã trả về đó trong tập lệnh ở phần sau của bài viết này

[ Nhận thêm thông tin chi tiết về tự động hóa bằng cách tải xuống Sách điện tử Red Hat Ansible Automation Platform 2. ]

Chức năng

Đối với tập lệnh nâng cao hơn một chút, hãy tạo một hàm có tên là

$ echo $?
0
5 và chuyển ba đối số cho nó. Các hàm hữu ích khi bạn sẽ sử dụng và sử dụng lại cùng một mã. Thay vì viết lại tất cả đoạn mã đó mỗi lần, bạn có thể đặt nó vào một hàm và sau đó bạn có thể gọi hàm đó bất cứ khi nào bạn cần

$ cat func.py3
#!/usr/bin/python3

def greeting[fname,lname,state]:
	print["Hello, %s %s! How is the weather in %s?" % [fname, lname, state]]

first_name = "Peter"
last_name = "Gervase"
mystate = "North Carolina"

greeting[first_name, last_name, mystate]
$ python3 func.py3
Hello, Peter Gervase! How is the weather in North Carolina?

Hai khía cạnh cần lưu ý là thứ tự bạn truyền các biến phải khớp với những gì hàm mong đợi và đồng thời, số lượng biến được truyền vào phải khớp với những gì hàm mong đợi

Vì vậy, sử dụng

$ echo $?
0
0

sẽ làm cho đầu ra

$ echo $?
0
1

Ngoài ra, vì hàm này cần ba biến, nên bạn cần nhập chính xác ba biến. Nếu bạn có ít hơn hoặc nhiều hơn ba biến thì tập lệnh sẽ không thành công

$ echo $?
0
2

Đối số dòng lệnh

Bạn có thể sử dụng các đối số được truyền từ dòng lệnh cho tập lệnh. Đối với ví dụ này, hãy bắt đầu bằng cách nhập mô-đun

$ echo $?
0
6 để có quyền truy cập vào nội dung của nó

$ echo $?
0
4

Như với các ví dụ về hàm, bạn phải chuyển số lượng đối số mà tập lệnh của bạn mong đợi. Nếu bạn nhập quá ít, thì tập lệnh sẽ bị lỗi vì không có

$ echo $?
0
7

$ echo $?
0
6

Nếu bạn chuyển quá nhiều, điều đó không sao cả vì tất cả những gì kịch bản quan tâm là

$ echo $?
0
7

$ echo $?
0
8

[ Tìm hiểu thêm về 30 viên ngọc ẩn trong Python 3. ]

Truy cập tệp

Python cho phép truy cập vào các tập tin. Để bắt đầu, bạn có thể đọc một tệp hiện có

$ rpm -qf /usr/bin/python3
python36-3.6.8-38.module+el8.5.0+12207+5c5719bc.x86_64
$ ll /usr/bin/python3
lrwxrwxrwx. 1 root root 25 Feb  3  2020 /usr/bin/python3 -> /etc/alternatives/python3
0

Các lớp học

Các lớp cung cấp cho bạn khả năng gán nhiều thuộc tính cho một đối tượng. Ví dụ, hãy nghĩ về cách bạn sử dụng các biến để lưu trữ thông tin cho một bộ sách. Bạn sẽ lưu trữ dữ liệu ở định dạng sau.

$ echo $?
0
9,
$ cat func.py3
#!/usr/bin/python3

def greeting[fname,lname,state]:
	print["Hello, %s %s! How is the weather in %s?" % [fname, lname, state]]

first_name = "Peter"
last_name = "Gervase"
mystate = "North Carolina"

greeting[first_name, last_name, mystate]
$ python3 func.py3
Hello, Peter Gervase! How is the weather in North Carolina?
0,
$ cat func.py3
#!/usr/bin/python3

def greeting[fname,lname,state]:
	print["Hello, %s %s! How is the weather in %s?" % [fname, lname, state]]

first_name = "Peter"
last_name = "Gervase"
mystate = "North Carolina"

greeting[first_name, last_name, mystate]
$ python3 func.py3
Hello, Peter Gervase! How is the weather in North Carolina?
1, v.v.?

Sử dụng các lớp để theo dõi thông tin đó sẽ tốt hơn nhiều. Bạn có thể mô tả một cuốn sách theo nhiều cách, bao gồm tiêu đề, tác giả, độ dài và tóm tắt nội dung của cuốn sách. Các lớp cho phép bạn xây dựng các khung xung quanh các đối tượng mà bạn xác định, như minh họa ở đây trong ví dụ về một lớp có tên 

$ cat func.py3
#!/usr/bin/python3

def greeting[fname,lname,state]:
	print["Hello, %s %s! How is the weather in %s?" % [fname, lname, state]]

first_name = "Peter"
last_name = "Gervase"
mystate = "North Carolina"

greeting[first_name, last_name, mystate]
$ python3 func.py3
Hello, Peter Gervase! How is the weather in North Carolina?
2

$ rpm -qf /usr/bin/python3
python36-3.6.8-38.module+el8.5.0+12207+5c5719bc.x86_64
$ ll /usr/bin/python3
lrwxrwxrwx. 1 root root 25 Feb  3  2020 /usr/bin/python3 -> /etc/alternatives/python3
1

Khi mã chạy, bạn nhận được đầu ra sau

$ rpm -qf /usr/bin/python3
python36-3.6.8-38.module+el8.5.0+12207+5c5719bc.x86_64
$ ll /usr/bin/python3
lrwxrwxrwx. 1 root root 25 Feb  3  2020 /usr/bin/python3 -> /etc/alternatives/python3
2

Thêm tài nguyên Linux

  • Bảng cheat lệnh Linux nâng cao
  • Tải xuống RHEL 9 miễn phí thông qua chương trình Red Hat Developer
  • Hướng dẫn cài đặt ứng dụng trên Linux
  • Đánh giá kỹ năng quản trị hệ thống Linux

Bằng cách tạo một lớp có tên là

$ cat func.py3
#!/usr/bin/python3

def greeting[fname,lname,state]:
	print["Hello, %s %s! How is the weather in %s?" % [fname, lname, state]]

first_name = "Peter"
last_name = "Gervase"
mystate = "North Carolina"

greeting[first_name, last_name, mystate]
$ python3 func.py3
Hello, Peter Gervase! How is the weather in North Carolina?
2, bạn có thể nhóm mọi thứ cho book1, book2 và book3. Có một vài mục để chỉ ra từ ví dụ này. Trước tiên, hãy lưu ý rằng book2 chưa bao giờ được chỉ định một loại sách cụ thể, vì vậy, nó đã sử dụng giá trị
$ cat func.py3
#!/usr/bin/python3

def greeting[fname,lname,state]:
	print["Hello, %s %s! How is the weather in %s?" % [fname, lname, state]]

first_name = "Peter"
last_name = "Gervase"
mystate = "North Carolina"

greeting[first_name, last_name, mystate]
$ python3 func.py3
Hello, Peter Gervase! How is the weather in North Carolina?
2 từ thông tin lớp mặc định làm mô tả. Thứ hai, lưu ý rằng điều này sử dụng ____95 cho số trang. Nếu bạn chỉ sử dụng 
$ cat func.py3
#!/usr/bin/python3

def greeting[fname,lname,state]:
	print["Hello, %s %s! How is the weather in %s?" % [fname, lname, state]]

first_name = "Peter"
last_name = "Gervase"
mystate = "North Carolina"

greeting[first_name, last_name, mystate]
$ python3 func.py3
Hello, Peter Gervase! How is the weather in North Carolina?
6 cho số thì đầu ra sẽ có sáu số 0 sau dấu thập phân. Ví dụ, cuốn sách đầu tiên sẽ có 270. 000000 trang

phân lớp

Bạn có thể mở rộng các lớp bằng cách sử dụng phương thức lớp con của Python. Bằng cách bao gồm đối tượng mà lớp mới của bạn kế thừa trong định nghĩa lớp của bạn, bạn có thể chuyển các thuộc tính hiện có cũng như xác định các thuộc tính mới dành riêng cho các lớp mở rộng. Bạn có thể mở rộng lớp

$ cat func.py3
#!/usr/bin/python3

def greeting[fname,lname,state]:
	print["Hello, %s %s! How is the weather in %s?" % [fname, lname, state]]

first_name = "Peter"
last_name = "Gervase"
mystate = "North Carolina"

greeting[first_name, last_name, mystate]
$ python3 func.py3
Hello, Peter Gervase! How is the weather in North Carolina?
2 thành nhiều lớp con. Ví dụ, định nghĩa một lớp mới có tên là
$ cat func.py3
#!/usr/bin/python3

def greeting[fname,lname,state]:
	print["Hello, %s %s! How is the weather in %s?" % [fname, lname, state]]

first_name = "Peter"
last_name = "Gervase"
mystate = "North Carolina"

greeting[first_name, last_name, mystate]
$ python3 func.py3
Hello, Peter Gervase! How is the weather in North Carolina?
8

$ rpm -qf /usr/bin/python3
python36-3.6.8-38.module+el8.5.0+12207+5c5719bc.x86_64
$ ll /usr/bin/python3
lrwxrwxrwx. 1 root root 25 Feb  3  2020 /usr/bin/python3 -> /etc/alternatives/python3
3

vòng lặp

Python hỗ trợ sử dụng

$ cat func.py3
#!/usr/bin/python3

def greeting[fname,lname,state]:
	print["Hello, %s %s! How is the weather in %s?" % [fname, lname, state]]

first_name = "Peter"
last_name = "Gervase"
mystate = "North Carolina"

greeting[first_name, last_name, mystate]
$ python3 func.py3
Hello, Peter Gervase! How is the weather in North Carolina?
9,
$ echo $?
0
00 và các cách khác để quản lý điều khiển luồng. Bạn có thể tìm hiểu thêm trong tài liệu Python. Vòng lặp cho phép bạn lặp lại các bước dựa trên một số lần cố định, cho đến khi một điều kiện được đáp ứng hoặc cho đến khi một điều kiện không còn được đáp ứng. Đây là một ví dụ về việc sử dụng
$ cat func.py3
#!/usr/bin/python3

def greeting[fname,lname,state]:
	print["Hello, %s %s! How is the weather in %s?" % [fname, lname, state]]

first_name = "Peter"
last_name = "Gervase"
mystate = "North Carolina"

greeting[first_name, last_name, mystate]
$ python3 func.py3
Hello, Peter Gervase! How is the weather in North Carolina?
9

$ rpm -qf /usr/bin/python3
python36-3.6.8-38.module+el8.5.0+12207+5c5719bc.x86_64
$ ll /usr/bin/python3
lrwxrwxrwx. 1 root root 25 Feb  3  2020 /usr/bin/python3 -> /etc/alternatives/python3
4

Mảng

Bạn sẽ làm gì nếu bạn có một tập hợp các giá trị liên quan đến nhau? . Ví dụ: nếu bạn có một danh sách những chiếc ô tô mà bạn sở hữu, bạn có thể lưu trữ chúng dưới dạng một mảng

$ rpm -qf /usr/bin/python3
python36-3.6.8-38.module+el8.5.0+12207+5c5719bc.x86_64
$ ll /usr/bin/python3
lrwxrwxrwx. 1 root root 25 Feb  3  2020 /usr/bin/python3 -> /etc/alternatives/python3
5

Hoặc, nếu bạn đang theo dõi điểm kiểm tra của mình ở trường, bạn có thể có

$ rpm -qf /usr/bin/python3
python36-3.6.8-38.module+el8.5.0+12207+5c5719bc.x86_64
$ ll /usr/bin/python3
lrwxrwxrwx. 1 root root 25 Feb  3  2020 /usr/bin/python3 -> /etc/alternatives/python3
6

Để thêm vào mảng, sử dụng

$ rpm -qf /usr/bin/python3
python36-3.6.8-38.module+el8.5.0+12207+5c5719bc.x86_64
$ ll /usr/bin/python3
lrwxrwxrwx. 1 root root 25 Feb  3  2020 /usr/bin/python3 -> /etc/alternatives/python3
7

Một chương trình ví dụ có thể là

$ rpm -qf /usr/bin/python3
python36-3.6.8-38.module+el8.5.0+12207+5c5719bc.x86_64
$ ll /usr/bin/python3
lrwxrwxrwx. 1 root root 25 Feb  3  2020 /usr/bin/python3 -> /etc/alternatives/python3
8

Đối với một ví dụ phức tạp hơn, hãy ghép một số phần trên lại với nhau. Tập lệnh này đọc các tên miền từ một tệp đầu vào và sau đó gọi một hàm để kiểm tra xem các miền đó có thể ping được không. Điều này sử dụng chức năng đọc từ tệp, sử dụng lệnh hệ thống và phản ứng với mã trả về của chức năng. Đây là kịch bản

$ rpm -qf /usr/bin/python3
python36-3.6.8-38.module+el8.5.0+12207+5c5719bc.x86_64
$ ll /usr/bin/python3
lrwxrwxrwx. 1 root root 25 Feb  3  2020 /usr/bin/python3 -> /etc/alternatives/python3
9

Tìm hiểu thêm

Tìm hiểu thêm về dịch vụ đám mây

  • Đám mây lai là gì?
  • sách điện tử. Hiện đại hóa CNTT của bạn với các dịch vụ đám mây được quản lý
  • Dùng thử 60 ngày. Red Hat OpenShift chuyên dụng
  • sách điện tử. Chiến lược đám mây lai cho người mới bắt đầu

Để tiếp tục tìm hiểu thêm về Python [hoặc bất kỳ ngôn ngữ lập trình nào], hãy tạo một dự án thú vị để sử dụng nó. Đây là hai gợi ý

  • Có thể bạn là huấn luyện viên của một đội bóng đá trẻ địa phương và bạn cần gửi lời nhắc mỗi tuần về trận đấu sắp tới. Bạn có thể đặt ngày, sân, giờ và đối thủ vào tệp CSV, sau đó sử dụng Python để phân tích cú pháp tệp CSV, tìm mục nhập khớp với ngày chính xác và gửi email cho đồng đội của bạn với thông tin thích hợp
  • Có thể mỗi sáng, bạn phải kết nối với VPN công việc của mình. Bạn có thể viết một tập lệnh Python để xác minh trước rằng bạn có kết nối mạng, dừng mọi kết nối VPN cũ, bắt đầu một VPN mới, nhận vé Kerberos mới, sau đó kết nối với máy chủ IRC

Bạn thậm chí có thể muốn tạo một trò chơi điện tử bằng Python. Bất kể dự án học tập nào bạn quyết định thực hiện, bạn sẽ có nhiều khả năng hoàn thành nó bằng cách làm cho nó có ý nghĩa và thú vị

Xem các bài viết liên quan này trên Enable Sysadmin

Hình ảnh

3 khung giao diện người dùng để viết các ứng dụng thân thiện với người dùng bằng Python

Tìm hiểu cách chọn thư viện giao diện người dùng đồ họa phù hợp để viết các ứng dụng thân thiện với người dùng

Đã đăng. Ngày 3 tháng 12 năm 2021

Tác giả. Jose Vicente Nunez [Sudoer]

Hình ảnh

Cách tìm lỗ hổng của bên thứ ba trong mã Python của bạn

Tìm hiểu cách sử dụng công cụ pip-audit để tìm tư vấn CVE được ban hành cho các mô-đun Python mà bạn đang sử dụng trong dự án của mình

Đã đăng. Ngày 16 tháng 2 năm 2022

Tác giả. Jose Vicente Nunez [Sudoer]

Hình ảnh

3 khung giao diện người dùng để viết các ứng dụng thân thiện với người dùng bằng Python

Tìm hiểu cách chọn thư viện giao diện người dùng đồ họa phù hợp để viết các ứng dụng thân thiện với người dùng

Đã đăng. Ngày 3 tháng 12 năm 2021

Tác giả. Jose Vicente Nunez [Sudoer]

Hình ảnh

Cách thiết lập và sử dụng môi trường ảo Python cho Ansible

Mô-đun venv của Python cho phép bạn tự do thử nghiệm các tính năng Ansible mới trước khi triển khai chúng vào sản xuất và không làm ảnh hưởng đến quá trình cài đặt hệ thống của bạn

Đã đăng. Ngày 18 tháng 8 năm 2021

Tác giả. Gineesh Madapparambath [Sudoer, Mũ đỏ]

Hình ảnh

Viết và kiểm tra đơn vị một ứng dụng Python để truy vấn cơ sở dữ liệu RPM

Viết chương trình Python in danh sách phần mềm được cài đặt trên hệ thống của bạn, sau đó kiểm tra xem ứng dụng có hoạt động chính xác không

Đã đăng. Ngày 1 tháng 12 năm 2021

Tác giả. Jose Vicente Nunez [Sudoer]

chủ đề. Lập trình   Python

Peter Gervase

Tôi là Kiến trúc sư bảo mật chính cấp cao tại Verizon. Trước đó, tôi đã làm việc tại Red Hat với nhiều vai trò khác nhau như tư vấn và Kiến trúc sư giải pháp, nơi tôi chuyên về Quản lý thông minh, Ansible và OpenShift. Thêm về tôi

Bart Zhang

Bart là một chuyên gia công nghệ và là một Red Hatter thích đi sâu vào DevOps, container và mọi thứ về Linux. Bart hiện đang hỗ trợ các đối tác Hệ sinh thái của Red Hat nhưng đã làm việc với các khách hàng doanh nghiệp thuộc mọi hình dạng và quy mô về chuyển đổi kỹ thuật số trong suốt sự nghiệp của mình. Thêm về tôi

Hội nghị thượng đỉnh mũ đỏ 2022. theo yêu cầu

Nhận thông tin mới nhất về Ansible, Red Hat Enterprise Linux, OpenShift, v.v. từ sự kiện ảo theo yêu cầu của chúng tôi

Đăng kí miễn phí

Nội dung liên quan

Hình ảnh

Tìm hiểu cách Unix ảnh hưởng đến Linux, hiểu các danh sách và từ điển Ansible và các mẹo khác dành cho quản trị viên hệ thống

Xem 10 bài viết hàng đầu của Enable Sysadmin từ tháng 11 năm 2022

Đã đăng. Ngày 5 tháng 12 năm 2022

Tác giả. Vicki Walker [Nhóm biên tập, Mũ đỏ]

Hình ảnh

2 cách thiết thực để sử dụng mô-đun quy trình con Python

Tìm hiểu cách chạy các lệnh và tập lệnh Bash trong tập lệnh Python của bạn bằng mô-đun quy trình con

Đã đăng. Ngày 23 tháng 11 năm 2022

Tác giả. Nicole Lama [Sudoer, Mũ đỏ]

Hình ảnh

Cách làm máy cho chó ăn tự động với Arduino và Linux

Hãy thử dự án DIY này để học [hoặc dạy gia đình bạn] cách viết mã giao diện với phần cứng thực

Ví dụ tập lệnh Python là gì?

Tập lệnh sau hiển thị việc sử dụng các đối số dòng lệnh trong python . Nhiều mô-đun tồn tại trong python để phân tích các đối số dòng lệnh Mô-đun 'sys' được nhập vào đây để phân tích các đối số dòng lệnh. len[] được sử dụng để đếm tổng số đối số, bao gồm cả tên tệp script.

Tại sao Python được gọi là script?

Ngôn ngữ kịch bản là ngôn ngữ được thông dịch. Python là một ngôn ngữ thông dịch. Python sử dụng trình thông dịch để dịch và chạy mã của nó . Do đó Python là một ngôn ngữ kịch bản.

Kịch bản trong lập trình là gì?

Tập lệnh là gì? . Một số ngôn ngữ đã được hình thành rõ ràng là ngôn ngữ kịch bản. a program or sequence of instructions that is interpreted or carried out by another program rather than by the computer processor [as a compiled program is]. Some languages have been conceived expressly as script languages.

Tên tập lệnh trong Python là gì?

argv[0] là tên tập lệnh [nó phụ thuộc vào hệ điều hành cho dù đây có phải là tên đường dẫn đầy đủ hay không]. Nếu lệnh được thực thi bằng tùy chọn dòng lệnh -c cho trình thông dịch, thì argv[0] được đặt thành chuỗi '-c'. Nếu không có tên tập lệnh nào được chuyển đến trình thông dịch Python, thì argv[0] là chuỗi rỗng.

Chủ Đề