Hal yang menarik tentang manusia adalah bahwa kita masing-masing memiliki gaya belajar tertentu. Beberapa orang lebih suka membaca tentang bagaimana sesuatu dilakukan. Beberapa orang lebih suka mengikuti instruksi dari awal, sementara yang lain lebih suka mendapatkan gambaran umum sebelum terlibat. Orang lain suka mendengarkan instruksi dari instruktur atau podcast. Namun kelompok lain menginginkan instruksi dalam bentuk video.
Masalah dengan video adalah sulitnya memproduksi dan mengompres, dan banyak pekerjaan yang harus diubah setelah selesai. Selain itu, pemirsa tidak dapat menyalin dan menempelkan perintah Linux dari video ke terminal mereka.
Atau bisa?
script
dan scriptreplay
perintah memungkinkan Anda untuk merekam sesi terminal dan kemudian memutarnya kembali nanti. Tidak ada video yang terlibat. Sebagai gantinya, file teks biasa disebut typescripts digunakan, sehingga file berukuran kecil dan pengguna dapat menyalin perintah selama pemutaran.
Keduanya script
dan scriptreplay
perintah adalah alat dokumentasi yang berharga, dan menurut saya itu berguna dalam dua skenario:
- Tidak peduli seberapa tulus saya berjanji pada diri sendiri bahwa saya akan menelusuri riwayat shell saya dan mengumpulkan perintah yang tepat setelah saya menemukan cara yang tepat untuk menyelesaikan tugas, saya jarang melakukannya.
- Terkadang, pengguna saya tidak ingin melihat input yang diperlukan dari mereka; mereka ingin melihat interaksi antara mereka dan komputer. Anda dapat memberitahu pengguna untuk mengetik
ls
dan menggambarkan apa yang dapat mereka harapkan untuk dilihat sebagai tanggapan, tetapi itu membuat dampak yang lebih besar ketika mereka melihatnya terjadi sendiri. Saya menemukan pengguna jauh lebih berani di terminal setelah memainkan file skrip untuk melihat seperti apa dulu.
[ Daftar ke Ansible Basics:Automation Technical Overview dan pelajari manajemen konfigurasi, penyediaan, penerapan, dan pengelolaan infrastruktur komputasi di seluruh lingkungan dengan Ansible. ]
Rekam terminal Anda
Untuk mulai merekam dengan script
, berikan dua file tujuan:file waktu dan typescript berkas:
$ script --timing=time.tm myscript
Output memberi tahu Anda bahwa script
sudah mulai merekam. Semua yang Anda lakukan di terminal Anda saat script
aktif dicatat. Ini mencakup semua yang akan stdin, stdout, dan stderr, termasuk jeda, spasi mundur, pelengkapan otomatis, dan bahkan kesalahan Anda.
Tekan Ctrl+D atau ketik exit
untuk menghentikan perekaman setelah Anda menyelesaikan demonstrasi.
File TypeScript yang dihasilkan, myscript
dalam contoh ini, mudah dan relatif mendokumentasikan diri sendiri:
Script started on 2022-01-06 22:27:01+13:00
0;seth:~/script^G$ echo "hello world"
hello world
0;seth:~/script^G$ exit
exit
Script done on 2022-01-06 22:27:10+13:00
Anda dapat mengedit file ini. tetapi berhati-hatilah untuk membuat terlalu banyak perubahan karena waktu keluaran juga telah direkam.
Namun, untuk memperbaiki kesalahan kecil, edit cepat dengan editor teks adalah perbaikan yang mudah.
Memainkan skrip
Anda dapat memutar skrip yang direkam menggunakan scriptreplay
perintah:
$ scriptreplay --timing=time.tm myscript
Ini mengambil alih sesi terminal Anda dan menggunakannya sebagai kanvas untuk memutar ulang input dan output dari apa yang Anda rekam. Pengaturan waktu juga direplikasi, sehingga jeda yang bermakna untuk kejelasan dipertahankan, yang dapat membantu pengguna mengikuti bersama dengan pemutaran skrip.
Tentu saja, perintah yang diputar ulang di terminal tidak dijalankan. Ini hanya replay instan, jadi aman untuk memainkan skrip yang menghapus file, membuat Git melakukan, atau meluncurkan pemutaran Ansible. Tidak ada dalam pemutaran skrip yang benar-benar terjadi. Ini hanya film.
Dokumentasi beraksi
script
dan scriptreplay
perintah adalah alat yang berharga untuk filosofi "tunjukkan jangan beri tahu". Apakah audiens target Anda adalah Anda pada suatu saat di masa depan, lama setelah Anda melupakan apa yang Anda yakin tidak akan pernah Anda lupakan, atau pengguna terminal baru yang pemalu, melihat interaksi manusia-komputer dapat mencerahkan dan memberdayakan.
Tidak seperti tangkapan layar, TypeScript berukuran kecil dalam ukuran file dan mudah diperbarui dan diedit. Tidak seperti riwayat shell Anda, TypeScript tidak berputar. Mereka tidak hilang kecuali Anda menghapusnya sendiri. Dan tidak seperti skrip shell, TypeScript menunjukkan langkah-langkah tanpa melakukan proses, mendorong pemirsa untuk mencoba setiap langkah, menginternalisasi dan memasukkannya ke memori, dan mendapatkan pemahaman yang lebih baik tentang apa yang benar-benar mampu dilakukan oleh terminal.