Giới thiệu về Linux Shell và Shell Script

Lượt xem
Home

Mỗi khi bạn sử dụng terminal trong Ubuntu, Linux Mint hay bất cứ bản phân phối nào của Linux, bạn luôn tương tác một cách gián tiếp với shell. Vậy shell là gì? Bài viết này sẽ cung cấp mọi kiến thức cơ bản cần biết về Linux Shell và Shell Script.

Khái niệm Kernel là gì?

Kernel là chương trình máy tính cốt lõi của hệ điều hành, có toàn quyền kiểm soát mọi thứ trên hệ thống, trong đó có các tài nguyên quan trọng như: quản lý file, process, I/O, bộ nhớ, thiết bị,…

Kernel là gì?
Kernel là gì?

Vì vậy, có thể xem một hệ thống Linux hoàn chỉnh bao gồm kernel, công cụ và thư viện GNU, cùng với theo đó là những script quản lý và cài đặt.

Shell là gì?

Shell là một chương trình đặc biệt cung cấp giao diện người dùng khi sử dụng các dịch vụ của hệ điều hành. Shell nhận lệnh từ con người rồi chuyển sang ngôn ngữ tương ứng của kernel, do đó có thể xem shell là một trình phiên dịch với đầu vào là các thiết bị ngoại vi hoặc file. Khi người dùng đăng nhập hoặc khởi động terminal trong Linux thì shell cũng sẽ được khởi chạy.

Shell là gì?
Giới thiệu về Linux Shell và Shell Script 23

Shell được phân thành hai loại chính: Command Line ShellGraphical Shell.

Command Line Shell

Shell có thể được truy cập bằng giao diện command line hoặc terminal. Dưới đây là giao diện trong terminal của Ubuntu 16.4:

image 114
Giới thiệu về Linux Shell và Shell Script 24

Việc sử dụng shell command line có thể hơi khó khăn với những người mới vì phải làm việc với nhiều câu lệnh phức tạp. Mặt khác, đây lại là một công cụ vô cùng mạnh mẽ, cho phép lưu trữ và thực thi nhiều file cùng lúc, thậm chí có thể được tự động hóa. Các file này thường được gọi là file batch trong Windows, hoặc Shell script trong Linux/macOS.

Graphical Shell

Graphical shell cung cấp các phương thức thao tác với chương trình dựa trên giao diện GUI, cho phép mở, đóng, di chuyển và điều hướng giữa các cửa sổ. Với cách này, người dùng không cần phải nhập lệnh để thực hiện các thao tác trên hệ thống mà có thể tương tác trực tiếp với chương trình như trên Windows hay Ubuntu.

image 115
Giới thiệu về Linux Shell và Shell Script 25

Hầu hết các shell đều thực hiện cùng một nhiệm vụ, nhưng cung cấp nhiều lệnh và hàm khác nhau để thực hiện. Một số shell có sẵn trên hệ thống Linux gồm có:

  • BASH (Bourne Again Shell) – Shell phổ biến nhất trên Linux, được dùng làm shell đăng nhập mặc định trên Linux và macOS. Ngoài ra người dùng Windows cũng có thể cài đặt shell này nếu cần.
  • CSH (C Shell) – Có cú pháp và cách sử dụng giống với ngôn ngữ lập trình C.
  • KSH (Korn Shell) – Cơ sở cho các thông số kỹ thuật tiêu chuẩn của POSIX Shell.

Shell Scripting là gì?

Shell nhận lệnh từ người dùng để thực thi, tuy nhiên đôi khi ta có thể cần thường xuyên thực hiện một số lệnh, mà việc nhập từng lệnh mỗi khi cần thực thi sẽ tốn rất nhiều thời gian.

Shell cũng có thể lấy input là các lệnh từ file, vì vậy người dùng cũng có thể viết các lệnh này trong file rồi thực thi để tránh việc nhập lại lệnh nhiều lần. Các file này được gọi là Shell Script/Shell Program. Shell script cũng tương tự như các file batch trong MS-DOS, được lưu với phần mở rộng là .sh.

linux shell và shell script
Giới thiệu về Linux Shell và Shell Script 26

Một shell script có cú pháp tương tự như các ngôn ngữ lập trình nên những người dùng đã có sẵn kinh nghiệm với Python hay C/C++ sẽ làm quen rất nhanh với shell script.

Một shell script bao gồm các thành phần sau:

  • Keyword: if, else, break,...
  • Lệnh: cd, ls, echo, pwd,...
  • Hàm
  • Control flow: if..then..else,...

Vì sao nên sử dụng shell script?

Có rất nhiều lý do khác nhau để sử dụng shell script, chẳng hạn như:

  • Hạn chế việc thực thi code nhiều lần.
  • Dễ dàng backup hệ thống thường xuyên bằng shell script.
  • Giám sát hệ thống.
  • Bổ sung chức năng vào shell.

Bên cạnh đó ta cũng không thể không kể đến các ưu điểm chính của việc sử dụng shell script như:

  • Câu lệnh và cú pháp tương tự như trong command line.
  • Giao diện debug có tính tương tác cao.
Vì sao nên sử dụng shell script?
Giới thiệu về Linux Shell và Shell Script 27

Mặt khác, shell script lại có tốc độ thực thi không cao, không phù hợp với các tác vụ nặng và phức tạp. Bên cạnh đó, việc sử dụng shell script cũng làm tăng rủi ro dẫn đến lỗi hàng loạt khi thực thi lệnh, vì vậy người dùng phải hết sức cẩn thận khi viết và thay đổi bất kỳ lệnh nào.

Ví dụ về shell scripting

Trong phần cuối cùng của bài viết, hãy cùng xem qua một trường hợp sử dụng shell script đơn giản. Khi làm việc với terminal, việc điều hướng giữa các thư mục đôi khi tốn giá nhiều thời gian và cần sử dụng các câu lệnh lặp đi lặp lại nhiều lần. Giả sử ta cần quay trở về python từ thư mục hiện tại thì sẽ phải thực hiện câu lệnh như dưới đây:

Ví dụ về shell scripting
Ví dụ về shell scripting

Cảm giác rất cồng kềnh đúng không nào? Bây giờ hãy thử tạo một công cụ cho phép điều hướng đến thư mục chỉ bằng cách nhập tên của 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
}

Tiếp theo, ta cần chạy lệnh sau để cho phép thực thi shell script:

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

Để áp dụng cho mọi phiên terminal thì ta phải đưa script này vào file .bashrc – một shell script được chạy bởi Bash, file này được dùng đề thiết lập các biến, hàm, alias, định nghĩa các thiết lập muốn sử dụng khi mở một cửa sổ terminal bất kỳ.

Mở terminal rồi chạy lệnh sau:

$ echo “source ~/path/to/our/file/jump.sh”>> ~/.bashrc

Bây giờ ta có thể thử dùng lệnh jump vừa định nghĩa ở trên:

$ jump dir_name
vi du shell script 2
Giới thiệu về Linux Shell và Shell Script 28

Vậy là ta đã rút gọn việc sử dụng lệnh cd nhiều lần bằng shell scripting. Tất nhiên khả năng của shell scripting còn có thể được mở rộng hơn nữa, các bạn đọc hãy thử tự khám phá nhé!

Lời kết

Bài viết này đã cung cấp những kiến thức cơ bản về Linux shell và một công cụ vô cùng tiện lợi là Shell Script. Nếu có bất kỳ câu hỏi nào thì hãy để lại ở phần comment ở bên dưới để được giải đáp nhanh chóng nhé!

Chia sẻ lên

Theo dõi trên

Logo Google new

Đánh giá

5/5 - (160 bình chọn)

Hưng Nguyễn

Kết nối với mình qua

Icon Quote
Icon Quote
Đăng ký nhận tin
Để không bỏ sót bất kỳ tin tức hoặc chương trình khuyến mãi từ Vietnix

Bình luận

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Chỉ số tăng trưởng

Điểm Desktop

100 (+39)

Điểm Mobile

100 (+67)

Core Web Vitals

Passed

Lĩnh vực

Ecommerce

Chỉ số tăng trưởng

Điểm Desktop

99 (+28)

Điểm Mobile

100 (+50)

Core Web Vitals

Passed

Lĩnh vực

SEO

Chỉ số tăng trưởng

Điểm Desktop

99 (+26)

Điểm Mobile

98 (+59)

Core Web Vitals

Passed

Lĩnh vực

Ecommerce

Chỉ số tăng trưởng

Điểm Desktop

100 (+8)

Điểm Mobile

98 (+35)

Core Web Vitals

Passed

Lĩnh vực

Giáo Dục

Chỉ số tăng trưởng

Điểm Desktop

100 (+61)

Điểm Mobile

100 (+61)

Core Web Vitals

Passed

Lĩnh vực

Giáo Dục

Võ Thiên Tòng

25 Tháng 2 lúc 21:09

·

Mình muốn gửi lời cảm ơn chân thành đến Team Vietnix, anh Hưng Nguyễn, anh Vietnix Trung, em Quốc Huy đã hỗ trợ tối ưu Page Speed Insight (PSI) cho website vanvoiminhhoa.vn của mình.
Biết đến anh Hưng đã lâu nhưng chưa có duyên sử dụng dịch vụ bên anh. Tình cờ thấy được bài Post của anh về việc hỗ trợ tối ưu PSI miễn phí chỉ với vài Slot, thấy AE cmt khá nhiều nên cũng không nghĩ tới lượt mình. Hôm sau đánh liều inbox 1 phen xem sao thì may mắn được đưa vào danh sách. Vài ngày sau được Team Vietnix liên hệ và hỗ trợ.
Kết quả đạt được:
• Điểm xanh lè xanh lét
• Tốc độ tải trang nhanh hơn hẳn
• Các chỉ số cũng được cải thiện đáng kể
• Và mình tin rằng với việc PSI được cải thiện cũng thúc đẩy những thứ khác đi lên theo!
Mình thực sự hài lòng với dịch vụ của Vietnix và muốn giới thiệu đến tất cả mọi người:
• Dịch vụ Wordpress Hosting: Tốc độ nhanh, ổn định, bảo mật cao, hỗ trợ kỹ thuật 24/7. (https://vietnix.vn/wordpress-hosting/)
• Dịch vụ Business Hosting: Dung lượng lớn, phù hợp cho website có lượng truy cập cao, tích hợp nhiều tính năng cao cấp. (https://vietnix.vn/business-hosting/)
Đặc biệt, Vietnix đang có chương trình ưu đãi:
• Giảm giá 20% trọn đời khi nhập code THIENTONG_PAGESPEED tại trang thanh toán (Chu kỳ 12 tháng trở lên)
• Tặng 1 lần tối ưu điểm Page Speed Insight cho 1 website
Cám ơn Vietnix một lần nữa!
#Vietnix #Vanvoiminhhoa #Pagespeedinsight
Trước khi tối ưu
Sau khi tối ưu
Thiện Nguyễn - CEO SEO Dạo

5 Tháng 3 lúc 16:21

·

CORE WEB VITAL YẾU TỐ XẾP HẠNG TÌM KIẾM SEO
Core Web Vitals là một tập hợp các chỉ số đo lường hiệu suất của trang web từ góc độ người dùng, được Google sử dụng để đánh giá trải nghiệm người dùng trên các trang web. Các chỉ số chính bao gồm:
– Largest contentful paint (LCP): Tốc độ render của page. Mục tiêu là dưới 2,5 giây.
– First input delay (FID): Tốc độ phản hồi của website với tương tác của người dùng. Mục tiêu là dưới 100ms.
– Cumulative Layout Shift (CLS): Độ ổn định của bố cục trang. Mục tiêu là dưới 0.1.
Tất cả các chỉ số này đo lường các khía cạnh quan trọng của trải nghiệm người dùng trên trang web. Google đã công bố rằng từ tháng 5 năm 2021, các Core Web Vitals sẽ được sử dụng làm một trong các yếu tố đánh giá trong việc xếp hạng trang web trên kết quả tìm kiếm. Do đó, hiểu và cải thiện các Core Web Vitals là rất quan trọng đối với SEO.
Tóm lại, Core Web Vitals không chỉ giúp cải thiện hiệu suất và xếp hạng trang web trên công cụ tìm kiếm, mà còn cải thiện trải nghiệm của người dùng khi họ truy cập và tương tác với trang website.
P/s: mình đang có gói hỗ trợ đặc biệt cho anh em tối ưu tốc độ bên VIETNIX:
– Giảm 20% lifetime dịch vụ Hosting Business và Hosting Wordpress chu kỳ 12 tháng trở lên.
– Tặng 1 lần tối ưu điểm Page Speed Insight cho 1 website.
Anh em có nhu cầu đăng ký qua bạn Vietnix Trung này nhé và nhập mã SEODAO_PAGESPEED để được ưu đãi nhé.😁
Trước khi tối ưu
Sau khi tối ưu SEO Dạo
Icharm review

5 Tháng 3 lúc 15:43

·

[Mình vừa được hỗ trợ tối ưu page speed website]
Trước khi được tối ưu, web của mình điểm rất thấp, đặc biệt là mobile chỉ có 39. Cơ duyên thế nào lúc lướt face lại va phải chương trình tối ưu pagespeed bên Vietnix.
Sau khi được Trần Hoàng Phúc và team Vietnix hỗ trợ nhiệt tình, điểm web vọt lên 98 99 (như hình bên dưới). Dùng thử web thì thấy quá là mượt, 10 điểm cho team Vietnix.
Nói thật thì mình thật sự ấn tượng về sự nhiệt huyết, tận tâm và rất chuyên nghiệp bên Vietnix.
Anh em có nhu cầu về hosting hay có vấn đề về website như:
1. Web load chậm
2. Khách rời web vì đợi tải nội dung, hình ảnh lâu
3. Hay tất tần tật mọi thứ về website
THÌ LIÊN HỆ NGAY VIETNIX NHÉ!
Và đừng quên dùng pass “ICHARM_PAGESPEED” để được giảm 20% trọn đời hosting business và wp hosting. Quả code này còn được tặng 1 lần tối ưu pagespeed nữa nhé, ưu đãi chắc cũng phải nhất nhì thị trường luôn.
Trước khi tối ưu
Sau khi tối ưu
Hoàng Nguyễn

29 Tháng 2 lúc 17:04

·

Xin chào mọi người! Vừa rồi mình có sử dụng dịch vụ tối ưu website, tăng tốc độ tải trang pagespeed của Vietnix kết quả trên cả tuyệt vời nên mình viết bài này để chia sẻ thông tin với các bạn.
Lý do mình chọn dịch vụ tối ưu tốc độ website của Vietnix:
✅ Đội ngũ chuyên gia giàu kinh nghiệm: Đã tối ưu thành công cho hàng nghìn website trong nhiều lĩnh vực khác nhau. Các bạn nhân viên rất thân thiện, nhiệt tình và chủ động trong quá trình làm việc để cập nhật tiến độ.
✅ Quy trình chuyên nghiệp:
– Kiểm tra và phân tích: Vietnix sử dụng các công cụ tiên tiến để kiểm tra và phân tích tốc độ website của bạn.
– Xác định nguyên nhân: Vietnix xác định nguyên nhân khiến website tải chậm và đưa ra giải pháp tối ưu phù hợp.
– Tối ưu hóa website: Vietnix áp dụng các kỹ thuật tối ưu tiên tiến nhất để tăng tốc độ tải trang.
– Báo cáo kết quả: Vietnix cung cấp báo cáo chi tiết về kết quả tối ưu hóa website.
Công nghệ tiên tiến: Vietnix sử dụng các công nghệ tối ưu mới nhất như LiteSpeed, LSCache, Memcached, Redis, v.v.
✅ Cam kết kết quả: Vietnix cam kết tăng tốc độ website của bạn lên tối thiểu 90%.
✅ Giá cả cạnh tranh: Vietnix cung cấp dịch vụ tối ưu tốc độ website với mức giá cạnh tranh nhất trên thị trường.
📣 Để đăng ký sử dụng dịch vụ tối ưu tốc độ website và các dịch vụ khác như hosting, vps, domain… các bạn có thể đăng ký tại https://portal.vietnix.vn/aff.php?aff=57 hoặc Inbox cho sếp Vietnix Trung nhé.
Các bạn có thể kiểm tra tốc độ trang của mình https://lasan.edu.vn hoặc một vài trang khác đã sử dụng dịch vụ của Vietnix như sau:
https://pagespeed.web.dev/…/https…/v8beqewyt2…
https://pagespeed.web.dev/…/https…/etiohjvtl4…
https://pagespeed.web.dev/…/https…/yczuqpw6d1…
https://pagespeed.web.dev/…/https…/xf9y65kuzk…
https://pagespeed.web.dev/…/https…/fdrsms15en…
https://pagespeed.web.dev/…/https…/s7p9cgzeri…
Trước khi tối ưu
Sau khi tối ưu
Dũng cá xinh

30 Tháng 1 lúc 19:09

·

[Đỉnh]
Em có dùng hosting, vps, cloud vps, cloud server, dedicated server của rất nhiều bên từ trong nước đến nước ngoài để hosting khoảng 2,000+ domain. Mỗi bên đều có ưu nhược khác nhau, nhưng có 1 số bên đặc biệt “bá đạo”, trong đó có: Vietnix!!!!

Lần đầu tiên em được cả CEO Hưng Nguyễn lẫn Master về dev Vietnix Trung của 1 đơn vị hàng đầu liên quan đến Hosting, Server support từ A – Z (từ Zalo, Tele, đến FB và cả Phone)

Em có khá nhiều web dạng Big Data (bài, ảnh, database, data) lên đến hàng trăm Gb. Càng to thì nó càng có nhiều vấn đề về phần phản hồi ban đầu (nhược điểm cố hữu của php wordpress so với nativejs, reactjs, html, headless,…), và anh em Vietnix có nhã ý hỗ trợ xử lý phần Speed Insight này.

Kết quả thực sự kinh ngạc, từ cách trao đổi đến xử lý vấn đề, cut off những cái cần cut off, xử lý rất sâu vấn đề và gợi ý rất nhiều ý tưởng optimize hệ thống!!!! Thực sự quá hài lòng về kết quả cũng như cách tương tác của các đầu tầu bên Vietnix ^^!!!

Nhân cơ duyên được kết nối với những cao thủ của Vietnix, em xin chia sẻ và lan tỏa để nhiều anh em có cơ hội được sử dụng những dịch vụ tốt nhất với giá vô cùng hợp lý!!!!

1 – Với anh em chưa có hosting, em đặc biệt recommend sử dụng hosting bên Vietnix:
– Sử dụng mã DUNGCAXINH_PAGESPEED sẽ được giảm 20% trọn đời (lifetime luôn)
– Áp dụng các gói Hosting Business, Hosting wordpress và reg 1 năm trở lên
– Anh em chưa biết cách reg thì còm men hoặc ib để em hướng dẫn hoặc nhờ các bạn bên Vietnix support từ A – Z

2 – Anh em có hosting rồi và muốn build blog hoặc web = wordpress mà chưa có giao diện thì nhân tiện em đang có tài khoản Premium bên Envato, em sẽ tặng bất kỳ giao diện nào có trên Envato Themes (Link em để dưới còm men) ạ. Cả nhà còm hoặc ib em Themes mà mọi người “chim ưng”, em sẽ cho anh em tải về, up drive và gửi ạ!!! (Chương trình này kéo dài đến ngày 29 tết âm lịch ạ)

3 – BEST NHẤT luôn!!!! Anh em nào mua hosting dùng mã DUNGCAXINH_PAGESPEED sẽ được tối ưu 100 điểm tốc độ cho 1 web (đây là ưu đãi riêng của CEO Hưng Nguyễn dành cho bạn bè của #dungcaxinh ^^) (Giá trị nhất là cái vụ số 3 này anh chị em nhé ^^), cơ hội vàng để move về đơn vị hosting uy tín là đây ^^!!!!

Một lần nữa xin chân thành cám ơn 2 đồng chí em: Hưng Nguyễn và Vietnix Trung đã giải được một bài toán khó cho các trang WP Big data mà anh loay hoay bao lâu nay chưa tìm ra đáp án!!! Chúc Vietnix ngày càng phát triển và có một năm 2024 đại đại thắng nhé ^^ !!!!!
#SEO #Vietnix #dungcaxinh

Trước khi tối ưu
Sau khi tối ưu
Hiếu AI

2 Tháng 2 lúc 21:06

·

UY TÍN – TẬN TÂM – TỐC ĐỘ

3 từ trên là vẫn chưa đủ để nói về quy trình làm việc cực chuyên nghiệp của team Vietnix.Chuyện là mình có con website chính đang có lượt truy cập organic hàng ngày cũng tương đối (hình 1)

Vấn đề là, con site này đang nằm trên hosting dùng chung nên tốc độ load chưa nhanh, tốc độ load chưa nhanh thì trải nghiệm visitor chưa tốt, trải nghiệm visitor chưa tốt thì tỷ lệ chuyển đổi ra đơn hàng kiểu gì thì kiểu cũng sẽ bị ảnh hưởng.

Biết rõ là đang mất tiền nhưng không biết xử lý như lào, nghĩ mà cay.

Đang loay hoay thì vận may nó tới, hôm qua đang lướt phở bò thấy a Nguyễn Việt Dũng đăng bài, rảnh nên thả cái comment hóng hớt, ai ngờ ngoằng phát thấy ông Dũng tạo nhóm với Vietnix Trung luôn.

Ae Vietnix thì siêu tốc độ, lập tức lấy thông tin vào việc, không hỏi han lằng nhằng, không kỳ kèo chốt đơn dù lúc đấy cũng đang đêm muộn.
Sáng hôm sau dậy vẫn còn đang lơ ngơ mở điện thoại check tin nhắn thì đã thấy ae Vietnix báo xong việc, trong khi mình vẫn chưa biết có chuyện gì xảy ra @@.

Được cái bấm thử website thì thấy load siêu nhanh, chưa tới một giây là thông tin các thứ hiện hết. Quá phê, thả con ảnh trước sau (hình 2,3) để ace tiện đối chiếu nhé. Thế này thì mình gửi gắm nốt 15 em website còn lại cho team Vietnix thôi chứ không cần nghĩ ngợi gì nữa. 10/10.

Nên là:

  1. Anh chị em muốn có một con website tốc độ load nhanh như tốc độ trở mặt của nyc – Dùng ngay dịch vụ hosting của Vietnix
  2. Anh chị em có website rồi muốn tìm bên hosting uy tín, chuyên nghiệp hỗ trợ không quản ngày đêm – Liên hệ ngay Vietnix Trung
  3. Anh chị em quan tâm đến trải nghiệm khách hàng, từ những cái nhỏ nhất như tăng tốc độ website – Better call Vietnix Trung

Và đừng quên dùng pass “HIEUAI_PAGESPEED” để được giảm 20% trọn đời hosting business và wp hosting, quả code này còn được tặng 1 lần tối ưu pagespeed nữa nhé, ưu đãi chắc cũng phải nhất nhì thị trường luôn.
#SEO #Vietnix #hieuai

Website
Trước khi tối ưu
Sau khi tối ưu

Chỉ số tăng trưởng

Điểm Desktop

100 (+43)

Điểm Mobile

100 (+74)

Core Web Vitals

Passed

Lĩnh vực

AI