Hơn 30 câu hỏi và câu trả lời phỏng vấn Linux thường gặp [2023]
Mặc dù hệ điều hành Linux bắt đầu như một dự án sở thích của Linus Torvalds vào năm 1991, nhưng nó đã phát triển để trở thành người chơi thống trị trong việc cung cấp năng lượng cho siêu máy tính, máy chủ web, điện thoại thông minh và nhiều công nghệ khác.
Linux được ưa chuộng vì tính ổn định, bảo mật và sử dụng tài nguyên hiệu quả. Việc sử dụng và nhu cầu về Linux đã tăng lên trong những năm qua và xu hướng này sẽ không sớm dừng lại.
Vào năm 2021, Statista đã báo cáo rằng 47% nhà phát triển chuyên nghiệp sử dụng Linux. Cùng năm đó, Báo cáo việc làm nguồn mở hàng năm lần thứ 9 cho thấy rằng phát triển và quản trị Linux là kỹ năng được yêu cầu nhiều thứ hai bằng cách tuyển dụng các nhà quản lý và nhà phát triển.
Các kỹ năng về Linux rất quan trọng trong phát triển phần mềm, quản trị hệ thống, DevOps, quản trị mạng, kỹ thuật bảo mật và khoa học dữ liệu, cùng nhiều lĩnh vực khác. Do đó, nếu bạn quan tâm đến bất kỳ lĩnh vực nào trong số đó, có khả năng bạn sẽ được phỏng vấn về các kỹ năng của mình trong Linux.
Để giúp bạn chuẩn bị, đây là một số câu hỏi phỏng vấn Linux hàng đầu mà bạn có thể gặp phải và câu trả lời của chúng.
Linux là gì?
Trả lời: Linux là một hệ điều hành nguồn mở và miễn phí được phát triển vào năm 1991 bởi Linux Torvalds và được phát hành theo Giấy phép Công cộng GNU (GPL).
Tại sao nên sử dụng Linux?
Trả lời: Có một số lợi thế khi sử dụng hệ điều hành Linux. Đầu tiên, Linux có tính bảo mật cao và gần như hoàn toàn miễn nhiễm với các cuộc tấn công của phần mềm độc hại.
Ngoài ra, Linux rất ổn định, đáng tin cậy và hiếm khi gặp sự cố, đó là lý do tại sao nhiều máy chủ sử dụng Linux. Linux cũng đi kèm với ưu điểm là nhẹ, tiêu thụ ít RAM và bộ nhớ hơn, cho phép nó được sử dụng ngay cả trên các máy cũ.
Nói tóm lại, Linux là miễn phí, mã nguồn mở, được cập nhật thường xuyên và có khả năng tùy biến cao, cho phép người dùng điều chỉnh mọi thứ trên hệ điều hành cho phù hợp với nhu cầu của họ. Ngoài ra còn có các bản phân phối khác nhau được tối ưu hóa cho tin tặc, số khác dành cho lập trình viên và thậm chí cả người dùng phổ thông.
Các thành phần cơ bản của hệ điều hành Linux là gì?
Trả lời: Hệ điều hành Linux được tạo thành từ ba thành phần cơ bản.
- Kernel: Đây là thành phần cốt lõi của HĐH Linux. Đây là lớp thấp nhất trong HĐH Linux và tương tác trực tiếp với phần cứng của máy tính. Nhân phân bổ và quản lý các tài nguyên phần cứng như CPU, bộ nhớ và bộ lưu trữ, đồng thời cung cấp các dịch vụ cho các phần khác của HĐH và các chương trình chạy trên máy tính.
- Shell: Đây là giao diện dòng lệnh cho phép người dùng tương tác với hệ điều hành và chạy các chương trình. Nó hoạt động như một giao diện giữa người dùng và kernel. Nó diễn giải các lệnh của người dùng và thực thi chúng.
- Ứng dụng: Các chương trình này chạy trên hệ điều hành và cung cấp các chức năng cụ thể như duyệt web, xử lý văn bản và phát nhạc, cùng các chức năng khác.
Nhân, vỏ và các ứng dụng tạo nên hệ điều hành Linux.
Tại sao Linux được coi là an toàn hơn?
Trả lời: Yếu tố then chốt giúp Linux trở nên an toàn là bản chất mã nguồn mở của nó. Rất nhiều nhà phát triển thường xuyên xem xét mã Linux và khi tìm thấy một lỗi hoặc lỗ hổng bảo mật, nó sẽ được nêu ra trong diễn đàn Linux và được giải quyết trong vài ngày.
Ngoài ra, cách Linux quản lý quyền và đặc quyền đảm bảo rằng quyền truy cập root không được cấp cho bất kỳ người dùng bình thường nào theo mặc định.
Điều này hạn chế thiệt hại có thể được thực hiện bởi một loại virus. Số lượng sử dụng thấp của người dùng hàng ngày cũng góp phần vào tính bảo mật của nó, vì tin tặc thích nhắm mục tiêu vào các hệ điều hành có nhiều người dùng.
Hạt nhân Linux là gì?
Trả lời: Đây là lớp thấp nhất của hệ điều hành Linux và thành phần cốt lõi của nó. Hạt nhân nằm giữa phần cứng và các phần khác của HĐH Linux. Nhân tương tác với phần cứng của máy tính và quản lý các tài nguyên phần cứng như bộ nhớ, CPU và bộ lưu trữ.
Nó cũng đảm bảo rằng các tác vụ và quy trình khác nhau được phân bổ các tài nguyên cần thiết để chạy trơn tru và hiệu quả.
Sự khác biệt giữa Linux và Unix là gì?
Trả lời: Linux là một hệ điều hành nguồn mở và miễn phí do Linus Torvalds phát triển, trong khi Unix là một hệ điều hành di động, độc quyền, đa nhiệm và nhiều người dùng do AT&T phát triển. Unix không phải là nguồn mở, không giống như Linux.
GUI là gì?
Trả lời: Giao diện người dùng đồ họa (GUI) là giao diện người dùng cho một hệ điều hành cho phép người dùng tương tác với nó thông qua các thành phần đồ họa như cửa sổ, biểu tượng, menu, con trỏ và thanh cuộn (WIMPS).
Các yếu tố đồ họa được thao tác thông qua các thiết bị trỏ như chuột, bút stylus, bi xoay hoặc ngón tay trên màn hình cảm ứng.
CLI là gì?
Trả lời: Giao diện dòng lệnh (CLI) là giao diện người dùng dựa trên văn bản cho phép người dùng tương tác với hệ thống máy tính bằng cách nhập lệnh dưới dạng chuỗi văn bản trong thiết bị đầu cuối.
Hệ thống máy tính phản hồi bằng cách thực hiện các lệnh đã truyền hoặc hiển thị thông tin được yêu cầu.
Giải thích Linux Shell.
Trả lời: Linux shell là một chương trình diễn giải và thực thi các lệnh được nhập thông qua giao diện dòng lệnh cho phép người dùng tương tác với HĐH và do đó điều khiển máy tính của họ.
Shell nhận các lệnh ở định dạng con người có thể đọc được, diễn giải chúng thành một dạng mà kernel có thể hiểu được, sau đó chuyển chúng đến kernel để thực thi.
Các loại Shell trong Linux.
Trả lời: Có một số loại shell trong Linux, mỗi loại được tối ưu hóa cho một mục đích sử dụng cụ thể. Các loại shell khác nhau trong Linux bao gồm:
- Bourne Shell được ký hiệu là sh
- Bourne Again Shell ký hiệu là Bash
- C Shell được ký hiệu là csh
- KornShell được ký hiệu là ksh
- Vỏ Z ký hiệu là zsh
- Vỏ tương tác thân thiện được ký hiệu là cá
- Debian Almquist Shell được ký hiệu là dấu gạch ngang
- TENEX C Shell được ký hiệu là tcsh
Trên đây là một số shell Linux phổ biến.
Tập lệnh Shell là gì?
Trả lời: Đây là một tệp văn bản có một chuỗi các lệnh sẽ được thực thi bởi hệ vỏ Linux theo thứ tự xuất hiện của chúng.
Các tập lệnh Shell chứa các lệnh mà lẽ ra phải nhập từng lệnh một vào giao diện dòng lệnh. Các tập lệnh Shell rất hữu ích trong việc tự động hóa các tác vụ lặp đi lặp lại hoặc để chạy các tác vụ hàng loạt.
Giải thích quyền đối với tệp trong Linux.
Trả lời: Có ba loại quyền đối với tệp trong Linux:
- Read (r): Quyền này cho phép người dùng mở và đọc nội dung của tệp hoặc xem nội dung của thư mục. Tuy nhiên, người dùng không thể sửa đổi tệp hoặc nội dung của thư mục.
- Viết (w): Quyền ghi trên tệp cho phép người dùng sửa đổi nội dung của tệp. Quyền ghi trên một thư mục cho phép người dùng thêm, xóa và đổi tên các tệp trong một thư mục.
- Execute (x): Cho phép người dùng thực thi tệp dưới dạng chương trình. Trong Linux, người dùng không thể chạy chương trình trừ khi họ có quyền thực thi.
Phần trên tạo nên các loại tệp trong hệ điều hành Linux.
Làm cách nào để cấp quyền trong Linux?
Trả lời: Để cấp quyền trong Linux, lệnh chmod, viết tắt của ‘change mode’, được sử dụng. chmod được sử dụng để thay đổi quyền của một tệp hoặc thư mục.
Quyền có thể được cấp cho các nhóm người dùng khác nhau, bao gồm: nhóm (g), người dùng (u), những người khác (o) và tất cả người dùng (a). Quyền cho những người dùng này có thể được cấp bằng cách cộng (+) hoặc trừ (-) các quyền đọc(r), ghi(w) và thực thi(x).
Cú pháp thay đổi quyền cấp như sau:
chmod permissions file/directory-name
Làm cách nào để tìm nơi lưu trữ tệp trong Linux?
Trả lời: Để tìm nơi lưu trữ tệp trong Linux, trước tiên, hãy thực hiện lệnh
find <fileName>
để tìm kiếm tập tin trong các thư mục có sẵn. Nếu tìm thấy một tệp có tên tệp đã nhập, bạn có thể thực hiện như sau:
realpath <fileName>
để tìm một đường dẫn tuyệt đối đến vị trí lưu trữ của tệp.
Làm cách nào để xóa một thư mục trong Linux?
Trả lời: Để xóa một thư mục trong Linux, bạn có thể sử dụng lệnh rmdir. Lệnh này là viết tắt của “remove directory” và được sử dụng để xóa các thư mục trống.
Ví dụ: để xóa một thư mục trống có tên là test, hãy thực hiện:
rmdir test
Để xóa một thư mục không trống, hãy thực thi rm cùng với cờ -r của nó,
rm -r sample
Không gian hoán đổi là gì?
Trả lời: Đây là vùng dành riêng trên ổ cứng, thường ở dạng phân vùng, được hệ điều hành Linux sử dụng khi RAM đầy.
Nếu cần thêm bộ nhớ và RAM đầy, không hoạt động hoặc không được truy cập thường xuyên, các trang sẽ bị xóa khỏi RAM và được lưu trữ trong không gian hoán đổi để giải phóng dung lượng cho nhiều quy trình hơn trong RAM.
LILO là gì?
Trả lời: Linux Loader (LILO) là bộ nạp khởi động cho hệ điều hành Linux. Bộ tải khởi động là một chương trình tải hệ điều hành vào bộ nhớ và khởi động nó sau khi bật máy tính.
Sau khi bật máy tính, LILO định vị nhân Linux và các chương trình cần thiết khác rồi tải chúng vào bộ nhớ. Khi đã xong, nó sẽ khởi động nhân Linux.
Chuyển hướng là gì?
Trả lời: Điều này đang thay đổi nguồn của đầu vào tiêu chuẩn, thường là bàn phím và đích của đầu ra tiêu chuẩn và lỗi tiêu chuẩn, thường là màn hình.
Chẳng hạn, thông qua chuyển hướng, đầu vào có thể được lấy từ một tệp và thông tin lỗi và đầu ra cũng có thể được lưu vào một tệp.
Nhóm lệnh là gì?
Trả lời: Đây là một cách để thực hiện nhiều lệnh cùng nhau dưới dạng một đơn vị. Nhóm cho phép nhiều lệnh được thực thi dưới dạng một khối.
Nhóm thường sử dụng các tính năng như chuyển hướng và đường ống để tạo các tập lệnh phức tạp hơn và tự động hóa các tác vụ.
Máy chủ Linux không trạng thái là gì?
Trả lời: Máy chủ này không lưu trữ cục bộ bất kỳ thông tin trạng thái hoặc dữ liệu nào. Tất cả việc lưu trữ dữ liệu xảy ra ở phía máy khách và máy chủ không có bản ghi dữ liệu mà nó phục vụ.
Liên kết mạng là gì?
Trả lời: Đây là kỹ thuật biên dịch nhiều giao diện mạng thành một giao diện duy nhất. Điều này làm tăng băng thông mạng, thông lượng và kết nối dự phòng, cải thiện hiệu suất của mạng.
Lệnh grep là gì?
Trả lời: Lệnh in biểu thức chính quy toàn cầu (Grep) là một công cụ dòng lệnh được sử dụng để tìm kiếm các mẫu trong một tệp và hiển thị tất cả các dòng tệp có chứa các mẫu. Mẫu được tìm kiếm là một biểu thức chính quy và thường là một chuỗi ký tự.
Daemon là gì?
Trả lời: Daemon là các chương trình tiện ích chạy ngầm mà không cần sự can thiệp của người dùng. Daemon thực hiện các nhiệm vụ như giám sát thiết bị ngoại vi và thực hiện bảo trì hệ thống. Daemon đảm bảo hệ điều hành hoạt động trơn tru.
Liên kết tượng trưng là gì?
Trả lời: Liên kết tượng trưng, còn được gọi là liên kết tượng trưng hoặc liên kết mềm, là một loại tệp trong HĐH Linux trỏ đến một tệp hoặc thư mục khác. Nó tương đương với một phím tắt trong hệ điều hành Windows.
Các liên kết tượng trưng cải thiện khả năng truy cập của các tệp mà nếu không sẽ gặp khó khăn hoặc bất tiện.
Các biến môi trường là gì?
Trả lời: Đây là các biến động được đặt trong trình bao và được sử dụng để lưu trữ thông tin mà các chương trình cần chạy hoặc định cấu hình hành vi của chúng cho phù hợp với nhu cầu của người dùng.
Ví dụ về một số biến môi trường bao gồm LANG, lưu trữ ngôn ngữ mặc định trong hệ thống. TEMP cung cấp thư mục được sử dụng cho các tệp tạm thời và HOME, hiển thị thư mục chính của người dùng hiện tại, trong số những người khác.
Phân biệt giữa các lệnh Bash và dos để xem nội dung tệp.
Trả lời: Trong bash shell, các lệnh bạn có thể sử dụng để xem nội dung tệp bao gồm:
- cat – in nội dung của tệp ra màn hình
- nl – tương tự như cat, nhưng nó thêm số dòng vào nội dung được hiển thị
- less – đọc nội dung của tệp một trang (màn hình) tại một thời điểm
- head – xuất 10 dòng đầu tiên của tệp ra màn hình
- đuôi – xuất 10 dòng cuối cùng của tệp ra màn hình
Trong trình bao dos, các lệnh sau có thể được sử dụng để xem nội dung tệp:
- type – hiển thị nội dung của một tập tin mà không sửa đổi nó
- thêm – hiển thị nội dung của tệp trên một màn hình tại một thời điểm
Shell Bash và dos có các lệnh khác nhau được sử dụng để xem nội dung của tệp.
Kể tên một số bản phân phối Linux.
Trả lời: Bản phân phối Linux là các phiên bản Linux được xây dựng trên vỏ Linux được đóng gói và phân phối cho người dùng.
Một số bản phân phối Linux phổ biến bao gồm Ubuntu, Fedora, Debian, CentOS, Arch Linux, Red Hat Enterprise Linux và Mint Linux.
Các trạng thái tiến trình khác nhau trong Linux là gì?
Trả lời: Các trạng thái tiến trình chính trong Linux bao gồm:
- Đang chạy – một tiến trình hiện đang được thực thi bởi CPU
- Đang ngủ – một quá trình đang chờ các tài nguyên hiện không khả dụng
- Đã dừng – một quá trình đã bị chấm dứt bởi bộ xử lý hoặc tín hiệu
- Zombie – một tiến trình đã bị chấm dứt, nhưng tiến trình cha của nó vẫn chưa xóa hết tài nguyên của nó
Ở trên tạo nên các trạng thái quy trình chính trong Linux.
Các cuộc gọi hệ thống quản lý quy trình khác nhau trong Linux là gì?
Trả lời: Các cuộc gọi hệ thống quản lý quy trình khác nhau bao gồm:
- fork() – Được sử dụng để tạo một quy trình mới
- kill() – dùng để gửi tín hiệu kết thúc một tiến trình đang chạy
- wait() – tạm dừng thực thi tiến trình gọi cho đến khi tiến trình con kết thúc
- exec() – tải một chương trình vào quy trình hiện tại và chạy nó
- exit() – kết thúc thực thi chương trình
Trên đây là các lệnh gọi hệ thống quản lý tiến trình chính trong Linux.
Làm cách nào để tìm trạng thái của một quy trình?
Trả lời: Bạn có thể tìm trạng thái của một quy trình bằng cách thực hiện lệnh ‘ps’ để xem trạng thái hiện tại của tất cả các quy trình đang hoạt động trong hệ thống Linux.
Để xem thêm chi tiết về một quy trình cụ thể, hãy thực hiện như sau:
ps -p <processID>
Làm cách nào để dừng một tiến trình đang chạy trong Linux?
Trả lời: Bạn có thể dừng một tiến trình đang chạy trong Linux bằng cách thực hiện:
kill <processID>
Để giết một tiến trình đang chạy bằng ID của nó. Bạn cũng có thể dừng một tiến trình đang chạy theo tên của nó bằng cách thực hiện:
killall <processName>
Độ phân biệt chữ hoa chữ thường ảnh hưởng đến các lệnh như thế nào?
Trả lời: Trong HĐH Linux, các lệnh phân biệt chữ hoa chữ thường, nghĩa là trình bao coi các lệnh được viết trong các trường hợp khác nhau là khác biệt và khác nhau.
Chẳng hạn, lệnh ‘rmdir’ không giống như ‘RMDIR’. Trong HĐH Linux, các lệnh dòng lệnh thường được viết bằng chữ thường.
Lệnh được sử dụng để kiểm tra lượng bộ nhớ đang được Linux sử dụng là gì?
Trả lời: Lệnh free khi thực hiện sẽ hiển thị dung lượng đã sử dụng và dung lượng trống trong hệ thống. Các cờ khác nhau có thể được sử dụng với lệnh để hiển thị các loại thông tin khác nhau.
Lệnh ls là gì?
Trả lời: Đây là lệnh liệt kê nội dung của một thư mục.
Lệnh ps là gì?
Trả lời: Lệnh ps hiển thị thông tin về các tiến trình đang hoạt động.
Lệnh netstat là gì?
Trả lời: Đây là lệnh dùng để hiển thị các thông tin liên quan đến kết nối mạng trên hệ thống. Nó hiển thị thông tin về các kết nối mạng hiện đang hoạt động.
Lệnh cp là gì?
Trả lời: Đây là lệnh dùng để sao chép tệp và thư mục.
mkdir là gì?
Trả lời: Đây là lệnh dùng để tạo thư mục trong Linux.
Lệnh mèo là gì?
Trả lời: Đây là lệnh dùng để xem nội dung của tệp, tạo tệp mới, chuyển hướng đầu ra của các lệnh khác, nối nhiều tệp và hiển thị kết quả đầu ra trên màn hình.
Từ cuối cùng
Bài viết này về các câu hỏi và câu trả lời phỏng vấn Linux sẽ giúp bạn vượt qua cuộc phỏng vấn sắp tới.
May mắn nhất! 👍