#

Shell là gì? Tổng hợp kiến thức Shell trong Linux

 02/06/2022 - 11:03 Trịnh Duy Thanh

Trong hệ điều hành Linux/Unix, shell là một thành phần rất phổ biến. Tuy nhiên vẫn chưa nhiều người hiểu được shell là gì và đặc điểm cơ bản khi sử dụng các lệnh trong shell. Trong bài viết này, BKHOST sẽ cùng bạn tìm hiểu về Linux shell.

Shell là gì?

Shell la gi

Shell là một chương trình cung cấp cho bạn một giao diện với hệ thống Unix. Nó nhận thông tin đầu vào từ người dùng và thực hiện tập lệnh của các chương trình máy tính dựa trên những thông tin ấy. Khi một chương trình kết thúc việc thực hiện tập lệnh, shell sẽ hiển thị kết quả đầu ra của chương trình đó.

Đăng ký tên miền .VN tại BKHOST

BKHOST đang có chương trình khuyến mãi cực shock cho khách hàng đăng ký tên miền .VN:

  • Giảm ngay 140k.
  • Miễn phí 100% dịch vụ khởi tạo.

đăng ký tên miền .vn giá rẻ

Shell là môi trường mà chúng ta có thể chạy các lệnh, chương trình và script shell. Trong một shell có nhiều kiểu khác nhau, nó giống như việc các hệ điều hành có những kiểu riêng biệt. Mỗi kiểu của shell đều có một bộ lệnh và chức năng được xác định riêng.

Dấu nhắc lệnh trong Shell

Trong shell có một dấu nhắc lệnh $. Khi dấu nhắc lệnh này được shell đưa ra, bạn có thể nhập lệnh vào. Sau khi bạn nhấn enter, shell sẽ tiếp nhận thông tin đầu vào mà bạn cung cấp. Từ đầu tiên của thông tin nhập vào là từ mà shell dùng để xác định lệnh bạn muốn thực thi. Giữa các từ ấy không được có khoảng trống. Dấu nhắc lệnh hoàn toàn có thể tùy chỉnh theo ý của mình nếu bạn sử dụng biến môi trường PS1 được giải thích trong phần Environment tutorial.

Dưới đây là một ví dụ đơn giản của lệnh date mà hiển thị ngày và thời gian hiện tại:

$date
Thu Jun 25 08:30:19 MST 2009

Các loại Shell

Trong Unix gồm có hai loại shell chính là Bourne shell và C shell. Bourne shell có dấu nhắc lệnh mặc định là ký tự “$”. Còn C shell sẽ có ký tự là “%”.

Bourne shell có các danh mục phụ bao gồm:

  • Bourne shell (sh)
  • Korn shell (ksh)
  • Bourne Again shell (bash)
  • POSIX shell (sh)

Các danh mục phụ của C shell bao gồm:

  • C shell (csh)
  • TENEX/TOPS C shell (tcsh)

Vào giữa những năm 1970, Stephen R. Bourne đã viết ra phần mềm Unix gốc khi đang làm việc tại AT&T Bell Labs ở New Jersey. Được gọi là “shell” do Bourne shell là shell đầu tiên có mặt trên hệ thống Unix.

Trên hầu hết các phiên bản Unix, Bourne shell thường được cài đặt ở dạng /bin/sh. Do đó, ở các phiên bản khác nhau của Unix, các script thường được viết bởi shell này. Trong bài viết này, hầu hết các khái niệm shell đều được viết dựa trên Bourne shell.

Shell Script

Shell Script của nó là một danh sách các lệnh, các lệnh sẽ được thực hiện theo thứ tự đã liệt kê. Một shell script tuyệt vời sẽ có chú thích, đứng trước # và diễn đạt các bước rõ ràng.

Sẽ có các kiểm tra mà trong đó sẽ có điều kiện như giá trị A lớn hơn giá trị B. Chúng ta có thể xem, đọc một lượng lớn dữ liệu hoặc file khi được các vòng lặp cho phép. Sau đó chúng ta có thể dùng các dữ liệu và biến để lưu trữ hoặc đọc các dữ liệu, script chứa các hàm.

Để giúp bạn hiểu rõ hơn về shell script, dưới đây sẽ là một số ví dụ. Các tập lệnh và chức năng của shell đều sẽ được diễn đạt một cách dễ hiểu. Về cơ bản thì đây vẫn chỉ là những script đơn giản. Trong các script này sẽ có một số phần cần thiết cho môi trường shell biết phải làm gì và khi nào thực hiện.

Ví dụ về script

Giả sử chúng ta tạo ra một tập lệnh test.sh, trước khi bạn thêm bất cứ thứ gì vào tập lệnh này, bạn phải sử dụng cấu trúc shebang để thông báo cho hệ thống rằng có một tập lệnh đang bắt đầu chạy.

Hãy nhớ là tất cả các tập lệnh đều có phần đuôi “.sh”. Với các tập lệnh có đuôi sh, hệ thống sẽ biết rằng các tập lệnh sau đó đều được thực hiện bởi trình Bourne. Ví dụ nhập các lệnh với cấu trúc shebang như sau:

#!/bin/bash
pwd
ls

Comment trong Shell

Bạn có thể đưa phần comment của mình vào script như sau:

#!/bin/bash

# Author : Zara Ali
# Copyright (c) Tutorialspoint.com
# Script follows here:
pwd
ls

Lưu chúng lại và cho shell thực thi tập lệnh bằng câu lệnh:

$chmod +x test.sh

Tập lệnh shell đã sẵn sàng để bắt đầu thực thi:

$./test.sh

Bạn sẽ nhận được kết quả sau khi lệnh hoàn thành như sau:

/home/amrood
index.htm unix-basic_utilities.htm unix-directories.htm
test.sh unix-communication.htm unix-environment.htm

Chú ý: Để thực thi chương trình có sẵn trong thư mục, bạn hãy sử dụng đuôi ./program_name

Shell Scripts nâng cao

Hầu hết các script trên đều là script đơn giản. Tuy nhiên dù có phức tạp như thế nào thì shell scripts vẫn chỉ là tập lệnh được thực hiện tuần tự với các biến, cấu trúc điều khiển,…

Sau khi sử dụng lệnh đọc, người dùng nhập thông tin vào từ bàn phím và gán nó vào giá trị biến PERSON và đặt nó trên STDOUT

# ! /bin/ sh

# Author : Zara Ali
# Copyright (c) Tutorialspoint.com
# Script follows here:

echo”What is your name?”
read PERSON
echo “Hello, $PERSON”

Ví dụ khi chạy thử đoạn lệnh trên

$./test.sh
What is your name?
Zara Ali
Hello, Zara Ali
$

Tổng kết về Shell

Trên đây là những thông tin cơ bản về Linux shell mà BKHOST đã tổng hợp. Vẫn còn nhiều vấn đề khác về shell mà bạn sẽ cần tìm hiểu kỹ nếu muốn sử dụng.

Ngoài ra, nếu bạn muốn tìm hiểu thêm những thông tin khác về Linux shell, hãy để lại bình luận ở bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất.

P/s: Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.

Dịch vụ Cloud VPS tiêu chuẩn quốc tế

BKHOST đang có chương trình khuyến mãi cực shock dành cho khách hàng đăng ký dịch vụ Cloud VPS Pro:

  • Giảm giá lên đến 30%.
  • Giá chỉ từ 125k/tháng.
  • Tặng thêm 512MB Ram khi đăng kí từ 12 tháng trở lên.

Đăng ký ngay:

thuê máy chủ vps

Tôi là Trịnh Duy Thanh, CEO & Founder Công ty Cổ Phần Giải Pháp Mạng Trực Tuyến Việt Nam - BKHOST. Với sứ mệnh mang tới các dịch vụ trên Internet tốt nhất cho các cá nhân và doanh nghiệp trong nước và quốc tế, tôi luôn nỗ lực hết mình nâng cấp đầu tư hệ thống phần cứng, nâng cao chất lượng dịch vụ chăm sóc khách hàng để đem đến những sản phẩm hoàn hảo nhất cho người tiêu dùng. Vì vậy, tôi tin tưởng sẽ đem đến các giải pháp CNTT mới nhất, tối ưu nhất, hiệu quả nhất và chi phí hợp lý nhất cho tất cả các doanh nghiệp.
Bình luận

Thanh toán linh hoạt

Chúng tôi chấp nhận thanh toán như ATM, Visa, Internet Banking, Paypal, Baokim, Ngân lượng

Gọi ĐT tư vấn ngay
Chat ngay qua Zalo
Chat ngay qua Messenger