Mục lục

Tìm hiểu lập trình Shell Linux siêu cơ bản năm 2022

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ìm hiểu lập trình Shell Linux siêu cơ bản
Tìm hiểu lập trình Shell Linux siêu cơ bả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

Tìm hiểu lập trình Shell Linux siêu cơ bản
Tìm hiểu lập trình Shell Linux siêu cơ bản

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 $PATH

Kế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

Tìm hiểu lập trình Shell Linux siêu cơ bản
Tìm hiểu lập trình Shell Linux siêu cơ bản

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

Tìm hiểu lập trình Shell Linux siêu cơ bản
Tìm hiểu lập trình Shell Linux siêu cơ bản

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

Đánh giá bài viết post

LIÊN HỆ TƯ VẤN

Thiết Kế Web
BLOG
Đăng ký tư vấn
Thiết kế website
Đồng hành cùng ATP WEB

Đăng ký tư vấn Thiết kế website