Tin tức và phân tích của tất cả các thiết bị di động

Hơn 30 câu hỏi và câu trả lời thường gặp trong các cuộc phỏng vấn về Linux [2023]

Mặc dù hệ điều hành Linux có nguồn gốc là một dự án sở thích của Linus Torvalds vào năm 1991, nhưng nó đã trở thành một công cụ thống trị trong việc cung cấp năng lượng cho các 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à hiệu quả sử dụng tài nguyên. 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.

Năm 2021, Statista báo cáo rằng 47% lập trình viên chuyên nghiệp sử dụng Linux. Cùng năm đó, Báo cáo việc làm nguồn mở thường niên lần thứ 9 cho thấy lập trình và quản trị Linux là kỹ năng được yêu cầu nhiều thứ hai trong số các nhà quản lý và lập trình viên.

Kỹ năng Linux là chìa khóa 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à phân tích dữ liệu, cùng nhiều thứ khác. Do đó, nếu bạn quan tâm đến bất kỳ lĩnh vực nào trong số này, bạn có thể sẽ được mời phỏng vấn về các kỹ năng Linux của mình.

Để giúp bạn chuẩn bị, đây là một số câu hỏi phỏng vấn Linux phổ biến nhất mà bạn có thể gặp cùng với câu trả lời.

Linux là gì?

Trả lời: Linux là hệ điều hành mã nguồn mở và miễn phí được Linux Torvalds phát triển vào năm 1991 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 ích 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òn có ưu điểm là nhẹ, sử dụng ít RAM và bộ nhớ hơn nên có thể sử dụng được ngay cả trên các máy tính cũ.

Nói chung, 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 tùy chỉnh mọi thứ trong hệ điều hành để 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 nhà phát triển và thậm chí cả người dùng thông thường.

Các thành phần cốt lõi của hệ điều hành Linux là gì?

Trả lời: Hệ điều hành Linux bao gồm ba thành phần cơ bản.

  • Kernel: Đây là thành phần cốt lõi của hệ điều hành Linux. Đây là lớp thấp nhất trong hệ điều hành Linux và tương tác trực tiếp với phần cứng của máy tính. Hạt 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 dịch vụ cho các phần khác của hệ điều hành 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 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 một số chức năng nhất định, chẳng hạn như duyệt web, xử lý văn bản và phát nhạc, cùng nhiều chức năng khác.

Kernel, shell 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à tính chất mở của nó. Nhiều nhà phát triển thường xuyên xem xét mã Linux và khi phát hiện ra lỗi hoặc lỗ hổng bảo mật, lỗi đó sẽ được báo cáo lên diễn đàn Linux và được giải quyết trong vòng vài ngày.

Ngoài ra, cách Linux quản lý các quyền và quyền đảm bảo rằng quyền truy cập root theo mặc định không được cấp cho bất kỳ người dùng thông thường nào.

Điều này hạn chế thiệt hại mà virus có thể gây ra. Tỷ lệ sử dụng thấp của người dùng thông thường cũng góp phần đảm bả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 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à là thành phần chính 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ệ điều hành Linux. Hạt 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ớ, bộ xử lý và bộ lưu trữ.

Nó cũng đảm bảo rằng các nhiệm 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à hệ điều hành mã nguồn mở và miễn phí được phát triển bởi Linus Torvalds, trong khi Unix là hệ điều hành di động, độc quyền, đa tác vụ và nhiều người dùng được phát triển bởi AT&T. Unix không phải là mã nguồn mở không giống như Linux.

Giao diện đồ họa người dùng là gì?

Trả lời: Giao diện đồ họa người dùng (GUI) là giao diện người dùng dành cho hệ điều hành cho phép người dùng tương tác với hệ thống bằng cách sử dụng các thành phần đồ họa như cửa sổ, biểu tượng, menu, chỉ báo và thanh cuộn (WIMPS).

Các yếu tố đồ họa được thao tác bằng cách sử dụng 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 đã cho hoặc hiển thị thông tin được yêu cầu.

Giải thích vỏ Linux.

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ệ điều hành và do đó điều khiển máy tính của họ.

Shell nhận các lệnh ở định dạng mà con người có thể đọc được, diễn giải chúng theo dạng mà kernel hiểu được và sau đó chuyển chúng sang 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:

  • Vỏ Bourne được ký hiệu là sh
  • Bourne Again Shell được gắn thẻ là Bash
  • Vỏ C được đánh dấu csh
  • KornShell được gắn thẻ là ksh
  • Vỏ Z ký hiệu là zsh
  • Một vỏ tương tác thân thiện được đánh dấu là một con cá
  • Shell Almquist của Debian được đánh dấu bằng dấu gạch ngang
  • Vỏ TENEX C được đánh dấu tcsh

Dưới đâ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 được shell Linux thực thi theo thứ tự chúng xuất hiện.

Các tập lệnh Shell chứa các lệnh mà lẽ ra phải được nhập lần lượt vào giao diện dòng lệnh. Tập lệnh Shell rất hữu ích để tự động hóa các tác vụ lặp đi lặp lại hoặc thực hiện các tác vụ hàng loạt.

Giải thích quyền truy cập tệp trên Linux.

Trả lời: Có ba loại quyền truy cập 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 nội dung tập tin hoặc thư mục.
  • Write (w): Quyền ghi file cho phép người dùng sửa đổi nội dung của file. Quyền ghi thư mục cho phép người dùng thêm, xóa và đổi tên các tập tin trong thư mục.
  • Thực thi (x): Cho phép người dùng thực thi tệp dưới dạng chương trình. Trên Linux, người dùng không thể chạy chương trình nếu họ không có quyền thực thi.

Ở 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 được sử dụng, có nghĩa là “thay đổi chế độ”. chmod được sử dụng để thay đổi quyền của 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: (các) nhóm, (những) người dùng, (những) người khác và tất cả (những) người dùng. Quyền cho những người dùng này có thể được cấp bằng cách thêm (+) hoặc trừ (-) quyền đọc (r), viết (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 ra 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 một 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 đã cho, bạn có thể thực hiện các thao tác sau:

realpath <fileName>

tìm đường dẫn tuyệt đối đến nơi lưu trữ tập tin.

Làm cách nào để xóa một thư mục trong Linux?

Trả lời: Để xóa thư mục trên Linux, bạn có thể sử dụng lệnh rmdir. Lệnh này là viết tắt của “xóa thư mục” 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 test, hãy làm:

rmdir test

Để xóa một thư mục không trống, hãy thực hiện 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 hiếm khi được sử dụng, 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 không gian cho nhiều quy trình hơn trong RAM.

LILO là gì?

Trả lời: Linux Loader (LILO) là trình tải dành cho hệ điều hành Linux. Bộ nạp khởi động là chương trình tải hệ điều hành vào bộ nhớ và khởi động nó khi máy tính được bật.

Khi bạn bật máy tính, LILO sẽ đị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ớ. Sau khi thực hiện việc này, nó khởi động nhân Linux.

Chuyển hướng là gì?

Trả lời: Đây là sự thay đổi đối với nguồn đầu vào tiêu chuẩn, thường là bàn phím, đầu ra tiêu chuẩn và đích lỗi tiêu chuẩn, thường là màn hình.

Ví dụ: thông qua chuyển hướng, đầu vào có thể được lấy từ một tệp và thông tin đầu ra và lỗi có thể được ghi vào một tệp.

Nhóm lệnh là gì?

Trả lời: Đây là một cách để thực thi nhiều lệnh hàng loạt dưới dạng một đơn vị. Việc nhóm cho phép bạn thực thi nhiều lệnh dưới dạng một khối duy nhất.

Tính năng đóng gói thường sử dụng các tính năng như chuyển hướng và tạo đường dẫn để 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ỳ trạng thái hoặc dữ liệu nào. Tất cả việc lưu trữ dữ liệu được thực hiện ở phía máy khách và máy chủ không ghi lại dữ liệu mà nó xử lý.

Trái phiếu 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. Điều này làm tăng dung lượng mạng, thông lượng và kết nối dự phòng, cải thiện hiệu suất 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 để tìm kiếm các mẫu trong một tệp và hiển thị tất cả các dòng của tệp có chứa các mẫu. Mẫu bạn đang tìm kiếm là biểu thức chính quy và thường là một chuỗi.

Quỷ là gì?

Trả lời: Daemon là các chương trình tiện ích chạy ở chế độ nền 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 các thiết bị ngoại vi và thực hiện bảo trì hệ thống. Daemon giữ cho hệ điều hành hoạt động trơn tru.

Trả lời: Liên kết tượng trưng hay còn 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ệ điều hành 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 vốn khó khăn hoặc bất tiện.

Biến môi trường là gì?

Trả lời: Đây là các biến động được đặt trong shell và được sử dụng để lưu trữ thông tin cần thiết để chạy chương trình hoặc cấu hình hành vi của chúng theo 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 của 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, trong đó hiển thị thư mục chính của người dùng hiện tại.

Phân biệt các lệnh Bash và DOS để xem lại nội dung của file.

Trả lời: Trong bash, các lệnh bạn có thể sử dụng để xem nội dung của tệp bao gồm:

  • cat – hiển thị nội dung của tập tin trên màn hình
  • nl – tương tự như cat nhưng thêm số dòng vào nội dung 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 – hiển thị 10 dòng đầu tiên của file trên màn hình
  • tail – hiển thị 10 dòng cuối cùng của tệp trên màn hình

Trong shell DOS, bạn có thể sử dụng các lệnh sau để xem nội dung của tệp:

  • type – hiển thị nội dung của tệp mà không sửa đổi nó
  • hơn nữa – hiển thị nội dung của tập tin 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.

Liệt kê một số bản phân phối Linux.

Trả lời: Bản phân phối Linux là phiên bản Linux được xây dựng trên Linux shell đượ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 là 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 – tiến trình hiện đang được bộ xử lý thực thi
  • Ngủ – quá trình đang chờ tài nguyên hiện không có sẵn
  • Đã dừng – quá trình đã bị bộ xử lý hoặc tín hiệu chấm dứt
  • Zombie – Quá trình đã kết thúc, nhưng quá trình gốc của nó vẫn chưa dọn sạch tài nguyên của nó

Đây là các trạng thái tiến trình chính trong Linux.

Các lệnh gọi quản lý quy trình khác nhau trong Linux là gì?

Trả lời: Các lệnh gọi khác nhau tới hệ thống quản lý quy trình bao gồm:

  • fork() – Được sử dụng để tạo một tiến trình mới
  • kill() – được sử 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 quá trình gọi cho đến khi quá trình con kết thúc
  • exec() – tải chương trình vào tiến trình hiện tại và chạy nó
  • exit() – kết thúc việc thực hiện chương trình

Trên đây là các lệnh gọi chính tới hệ thống quản lý tiến trình trong Linux.

Làm thế nào để tìm trạng thái quá trình?

Trả lời: Bạn có thể tìm trạng thái của một tiến trình bằng cách thực thi lệnh “ps” để xem trạng thái hiện tại của tất cả các tiến trình đang hoạt động trên Linux.

Để xem thêm chi tiết về một quy trình cụ thể, hãy làm 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 trên Linux bằng cách thực hiện:

kill <processID>

Để tắ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 lệnh như thế nào?

Trả lời: Trong hệ điều hành Linux, các lệnh phân biệt chữ hoa chữ thường, có nghĩa là shell 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.

Ví dụ: “rmdir” không giống với “RMDIR”. Trên hệ điều hành Linux, các lệnh dòng lệnh thường là 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 miễn phí khi được thực thi sẽ hiển thị dung lượng đã sử dụng và dung lượng trống trên hệ thống. Các cờ khác nhau có thể được sử dụng trong 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 hiện đang hoạt động.

Lệnh netstat là gì?

Trả lời: Đây là lệnh dùng để hiển thị thông tin về các kết nối mạng trên hệ thống. 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 sao chép tập tin 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 để duyệt nội dung của một file, tạo một file mới, chuyển hướng đầu ra của các lệnh khác, kết hợp nhiều file và hiển thị đầu ra trên màn hình.

những từ cuối

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.

Chúc may mắn! 👍

Mục lục