Tiếng AnhTiếng PhápTiếng Tây Ban Nha

Ad


Biểu tượng yêu thích OnWorks

FvwmPerl - Trực tuyến trên đám mây

Chạy FvwmPerl trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks trên Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình giả lập trực tuyến MAC OS

Đây là lệnh FvwmPerl có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

CHƯƠNG TRÌNH:

TÊN


FvwmPerl - trình điều khiển và tiền xử lý fvwm perl

SYNOPSIS


FvwmPerl nên được sinh ra bởi fvwm(1) cho chức năng bình thường.

Để chạy mô-đun này, hãy đặt lệnh này ở đâu đó trong cấu hình:

Mô-đun FvwmPerl [params]

hoặc:

Đồng bộ hóa mô-đun FvwmPerl [thông số]

nếu bạn muốn ngay lập tức bắt đầu gửi lệnh tới FvwmPerl.

MÔ TẢ


Mô-đun này nhằm mở rộng các lệnh fvwm với sức mạnh của tập lệnh perl. Nó cho phép
để nhúng các biểu thức perl vào các tệp cấu hình fvwm và xây dựng các lệnh fvwm.

MỜI


Nếu bạn muốn gọi phiên bản duy nhất và liên tục của FvwmPerl, bạn nên
làm điều này từ chức năng bắt đầu. Gọi nó từ đầu cũng có thể, nhưng liên quan đến
một số vấn đề không được thảo luận ở đây.

Mô-đun AddToFunc StartFunction I FvwmPerl

Có một số công tắc dòng lệnh:

FvwmPerl [ - lễ hội hàng ] [ --trọng tải tập tin ] [ - quy trình [ --trích dẫn char] [ --winid góa] [
--cmd ] [ --không gửi ] [ --noremove ] [dòng | tập tin ] ] [ --xuất khẩu [tên]] [ --ở lại ] [
--không khóa ] [bí danh]

Công tắc dài có thể được viết tắt thành công tắc ngắn một chữ cái.

-e|- lễ hội dòng - đánh giá mã perl đã cho

-l|--trọng tải tệp - đánh giá mã perl trong tệp đã cho

-p|- quy trình [tệp] - xử lý trước tệp cấu hình fvwm đã cho

5 tùy chọn sau chỉ hợp lệ cùng với - quy trình tùy chọn.

-c|--cmd dòng - lệnh fvwm được xử lý trước thay vì tệp

-q|--trích dẫn char - thay đổi báo giá '%' mặc định

-w|--winid wid - đặt ngữ cảnh cửa sổ rõ ràng (phải bắt đầu bằng chữ số, có thể bằng số tám hoặc
dạng hex; id cửa sổ này ghi đè ngữ cảnh cửa sổ ngầm định nếu có)

--không gửi - không gửi tệp đã xử lý trước tới fvwm cho Đọcing, mặc định là gửi.
Hữu ích cho việc xử lý trước các tệp cấu hình không phải fvwm.

--noremove - không xóa tệp được xử lý trước sau khi gửi đến fvwm cho Đọcing,
mặc định là loại bỏ. Hữu ích cho việc gỡ lỗi.

-x|--xuất khẩu [tên] - xác định các chức năng phím tắt fvwm (theo mặc định, hai chức năng được đặt tên
"Eval" và "."). Tùy chọn này ngụ ý --ở lại.

-s|--ở lại - tiếp tục một cuộc hành quyết sau khi - lễ hội, --trọng tải or - quy trình được xử lý. Qua
mặc định, mô-đun không liên tục trong trường hợp này, tức là --ngay được giả định.

--không khóa - khi một trong 3 tùy chọn hành động được đưa ra, tùy chọn này gây ra mở khóa fvwm
ngay lập tức. Theo mặc định, hành động được yêu cầu được thực thi đồng bộ; điều này chỉ làm cho
sự khác biệt khi được gọi như:

Mô-đun FvwmPerl đồng bộ --preprocess someconfig.ppp

If --không khóa được thêm vào đây, Mô-đun đồng bộ trả lại ngay lập tức. Lưu ý rằng Mô-đun Trả về
ngay lập tức bất kể tùy chọn này.

SỬ DỤNG ALIAS


Bí danh cho phép có một số lệnh gọi mô-đun và hoạt động riêng biệt với tất cả các lệnh gọi,
đây là một ví dụ:

Mô-đunSynchronous FvwmPerl FvwmPerl-JustTest
SendToModule FvwmPerl-JustTest eval $ a = 2 + 2; $ b = $ a
SendToModule FvwmPerl-JustTest eval cmd ("Echo 2 + 2 = $ b")
KillModule FvwmPerl FvwmPerl-JustTest

SƠ CHẾ THÍ DỤ


Một trong những giải pháp xử lý hiệu quả là chuyển toàn bộ cấu hình fvwm với
đã nhúng mã perl vào "FvwmPerl --preprocess". Một cách tiếp cận khác là viết perl
tập lệnh tạo ra các lệnh fvwm và gửi chúng để thực thi, tập lệnh này có thể được tải
bằng cách sử dụng "FvwmPerl --load". Có các giải pháp trung gian hovewer chỉ xử lý trước
các dòng cấu hình riêng biệt (hoặc cách khác, thực hiện các lệnh perl riêng biệt
sản xuất các lệnh fvwm).

Đoạn mã sau đây bổ sung khả năng số học và tập lệnh chuỗi vào một số
dòng cần này. Để sử dụng điều này, bạn muốn bắt đầu FvwmPerl làm lệnh đầu tiên của mình
rằng các lệnh khác có thể được yêu cầu đánh giá trước.

Mô-đun Đồng bộ hóa FvwmPerl

AddToFunc.
+ Tiền xử lý I SendToModule FvwmPerl -c - $ *

. Thực hiện thực thi xterm -name xterm -% {++ $ i}% # sử dụng tên duy nhất

. GotoDesk 0% {$ [table.n] + 1}% # chuyển đến bàn tiếp theo

. Thực hiện thực thi% {-x "/ usr / bin / X11 / aterm"? "aterm": "xterm"}% -sb

# căn giữa cửa sổ
Tiếp theo (MyWindow). Di chuyển \
% {($ WIDTH - $ [w.width]) / 2}% p% {($ HEIGHT - $ [w.height]) / 2}% p

. Thực thi thực thi xmessage% {2 + 2}% # máy tính đơn giản

. % {main :: show_message (2 + 2, "Chưa có một Máy tính nào khác"); ""}%

HÀNH ĐỘNG


Có một số hành động mà FvwmPerl có thể thực hiện:

đánh giá mã perl
Đánh giá một dòng mã perl.

Một chức năng đặc biệt cmd ("chỉ huy") có thể được sử dụng trong mã perl để gửi các lệnh trở lại
fvwm.

Nếu mã perl có lỗi, nó sẽ được in ra dòng lỗi tiêu chuẩn với
[FvwmPerl] [eval]: tiêu đề thêm vào trước.

tải tên tập tin
Tải một tệp mã perl. Nếu tệp không đủ điều kiện, nó sẽ được tìm kiếm trong
thư mục người dùng $ FVWM_USERDIR (thường là ~ / .fvwm) và thư mục dữ liệu toàn hệ thống
$ FVWM_DATADIR.

Một chức năng đặc biệt cmd ("chỉ huy") có thể được sử dụng trong mã perl để gửi các lệnh trở lại
fvwm.

Nếu mã perl có lỗi, nó sẽ được in ra dòng lỗi tiêu chuẩn với
[FvwmPerl] [tải]: tiêu đề thêm vào trước.

tiền xử lý [-q | - trích dẫn char] [-c | --cmd] [hàng | hồ sơ]
Tiền xử lý cấu hình fvwm hồ sơ hoặc (nếu --cmd được đưa ra) hàng. Tệp này chứa các dòng
không được chạm vào (thường là các lệnh fvwm) và mã perl được định dạng sẵn đặc biệt là
được xử lý và thay thế. Văn bản kèm theo %{ hữu ích. Cảm ơn ! }% dấu phân cách, có thể bắt đầu ở bất kỳ đâu
trên dòng và kết thúc ở bất kỳ đâu trên cùng một dòng hoặc dòng khác, là mã perl.

Sản phẩm trích dẫn tham số thay đổi dấu phân cách mã perl. Nếu một ký tự được đưa ra, như
'@', các dấu phân cách là @{ hữu ích. Cảm ơn ! }@. Nếu câu trích dẫn đã cho là 2 ký tự, như <>, những lời trích dẫn
đang <{ hữu ích. Cảm ơn ! }>

Mã perl được thay thế cho kết quả đánh giá của nó. Tức là% {$ a = "c"; ++ $ a}%
được thay thế bằng "d".

Đánh giá không giống như đánh giátải được thực hiện trong gói PreprocessNamespace
và không có sử dụng khắt khe, vì vậy bạn có thể thoải mái sử dụng bất kỳ tên biến nào mà không sợ
những xung đột. Chỉ cần không sử dụng các biến chưa được khởi tạo để có nghĩa là không xác định hoặc danh sách trống (chúng
trên thực tế có thể được khởi tạo bởi hành động tiền xử lý trước đó) và thực hiện xóa nếu
cần thiết. Các biến và hàm trong chính gói vẫn có sẵn, như
::cmd () hoặc ::nhảy(), nhưng truy cập chúng không phải là một ý kiến ​​hay khi
sơ chế.

Có một chức năng đặc biệt bao gồm(hồ sơ) tải một tệp, xử lý trước nó và
trả về kết quả được xử lý trước. Tránh đệ quy.

Nếu bất kỳ mã perl nhúng nào có lỗi, nó sẽ được in thành lỗi tiêu chuẩn
phát trực tiếp và bổ sung trước với [FvwmPerl] [tiền xử lý]: đầu trang. Kết quả của
thay thế trống trong trường hợp này.

Các biến sau đây có thể được sử dụng trong mã perl:

$ USER, $ DISPLAY, $ WIDTH, $ HEIGHT, $ FVWM_VERSION, $ FVWM_MODULEDIR, $ FVWM_DATADIR,
$ FVWM_USERDIR

Các chỉ thị dựa trên dòng sau được nhận dạng khi xử lý trước. họ đang
được xử lý sau khi mã perl (nếu có) được thay thế.

%Lặp lại tính
Làm cho các dòng sau được lặp lại tính lần.

%Cấu hình mô-đun tên-mô-đun [ hủy hoại ]
Khiến các dòng sau được hiểu là cấu hình mô-đun đã cho. Nếu như
"tiêu diệt" được chỉ định cấu hình mô-đun trước đó bị phá hủy đầu tiên.

%Tiếp đầu ngữ tiếp đầu ngữ
Đặt tiền tố các dòng sau bằng phần trích dẫn tiếp đầu ngữ.

%Kết thúc bất kỳ-tùy-chọn-bình luận
Kết thúc bất kỳ lệnh nào được mô tả ở trên, có thể được lồng vào nhau.

Ví dụ:

% Tiền tố "AddToFunc SwitchToWindow I"
Tắt biểu tượng
WindowShade tắt
Nâng cao
WarpToWindow 50 50
%Kết thúc

% ModuleConfig FvwmPager hủy
Bộ màu 0
Phông chữ lucidasans-10
BànTopScale 28
Biểu tượng nhỏ
% Kết thúc Mô-đunConfig FvwmPager

% Tiền tố "Tất cả (MyWindowToAnimate) ResizeMove"
100 100% {($ WIDTH - 100) / 2}%% {($ HEIGHT - 100) / 2}%
% Lặp lại% {$ count}%
br w + 2c w + 2c w-1c w-1c
%Kết thúc
% Lặp lại% {$ count}%
br w-2c w-2c w + 1c w + 1c
%Kết thúc
Tiền tố% kết thúc

Các tham số tiền xử lý bổ sung --nosend và --noremove cũng có thể được cung cấp. Xem của họ
mô tả ở trên cùng.

xuất khẩu [tên func]
Gửi đến fvwm định nghĩa của các chức năng phím tắt giúp kích hoạt các
hành động của mô-đun (tức là đánh giá, tảitiền xử lý).

Tên hàm (tên func) có thể được phân tách bằng dấu phẩy hoặc / và khoảng trắng. Theo mặc định,
hai hàm "Eval" và "." được giả định rằng.

Hành động thực tế được xác định trong một hàm được đoán từ tên hàm nếu có thể,
trong đó tên hàm "." được dành cho tiền xử lý hành động.

Ví dụ: bất kỳ lệnh nào trong hai lệnh fvwm này

SendToModule MyPerl xuất PerlEval, PP
FvwmPerl - xuất PerlEval, PP MyPerl

xác định hai hàm phím tắt sau:

Phá hủy chức năng PerlEval
AddToFunc I SendToModule MyPerl eval $ *
PP hủy diệt
AddToFunc Tôi gửi tiền xử lý trước cho MyPerl của AddToModule -c - $ *

4 hành động này có thể được yêu cầu theo một trong 3 cách: 1) trong dòng lệnh khi FvwmPerl
được gọi (trong trường hợp này FvwmPerl tồn tại trong thời gian ngắn trừ khi --ở lại or --xuất khẩu cũng được đưa ra), 2)
bằng cách gửi tin nhắn tương ứng trong cấu hình fvwm bằng SendToModule, 3) bằng cách gọi
hàm perl tương ứng trong mã perl.

CHỨC NĂNG


Có một số hàm mà mã perl có thể gọi:

cmd ($ fvwm_command)
Trong trường hợp đánh giá or tải - gửi lại cho fvwm một chuỗi $ fvwm_command. Trong trường hợp
tiền xử lý - nối một chuỗi $ fvwm_command đến đầu ra của mã perl được nhúng.

do_eval ($ perl_code)
Chức năng này tương đương với đánh giá chức năng trên chuỗi $ perl_code,
miêu tả trên.

trọng tải($ filename)
Chức năng này tương đương với tải chức năng trên tệp $ filename, được mô tả
ở trên.

tiền xử lý (@params, ["-NS $ lệnh "] [$ filename])
Chức năng này tương đương với tiền xử lý chức năng với các thông số đã cho
và tệp $ filename được mô tả ở trên.

xuất khẩu($ func_names, [$ do_unexport])
Chức năng này tương đương với xuất khẩu chức năng với $ func_names đã cho,
miêu tả trên. Có thể cũng unxport tên hàm nếu tham số thứ hai là true.

Các tên hàm phải được phân tách bằng dấu phẩy hoặc / và khoảng trắng. Nếu như $ func_names is
rỗng rồi đến các chức năng "Eval" và "." được giả định rằng.

dừng lại()
Kết thúc mô-đun.

nhảy()
Bỏ qua phần còn lại của mã gọi lại sự kiện, tức là mô-đun quay lại để nghe
sự kiện mô-đun.

mở khóa ()
Không đồng bộ hóa lệnh gọi lại sự kiện từ fvwm. Điều này có thể hữu ích để ngăn chặn bế tắc,
tức là thường fvwm giết mô-đun không phản hồi nếu sự kiện gọi lại không
hoàn thành Hết thời gian mô-đun giây. Điều này ngăn cản nó.

Ví dụ này khiến FvwmPerl tạm ngừng thực thi trong một phút:

SendModule FvwmPerl eval unlock (); ngủ(60);

Tuy nhiên, hãy xác minh rằng không có cách nào một tin nhắn mới được gửi bởi fvwm trong khi mô-đun được
bận và fvwm vẫn bị khóa với tin nhắn mới này quá lâu. Xem thêm tách ra
giải pháp nếu bạn cần hoạt động lâu dài.

tách ra ()
Phân tách và tách phần còn lại của mã gọi lại sự kiện khỏi quy trình chính. Điều này có thể
hữu ích để ngăn chặn việc giết chết mô-đun nếu quá trình gọi lại sự kiện của nó diễn ra trong một thời gian dài
để hoàn thành và nó có thể được thực hiện trong đứa trẻ tách rời. Đứa trẻ bị tách rời có thể vẫn
gửi lệnh đến fvwm (không dựa vào điều này), nhưng tất nhiên không nhận được các sự kiện, nó
thoát ngay lập tức sau khi quá trình gọi lại kết thúc.

Nếu bạn sử dụng tách ra (), tốt hơn chỉ nên gửi lệnh tới fvwm trong một quy trình (quy trình chính hoặc
cái tách rời), làm theo cách khác thường có thể gây ra xung đột.

tin chương trình($ msg, $ title [, $ use_stderr_too = 1])
Hiển thị cửa sổ hộp thoại với thông báo đã cho, sử dụng bất kỳ công cụ X nào được tìm thấy trong
hệ thống.

Xem FVWM :: Mô-đun :: Bộ công cụ::tin chương trình để biết thêm thông tin chi tiết.

BIẾN


Có một số biến toàn cục trong chính không gian tên có thể được sử dụng trong perl
mã:

$ a, $ b, ... $ h
@a, @b, ... @h
% a,% b, ...% h

Tất cả chúng đều được khởi tạo thành giá trị trống và có thể được sử dụng để lưu trữ trạng thái giữa
các lệnh gọi khác nhau đến các hành động FvwmPerl (đánh giátải).

Nếu bạn cần nhiều tên biến có thể đọc được, hãy viết "không nghiêm ngặt 'vars';" lúc bắt đầu
mọi mã perl hoặc sử dụng một hàm băm cho điều này, như:

$ h {id} = $ h {first_name}. "". $ h {second_name}

hoặc sử dụng tên gói, như:

@MyMenu :: terminals = qw (xterm rxvt);
$ MyMenu :: item_num = @MyMenu :: terminals;

Có thể có một tùy chọn cấu hình để bật và tắt tính nghiêm ngặt.

TIN NHẮN


FvwmPerl có thể nhận tin nhắn bằng lệnh fvwm SendToModule. Tên, ý nghĩa và
các tham số của thông báo giống như các hành động tương ứng, được mô tả ở trên.

Ngoài ra, một tin nhắn dừng lại khiến một mô-đun thoát.

Một thông điệp unxport [tên func] hoàn tác tác dụng của xuất khẩu, được mô tả trong ACTIONS
phần.

Một thông điệp đổ kết xuất nội dung của các biến đã thay đổi (chưa).

VÍ DỤ


Một bài kiểm tra đơn giản:

SendToModule FvwmPerl eval $ h {dir} = $ ENV {HOME}
SendToModule FvwmPerl eval tải ($ h {dir}. "/Test.fpl")
Tải SendToModule FvwmPerl $ [HOME] /test.fpl
SendToModule FvwmPerl tiền xử lý config.ppp
SendToModule FvwmPerl xuất Eval, PerlEval, PerlLoad, PerlPP
SendToModule FvwmPerl unxport PerlEval, PerlLoad, PerlPP
SendToModule FvwmPerl dừng

Ví dụ sau xử lý nền gốc trong fvwmrc. Tất cả các lệnh này có thể được thêm vào
đến StartFunction.

Mô-đun FvwmPerl - xuất PerlEval

# tìm tất cả các bản đồ ảnh nền để sử dụng sau
PerlEval $ a = $ ENV {HOME}. "/ bg"; \
opendir DIR, $ a; @b = grep {/ xpm $ /} readdir (DIR); DIR khép kín

# xây dựng một menu các bản đồ ảnh nền
AddToMenu MyBackgrounds Tiêu đề "Nền của tôi"
PerlEval foreach $ b (@b) \
{cmd ("AddToMenu MyBackgrounds '$ b' Exec fvwm-root $ a / $ b")}

# chọn một nền ngẫu nhiên để tải khi khởi động
PerlEval cmd ("AddToFunc \
InitFunction + I Exec thi hành fvwm-root $ a / ". $ B [int (random (@b))])

THOÁT KHỎI


Gửi TớiModule giống như bất kỳ lệnh fvwm nào khác mở rộng một số biến có tiền tố đô la.
Điều này có thể xung đột với việc sử dụng đô la perl. Bạn có thể tránh điều này bằng cách thêm tiền tố SendToModule
với dấu gạch ngang ở đầu. 2 dòng sau trong mỗi cặp là tương đương:

SendToModule FvwmPerl eval $$ d = "$ [DISPLAY]"
-SendToModule FvwmPerl eval $ d = "$ ENV {DISPLAY}"

SendToModule FvwmPerl eval \
cmd ("Echo bàn = $ d, display = $$ d")
Tiền xử lý SendToModule FvwmPerl -c \
Echo table =% ("$ d")%, display =% {$$ d}%

Một giải pháp khác để tránh thoát khỏi các ký hiệu đặc biệt như đô la và dấu gạch chéo ngược là
tạo một tệp perl trong ~ / .fvwm và sau đó tải nó:

SendToModule FvwmPerl tải build-menu.fpl

Nếu bạn cần xử lý trước một lệnh bắt đầu bằng dấu gạch ngang, bạn nên đặt trước nó bằng cách sử dụng
"-".

# điều này in ra bàn làm việc hiện tại, tức là "0"
Tiền xử lý SendToModule FvwmPerl -c Tiếng vọng "$% {$ a =" c "; ++ $ a}%"
# cái này in ra "$ d"
Tiền xử lý SendToModule FvwmPerl -c - -Echo "$% {" d "}%"
# cái này in ra "$ d" (SendToModule mở rộng $$ thành $)
Tiền xử lý SendToModule FvwmPerl -c - -Echo "$$% {" d "}%"
# cái này in ra "$$ d"
-SendToModule FvwmPerl tiền xử lý -c - -Echo "$$% {" d "}%"

Một lần nữa, bạn nên đặt (các) lệnh của mình vào tệp và thay vào đó xử lý trước tệp.

THẬN TRỌNG


FvwmPerl được viết bằng perl và xử lý perl, tuân theo phương châm perl nổi tiếng:
"Có nhiều hơn một cách để làm điều đó", vì vậy sự lựa chọn là ở bạn.

Dưới đây là các cặp đường tương đương khác:

Mô-đun FvwmPerl - tải "my.fpl" --stay
Mô-đun FvwmPerl -e 'tải ("my.fpl")' -s

Tiền xử lý SendToModule FvwmPerl --quote '@' my.ppp
Quá trình tiền xử lý SendToModule FvwmPerl eval ({quote => '@'}, "my.ppp");

Cảnh báo, bạn có thể ảnh hưởng đến cách FvwmPerl hoạt động bằng cách đánh giá mã perl thích hợp, điều này
được coi là một tính năng không phải là một lỗi. Nhưng xin đừng làm điều này, hãy viết mô-đun fvwm của riêng bạn
thay vào đó bằng perl.

Sử dụng FvwmPerl trực tuyến bằng các dịch vụ onworks.net


Máy chủ & Máy trạm miễn phí

Tải xuống ứng dụng Windows & Linux

  • 1
    VÒI
    VÒI
    SWIG là một công cụ phát triển phần mềm
    kết nối các chương trình được viết bằng C và
    C ++ với nhiều cấp độ cao
    ngôn ngữ lập trình. SWIG được sử dụng với
    khác nhau...
    Tải xuống SWIG
  • 2
    Chủ đề WooCommerce Nextjs React
    Chủ đề WooCommerce Nextjs React
    Chủ đề React WooCommerce, được xây dựng với
    JS tiếp theo, Webpack, Babel, Node và
    Express, sử dụng GraphQL và Apollo
    Khách hàng. Cửa hàng WooCommerce trong React (
    chứa: Sản phẩm ...
    Tải xuống Chủ đề phản ứng WooC Commerce Nextjs
  • 3
    Archlabs_repo
    Archlabs_repo
    Gói repo cho ArchLabs Đây là một
    ứng dụng cũng có thể được tìm nạp
    từ
    https://sourceforge.net/projects/archlabs-repo/.
    Nó đã được lưu trữ trong OnWorks ở...
    Tải xuống archlabs_repo
  • 4
    Dự án Zephyr
    Dự án Zephyr
    Dự án Zephyr là một thế hệ mới
    hệ điều hành thời gian thực (RTOS)
    hỗ trợ nhiều phần cứng
    kiến trúc. Nó dựa trên một
    hạt nhân có dấu chân nhỏ ...
    Tải xuống dự án Zephyr
  • 5
    SCons
    SCons
    SCons là một công cụ xây dựng phần mềm
    đó là một sự thay thế vượt trội so với
    công cụ xây dựng "Make" cổ điển
    tất cả chúng ta đều biết và yêu thích. SCons là
    thực hiện một ...
    Tải xuống SCons
  • 6
    PSeInt
    PSeInt
    PSeInt là trình thông dịch mã giả cho
    sinh viên lập trình nói tiếng Tây Ban Nha.
    Mục đích chính của nó là trở thành một công cụ để
    học và hiểu cơ bản
    quan niệm ...
    Tải xuống PSeInt
  • Khác »

Lệnh Linux

Ad