Khi nhắc đến Bash Shell, đa số mọi người thường sẽ nghĩ đến nó là ngôn ngữ dòng lệnh trên các hệ thống Unix. Nhưng bạn có thắc mắc vì sao đôi khi bạn sử dụng các hệ thống Unix khác nhau sẽ xuất hiện hiện tượng các dòng lệnh thường sử dụng trên hệ điều hành này không thể thực thi trên hệ điều hành khác? Hoặc thậm chí cùng một hệ điều hành nhưng các viết dòng lệnh của máy tính này lại khác với máy tính khác? Để làm rõ vấn đề này, ta hãy tìm hiểu về một số các khái niệm cơ bản nhé.
Đang xem: Những cú pháp shell script thường gặp trong file sh
Shell là gì ?
Ta có thể hiểu nôm na, Shell là một chương trình cung cấp giao diện giao tiếp giữa người dùng và hệ điều hành, về mặt kỹ thuật, Shell là một interface nằm giữa OS Kernel và người dùng, nó cung cấp một môi trường để người dùng tương tác với Kernel (nhân của hệ điều hành).
Các chương trình Shell có nhiệm vụ nhận và thông dịch các lệnh được nhập từ người dùng và chuyển đến nhân của hệ điều hành để thực thi. Có thể nói, Shell là cầu nối giữa con người và máy tính.
SH là gì ?
Sh – ngôn ngữ dòng lệnh (Shell Command Language) là một ngôn ngữ lập trình thông dịch được mô tả theo chuẩn POSIX standard. Nó là ngôn ngữ đầu tiên được sử dụng cho các chương trình Shell và có mặt trên hầu hết các hệ thống Unix/Linux.
Sh thích hợp cho việc lập trình shell vì lợi thế nhỏ gọn và tốc độ xử lý. Nhưng nó cũng có các nhược điểm như thiếu các tính năng tương tác (vd: tính năng gọi lại các lệnh trước đó – history), không có các tính năng tích hợp số học cũng như xử lý logic.
Bash là gì ?
Bash bắt đầu như là một bản triển khai tương thích với Sh (sh-compatible implementation), nó kế thừa những gì mà Sh đã có và phát huy những gì mà Sh chưa có. Mặc dù nó có trước chuẩn POSIX vài năm, nhưng với thời gian nó đã có được rất nhiều tiện ích mở rộng, một số tiện ích mở rộng của nó đã thay đổi hành vi của chuẩn POSIX shell scripts.
Bash có hổ trợ chuyển đổi –posix, giúp cho nó tuân thủ theo chuẩn POSIX hơn (more POSIX-compliant).
Vậy SH = Bash ?
Trong một khoản thời gian dài, symlink /bin/sh được sử dụng để trỏ về /bin/bash như là mặc định trên hầu hết các hệ thống Unix/Linux. Vì vậy, gần như có thể bỏ qua sự khác biệt giữa cả hai.
Nhưng hiện nay, trên các hệ thống Unix/Linux thông dụng, symlink /bin/sh không còn được mặc định trỏ về /bin/bash nữa:
Trên các hệ điều hành Debian và Ubuntu, /bin/sh được trỏ mặc định đến (symlink) đến /bin/dash.Trên các máy macbook chạy hệ điều hành mac
OS, /bin/zsh được sử dụng là mặc định.
Vậy làm thế nào để ta kiểm tra được hệ thống của mình đang sử dụng bản triển khai shell nào. Ta sử dụng lệnh printenv để kiểm tra.
Một số điểm khác nhau giữa Sh và Bash:
“<<” không khả dụng trong SH.Trong sh không có kiểu dữ liệu mảng.Bash có nhiều phần mở rộng cú pháp theo giống C như vòng lặp với 3 biến số for(i = 0; i Bash có hổ trợ *.{jpg, png} và {0..12}Ngoài ra còn có nhiều phần mở rộng khác. Xem thêm:
Shebang
Shebang (hay sha-bang, hashbang, pound-bang, hash-pling) là kí tự “!#” , nó luôn được đặt ở dòng đầu tiên trong mỗi script. Trong hệ thống UNIX/LINUX, mỗi khi 1 script được chạy, đầu tiên program loader sẽ dựa vào Shebang để xác định script sẽ được thực thi bởi trình biên dịch nào. Nếu 1 script không có Shebang thì mặc định nó sẽ được thực thi bởi Sh.
Trong trường hợp trong hệ thống ta có nhiều version của 1 trình biên dịch /usr/bin/python, /usr/local/bin/python thì hệ thống sẽ không tìm được trình biên dịch của script này bằng Shebang. Ta có thể sử dụng env – run a program in a modified environment để xử lý vấn đề trên.
Qua các khái niệm trên, các bạn đã có thể trả lời được các câu hỏi ở đầu bài viết rồi phải không. Ngoài Bash ra còn có rất nhiều bản tương thích với Sh như Dash, zsh, ash…Vì vậy, có thể trên cùng 1 hệ điều hành, cùng phiên bản nhưng tuỳ vào sở thích và thói quen của người dùng mà có thể lựa chọn các bản tương thích khác nhau, dẫn đến việc các cấu trúc lệnh có thể khác nhau. Trong series này, mình sẽ đi sâu vào bản tương thích Bash để giải thích về cấu trúc và các sử dụng của nó.
Nếu đang thắc mắc file .sh trên Ubuntu là gì và cách chạy file .sh trên Ubuntu như thế nào. Câu trả lời sẽ được giải đáp cho bạn trong bài viết bên dưới đây của ttmn.mobi.vn.
File .sh là viết tắt của shell script. Một shell script là một file text chứa một chuỗi các lệnh cho hệ thống dựa trên UNIX / Debian / Linux / Ubuntu. Một file shell script có chứa script, một chuỗi các lệnh sử dụng lặp lại.
Các file.sh là các file thực thi của hệ điều hành Unix (Linux), tương đương (nhưng mạnh hơn) các file .bat trên Windows. Vì vậy bạn sẽ phải chạy các file này trên giao diện điều khiển Linux, chỉ cần nhập tên file giống như cách mà bạn vẫn làm với các file .bat trên Windows. Cách chạy file .sh trên Ubuntu dưới đây sẽ hướng dẫn bạn cụ thể hơn.
Cách chạy file .sh trên Ubuntu Linux
Việc thực thi file .sh trên Ubuntu khá đơn giản. Nếu muốn chạy file .sh trên ubuntu, bạn thực hiện theo các bước dưới đây.
Trước khi chạy file .sh, bạn phải cấp quyền cho script. Nhập lệnh dưới đây vào cửa sổ Terminal:
chmod +x /path/to/yourscript.sh
Sau khi đã cấp quyền hợp lệ, chạy lệnh dưới đây để chạy script .sh:
/path/to/yourscript.sh
Nếu file script nằm trong thư mục hiện tại, chủ cấn sử dụng lệnh ./yourscript.sh. Để chạy file .sh trên Ubuntu trong thư mục hiện tại, chỉ cần chạy lệnh:
./yourscript.sh
Giải pháp thay thế
Ngoài ra bạn có thể kích hoạt file .sh để thực thi như một chương trình. Để thực thi file shell script, bạn thực hiện theo các bước dưới đây:
– Kích chuột phải vào file.- Chọn Properties.- Chọn Permissions.– Chọn Allow executing file as a program.
Sau khi hoàn tất, chỉ cần kích đúp chuột vào file shell và click chọn Run in terminal.
Xem thêm: Giải đáp sinh năm 1984 mệnh gì, tuổi gì, cung hoàng đạo nào?, màu nào?
https://ttmn.mobi/cach-chay-file-sh-tren-ubuntu-30907n.aspx Như vậy ttmn.mobi.vn vừa giải đáp cho bạn thắc mắc file .sh trên Ubuntu là gì và cách chạy file .sh trên Ubuntu. Từ bước chạy file .sh và phím tắt Ubuntu, tổng hợp phím nóng hay sử dụng trong Ubuntu sẽ giúp bạn có thể nắm thêm nhiều kiến thức hơn trên hệ điều hành Ubuntu. Nếu có thắc mắc hoặc câu hỏi nào cần giải đáp, vui lòng để lại ý kiến của bạn trong phần bình luận bên dưới bài viết, ttmn.mobi.vn sẽ giải đáp các thắc mắc của bạn sớm nhất có thể.