Bài viết này giới thiệu các bạn về cách lập trình Shell Linux siêu cơ bản trên hệ điều hành Linux, Giới thiệu với cách bạn về chức năng và cách sử dụng của lập trình Shell Linux để các bạn có thể tự Tìm hiểu lập trình Shell Linux siêu cơ bản năm 2022.
Lập Trình Shell Linux là gì?
Shell Linux là chương trình giao tiếp với người dùng. Có nghĩa là shell chấp nhận các lệnh từ bạn (keyboard) và thực thi nó. Nhưng nếu bạn muốn sử dụng nhiều lệnh chỉ bằng một lệnh, thì bạn có thể lưu chuỗi lệnh vào text file và bảo shell thực thi text file này thay vì nhập vào các lệnh. Điều này gọi là shell script.
Định nghĩa: Shell script là một chuỗi các lệnh được viết trong plain text file. Shell script thì giống như batch file trong MS-DOS nhưng mạnh hơn.

Tại sao phải lập trìnhShell Linux
- Shell script có thể nhận input từ user, file hoặc output từ màn hình.
- Tiện lợi để tạo nhóm lệnh riêng.
- Tiết kiệm thời gian.
- Tự động làm một vài công việc thường xuyên.
Các khái niệm cơ bản khi viết Shell Linux
Các tập lệnh được lưu trữ dưới dạng các tập tin chúng ta có thể đặt tên tùy ý cho tập lệnh shell. Nhưng điều quan trọng đầu tiên là nó cần bắt đầu với một shebang ngay dòng đầu tiên:
#!/bin/bash
Tiếp theo thì nó phải là một tập tin thực thi. Để có thể phân quyền cho tập tin là thực thi thì chúng ta sử dụng lệnh chmod:
chmod u+x myscript
Lệnh trên giúp cho tập tin myscript của chúng ta có thể thực thi được cho người dùng của bạn.
Bạn có thể thực thi tập lệnh nếu bạn đang ở trong cùng một thư mục bằng cách gọi nó ./myscript hoặc sử dụng đường dẫn đầy đủ đến nó.
Ngoài cách thực thi trên chúng ta có thể sử dụng lệnh bash để thực thi Cú pháp như sau:
bash duong-dan-file-script
Ví dụ 1: Sử dụng tính năng chú thích trong Shell Linux
Chú thích là một trong những điều quan trọng nhất khi viết chương trình. Một dòng bắt đầu bằng ký tự # là một chú thích (ngoại trừ dòng shebang ở trên).
#!/bin/bash
# this is a comment

Một bình luận cũng có thể bắt đầu ở cuối dòng:
#!/bin/bash
echo myscript # this is a comment
Ví dụ 2: Biến và toán tử trong Shell Linux
Chúng ta có thể đặt biến bằng cách sử dụng toán tử = Cú pháp như sau:
name=value
Ví dụ:
NUMBER=1999
name=blogd.net
Sau khi đặt biến chúng ta có thể in một biến bằng cách sử dụng lệnh echo và thêm một ký tự $ tiếp theo là tên biến:
echo $NUMBER
echo $name
Hướng dẫn tạo và thực thi chương trình Shell Linux
Step1: Tạo file hello.sh (trong thư mục cd /home/tuanvh/) nội dung như sau:
Sử dụng vi, emacs, gedit… để soạn thảo nội dung
#!/bin/bash
echo “hello world”
Dòng đầu tiên chúng ta luôn đặt #!/bin/bash, đây là Cú pháp bắt buộc. Sau # được hiểu là comment, chú thích của các đoạn mã.
Step2: Sau đó, để script có thể thực thi ta phải cấp quyền cho nó
chmod 0777 hello.sh
Step3: Thực thi file shell.
// có thể chạy file bằng 1 số cách sau
bash hello.sh
sh hello.sh
./hello.sh
Biến trong shell
Trong Linux shell có 2 loại biến:
Biến hệ thống:
- Tạo ra và quản lý bởi Linux.
- Tên biến là CHỮ HOA
- Biến do người dùng định nghĩa
- Tạo ra và quản lý bởi người dùng -Tên biến là chữ thường
VD: file hello.sh
#!/bin/bash
echo “hello”
echo $BASH_VERSION
echo $BASH
echo $HOME
echo $PATHKết quả: run ./hello.sh
hello
4.2.24(1)-release
/bin/bash
/home/vu.huy.tuan
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Biến người dùng, cú pháp, quy tắc đặt tên
Cú pháp:
tên_biến=value
tên_biến phải bắt đầu bằng ký tự
Không có dấu cách 2 bên toán tử = khi gán giá trị cho biến
#Đúng
a=1
#sai
a = 1
#sai
a= 1
Tên biến có phân biệt chữ hoa, thường
#các biến sau đây là khác nhau
a=1
A=2

Một biến không có giá trị khởi tạo thì bằng NULL
Không được dùng dấu ?, * để đặt tên các biến
ECHO Để in giá trị của biến
Cú pháp:
echo [option][string,variables…]
#example
echo $tên_biến
In một số ký tự đặc biệt trong tham số với tùy chọn -e:
a alert (bell)
b backspace
c suppress trailing new line
n new line
r carriage return
t horizontal tab
backslash
//example
$ echo -e “HellotTuan”
#output: Hello Tuan
$ echo -e “HellonTuan”
#output
Hello
Tuan
Các phép toán số học
Shell cung cấp cho ta một số biểu thức toán học.
Cú pháp:
expr toán_hạng_1 toán_tử toán_hạng_2
example:
# phép cộng
$expr 1 + 2
# phép trừ
$expr 5 – 1
# phép chia
$expr 8 / 3 # output =2 phép chia chỉ lấy phần nguyên
$expr 8 % 5 # output =3 phép chia lấy phần dư
$expr 10 * 2 # output = 20 phép nhân
Chú ý: Phải có dấu cách trước và sau toán tử.
# example sai Cú pháp
$expr 1+2
$expr 5- 1
Các dấu ngoặc
Tất cả các ký tự trong dấu ngoặc kép đều không có ý nghĩa ñnh toán, trừ những ký tự sau hoặc $
Dấu nháy ngược (`): nghĩa là yêu cầu thực thi lệnh
#example
$ echo “ngay hom nay la: `date`”
#ouput: ngay hom nay la: Wed Apr 27 10:43:59 ICT 2016
$ echo `expr 1 + 2`
#output = 3
$echo “expr 1 + 2”
#ouput: expr 1 + 2
**Kiểm tra trạng thái trả về của 1 câu lệnh Cú pháp
$echo $?
Trạng thái 0 nếu câu lệnh kết thúc thành công. – Khác 0 nếu kết thúc có lỗi
# xóa file không tồn tại
rm abc.txt #output messge:( rm: cannot remove `abc.txt’: No such file or directory )
# kiểm tra trạng thái câu lệnh rm abc.txt
$echo $? #output 1 nghĩa là có lỗi
$ echo “ngay hom nay la: `date`”
#ouput: ngay hom nay la: Wed Apr 27 10:43:59 ICT 2016
$echo $? #output 0, nghĩa là thành công
V: Cấu trúc điều khiển trong shell script
Cũng giống như các ngôn ngữ lập trình khác, Shell Scripts cũng cung cấp các vòng lặp: “for”, “while”; và lệnh rẽ nhánh “if”, “case”.
1. Cú pháp rẽ nhánh If Cú pháp:
if điều_kiện
then
câu lệnh 1
…
fi
if…else…fi
Cú pháp:
if điều_kiện then
câu_lệnh_1
….
else
câu_lệnh_2
fi
Vòng lặp For
Cú pháp:
for { tên biến } in { danh sách }
do
# Khối lệnh
# Thực hiện từng mục trong danh sách cho đến cho đến hết
# (Và lặp lại tất cả các lệnh nằm trong “do” và “done”)
done#hoặc sử dụng for
for (( expr1; expr2; expr3 ))
do
# Lặp cho đến khi biểu thức expr2 trả về giá trị TRUE
done
example
# for 1
for i in 1 2 3 4 5
do
echo $i
done#output: 1 2 3 4 5
#for 2
for (( i = 0 ; i <= 5; i++ )) # bao quanh bằng (())
do
echo $i
done
#ouput 1 2 3 4 5

Vòng lặp While
while [Điều kiện]
do
command1
command2
command3 .. ….
done
example demo1.sh
#!/bin/sh
echo “Nhap vao cac so can tinh tong, nhap so am de exit”
sum=0
read i
while [ $i -ge 0 ] # nếu i >= 0
do
sum=`expr $sum + $i`
read i # nhận giá trị từ người dùng
done
echo “Total: $sum.”
Kết quả sau khi chạy ./demo1.sh
#ouput
./demo1.sh
Nhap vao cac so can tinh tong, nhap so am de exit
1
5
4
-1
Total= 10.
VI: Lệnh test
Lệnh test được dùng để kiểm tra một biểu thức là đúng hay không và trả lại
0 nếu biểu thức đúng
khác 0 sai
Cú pháp:
test biểu_thức HOẶC [biểu thức]
(Nguồn: Tổng hợp)
Lời tổng kết
Qua bài viết trên của ATP Web đã cung cấp đến các bạn đọc một số thông tin về hữu ích. Hy vọng những thông tin trên của bài viết sẽ hữu ích với các bạn đọc. Cảm ơn các bạn đã dành nhiều thời gian để xem qua bài viết này nhé.
ATPWeb – XÂY DỰNG NGÔI NHÀ ONLINE
- Hotline: 0707 6666 56
- Fanpage: ATP Web
- Gmail: info@atpweb.vn
- Website: https://atpweb.vn/