Mục lục[Ẩn giấu][Chỉ]
- 1. Shell chính xác là gì?
- 2. Shell Scripting chính xác là gì?
- 3. Giải thích lợi ích của kịch bản shell.
- 4. Mô tả lập trình GUI.
- 5. Trong lập trình shell, chính xác thì superblock là gì?
- 6. Liệt kê vô số loại shell có thể truy cập.
- 7. Viết sự phân biệt giữa Bourne Shell và C Shell.
- 8. Các biến Shell chính xác là gì?
- 9. Có bao nhiêu loại biến trong Shell Script?
- 10. Lệnh nào dùng để chạy tệp shell?
- 11. Bạn có thể cho tôi biết gì về kịch bản Super Block in Shell?
- 12. Chính xác thì siêu ký tự là gì?
- 13. Sự phân biệt giữa liên kết mềm và liên kết cứng?
- 14. Ý nghĩa của dòng Shebang trong Shell Scripting?
- 15. Quy trình Linux trải qua mấy bước?
- 16. Mô tả Crontab.
- 17. Chính xác thì các hướng dẫn kiểm soát là gì?
- 18. Sự khác biệt giữa $* và $@ là gì?
- 19. Vui lòng giải thích cách bạn so sánh các chuỗi trong một tập lệnh shell.
- 20. Tôi có thể tạo, đọc và xóa tệp bằng cách nào?
- 21. Có thể phân biệt liên kết cứng và liên kết mềm trong kịch bản shell không?
- 22. Bạn sẽ khắc phục các lỗi trong chương trình shell như thế nào?
- 23. Có bao nhiêu khối trong một hệ thống tệp?
- 24. Tại sao bash là một ngôn ngữ được đánh máy yếu?
- 25. Một biến trong tập lệnh shell có bao lâu?
- 26. Đặt tên cho lệnh thay thế cho echo.
- 27. Định nghĩa IFS
- 28. Có thể chạy nhiều tập lệnh trong Shell không?
- 29. Nhiều chế độ của trình soạn thảo vi là gì?
- 30. Sự khác biệt giữa $! và $$?
- 31. $ # có nghĩa là gì?
- 32. Đặt tên cho lệnh được sử dụng để tạo bản sao lưu.
- 33. Khi nào thì không thích hợp để sử dụng Shell Scripting?
- 34. Bạn sẽ kết nối với máy chủ cơ sở dữ liệu từ Linux như thế nào?
- 35. Hai tệp lệnh crontab là gì?
- 36. Ba biện pháp bảo mật UNIX riêng biệt cho tệp hoặc dữ liệu là gì?
- 37. Giải thích ngắn gọn lệnh sed bằng một ví dụ.
- 38. Trong kịch bản shell, mục đích của các công cụ đi kèm với trình điều khiển máy khách mở là gì?
- 49. Đặt tên cho lệnh sẽ được sử dụng để xác định thời lượng của hệ thống.
- 40. Tạo một tập lệnh để thêm nhiều giá trị.
- 41. Tạo một ví dụ về hàm.
- Kết luận
Tập lệnh shell là một chương trình máy tính hoặc trình thông dịch dòng lệnh được dùng để chạy bởi Unix shell. Khía cạnh đẹp nhất về việc xây dựng kịch bản shell là các hướng dẫn và cú pháp giống hệt với những gì được nhập trực tiếp tại dòng lệnh.
Linux là một hệ điều hành mã nguồn mở phổ biến được công nhận nhờ tính bảo mật cao và giao diện dòng lệnh. Điều quan trọng đối với các kỹ sư DevOps tham vọng là phải hiểu kịch bản shell hoặc kịch bản bash.
Nếu bạn đã quen thuộc với shell script và đang chuẩn bị cho một cuộc phỏng vấn xin việc, thì bài viết câu hỏi và câu trả lời phỏng vấn shell scripting này sẽ cung cấp cho bạn những câu hỏi phỏng vấn shell script hay nhất sẽ giúp bạn chuẩn bị dễ dàng hơn.
1. Shell chính xác là gì?
Vỏ phục vụ như một cầu nối giữa người dùng và hạt nhân. Mặc dù chỉ có thể có một hạt nhân, một hệ thống có thể có nhiều trình bao chạy cùng một lúc.
Do đó, bất cứ khi nào người dùng nhập một lệnh vào bàn phím, shell sẽ nói chuyện với hạt nhân để thực thi nó và sau đó hiển thị kết quả cho người dùng.
2. Shell Scripting chính xác là gì?
Shell Scripting là một phần mềm máy tính mã nguồn mở và miễn phí chạy trong Unix / Linux shell. Phần mềm Shell Scripting cho phép bạn viết một loạt các lệnh mà trình bao sẽ thực thi.
Nó có thể tích hợp các chuỗi lệnh dài và lặp đi lặp lại vào một tập lệnh duy nhất và dễ dàng có thể được lưu và thực hiện bất kỳ lúc nào, giảm bớt nỗ lực lập trình.
3. Giải thích lợi ích của kịch bản shell.
- Hầu hết mọi hệ điều hành hiện tại, bao gồm UNIX, Linux, BSD và Mac OS X, đều có thể chạy các tập lệnh shell vì chúng được tạo bằng một ngôn ngữ thông dịch.
- Một công cụ gỡ lỗi có tính tương tác cũng như khởi động nhanh chóng.
- Nó tiết kiệm thời gian bằng cách giúp tự động hóa các nhiệm vụ hành chính.
- Người lập trình không cần điều chỉnh cú pháp của mình vì lệnh và cú pháp giống như lệnh được đặt thẳng vào dòng lệnh.
- Tập lệnh Shell rất dễ sử dụng và viết.
- Với công cụ này, các ứng dụng phần mềm có thể được tạo ra phù hợp với các nền tảng tương ứng của chúng.
- Thay vì các hướng dẫn đơn lẻ, chúng có thể được sử dụng để thực thi hàng loạt.
- Bạn có thể sử dụng nó để tạo hệ điều hành tùy chỉnh của riêng mình với các chức năng cần thiết.
4. Mô tả lập trình GUI.
Đồ họa Giao diện người dùng Lập trình (GUI) cần thiết để vận hành máy tính và ứng dụng được gọi là tập lệnh GUI. Nó hoạt động với một số hệ điều hành và được sử dụng để điều khiển các chương trình khác nhau.
5. Trong lập trình shell, chính xác thì superblock là gì?
Một phần mềm được gọi là superblock lưu trữ các bản ghi của một số hệ thống tệp nhất định. Kích thước, số lượng các khối được lấp đầy và trống, dữ liệu sử dụng, kích thước nhóm khối cũng như vị trí và kích thước của bảng inode nằm trong số các thuộc tính có thể tìm thấy trong một khối.
6. Liệt kê vô số loại shell có thể truy cập.
- Bourne shell: Khi sử dụng loại Bourne shell, dấu nhắc mặc định là biểu tượng $.
- C Shell: Khi sử dụng C-type shell, dấu nhắc mặc định là ký tự%.
- Korn shell: Korn là một ứng dụng kịch bản Shell dựa trên Unix, ban đầu dựa trên Bash Shell Scripting. Vỏ này rất phức tạp và sử dụng mức cao ngôn ngữ lập trình.
- TCSH: Không có một mẫu TCSH hoàn chỉnh nào. Nó là như thế nào. TCSH là một phiên bản phức tạp hơn của vỏ Berkeley Unix C. Bây giờ nó hỗ trợ cú pháp C.
7. Viết sự phân biệt giữa Bourne Shell và C Shell.
Bourne Shell: Sự nhỏ gọn và tốc độ của nó giúp phân biệt nó với các loại vỏ khác. Tuy nhiên, các yếu tố tương tác như khả năng ghi nhớ các yêu cầu trước bị thiếu. Hơn nữa, số học và biểu thức logic không được hỗ trợ bởi trình bao Bourne.
C Shell: Đây là một cải tiến của UNIX bao gồm các tính năng tương tác như bí danh và lịch sử lệnh. Nó chứa các khả năng lập trình dễ dàng ngoài ngữ pháp số học và biểu thức tích hợp.
8. Các biến Shell chính xác là gì?
Các biến Shell là nền tảng của mọi chương trình hoặc tập lệnh Shell. Các biến cho phép Shell lưu trữ và thay đổi dữ liệu trong ứng dụng Shell. Biến chuỗi thường được sử dụng để giữ các biến shell.
9. Có bao nhiêu loại biến trong Shell Script?
Hệ điều hành (Linux) tạo và định nghĩa các biến do hệ thống xác định. Các biến này thường được định nghĩa bằng chữ in hoa và có thể được kiểm tra bằng lệnh “set”.
Các biến do người dùng xác định được tạo hoặc chỉ định bởi người dùng hệ thống và giá trị của chúng có thể được kiểm tra bằng cách thực hiện lệnh “echo”.
10. Lệnh nào dùng để chạy tệp shell?
11. Bạn có thể cho tôi biết gì về kịch bản Super Block in Shell?
Super Block chỉ đơn giản là phần mềm lưu trữ thông tin về một số hệ thống tệp nhất định.
Một siêu khối chứa thông tin như kích thước khối, số khối trống và khối đầy đủ và số lượng tương ứng của chúng, kích thước và vị trí của các bảng inode, bản đồ khối đĩa, thống kê sử dụng và kích thước của các nhóm khối.
12. Chính xác thì siêu ký tự là gì?
Siêu ký tự là một ký tự duy nhất được kết hợp vào chương trình hoặc trường dữ liệu của trình bao. Nó cung cấp thông tin về các ký tự khác. Ví dụ: để liệt kê tất cả các tệp bắt đầu bằng ký tự 's', hãy sử dụng lệnh 'ls s *'.
13. Sự phân biệt giữa liên kết mềm và liên kết cứng?
Các liên kết mềm được liên kết với tên tệp và có thể tồn tại trên các hệ thống tệp khác nhau; ngược lại, các liên kết cứng được liên kết với inode của tệp và phải nằm trên cùng một hệ thống tệp với tệp.
Việc xóa tệp gốc làm cho liên kết mềm không hoạt động (liên kết bị hỏng), nhưng không ảnh hưởng đến kết nối cứng và liên kết cứng sẽ vẫn truy cập vào bản sao của tệp.
14. Ý nghĩa của dòng Shebang trong Shell Scripting?
Dòng Shebang thường nằm ở đầu tập lệnh, ví dụ: #! / Bin / sh. Dòng này chỉ định vị trí của động cơ. Công cụ này thường là công cụ chạy script.
15. Quy trình Linux trải qua mấy bước?
Thông thường, một quy trình Linux trải qua bốn giai đoạn sau:
- Đang chờ: Tài nguyên đang được chờ đợi bởi quá trình Linux.
- Đang chạy: Hiện tại, tiến trình Linux đang chạy.
- Đã dừng: Sau khi thực thi thành công, quá trình Linux bị chấm dứt.
- Zombiee Quá trình đã tạm dừng, nhưng bảng quá trình vẫn hiển thị nó đang hoạt động.
16. Mô tả Crontab.
Crontab là viết tắt của bảng cron vì trình lập lịch công việc 'cron' được sử dụng để thực hiện các công việc. Nó là một tập hợp các lệnh được thực hiện một cách thường xuyên và tên của lệnh cũng điều khiển danh sách.
Lịch trình và công cụ được sử dụng để thay đổi lịch trình đều được gọi là Crontab.
17. Chính xác thì các hướng dẫn kiểm soát là gì?
Hướng dẫn điều khiển cho biết cách thực hiện các lệnh khác nhau của tập lệnh. Chúng thường được sử dụng trong các ứng dụng Shell để đánh giá kiểm soát dòng chảy.
Nếu không có các hướng dẫn này, việc thực thi một tập lệnh shell sẽ tiến hành theo trình tự. Các hướng dẫn điều khiển ảnh hưởng đến cách thực thi tiến hành trong các chương trình shell.
18. Sự khác biệt giữa $* và $@ là gì?
$@ coi mỗi đối số được trích dẫn là một đối số riêng biệt, trong khi $* coi toàn bộ tập hợp các tham số vị trí là một chuỗi đơn.
19. Vui lòng giải thích cách bạn so sánh các chuỗi trong một tập lệnh shell.
Lệnh 'test' được sử dụng để so sánh các chuỗi văn bản. Lệnh này so sánh các chuỗi văn bản bằng cách so sánh các ký tự của mỗi chuỗi.
20. Tôi có thể tạo, đọc và xóa tệp bằng cách nào?
21. Có thể phân biệt liên kết cứng và liên kết mềm trong kịch bản shell không?
Shell scripting là một giải pháp mạnh mẽ, giống như Windows, sử dụng các liên kết để xây dựng các phím tắt. Các liên kết mềm không có vị trí cố định và có thể được tìm thấy ở khắp mọi nơi trên cùng một hệ thống tệp.
Chúng thường được gắn với tên tệp. Mặt khác, các liên kết cứng vẫn nằm trên cùng một hệ thống tệp. Trong hầu hết các tình huống, liên kết cứng được liên kết với các nút và có một vị trí cố định nhất định.
22. Bạn sẽ khắc phục các lỗi trong chương trình shell như thế nào?
Một số cách phổ biến để khắc phục lỗi tập lệnh là:
- Set-x được sử dụng để cho phép gỡ lỗi.
- Chèn các câu lệnh gỡ lỗi vào tập lệnh shell để hiển thị thông tin hỗ trợ việc phát hiện ra sự cố.
23. Có bao nhiêu khối trong một hệ thống tệp?
- Superblock: Khối này cung cấp thông tin chi tiết về điều kiện của hệ thống tệp, bao gồm kích thước khối, kích thước nhóm khối, dữ liệu sử dụng, số lượng khối trống và được lấp đầy, kích thước và vị trí của bảng inode, v.v.
- Bootblock: Phần mềm bootstrap loader, chạy khi người dùng khởi động hệ thống máy chủ, được lưu trữ trong khối này.
- Khối dữ liệu: Khối dữ liệu này chứa nội dung tệp của hệ thống tệp.
- Bảng inode: UNIX xử lý tất cả các thành phần dưới dạng tệp và bảng inode là kho lưu trữ tất cả dữ liệu liên quan đến tệp.
24. Tại sao bash là một ngôn ngữ được đánh máy yếu?
Do thiếu yêu cầu khai báo kiểu dữ liệu khi khai báo biến, Bash là một ngôn ngữ được đánh máy yếu. Loại của một biến được xác định bởi giá trị hiện tại của nó và được coi như một chuỗi trong Bash.
Lệnh khai báo có thể được sử dụng để xác định các biến Bash.
Tuy nhiên, khả năng xác định kiểu dữ liệu bị hạn chế và không bao gồm tất cả các kiểu dữ liệu. Ví dụ, lệnh khai báo không thể được sử dụng với kiểu dữ liệu float.
25. Một biến trong tập lệnh shell có bao lâu?
Một biến trong tập lệnh shell có thời gian tồn tại cho đến khi kết thúc quá trình thực thi.
26. Đặt tên cho lệnh thay thế cho echo.
Lệnh tput là một thay thế cho tiếng vọng. Chúng ta có thể sử dụng lệnh này để kiểm soát cách hiển thị đầu ra. Hơn nữa, bất kể kích thước màn hình, tập lệnh shell có thể thực hiện những thứ như gạch chân và văn bản chính giữa.
27. Định nghĩa IFS
IFS là viết tắt của Internal Field Separator. Nó là một biến hệ thống với giá trị mặc định là dấu cách, tab, theo sau là một dòng mới. IFS cho biết vị trí một trường hoặc từ kết thúc trong một dòng và một trường khác bắt đầu.
28. Có thể chạy nhiều tập lệnh trong Shell không?
Có, nhiều tập lệnh có thể được thực thi trong một Shell. Bạn có thể gọi một tập lệnh này từ một tập lệnh khác bằng cách chạy một số tập lệnh. Để làm như vậy, bạn phải chỉ định tên của tập lệnh mà bạn muốn gọi.
29. Nhiều chế độ của trình soạn thảo vi là gì?
- Chế độ lệnh: đây là chế độ mà bạn bắt đầu.
- Chế độ chỉnh sửa: Tùy chọn này cho phép bạn thực hiện các chỉnh sửa tiếp theo.
- Trong chế độ này, bạn tương tác với vi và cung cấp cho nó hướng dẫn để xử lý.
30. Sự khác biệt giữa $! và $$?
$! Hiển thị id quy trình của quy trình gần đây đã chạy ở chế độ nền.
$$ trả về id quy trình của quy trình hiện đang thực thi.
31. $ # có nghĩa là gì?
$ # thường chứa số lượng đối số, mặc dù điều này có thể khác nhau đối với các hàm. Được mô tả một cách đơn giản, nó được sử dụng để ghi lại số lượng các tham số dòng lệnh được cung cấp cho một tập lệnh shell.
32. Đặt tên cho lệnh được sử dụng để tạo bản sao lưu.
Lệnh tar được sử dụng để tạo một bản sao lưu. Tar là tên viết tắt của kho lưu trữ băng và nó được sử dụng để xây dựng các bản sao lưu sử dụng tar, gzip và bzip. Lệnh này có thể lưu và khôi phục các tệp từ và vào một băng.
Nói chung, các tệp và thư mục được nén thành tarball, là các tệp lưu trữ. Đó là một trong những hướng dẫn được sử dụng nhiều nhất vì lý do này. Ngoài ra, tarball chỉ có thể chuyển từ máy chủ này sang máy chủ khác.
33. Khi nào thì không thích hợp để sử dụng Shell Scripting?
Chúng ta không nên sử dụng Shell Scripting nếu công việc thực sự phức tạp, chẳng hạn như xây dựng toàn bộ hệ thống xử lý bảng lương.
Chúng ta không nên sử dụng Shell Scripting nếu công việc cần năng suất cao.
Chúng ta không nên sử dụng Shell Scripting nếu dự án yêu cầu một số giải pháp phần mềm.
34. Bạn sẽ kết nối với máy chủ cơ sở dữ liệu từ Linux như thế nào?
Chúng ta có thể sử dụng tiện ích isql đi kèm với trình điều khiển máy khách đang mở như sau:
35. Hai tệp lệnh crontab là gì?
cron.allow xác định người dùng nào phải được phép sử dụng lệnh crontab.
cron.deny, xác định xem người dùng có nên bị cấm sử dụng lệnh crontab hay không.
36. Ba biện pháp bảo mật UNIX riêng biệt cho tệp hoặc dữ liệu là gì?
- Nó cung cấp bảo mật cấp độ tệp bằng cách cấp quyền đọc, ghi và thực thi cho tệp.
- Nó cung cấp cho người dùng một id người dùng và mật khẩu duy nhất để xác thực để các cá nhân không quen thuộc hoặc trái phép không thể truy cập vào nó.
- Nó cung cấp bảo mật bởi mã hóa các tập tin. Cách tiếp cận này cho phép bạn mã hóa một tệp ở định dạng không thể đọc được. Ngay cả khi một tệp được mở ra, nội dung của nó vẫn không thể đọc được cho đến khi nó được giải mã.
37. Giải thích ngắn gọn lệnh sed bằng một ví dụ.
sed là tên viết tắt của trình chỉnh sửa luồng. Nó được sử dụng để chỉnh sửa tệp mà không cần sử dụng trình chỉnh sửa. Nó được sử dụng để thay đổi một luồng nhất định, chẳng hạn như đầu vào tệp hoặc đường ống.
38. Trong kịch bản shell, mục đích của các công cụ đi kèm với trình điều khiển máy khách mở là gì?
Hệ thống được kết nối duy nhất với một máy chủ cơ sở dữ liệu thông qua các công cụ. Người dùng được yêu cầu hoàn thành một số hoạt động quan trọng và cần thiết cho việc lập trình.
Đối với kịch bản, cần nhiều dữ liệu và thông tin hơn và không phải lúc nào cũng thực tế để giữ chúng ở một chỗ. Người dùng sử dụng phương pháp này phải đảm bảo đầu ra không có lỗi.
49. Đặt tên cho lệnh sẽ được sử dụng để xác định thời lượng của hệ thống.
Sử dụng lệnh Uptime, bạn có thể xác định hệ thống của mình đã hoạt động trong bao lâu. Số lượng người dùng có phiên hoạt động và tải hệ thống điển hình hơn 1, 5 và 15 phút cũng có sẵn.
Bạn cũng có thể lọc thông tin được hiển thị cùng một lúc theo các lựa chọn bạn thực hiện.
40. Tạo một tập lệnh để thêm nhiều giá trị.
41. Tạo một ví dụ về hàm.
Kết luận
Bạn có thể hiểu rằng shell chủ yếu là một giao diện giữa hệ điều hành và người dùng để dịch các hướng dẫn do người dùng nhập sang hệ điều hành hoặc hạt nhân với sự hỗ trợ của các câu hỏi phỏng vấn về shell-scripting này.
Khái niệm này thường rất quan trọng trong quá trình chuẩn bị phỏng vấn cho Kỹ sư DevOps và người kiểm tra tự động hóa. Shell scripting cho phép tạo các script ở các mức độ phức tạp khác nhau. Tập lệnh Shell cũng có thể được sử dụng để tự động hóa nhiều quy trình lặp lại.
Xem Loạt bài phỏng vấn của Hashdork để được giúp đỡ trong việc chuẩn bị phỏng vấn.
Bình luận