Shell Script là gì? Linux Shell Là Gì? Tìm Hiểu Các Khái Niệm Liên Quan

Shell Script là một phần của quy trình tự động hóa trong Linux. Scripting giúp thực thi chuỗi lệnh vào một tệp tin dễ dàng. Bạn cũng gặp Shell khi sử dụng terminal trong Linux Mint hay Ubuntu. Vậy Shell Script là gì? Linux Shell là gì? Đọc ngay bài viết sau nhé!

Kernel là gì?

Kernel là phần mềm cốt lõi của hệ điều hành, đóng vai trò quản lý và kiểm soát tất cả các khía cạnh của hệ thống máy tính, bao gồm quản lý file, quản lý quá trình, quản lý bộ nhớ và thiết bị. Kernel giữ toàn quyền kiểm soát tối cao và quản lý tài nguyên quan trọng trong hệ thống và đảm bảo các phần khác của hệ điều hành, ứng dụng hoạt động một cách hợp lý.

Kernel được ví như trái tim của hệ thống được phát triển bởi Linus Torvalds.

Kernel là gì?
Kernel là gì

Thế nào là Shell?

Shell là một chương trình đặc biệt trong hệ điều hành, chịu trách nhiệm cung cấp giao diện người dùng khi tương tác với hệ thống. Khi người dùng nhập các lệnh hoặc câu lệnh thông qua shell, nó sẽ chuyển chúng thành ngôn ngữ mà kernel có thể hiểu và thực thi. Hoặc bạn cũng có thể hiểu shell như một trình phiên dịch vì nó dịch các lệnh từ ngôn ngữ con người sang ngôn ngữ máy tính. Shell nhận dữ liệu từ các thiết bị ngoại vi hoặc từ file và thực hiện các tác vụ tương ứng.

Thế nào là Shell?
Shell là gì?

Có hai loại Shell chính đó là Command Line Shell và loại thứ hai là Graphical Shell.

Command Line Shell

Shell được truy cập qua command line hoặc terminal. Tuy nhiên Shell Command Line có thể hơi khó khăn đối với người mới bởi phải sử dụng nhiều câu lệnh phức tạp. Đây cũng là một công cụ mạnh mẽ cho phép người dùng lưu trữ, thực thi nhiều tệp dữ liệu cùng lúc một cách tự động hóa. Các tệp dữ liệu này được coi là file batch trong windows hay Shell Script trong macOS/ Linux.

Graphical Shell

Graphical shell là một thành phần trong hệ thống giao diện đồ họa (GUI) trong đó, người dùng có khả năng tương tác với các chương trình và ứng dụng bằng cách sử dụng giao diện đồ họa thay vì phải nhập các câu lệnh văn bản. Nó cho phép người dùng thực hiện các tác vụ như đóng, mở, di chuyển cửa sổ hay điều hướng giữa các ứng dụng một cách trực quan, tương tự như khi sử dụng các hệ điều hành như Windows hoặc Ubuntu.

Phần lớn các Shell đều cùng thực hiện một nhiệm vụ, tuy nhiên sử dụng nhiều câu lệnh và hàm khác nhau để thực hiện. Hiện nay có một Shell sẵn có như:

  • CSH (C Shell): Tương tự như ngôn ngữ lập trình C.
  • BASH (Bourne Again Shell): Phổ biến trên Linux, thường được dùng để đăng nhập mặc định trên macOS và Linux. Nếu cần cũng có thể dễ dàng cài đặt.
  • KSH (Korrn Shell): Là cơ sở cho các thông số kỹ thuật thuộc POSIX Shell.

Quan tâm: 7 Bước Cài Đặt Giao Diện Desktop GUI Cho Ubuntu Server 20.04

Shell Script là gì?

Shell không chỉ nhận lệnh từ người dùng mà còn cho phép thực hiện các lệnh được lưu trữ trong files, Shell Script giúp tiết kiệm thời gian khi bạn cần thực hiện các lệnh thường xuyên.

Ngoài việc thực hiện lệnh nhập từ bàn phím, Shell cũng có khả năng đọc các lệnh từ các tệp tin. Cho phép bạn viết các chuỗi lệnh trong tệp tin và thực thi chúng mà không cần phải gõ lại lệnh. Các tệp tin này thường được gọi là Shell Script hoặc Shell Program và thường có phần mở rộng là “.sh“. Điều này tương tự như việc sử dụng các tệp batch trong MS-DOS.

Shell Script là gì?
Shell Script là gì

Shell Script có cú pháp tương tự các ngôn ngữ lập trình, rất có lợi đối với những người đã biết và sử dụng Python hay C/C++. Các thành phần thuộc Shell Script bao gồm:

  • Keyword: else, if, break,…
  • Hàm
  • Lệnh: ls, pwd, cd, echo,…
  • Control: else…them…if

Ưu nhược điểm của Shell Script là gì?

Về ưu điểm:

  • Việc viết lệnh trong Shell script sử dụng cùng cú pháp giống với việc viết lệnh trực tiếp trong dòng lệnh, vì vậy không cần phải thay đổi cách bạn sử dụng lệnh.
  • Tiết kiệm thời gian, viết lệnh nhanh chóng.
  • Khả năng bắt đầu nhanh chóng
  • Thực hiện Debug và nhiều tính năng khác.

Về nhược điểm:

  • Vẫn có thể gặp lỗi trong một số trường hợp, một lỗi đơn lẻ có thể gây ra hậu quả nghiêm trọng.
  • Tốc độ thực thi chậm hơn so với một số ngôn ngữ khác.
  • Có thể xảy ra lỗi trong thiết kế cú pháp hoặc trong quá trình thực hiện mã lệnh.
  • Không phù hợp cho các tác vụ lớn và phức tạp.
  • Cung cấp cấu trúc dữ liệu ít linh hoạt hơn so với một số ngôn ngữ khác.

Ví dụ về Shell Scripting

Trong phần cuối cùng của bài viết về Shell Script và Linux Shell, chúng ta sẽ cùng điểm qua một vài ví dụ về Shell Script.

Nếu muốn từ thư mục hiện tại trở về Python thì thực hiện câu lệnh sau:

Tạo công cụ điều hướng tới thư mục bằng nhập tên thư mục

# !/bin/bash 

# A simple bash script to move up to desired directory level directly 

function jump( ) 

{

# original value of Internal Field Separator

OLDIFS=$IFS

# setting field separator to “/” 

IFS=/

# converting working path into array of directories in path

# eg. /my/path/is/like/this

# into [, my, path, is, like, this] 

path_arr=($PWD)

# setting IFS to original value

IFS=$OLDIFS

local pos=-1

# ${path_arr[@]} gives all the values in path_arr

for dir in "${path_arr[@]}"

do

# find the number of directories to move up to

# reach at target directory

pos=$[$pos+1]

if [ "$1" = "$dir" ];then

# length of the path_arr

dir_in_path=${#path_arr[@]}

#current working directory

cwd=$PWD

limit=$[$dir_in_path-$pos-1]

for ((i=0; i<limit; i++))

do

cwd=$cwd/..

done

cd $cwd

break

fi 

done 

Và cuối cùng nhập lệnh:

}

$ chmod +x path/to/our/file/jump.sh

Kết luận

Qua bài viết trên, LANIT đã giới thiệu qua cho bạn về Shell Script và Shell Linux và ví dụ đơn giản để giúp bạn hiểu hơn về các khái niệm này. Hy vọng rằng bạn đã trang bị thêm cho mình một kiến thức bổ ích. Hãy đón đọc nhiều bài viết thú vị hơn từ LANIT nhé.

avata Hải

Triệu Huyền Trang

Triệu Huyền Trang chuyên gia 3 năm kinh nghiệm trong ngành Công Nghệ, Phần Mềm. Chuyên chia sẻ các kiến thức phần mềm mã nguồn, ứng dụng và thông tin về công nghệ hữu ích.

Chat với chúng tôi qua Zalo!
Chat với chúng tôi qua Zalo!