Hệ điều hành Linux script lệnh đã tồn tại lâu đời và cung cấp một dịch vụ đơn giản nhưng hữu ích. Nó cho phép bạn ghi lại hoạt động của dòng lệnh – cả đầu vào và đầu ra. Điều này có thể rất hữu ích trong việc khắc phục sự cố hoặc xác minh những gì đã được thực hiện sau đó bằng cách xem lại các lệnh đã chạy cùng với đầu ra của chúng.
Ngay cả khi bạn đã sử dụng script lệnh time to time, nó cung cấp nhiều tùy chọn hơn nhiều người trong chúng ta nhận ra. Trong bài đăng này, chúng ta sẽ xem xét cách sử dụng đơn giản nhất của script và một số tùy chọn có thể làm cho nó hữu ích hơn nữa.
Cách dễ nhất để sử dụng script lệnh chỉ đơn giản là gõ “script” trong cửa sổ đầu cuối và nhấn ^ d khi bạn muốn dừng ghi. Đầu ra, theo mặc định, sẽ được lưu trong một tệp có tên là “typecript”. Bạn sẽ thấy tên tệp được sử dụng trong dòng đầu tiên của đầu ra.
$ script Script started, output log file is 'typescript'. <== file name $ who shs pts/0 2021-11-16 12:10 (192.168.0.8) $ <== after ^d exit Script done.
Table of Contents
Chỉ định tên tệp
Bạn có thể cung cấp một tên có ý nghĩa hơn nếu bạn sử dụng lệnh như lệnh hiển thị bên dưới để thêm tên tệp vào lệnh:
$ script updates Script started, output log file is 'updates'. <== file name $ echo running commands running commands $ <== after ^d Exit Script done on 2021-11-16 13:30:19-05:00 [COMMAND_EXIT_CODE="0"]
Nội dung của tệp cập nhật sẽ giống như sau:
$ cat updates Script started on 2021-11-16 13:35:08-05:00 [TERM="xterm" TTY="/dev/pts/4" COLUMNS="80" LINES="24"] $ echo running commands running commands $ Exit Script done on 2021-11-16 13:35:25-05:00 [COMMAND_EXIT_CODE="0"]
Lưu ý rằng tệp được sử dụng để ghi lại hoạt động của phiên không chỉ bao gồm các lệnh đã nhập và đầu ra được tạo mà còn cả thời gian và ngày mà quá trình ghi tệp bắt đầu và kết thúc.
Nối đầu ra vào một tệp hiện có
Nếu bạn muốn nối bản ghi hoạt động của phiên vào một tệp hiện có, bạn có thể sử dụng -Một (hoặc là –endend) lựa chọn.
$ script -a updates
Chạy không tương tác
Khi bạn sử dụng -C (hoặc là –yêu cầu), lệnh script chạy lệnh đã cho và không tương tác.
Để chạy một lệnh duy nhất và ghi lại tương tác, bạn có thể chỉ định lệnh như được hiển thị bên dưới sử dụng -C (hoặc là –yêu cầu) lựa chọn. Lưu ý rằng dấu ngoặc kép là cần thiết nếu lệnh yêu cầu nhiều hơn một chuỗi. Thời gian bắt đầu và kết thúc không được bao gồm trong đầu ra khi tùy chọn này được sử dụng.
$ script -c date Script started, output log file is 'typescript'. Thu Nov 18 03:50:06 PM EST 2021 Script done. $ $ script -c "find . -name loop -print" Script started, output log file is 'typescript'. ./bin/xtra/loop ./bin/loop ./loop ./private/loop Script done.
Bạn cũng có thể chuyển một dòng lệnh vào tập lệnh như sau:
$ echo date | script Script started, output log file is 'typescript'. date $ date Tue Nov 16 02:02:10 PM EST 2021 $ exit Script done.
Chạy một tập lệnh shell
Trong ví dụ tiếp theo này, chúng tôi sử dụng -C tùy chọn để chạy một tập lệnh và lưu tương tác trong một tệp có tên “myloop”.
$ script -c bin/loop2 myloop Script started, output log file is 'myloop'. 1 2 3 4 Script done.
Tách đầu vào khỏi đầu ra
Trên một số hệ thống Linux (như Fedora), script lệnh cũng giúp bạn có thể tách đầu vào khỏi đầu ra trong bản ghi phiên của bạn bằng cách sử dụng các tùy chọn -I (hoặc –log-in) và -O (hoặc –log-out). Điều này có thể dễ dàng hơn cho phép bạn biến các lệnh đã lưu thành một tập lệnh vì chúng sẽ nằm trong một tệp mà không có đầu ra lệnh.
$ script -q -I in -O out $ echo Hello, World! Hello, World!
Các -TÔI (viết hoa “i”) chỉ định tệp cho đầu vào và -O (viết hoa “o”) tệp cho đầu ra. Kiểm tra trang script man để xem những tùy chọn nào có sẵn cho bạn.
Các -q (hoặc là –im lặng) tùy chọn giữ cho thời gian bắt đầu và kết thúc không được hiển thị trên đầu ra tiêu chuẩn (thường là cửa sổ đầu cuối của bạn).
Tệp đầu vào sẽ giống như sau:
$ cat in Script started on 2021-11-18 16:01:58-05:00 [TERM="xterm" TTY="/dev/pts/0" COLUMNS="80" LINES="24"] echo Hello, World! Script done on 2021-11-18 16:02:06-05:00 [COMMAND_EXIT_CODE="0"]
Tệp đầu ra sẽ giống như sau:
$ cat out Script started on 2021-11-18 16:01:58-05:00 [TERM="xterm" TTY="/dev/pts/0" COLUMNS="80" LINES="24"] $ echo Hello, World! Hello, World! $ exit Script done on 2021-11-18 16:02:06-05:00 [COMMAND_EXIT_CODE="0"]
Kiểm tra phiên bản của tập lệnh
Bạn có thể hiển thị phiên bản của script mà bạn đang chạy như thế này:
$ script -V script from util-linux 2.36.2
Tìm sự giúp đỡ
Bạn có thể đọc trang người đàn ông cho script lệnh hoặc yêu cầu giải thích cú pháp lệnh script và các tùy chọn với lệnh hiển thị bên dưới.
$ script -h Usage: script [options] [file] Make a typescript of a terminal session. Options: -I, --log-in <file> log stdin to file -O, --log-out <file> log stdout to file (default) -B, --log-io <file> log stdin and stdout to file -T, --log-timing <file> log timing information to file -t[<file>], --timing[=<file>] deprecated alias to -T (default file is stderr) -m, --logging-format <name> force to 'classic' or 'advanced' format -a, --append append to the log file -c, --command <command> run command rather than interactive shell -e, --return return exit code of the child process -f, --flush run flush after each write --force use output file even when it is a link -E, --echo <when> echo input (auto, always or never) -o, --output-limit <size> terminate if output files exceed size -q, --quiet be quiet -h, --help display this help -V, --version display version For more details see script(1).
Gói (lại
Các script lệnh rất tiện dụng khi bạn muốn ghi nhớ, xem lại hoặc chạy lại một chuỗi lệnh và xuất chi tiết trên hệ thống Linux. Trong khi Môn lịch sử lệnh ghi lại các lệnh bạn nhập, script kỹ lưỡng hơn trong việc cho phép bạn xem lại đầu ra lệnh cũng như các lệnh đã được chạy.
Bản quyền © 2021 IDG Communications, Inc.