Hướng Dẫn Thực Hành Lập Trình Shell Trong Hệ Điều Hành Linux

Chuyên khảo phân tích Tài liệu hướng dẫn thực hành hệ điều hành, đánh giá các khía cạnh quan trọng, đề xuất hướng nghiên cứu tiếp theo.

Người đăng

Ẩn danh

Thể loại

tài liệu hướng dẫn thực hành
63
0
0

Phí lưu trữ

30 Point

Mục lục chi tiết

1. BÀI 2. LẬP TRÌNH TRONG MÔI TRƯỜNG SHELL

1.1. Nội dung thực hành

1.2. Sinh viên chuẩn bị

1.3. Hướng dẫn thực hành

1.4. Bài tập thực hành

1.5. Bài tập ôn tập

Tóm tắt

I. Hướng Dẫn Tổng Quan Về Lập Trình Shell Trong Hệ Điều Hành Linux

Lập trình shell là một kỹ năng quan trọng trong việc quản lý hệ điều hành Linux. Bài viết này sẽ cung cấp cái nhìn tổng quan về lập trình shell, giúp người đọc hiểu rõ hơn về ngôn ngữ này và cách thức hoạt động của nó trong môi trường Linux.

1.1. Giới Thiệu Về Lập Trình Shell

Lập trình shell cho phép người dùng tương tác với hệ điều hành thông qua các lệnh. Ngôn ngữ này rất mạnh mẽ và linh hoạt, giúp tự động hóa nhiều tác vụ.

1.2. Tại Sao Nên Học Lập Trình Shell

Học lập trình shell giúp cải thiện hiệu suất làm việc, tiết kiệm thời gian và nâng cao khả năng quản lý hệ thống. Đây là kỹ năng cần thiết cho các quản trị viên hệ thống.

II. Những Thách Thức Khi Lập Trình Shell Trong Linux

Mặc dù lập trình shell mang lại nhiều lợi ích, nhưng cũng tồn tại một số thách thức mà người dùng cần phải vượt qua. Việc hiểu rõ các vấn đề này sẽ giúp người dùng chuẩn bị tốt hơn.

2.1. Khó Khăn Trong Việc Ghi Nhớ Cú Pháp

Cú pháp của các lệnh shell có thể phức tạp và khó nhớ, đặc biệt đối với người mới bắt đầu. Việc này có thể dẫn đến sai sót trong quá trình lập trình.

2.2. Thiếu Tài Liệu Hướng Dẫn Chi Tiết

Nhiều tài liệu hướng dẫn lập trình shell không đầy đủ hoặc khó hiểu, gây khó khăn cho người học trong việc nắm bắt kiến thức.

III. Phương Pháp Học Lập Trình Shell Hiệu Quả

Để học lập trình shell một cách hiệu quả, người dùng cần áp dụng một số phương pháp học tập phù hợp. Những phương pháp này sẽ giúp tối ưu hóa quá trình học.

3.1. Thực Hành Thường Xuyên

Thực hành là cách tốt nhất để nắm vững lập trình shell. Người dùng nên thường xuyên viết và chạy các script để cải thiện kỹ năng.

3.2. Sử Dụng Tài Nguyên Học Tập Trực Tuyến

Có nhiều khóa học trực tuyến và tài liệu miễn phí về lập trình shell. Sử dụng những tài nguyên này sẽ giúp người học tiếp cận kiến thức một cách nhanh chóng.

IV. Ứng Dụng Thực Tiễn Của Lập Trình Shell Trong Doanh Nghiệp

Lập trình shell không chỉ là một kỹ năng cá nhân mà còn có nhiều ứng dụng trong môi trường doanh nghiệp. Việc hiểu rõ ứng dụng của nó sẽ giúp người dùng có cái nhìn tổng quan hơn.

4.1. Tự Động Hóa Quy Trình Làm Việc

Lập trình shell có thể được sử dụng để tự động hóa các tác vụ lặp đi lặp lại, giúp tiết kiệm thời gian và giảm thiểu sai sót.

4.2. Quản Lý Hệ Thống Hiệu Quả

Các script shell có thể giúp quản trị viên hệ thống quản lý và giám sát các dịch vụ, tài nguyên hệ thống một cách hiệu quả.

V. Kết Luận Về Tương Lai Của Lập Trình Shell

Lập trình shell sẽ tiếp tục đóng vai trò quan trọng trong quản lý hệ thống và tự động hóa. Việc nắm vững ngôn ngữ này sẽ mang lại nhiều cơ hội nghề nghiệp cho người học.

5.1. Xu Hướng Phát Triển Ngôn Ngữ Shell

Ngôn ngữ shell đang ngày càng được cải tiến và phát triển, mở ra nhiều khả năng mới cho người dùng.

5.2. Tầm Quan Trọng Của Lập Trình Shell Trong Tương Lai

Với sự phát triển của công nghệ, lập trình shell sẽ vẫn giữ vị trí quan trọng trong việc quản lý hệ thống và tự động hóa quy trình.

10/07/2025

Trích đoạn nội dung tài liệu

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN o Tài liệu hướng dẫn thực hành HỆ ĐIỀU HÀNH Biên soạn: ThS Phan Đình Duy ThS Nguyễn Thanh Thiện KS Trần Đại Dương ThS Trần Hoàng Lộc KS Thân Thế Tùng MỤC LỤC BÀI 2. LẬP TRÌNH TRONG MÔI TRƯỜNG SHELL .2 Nội dung thực hành .3 Sinh viên chuẩn bị .4 Hướng dẫn thực hành .5 Bài tập thực hành .6 Bài tập ôn tập. 58 NỘI QUY THỰC HÀNH 1. Sinh viên tham dự đầy đủ các buổi thực hành theo quy định của giảng viên hướng dẫn (GVHD) (6 buổi với lớp thực hành cách tuần hoặc 10 buổi với lớp thực hành liên tục).

Sinh viên phải chuẩn bị các nội dung trong phần “Sinh viên viên chuẩn bị” trước khi đến lớp. GVHD sẽ kiểm tra bài chuẩn bị của sinh viên trong 15 phút đầu của buổi học (nếu không có bài chuẩn bị thì sinh viên bị tính vắng buổi thực hành đó). Sinh viên làm các bài tập ôn tập để được cộng điểm thực hành, bài tập ôn tập sẽ được GVHD kiểm tra khi sinh viên có yêu cầu trong buổi học liền sau bài thực hành đó. Điểm cộng tối đa không quá 2 điểm cho mỗi bài thực hành.

LẬP TRÌNH TRONG MÔI TRƯỜNG SHELL 2.1 Mục tiêu Bài thực hành này giúp sinh viên: ● Làm quen và tìm hiểu cách sử dụng ngôn ngữ shell để lập trình ● Thực hành lập trình một số cấu trúc điều khiển cơ bản của shell ● Viết được một số chương trình đơn giản bằng ngôn ngữ shell 2.2 Nội dung thực hành ● Thực hành các lệnh tương tác với hệ điều hành Linux thông qua shell ● Tìm hiểu và thực hành ngôn ngữ shell 2.3 Sinh viên chuẩn bị Trong bài thực hành LAB 1, chúng ta đã biết cách sử dụng máy ảo để cài đặt hệ điều hành Ubuntu và thực hành các thao tác cơ bản trên hệ điều hành. Có thể thấy, việc sử dụng terminal để gõ lệnh phần nào cũng sẽ mang lại cảm giác nhàm chán, đặc biệt những 1 người mới bắt đầu ít nhiều sẽ gặp khó khăn trong việc soạn thảo các file văn bản, hay file code. Phần chuẩn bị này sẽ hướng dẫn sinh viên cách sử dụng công cụ Visual Studio Code làm giao diện tuy đơn giản nhưng vô cùng hiệu quả khi lập trình trong Ubuntu. Ngoài ra, quy trình này cũng được áp dụng nhiều trong các doanh nghiệp, do đó, sinh viên sẽ có kinh nghiệm để tự tin hơn trong các công việc sau này.1 Cài đặt Visual Studio Code Visual Studio Code (viết tắt là VS Code) là một trình biên tập (editor) rất phổ biến trong cộng đồng các nhà phát triển và lập trình viên.

Khác với Visual Studio vốn là một IDE có đầy đủ chức năng từ việc viết code, biên dịch, debug, đóng gói, hỗ trợ cho nhiều ngôn ngữ lập trình, VS Code đơn thuần là một trình biên tập được dùng để viết code. Việc này làm VS Code khá nhẹ để cài đặt và rất dễ sử dụng. Điểm mạnh của VS Code nằm ở khả năng tùy biến theo nhu cầu của người sử dụng, ví dụ, nếu người dùng muốn lập trình C có thể cài đặt trình biên dịch riêng (sẽ trình bày ở LAB 3) và tích hợp vào VS Code, VS Code sẽ hỗ trợ khả năng nhắc lệnh và giao diện tương ứng, điều này làm cho việc viết code, chạy, và debug trở nên dễ dàng hơn. Trong bài thực hành này, VS Code được cài đặt và sử dụng như một nơi trung gian để giao tiếp với máy ảo, viết các file kịch bản và thực thi các file kịch bản này.

2 Sinh viên có thể tải VS Code và thực hiện cài đặt theo hướng dẫn tại đây: https://code. Giao diện khởi chạy của VS Code 2.2 Cài đặt SSH SSH, hay còn gọi với tên đầy đủ là Secure Shell, là một phương thức đăng nhập từ xa an toàn từ một máy tính đến một máy tính khác. Nó cung cấp một số tùy chọn thay thế cho việc xác thực mạnh, bảo vệ tính bảo mật và toàn vẹn của giao tiếp thông qua các phương thức mã hóa mạnh. SSH thường được doanh nghiệp sử dụng cho các mục đích sau: 3 ● Cung cấp kết nối an toàn cho các người dùng và các tiến trình tự động.

● Truyền tập tin tương tác và tự động. ● Thực hiện các lệnh từ xa. ● Quản lý cơ sở hạ tầng mạng và các thành phần hệ thống quan trọng khác. Trong nhiều tình huống, nhân viên sẽ cần phải thực hiện truy cập từ xa vào server của công ty, do đó, việc biết cài đặt và sử dụng SSH là một trong các kỹ năng cơ bản cần có trong các công ty IT.

Quy trình kết nối sử dụng SSH được trình bày trong Hình 2. Quy trình kết nối qua phương thức SSH ● Bước 1: Client khởi tạp giao tiếp tới server. ● Bước 2: Server gửi public key tới client. ● Bước 3: Hai bên kiểm tra tham số và mở kênh bảo mật.

● Bước 4: User có thể đăng nhập vào server. 4 Có thể thấy trong mô hình trên, để sử dụng phương thức SSH để đăng nhập từ xa vào server, ta sẽ cần cấu hình trên cả client và server. Để mô phỏng việc kết nối này, ta sẽ dùng chính máy ảo đã tạo trong LAB 1 để thực tập. Cụ thể: ● Client: máy khởi tạo kết nối từ xa.

Trong phần thực hành này, ta sẽ dùng máy chính để làm client. Như vậy client có thể chạy bất kỳ hệ điều hành nào trong số Windows, MacOS hoặc Linux. ● Server: Trong phần thực hành này, ta sẽ dùng máy ảo làm server. Như vậy, server hiện đang chạy Linux.1 Cài đặt SSH Client [THỰC HIỆN TRÊN CLIENT] Trong các hệ điều hành được liệt kê ở trên, nhà phát triển đã mặc định cài đặt OpenSSH - một trình điều khiển SSH rất phổ biển - sẵn cho người dùng.

Tuy nhiên, để chắc chắn, ta nên kiểm tra xem máy đã có SSH chưa bằng cách: ● Mở terminal trên MacOS, Ubuntu hoặc cmd/powershell trên Windows ● Gõ lệnh ssh ● Nếu shelll không báo lỗi không tìm thấy lệnh và trả về như bên dưới thì có nghĩa là máy đã được cài đặt SSH rồi 5 Hình 3. Kết quả lệnh ssh trả về trên Windows Hình 4. Kết quả lệnh ssh trả về Mac 6 Trong trường hợp máy chưa được cài đặt OpenSSH, thì có thể thực hiện cài đặt như sau: ● Đối với máy Windows: o Vào Settings --> Apps --> Optional Features o Bấm vào nút Add a feature o Gõ để tìm OpenSSH Client và bấm Install ● Đối với máy Mac: mặc định đã được cài đặt ● Đối với máy Ubuntu: o Gõ lệnh: sudo apt-get update o Gõ lệnh: sudo apt-get upgrade o Gõ lệnh: sudo apt-get install openssh-client 2.2 Cài đặt SSH Server [THỰC HIỆN TRÊN SERVER] Như đã trình bày ở trên, máy ảo Ubuntu sẽ được sử dụng để làm server, do đó phần này chỉ hướng dẫn cách để cài đặt và cấu hình SSH Server trên hệ điều hành Ubuntu. ● Để cài đặt SSH Server trên Ubuntu ta thực hiện lần lượt các lệnh sau: sudo apt-get update sudo apt-get upgrade sudo apt install openssh-server 7 ● Mặc định nhiều hệ thống sẽ chặn port 22 dùng để giao tiếp SSH, do đó ta cần khai báo với tường lửa cho phép giao tiếp SSH qua port này: sudo ufw allow ssh ● Sau khi cài đặt thành công, ta cần bật SSH trên server lên bằng câu lệnh: sudo service ssh restart ● Sau cùng, để chắc chắn SSH đã chạy, ta kiểm tra lại bằng câu lệnh: sudo service ssh status Hình 5.

Kiểm tra và thấy SSH đang chạy Dành cho WSL và Multipass: Mặc định trên WSL và Multipass, user đăng nhập mà không cần nhập mật khẩu, việc này không tuân thủ các nguyên tắc xác thực mạnh của SSH. Do đó để sử dụng SSH kết nối đến máy ảo được tạo bởi WSL và Multipass, ta cần thực hiện thêm bước sau đây: ● Mở file ssdh_config bằng lệnh nano: sudo nano /etc/ssh/sshd_config ● Tìm dòng PasswordAuthentication và đặt giá trị là yes 8 ● Tìm dòng KbdInteractiveAuthentication và đặt giá trị là no ● Nếu các dòng trên đang bị comment thì kích hoạt lại bằng cách xóa dấu # ở đầu dòng. Hai dòng màu trắng là hai dòng cần chỉnh lại Dành cho Virtual Box: Vui lòng xem tại đây: https://averagelinuxuser.com/ssh-into- virtualbox/ Khi cài đặt Port Forwarding thì thiết lập như sau: Name: ssh Protocol: TCP Host IP: Host Port: 22 9 Guest Port: 22 Nếu sử dụng Virtual Box, địa chỉ IP kết nối tới máy ảo sẽ là 127.3 Tạo public key trên Client [THỰC HIỆN TRÊN CLIENT] OpenSSH hỗ trợ nhiều phương thức xác thực khác nhau giữa client và server, trong đó nổi bật nhất là 2 cách sau: ● Xác thực bằng mật khẩu. ● Xác thực bằng public key.

Đây là phương pháp bảo mật thay thế cho việc sử dụng mật khẩu và được khuyến khích sử dụng trên VPS, Cloud, hay thậm chí là server dân dụng. Phần này sẽ hướng dẫn sinh viên cách tạo public key và sử dụng nó để truy cập vào SSH Server. ● Bước 1: Kiểm tra xem trong thư mục người dùng đã có thư mục .ssh chưa, nếu chưa thì tạo thư mục này (Trong Windows thì có thể tạo thư mục .ssh trong thư mục C:\Users\<username>): mkdir -p ~/.ssh ● Bước 2: Tạo cặp key (public - private): ssh-keygen -t rsa Trong bước này, ta cần phải đặt tên cho file key và chọn nơi lưu nó (khuyến khích chọn mặc định theo đề xuất của chương trình). Tạo cặp key bằng lệnh Ngoài ra, trình tạo key cũng sẽ hỏi nếu người dùng nhập passphrase (mật khẩu) cho cặp key, bỏ trống nếu không muốn đặt mật khẩu.

Sau khi tạo xong, 02 file sẽ được tạo ra bao gồm ~/.ssh/id_rsa và ~/.ssh/id_rsa.pub lần lượt là private key và pubic key của Client. ● Bước 3a (MacOS/Linux): Cài đặt public key cho SSH Server bằng lệnh (thực hiện trên Client): ssh-copy-id -i ~/.ssh/id_rsa.ssh/id_rsa.pub: là đường dẫn đến public key, nếu sinh viên không lưu trong thư mục trên, vui lòng ghi đúng lại thư mục mà sinh viên lưu public key. 11 o [user]: là username dùng để đăng nhập máy ảo. o [host]: địa chỉ IP hoặc tên miền trỏ tới máy ảo.

Để tìm địa chỉ IP này, trong máy ảo, cài lệnh ifconfig (sudo apt-get install net-tools) và gõ lệnh ifconfig để xem IP. Địa chỉ IP của máy ảo Ví dụ câu lệnh trên có thể được viết thành: ssh-copy-id -i ~/.ssh/id_rsa.ssh\id_rsa.ssh/authorized_keys 12 o Tương tự như trên, thay [username], [user], và [host] bằng thông tin tương ứng. o Nếu bị báo lỗi thư mục .ssh/ không tồn tại, thì tạo thư mục bên máy ảo rồi thực hiện lại bước trên. Khi thực hiện các thao tác trên, hãy đảm bảo rằng SSH Server đã được bật theo hướng dẫn ở mục 2.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ