- Nếu bạn đang sử dụng bất cứ hệ điều hành lớn nào, nghĩa là bạn đang gián tiếp tương tác với Shell. Nếu bạn đang chạy Ubuntu, Linux Mint hoặc bất cứ bản phân phối Linux nào khác, bạn đang tương tác với shell mỗi khi bạn sử dụng terminal.
- Trong bài viết này tôi sẽ giới thiệu tới các bạn tổng quan về shell linux và shell script. Để hiểu shell script chúng ta cần phải làm quen với một số thuật ngữ sau:
- Kernel
- Shell
- Terminal
Kernel là gì?
- Kernel là một chương trình máy tính là cốt lõi của hệ điều hành máy tính, với toàn quyền kiểm soát mọi thứ trong hệ thống. Nó quản lý các tài nguyên sau của hệ thống Linux:
- File management
- Process management
- I/O management
- Memory management
- Device management ect.
- Người ta thường nhầm rằng Linus Torvalds đã phát triển hệ điều hành Linux, nhưng thực ra ông chỉ chịu trách nhiệm phát triển nhân Linux.
- Toàn bộ hệ thống Linux = Kernel + GNU system utilities and libraries + other management scripts + installation scripts.
Shell là cái gì?
- Shell là chương trình người dùng đặc biệt, cung cấp giao diện cho người dùng sử dụng các dịch vụ hệ điều hành. Shell chấp nhận các lệnh có thể đọc được từ người dùng và chuyển đổi chúng thành thứ mà kernel có thể hiểu được.
- Nó là một trình thông dịch ngôn ngữ lệnh thực thi các lệnh được đọc từ các thiết bị đầu cuối vào như keyboard hoặc từ file. Shell được bắt đầu khi người dùng đăng nhập hoặc khởi động terminal.
- Shell được chia làm 2 loại:
- Command Line Shell
- Graphical shell
Command Line Shell
- Shell có thể được truy cập bởi người dùng bằng cách sử dụng command line interface. Một chương trình đặc biệt có tên Terminal trong linux/ macOS hoặc Command Prompt trong Windows OS, được cung cấp để nhập vào các lệnh có thể đọc được của người dùng như "cat", "ls" etc. và sau đó nó được thực thi. Kết quả sau đó được hiển thị trên Terminal, một Terminal trong hệ thống Ubuntu 16.04 trông sẽ như thế này:
- Làm việc với command line shell sẽ có một chút khó khăn cho người mới bắt đầu bởi vì thật khó để nhớ hết các lệnh. Nhưng khi chúng ta đã quen thì nó rất mạnh mẽ, nó cho phép người dùng lưu trữ các lệnh trong một file và thực thi chúng cùng nhau. Với tính năng này, bất kỳ nhiệm vụ lặp đi lặp lại nào có thể xử lý tự động. Các tệp này thường được gọi là batch file trong Windows và Shell Script trong Linux / macOS.
Graphical Shells
- Graphical Shells cung cấp phương tiện để thao tác với các chương trình dựa trên graphical user interface (GUI), bằng cách cho phép các hoạt động như open, close, move and resize window, cũng như chuyển trọng tâm giữa các cửa sổ.
- Window OS hoặc Ubuntu OS có thể được coi là ví dụ điển hình cung cấp GUI cho người dùng để tương tác với chương trình. Người dùng không cần nhập lệnh cho mọi hành động.
- Một số shell có sẵn trong các hệ thống Linux:
- BASH (Bourne Again SHell) - Được sử dụng rộng rãi nhất trong các hệ thống Linux. Nó được sử dụng làm vỏ đăng nhập mặc định trong Linux / macOS. Nó cũng có thể cài đặt trên Window OS.
- CSH (C Shell) - Cú pháp và cách sử dụng của C shell rất giống với ngôn ngữ lập trình C.
- KSH (Korn SHell) - Korn Shell cũng là cơ sở cho các thông số kỹ thuật tiêu chuẩn của POSIX Shell,v.v.
- Mỗi shell thực hiện cùng một công việc nhưng hiểu các lệnh khác nhau và cung cấp các hàm dựng sẵn khác nhau.
Shell Script
- Thường shell sẽ tương tác, có nghĩa là nó sẽ chấp nhận lệnh là đầu vào từ người dùng và thực thi chúng. Tuy nhiên, đôi khi chúng ta muốn thực thi một loạt các lệnh, để làm như thế chúng ta sẽ phải gõ tất cả các lệnh vào Terminal. Điều này sẽ làm cho lệnh của chúng ta dài và gây khó hiểu.
- Vì shell cũng có thể nhận các lệnh làm đầu vào từ file, chúng ta có thể viết các lệnh trong một file và có thể thực thi chúng trong shell, tránh các công việc lặp đi lặp lại. Các file này được gọi là Shell Script hoặc Shell Programs. Các Shell script tương tự như batch file trong MS-DOS. Mỗi shell script được lưu với phần mở rộng tệp .sh.
- Một shell script có cú pháp giống bất kỳ ngôn ngữ lập trình khác. Nếu bạn có kinh nghiệm với bất kỳ ngôn ngữ lập trình nào thì sẽ rất dễ dàng bắt đầu với nó.
- Shell script bao gồm các thành phần sau:
- Shell Keywords – if, else, break etc.
- Shell commands – cd, ls, echo, pwd, touch etc.
- Functions
- Control flow – if..then..else, case and shell loops etc.
Tại sao cần shell script?
- Có nhiều lý do để viết shell script:
- Tránh các công việc lặp đi lặp lại và tự động hóa.
- System admins sử dụng shell script để sao lưu thường xuyên
- Giám sát hệ thống (System monitoring)
- Thêm chức năng mới vào shell etc.
Ưu điểm của shell script
- Lệnh và cú pháp hoàn toàn giống với lệnh được được nhập trực tiếp trong dòng lệnh. Vì vậy lập trình viên không cần phải chuyển sang cú pháp hoàn toàn khác.
- Viết Shell script sẽ nhanh hơn nhiều.
- Quick start
- Interactive debugging etc.
Nhược điểm của shell script
- Dễ xảy ra lỗi tốn kém, một lỗi duy nhất có thể thay đổi lệnh có thể gây hại.
- Tốc độ thực hiện chậm.
- Lỗi thiết kế trong cú pháp ngôn ngữ hoặc thực hiện.
- Không phù hợp cho các task lớn và phức tạp.
- Cung cấp cấu trúc dữ liệu ít không giống như các ngôn ngữ khác.
Ví dụ đơn giản shell script sử dụng Bash Shell.
Nếu bạn làm việc trên terminal, bạn đang ở thư mục phía trong. Sau đó, bạn muốn trở về thư mục phía trước, chúng ta phải thực thi lệnh như dưới đây:
Nó khá mất công, vậy tại sao chúng ta không làm một tiện ích mà chúng ta chỉ cần nhập folder name và chúng ta có thể di chuyển đến folder đó mà không cần thực thi lệnh "cd ..". Lưu tập lệnh với tên là “jump.sh”:
- Chúng ta cần cấp quyền để có thể thực thi shell script này:
$ chmod -x path/to/our/file/jump.sh
- Bây giờ, để làm cho có luôn có sẵn trong mọi phiên làm việc của Terminal, chúng ta phải đặt nó trong tệp “.bashrc”.
- “.bashrc” là một shell script mà Bash shell chạy bất cứ khi nào nó được khởi động. Mục đích của tệp .bashrc là cung cấp nơi bạn có thể thiết lập các variable, function and aliase... Bây giờ hãy mở terminal và gõ lệnh sau:
$ echo “source ~/path/to/our/file/jump.sh”>> ~/.bashrc
- Bây giờ chúng ta có thể sử dụng shell script chúng ta đã tạo:
$ jump dir_name
Tổng kết
- Trong bài viết này, tôi đã giới thiệu tổng quan về Shell Linux, Shell Script và ví dụ đơn giản tới các bạn. Trong bài tới, tôi sẽ hướng dẫn các bạn viết Shell Script một cách chi tiết hơn (syntax, function, operators...). Cảm ơn các bạn đã đọc.
Tài liệu về Bash script
Tài liệu về shell
Website không chứa bất kỳ quảng cáo nào, mọi đóng góp để duy trì phát triển cho website (donation) xin vui lòng gửi về STK 90.2142.8888 - Ngân hàng Vietcombank Thăng Long - TRAN VAN BINH
=============================
Nếu bạn không muốn bị AI thay thế và tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp hay làm chủ Database thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ bí kíp thực chiến, thủ tục, quy trình của gần 20 năm kinh nghiệm (mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google) từ đó giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
- Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
- Oracle cơ bản: https://bit.ly/admin_1200
- Linux: https://bit.ly/linux_1200
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội
=============================
cơ sở dữ liệu, cơ sở dữ liệu quốc gia, database, AI, trí tuệ nhân tạo, artificial intelligence, machine learning, deep learning, LLM, ChatGPT, DeepSeek, Grok, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c/21c/23c/23ai, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, docker, k8s, micro service, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty




