Câu 1Thứ nào đọc dòng bạn gõ vào terminal, tìm chương trình mang tên ở đầu dòng rồi khởi động nó?
Môi trường phát triển là gì — trình soạn thảo, terminal và môi trường chạy
Bài viết này nằm trong khóa Kiến thức nền tảng về CNTT, xây dựng từ đầu những kiến thức CNTT thực tế tối thiểu mà bạn cần để lập trình và vibe coding.
Bạn viết ở trình soạn thảo, chuyển nó đi từ terminal, và môi trường chạy sẽ chạy nó. Các sơ đồ cho thấy 3 vai trò này, cách shell đọc dòng bạn gõ, và nơi nó đi tìm file.
Bài viết này nói về môi trường phát triển.
Môi trường phát triển là cách gọi gộp 3 phần mềm: trình soạn thảo, terminal và môi trường chạy.
Gộp cả 3 vào 1 màn hình thì thành môi trường phát triển tích hợp (IDE, Integrated Development Environment), tiêu biểu có Visual Studio Code, IntelliJ IDEA và Xcode.
- 3 thứ — trình soạn thảo, terminal và môi trường chạy — mỗi thứ làm gì
- Tên gọi của terminal khác nhau theo từng OS, và cách đọc màn hình đó
- Shell đọc dòng bạn gõ như thế nào, và đi tìm file nào
- Môi trường chạy chạy app.js được trao cho nó ra sao, từng dòng một từ trên xuống
Môi trường phát triển là gì — 3 thứ: trình soạn thảo, terminal và môi trường chạy
Môi trường phát triển (development environment, tổ hợp phần mềm để viết mã nguồn rồi ra lệnh cho nó chạy) là cách gọi gộp 3 thứ, chứ không phải có một phần mềm mang đúng cái tên đó.
- Bạn gõ nội dung app.js rồi lưu lại
- Phần mềm như Visual Studio Code
- Màn hình để gõ 1 dòng như node app.js
- Được cài sẵn cùng OS ngay từ đầu
- Phần mềm có tên node hay python
- Bạn cài từ trang chính thức
- app.js — mã nguồn bạn tự viết
- File ảnh và file cấu hình cũng đặt ở đây
- Làm ứng dụng khác thì bạn tạo một thư mục khác
3 thứ trong khung trên chỉ cần cài một lần là dùng lại được.
Thứ bạn tạo mới mỗi lần chỉ là thư mục như my-app ở khung dưới.
Trình soạn thảo không chỉ là màn hình để viết chữ, nó còn xếp được cả danh sách file lẫn terminal trên cùng một màn hình.
"Code editor" hay "IDE" trong tài liệu hướng dẫn thì bạn cứ coi là cùng một thứ.
- Các file trong my-app được liệt kê
- Bấm vào app.js là nó mở ra bên phải
- Nội dung app.js hiện ra ở đây
- File chưa đổi cho tới khi bạn lưu
- Bạn gõ được node app.js ngay tại đây
- Cùng một thứ với terminal mở riêng
3 phần mềm này nối với nhau và chạy bên trong 1 máy tính.
Toàn bộ khung là 1 máy tính, và 3 thứ chia vai trò bên trong đó.
Trình soạn thảo chỉ làm tới bước tạo ra file, còn thứ chạy nó là môi trường chạy.
Terminal là cửa vào để nói với môi trường chạy rằng hãy chạy file này, và kết quả cũng hiện ra ở chính terminal đó.
Môi trường phát triển là một bộ 3 phần mềm
Môi trường phát triển là cách gọi gộp 3 việc: viết, gõ và chạy.
Viết là trình soạn thảo, gõ là terminal, chạy là môi trường chạy, và 3 thứ này cài một lần là dùng lại được cho ứng dụng tiếp theo.
Terminal — trên Mac là "Terminal", trên Windows là "Command Prompt"
Terminal (phần mềm cho bạn một màn hình để gõ câu lệnh bằng chữ và nhận kết quả bằng chữ) được cài sẵn cùng OS ngay từ đầu.
Có điều, tên gọi khác nhau theo từng OS.
Tên khác nhau nhưng nhìn thì đều giống nhau.
Bạn gõ 1 dòng vào màn hình chỉ toàn chữ, bấm Enter, và kết quả hiện ra ngay dòng bên dưới.
- Các ký hiệu như $, # và >
- Trước nó thường hiện tên thư mục bạn đang ở
- Bạn gõ chữ ở bên phải dấu nhắc
- Không có gì xảy ra cho tới khi bạn bấm Enter
- Kết quả lẫn lỗi đều hiện bằng chữ ở các dòng dưới
- Hiện xong thì dấu nhắc tiếp theo lại xuất hiện
Màn hình thật thì như sau: bạn gõ 1 dòng ở bên phải ký hiệu đầu dòng, và kết quả trả về ngay bên dưới.
pwd trả về vị trí thư mục bạn đang ở, còn ls trả về những thứ nằm trong thư mục đó.
$ pwd
/home/you/my-app
$ ls
app.js package.json
Terminal là màn hình để gõ chữ và hiện kết quả.
Thứ thực sự đọc dòng bạn gõ và quyết định chạy chương trình nào là shell (chương trình đọc dòng bạn đã gõ, tìm chương trình mang tên ở đầu dòng rồi khởi động nó) chạy bên trong màn hình đó.
bash và zsh xuất hiện trong tài liệu hướng dẫn chính là tên của các shell này.
Shell xử lý dòng bạn gõ bằng cách tách ra 2 phần: đầu dòng và phía sau.
Shell tìm chương trình bằng chữ node ở đầu, rồi trao app.js phía sau cho chương trình đó.
Lúc này nó chỉ tìm app.js bên trong thư mục mà shell đang mở, và thư mục đó gọi là thư mục hiện tại (current directory, thư mục shell đang mở).
Tên của nó thường hiện ngay trước dấu nhắc (prompt, ký hiệu cho thấy máy đang nhận nội dung nhập vào) ở đầu dòng.
- Đầu dòng trong terminal hiện chữ my-app
- app.js nằm ở đây nên node app.js chạy được
- Dù có app.js ở đây thì node app.js cũng không chạy
- Gõ cd my-app thì khung trên trở thành thư mục bạn đang ở
Cùng là node app.js nhưng thư mục bạn đang ở khác nhau thì kết quả khác nhau.
app.js được đặt bên trong my-app.
| Thư mục shell đang ở | Nơi tìm app.js | Kết quả của node app.js |
|---|---|---|
| my-app | Trong my-app → tìm thấy | app.js được chạy |
| Downloads | Trong Downloads → không tìm thấy | Cannot find module |
| Sau khi cd my-app | Trong my-app → tìm thấy | app.js được chạy |
Tài liệu hướng dẫn đặt cd trước câu lệnh chính là để đổi nơi tìm này.
Viết đích đến sau cd thì dòng tiếp theo sẽ chạy trong thư mục bạn vừa chuyển tới.
$ cd my-app
$ pwd
/home/you/my-app
Với 1 dòng bạn gõ, thứ bạn viết ở đầu dòng quyết định việc gì sẽ xảy ra.
Nội dung tới đây là mức tối thiểu để đọc được các câu lệnh xuất hiện trong tài liệu hướng dẫn.
Nếu muốn học sâu hơn, Khóa Linux nhập môn có các bài luyện tập vừa gõ câu lệnh vào terminal trên trình duyệt vừa học.
Bắt đầu từ Đường dẫn và di chuyển thư mục thì bạn đi tiếp ngay từ phần nói về cd trong bài này.
Thứ đọc dòng bạn gõ là shell
Thứ đọc dòng bạn gõ không phải màn hình mà là shell chạy bên trong nó.
Khi không chạy được, hãy tách ra mà đọc: command not found là chưa tìm thấy cái tên ở đầu dòng, còn Cannot find module là file phía sau không có trong thư mục bạn đang ở.
Môi trường chạy — chạy nội dung app.js theo thứ tự từ trên xuống
Khi được shell trao app.js, môi trường chạy sẽ đọc nội dung của nó từng dòng một từ trên xuống và chạy theo đúng thứ tự đã viết.
Chạy 3 dòng sau bằng node app.js thì màn hình chỉ hiện 2 dòng.
console.log("Xin chào");
const price = 1200;
console.log(price + " yên");
Chỉ những dòng có lệnh hiển thị mới hiện lên màn hình.
Môi trường chạy chỉ đọc từng dòng một từ trên xuống
Việc mà môi trường chạy làm chỉ là đọc app.js từng dòng một từ trên xuống rồi làm đúng như đã viết.
Chỉ những dòng có lệnh hiển thị mới đưa chữ lên màn hình, và thứ duy nhất nó đọc là app.js do shell trao cho.
Kiểm tra kiến thức
Hãy trả lời từng câu hỏi một.
Câu 2Bạn gõ node app.js nhưng nhận được thông báo không tìm thấy app.js. Bạn kiểm tra điều gì trước?
Câu 3Khi bạn gõ node app.js ở terminal, thứ nào chạy nội dung app.js theo thứ tự từ trên xuống?