Shell là gì ?
Nói một cách đơn giản nó là cái trình thông dịch dòng lệnh để bạn có thể điều khiển máy tính thông qua dòng lệnh.
Shell script là gì
Đơn giản nó là chuỗi các dòng lệnh gọi là kịch bản dòng lệnh để làm 1 việc gì đó qua dòng lệnh. File này thường có đuôi .sh trên linux hoặc .bat trên windows để chạy thì bạn cứ pate thẳng code vào trong cái cửa sổ dòng lệnh hoặc terminal mà chạy hoặc tạo thành file .sh rồi kéo xuống chỗ vòng for kìa mình có hướng dẫn chạy
Một số lệnh shell thường gặp
Lệnh set
Sử dụng lệnh set
để set hoặc unset (bỏ sét 😆 ) giá trị của shell và 1 số tham số khác. ví dụ
set -e
: thoát ngay khỏi shell nếu trong file có 1 lệnh bị lỗi cái này thường để ở đầu file
set -x
: bật chế độ debug
set -t
: Thoát sau khi đọc và thực hiện một lệnh.
export
Lệnh export
được sử dụng để xuất một biến hoặc hàm tới môi trường của tất cả các tiến trình con đang chạy trong shell hiện tại. Nói nôm na dễ hiểu hơn thì là bạn là 1 ông bố bạn có quỹ đen giấu 1 tỷ đồng bạn dùng lệnh export để công khai cho vợ và các con bạn là bố có 1 tỷ ở trong tủ đấy mọi người có thể lấy ra mà dùng.
Ví dụ:
# gõ cái này trên macos hoặc linux nhé trên win mình k biết nó chạy không đâu =)))
# chạy được thì cmt cho mình biết nhé mình không hay dùng cái này trong win lắm
export CLIENT_DIR="$(pwd)/client"
# cái lệnh trên tương ứng với: CLIENT_DIR=/home/sonnh/client
# pwd là lệnh hiển thị đường dẫn file hiện tại của shell
# hay ví dụ khác trông dễ hiểu hơn
export TEN_CUA_TOI="nguyen huu son"
echo
Lệnh echo
dùng để in ra 1 biến hoặc 1 giá trị nào đó ra cửa sổ dòng lệnh
ví dụ:
echo "xin chao các ban cai nay no in ra man hinh..."
kết quả:
xin chao các ban cai nay no in ra man hinh...
Hoặc:
MY_MESSAGE="Hello World"
echo $MY_MESSAGE
Kết quả:
Hello World
Vòng lặp for
for
: lặp qua từng phần tử của danh sách cho đến hết danh sách
- bạn có thể chạy thử bằng việc tạo 1 file có đuôi là
tenfile.sh
rồi pate nội dung bên dưới vào sau đó dùng lệnh sau ở terminal để cho nó quyền run chmod +x <fileName>
trong trường hợp này chmod +x tenfile.sh
rồi chạy nó bằng cách ./tenfile.sh
- Hoặc đơn giản hơn pate cái bên dưới vào terminal chạy thẳng trên terminal của mac hoặc linux
#!/bin/sh
for i in 1 2 3 4 5
do
echo "Looping ... number $i"
done
Kết quả:
Looping ... number 1
Looping ... number 2
Looping ... number 3
Looping ... number 4
Looping ... number 5
Ví dụ 2:
for i in hello 1 * 2 goodbye
do
echo "Looping ... i is set to $i"
done
Kết quả:
Looping ... i is set to hello
Looping ... i is set to 1
Looping ... i is set to *
Looping ... i is set to 2
Looping ... i is set to goodbye
Lệnh if
if
: là biểu thức điều kiện cú pháp đơn giản như sau nếu biểu thức điều kiện đúng thì chạy câu lệnh ở dưới
if [ <biểu thức điều kiện> ]
then
<Lệnh>
fi
ví dụ:
#Initializing two variables
a=10
b=20
#Check whether they are equal
if [ $a == $b ]
then
echo "a is equal to b"
fi
#Check whether they are not equal
if [ $a != $b ]
then
echo "a is not equal to b"
fi
Kết quả
a is not equal to b
exec là cái mình hay kết hợp với mấy cái trên
Lệnh exec
lệnh execute trong Linux được sử dụng để thực thi một lệnh từ chính bash. Lệnh này không tạo ra một tiến trình mới mà nó chỉ thay thế bash bằng lệnh được thực thi. Nếu lệnh thực thi thành công, nó sẽ không quay trở lại quá trình gọi.
Ví dụ bạn có thể gõ như sau
exec ls
# điều này sẽ chạy lệnh ls
exec docker ps
# như thế này sẽ chạy docker với điều kiện máy bạn phải cài docker
Chốt lại
Chốt lại là mình hay dùng những cái trên kết hợp với nhau để viết shell script ngoài ra các bạn còn lệnh cat
mình cũng hay dùng để ghi file hoặc xem file hay kết hợp các file lại với nhau.