NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
17/09/2024
Lượt xem

Lệnh bc trong Linux – Hướng dẫn cách sử dụng qua 10 ví dụ chi tiết

17/09/2024
20 phút đọc
Lượt xem

Đánh giá

Lệnh bc trong Linux nổi bật như một công cụ linh hoạt trong việc tính toán trên terminal. Dòng lệnh đều đáp ứng mọi nhu cầu tính toán của bạn. Trong bài viết này, hãy cùng Vietnix khám phá chi tiết về lệnh này, từ định nghĩa, các tùy chọn sử dụng đến 10 ví dụ minh họa về cách sử dụng lệnh.

Lệnh bc trong Linux là gì?

Lệnh bc (viết tắt của basic calculator) là một công cụ tính toán được tích hợp sẵn trên hệ điều hành Linux. Lệnh bc hoạt động như một máy tính đa năng ngay trên dòng lệnh, cho phép bạn thực hiện từ các phép tính số học đơn giản đến các biểu thức phức tạp một cách nhanh chóng và chính xác.

Lệnh bc trong Linux
Lệnh bc trong Linux

Lệnh bc được sử dụng với mọi đối tượng người dùng. Dù bạn là người mới bắt đầu làm quen với hệ điều hành Linux hoặc là người chuyên sử dụng, bc đều mang đến một giao diện thân thiện và trực quan. Bạn có thể tương tác trực tiếp với bc hoặc sử dụng lệnh này trong các script shell (môi trường tập lệnh) để tự động hóa các tác vụ tính toán. Một số hệ điều hành dựa trên Linux khuyến khích bạn sử dụng là Ubuntu.

Bên cạnh đó, bạn có thể tham khảo thêm các câu lệnh trong Linux để hiểu thêm chi tiết về hệ điều hành.

Cú pháp cơ bản của lệnh bc

Khi sử dụng lệnh bc, bạn có thể cung cấp các tùy chọn (OPTIONS) và tên của một file để bc xử lý. Cú pháp cơ bản của lệnh như sau: 

bc [ -hlwsqv ] [LONG-OPTIONS] [ FILE]...

Lưu ý: Trong cú pháp trên, OPTIONS và FILE được đặt trong dấu ngoặc vuông. Điều này có nghĩa là bạn không bắt buộc phải cung cấp các OPTIONS hay tên FILE khi sử dụng lệnh bc.

6 nhóm tùy chọn sử dụng lệnh bc

Tùy chọnMô tả
-h hoặc --helpHiển thị hướng dẫn sử dụng và thoát
-i hoặc --interactiveBắt buộc chế độ tương tác
-l hoặc --mathlibĐịnh nghĩa thư viện toán học tiêu chuẩn
-w hoặc --warnCảnh báo về các phần mở rộng không thuộc POSIX bc
-s hoặc --standardChỉ xử lý ngôn ngữ POSIX bc.
-q hoặc --quietKhông in thông điệp chào mừng GNU bc thông thường
-v hoặc --versionIn số phiên bản và bản quyền, sau đó thoát

Lưu ý: Tất cả các tùy chọn đều phân biệt chữ hoa chữ thường. Hãy nhập chính xác các tùy chọn. Nếu bạn không tìm thấy tùy chọn mình cần, hãy xem trang hướng dẫn (man page) bằng cách gõ lệnh sau và nhấn ENTER: man bc

Ví dụ 1: Thực hiện các phép tính toán học đơn giản

Trong ví dụ này, chúng ta sẽ thực hiện phép nhân 2 với 3. Hãy làm theo các bước sau:

Bước 1: Đầu tiên mở Terminal trên Ubuntu.

Bước 2: Bạn gõ lệnh echo với cú pháp sau vào cửa sổ Terminal:

echo 2*3 | bc

Bước 3: Nhấn phím Enter để chạy lệnh.

Kết quả: Bạn sẽ thấy kết quả của phép tính là 6 được hiển thị trên màn hình.

Thực hiện các phép tính toán học đơn giản
Thực hiện các phép tính toán học đơn giản

Ví dụ 2: Thực hiện 6 phép gán giá trị trong hệ thống

LệnhKết quả
echo “var=10;var” | bc10
echo “var=2;var+=10;var” | bc12
echo “var=20;var-=5;var” | bc155
echo “var=15;var*=5;var” | bc75
echo “var=15;var/=5;var” | bc3
echo “var=10;var%=3;var” | bc1

Bây giờ, chúng ta sẽ thử một ví dụ. Đầu tiên, ta sẽ gán giá trị 10 cho biến var. Sau đó, ta tính bình phương của var (tức là var mũ 2) và lưu kết quả trở lại vào biến var. Bạn hãy thực hiện dưới đây:

Bước 1: Đầu tiên, bạn mở Terminal trên Ubuntu

Bước 2: Trong cửa sổ Terminal, gõ dòng lệnh sau:

echo "var=10;var^=2;var" | bc

Bước 3: Sau khi nhập lệnh, nhấn phím Enter để chạy lệnh.

Kết quả: Bạn sẽ thấy một kết quả hiển thị trên màn hình như hình minh họa bên dưới.

Thực hiện gán giá trị 10 cho biến var
Thực hiện gán giá trị 10 cho biến var

Ví dụ 3: Tăng giá trị một biến bất kỳ bằng lệnh bc

Trong Linux, bạn có thể dùng lệnh bc để thực hiện việc tăng giá trị của một biến. Có hai dạng phép toán tăng giá trị:

  1. ++var (tiền tố tăng): Biến được tăng ngay lập tức, và giá trị mới này sẽ được sử dụng trong các phép tính tiếp theo.
  2. var++ (hậu tố tăng): Giá trị hiện tại của biến được sử dụng trước, sau đó biến mới được tăng lên để chuẩn bị cho các hoạt động sau.

Bạn hãy xem qua hai trường hợp như sau để hiểu thêm chi tiết:

  • Trường hợp 1: Toán tử tăng giá trị trước

Trong trường hợp này, chúng ta sẽ giữ giá trị của biến var là 10, sau đó tăng giá trị của var lên 1 đơn vị bằng lệnh bc. Kết quả sẽ được in ra màn hình nhờ lệnh echo. Hãy cùng thực hiện theo các bước sau:

Bước 1: Bạn mở Terminal trên Ubuntu 

Bước 2: Sau đó gõ chính xác lệnh sau vào cửa sổ Terminal:

echo "var=10;++var" | bc

Bước 3: Sau khi gõ lệnh xong, bạn nhấn phím Enter để lệnh được thực thi.

Kết quả: Như bạn thấy trong hình bên dưới, chúng ta đã thực hiện thành công phép tăng giá trị trước bằng lệnh bc. Từ 10 lên 11.

Thực hiện giữ giá trị của biến var là 10, sau đó tăng giá trị của var lên 1
Thực hiện giữ giá trị của biến var là 10, sau đó tăng giá trị của var lên 1
  • Trường hợp 2: Toán tử tăng giá trị sau

Trong trường hợp này, chúng ta sẽ giữ giá trị ban đầu của biến var là 10. Đầu tiên, in ra giá trị gốc của var bằng lệnh echo, sau đó tăng giá trị của var lên 1 đơn vị bằng lệnh bc và lưu lại giá trị mới.

Bạn thực hiện theo các bước sau: 

Bước 1: Đầu tiên bạn mở Terminal 

Bước 2: Sau đó gõ chính xác lệnh sau vào Terminal:

echo "var=10;var++" | bc

Bước 3: Bạn nhấn phím Enter để lệnh được thực thi.

Kết quả: Bạn sẽ thấy kết quả in ra màn hình, giá trị ban đầu của var được in ra, sau đó giá trị này mới được tăng lên.

Thực hiện giữ giá trị ban đầu của biến var là 10
Thực hiện giữ giá trị ban đầu của biến var là 10

Lưu ý: Ở đây, giá trị 10 của var được in ra trước bằng lệnh echo, sau đó giá trị của var được tăng lên 1, và cuối cùng, giá trị mới của var, là 11, được lưu lại trong var.

Ví dụ 4: Sử dụng lệnh bc để giảm giá trị của một biến

Trong Linux, bạn có thể dùng lệnh bc để giảm giá trị của một biến. Có hai cách để làm điều này:

  1. --var: Đây gọi là phép giảm giá trị trước. Giá trị của biến sẽ bị giảm đi 1 trước, sau đó kết quả mới được dùng để tính toán tiếp.
  2. var--: Đây gọi là phép giảm giá trị sau. Giá trị hiện tại của biến sẽ được dùng để tính toán trước, sau đó biến mới bị giảm đi 1.

Để hiểu rõ hơn về 2 cách giảm giá trị biến như trên, bạn hãy xem qua hai trường hợp dưới đây:

  • Trường hợp 1: Giảm giá trị trước của biến

Trong trường hợp này chúng ta sẽ giữ giá trị của biến var là 10. Sau đó, chúng ta sẽ giảm giá trị của var đi 1 đơn vị bằng lệnh bc và in kết quả ra màn hình bằng lệnh echo. Để làm điều này, hãy làm theo các bước sau:

Bước 1: Đầu tiên, mở Terminal trên Ubuntu.

Bước 2: Gõ lệnh sau vào cửa sổ Terminal:

echo "var=10;--var" | bc

Bước 3: Nhấn phím Enter để thực thi lệnh.

Kết quả: Trên giao diện dòng lệnh hiển thị kết quả giá trị của var đã giảm từ 10 còn 9.

Kết quả giá trị của var đã giảm từ 10 còn 9
Kết quả giá trị của var đã giảm từ 10 còn 9
  • Trường hợp 2: Giảm giá trị sau của biến

Trong trường hợp này, chúng ta sẽ giữ giá trị của biến var là 10. Đầu tiên, in ra giá trị ban đầu của var bằng lệnh echo, sau đó giảm giá trị của var đi 1 và lưu lại bằng lệnh bc. Để thực hiện, bạn làm theo các bước sau:

Bước 1: Mở Terminal trên Ubuntu.

Bước 2: Gõ lệnh sau vào Terminal:

echo "var=10;var--" | bc

Bước 3: Nhấn phím Enter.

Kết quả: Lệnh bc sẽ thực hiện phép giảm giá trị sau, như hình minh họa bên dưới

Lưu ý: Ở đây, giá trị 10 của var được in ra trước nhờ lệnh echo, sau đó giá trị của var bị giảm đi 1, và cuối cùng, giá trị mới của var là 10, được lưu vào biến var.

Giữ giá trị của biến var là 10 và giảm đi 1
Giữ giá trị của biến var là 10 và giảm đi 1

Ví dụ 5: Thực hiện 6 cú pháp phép tính số học

Cú phápKết quả
biểu thức 1 < biểu thức 2Trả về 1 nếu biểu thức 1 nhỏ hơn biểu thức 2
biểu thức 1 <= biểu thức 2Trả về 1 nếu biểu thức 1 nhỏ hơn hoặc bằng biểu thức 2
biểu thức 1 > biểu thức 2Trả về 1 nếu biểu thức 1 lớn hơn biểu thức 2
biểu thức 1 >= biểu thức 2Trả về 1 nếu biểu thức 1 lớn hơn hoặc bằng biểu thức 2.
biểu thức 1 == biểu thức 2Trả về 1 nếu biểu thức 1 bằng biểu thức 2.
biểu thức 1 != biểu thức 2Trả về 1 nếu biểu thức 1 khác biểu thức 2.

Trong ví dụ này, chúng ta sẽ so sánh số 10 với số 4. Để thực hiện việc này, hãy làm theo các bước sau:

Bước 1: Đầu tiên, hãy mở ứng dụng Terminal trên Ubuntu

Bước 2: Sau đó, trong cửa sổ Terminal, gõ lệnh sau và nhấn Enter:

echo "10>4" | bc

Kết quả: Bạn có thể thấy kết quả trên màn hình là 1 thì có nghĩa là biểu thức 1 lớn hơn biểu thức 2.

Thực hiện so sánh số 10 với số 4
Thực hiện so sánh số 10 với số 4

Ví dụ 6: Thực hiện 3 phép tính logic trong các câu lệnh điều kiện

Cú pháp Kết quả
Phép (AND): biểu thức 1 && biểu thức 2Kết quả là 1 nếu cả hai biểu thức đều khác 0
Phép (OR): biểu thức 1 || biểu thức 2Kết quả là 1 nếu một trong hai biểu thức khác 0.
Phép (NOT): !biểu thứcKết quả là 1 nếu biểu thức bằng 0.

Trong Linux, bạn có thể dùng lệnh bc để thực hiện các phép tính logic (còn gọi là phép tính boolean). Những phép tính này thường xuất hiện trong các câu lệnh điều kiện. Kết quả của phép tính logic chỉ có thể là 1 (ĐÚNG) hoặc 0 (SAI).

Bây giờ, chúng ta sẽ thực hiện phép toán logic (boolean “or”) trên hai số 2 và 3. Hãy làm theo các bước sau:

Bước 1: Đầu tiên, hãy mở ứng dụng Terminal trên Ubuntu của bạn.

Bước 2: Trong cửa sổ Terminal, bạn gõ lệnh sau:

echo "2&&3" | bc

Bước 3: Sau khi nhập lệnh, bạn nhấn phím Enter.

Kết quả: Hình ảnh bên dưới cho thấy chúng ta đã thực hiện phép toán logic hoặc boolean (trong trường hợp này là phép toán boolean “AND“) bằng lệnh bc.

Thực hiện phép toán logic bằng lệnh bc
Thực hiện phép toán logic bằng lệnh bc

Ví dụ 7: Sử dụng lệnh bc để thực hiện các phép toán so sánh trong Linux

Phép toán so sánh cho phép bạn đưa ra quyết định và thực thi các câu lệnh dựa trên kết quả của phép so sánh đó. Lệnh bc hỗ trợ câu lệnh if.

Trong ví dụ này, chúng ta sẽ so sánh hai số m và n (trong đó m bằng 99 và n bằng 88) bằng cách sử dụng lệnh bc. Hãy làm theo các bước sau:

Bước 1: Bạn mở Terminal trên Ubuntu.

Bước 2: Sau đó bạn gõ lệnh sau vào cửa sổ Terminal và nhấn Enter: 

echo 'n=88;m=99;if(n>m) print "n>m" else print "m>n\n"' | bc -l 

Kết quả: Sau khi chạy lệnh trên giao diện sẽ hiện m is greater. Trong trường hợp này, vì 88 (giá trị của n) không lớn hơn 99 (giá trị của m), nên kết quả cuối cùng là m is greater.

Cách so sánh hai số m và n bằng lệnh bc
Cách so sánh hai số m và n bằng lệnh bc

Ví dụ 8: Thực hiện thao tác chuyển đổi số giữa các hệ đếm

Để dễ dàng chuyển đổi số từ hệ đếm này sang hệ đếm khác bằng lệnh bc trên Linux, bạn chỉ cần đặt cơ số của hệ đếm đầu ra vào biến obase và cơ số của hệ đếm đầu vào vào biến ibase. Để rõ hơn bạn xem qua 2 trường bên dưới đây:

  • Trường hợp 1: Chuyển đổi số thập phân thành số nhị phân

Máy tính hiểu ngôn ngữ nhị phân (chỉ gồm số 0 và 1). Đôi khi, bạn cần chuyển đổi số thập phân (số chúng ta thường dùng) sang nhị phân. Dưới đây là cách thực hiện trên Ubuntu:

Bước 1: Mở ứng dụng Terminal trên Ubuntu.

Bước 2: Sao chép lệnh sau vào Terminal và nhấn phím Enter:

echo "obase=2; ibase=10; 10;" | bc

Kết quả: Sau khi chạy lệnh trên giao diện  Terminal sẽ hiển thị 1010, đây chính là số nhị phân tương ứng với số thập phân 10.

Chuyển đổi số thập phân thành số nhị phân
Chuyển đổi số thập phân thành số nhị phân
  • Trường hợp 2: Chuyển đổi số nhị phân sang số thập phân

Để chuyển từ số nhị phân (chỉ dùng 0 và 1) sang số thập phân (số chúng ta thường dùng), bạn cần báo cho máy tính biết bạn đang nhập vào số nhị phân và muốn nhận kết quả là số thập phân. Hãy làm theo các bước dưới đây.

Bước 1: Trên Ubuntu, hãy mở cửa sổ Terminal

Bước 2: Nhập lệnh sau vào Terminal và nhấn phím Enter:

echo "obase=10; ibase=2; 11010100;" | bc

Kết quả: Bạn sẽ thấy kết quả là số 212, đây chính là số thập phân tương ứng với số nhị phân 170.

Chuyển đổi số nhị phân sang số thập phân
Chuyển đổi số nhị phân sang số thập phân

Ví dụ 9: Thực hiện các phép tính từ một file ngẫu nhiên

Trong ví dụ này, chúng ta sẽ thực hiện một số phép tính từ file có tên example.txt. Hãy làm theo các bước sau:

Bước 1: Đầu tiên, bạn mở Terminal trong Ubuntu.

Bước 2:lệnh nano theo cú pháp sau vào dòng lệnh và nhấn Enter:

nano example.txt

Bước 3: Bạn tiếp tục nhập tập lệnh sau vào trong file:

2+5;

var = 10*3

print var

print "\n"

quit
Gõ lệnh vào file
Gõ lệnh vào file

Bước 4: Bạn sử dụng tổ hợp phím CTRL+S để lưu, sau đó CTRL+X để thoát.

Bước 5: Cuối cùng bạn gõ lệnh sau và nhấn Enter: 

nano example.txt

bc -q exsample.txt

Kết quả: Trên giao diện Terminal sẽ được hiển thị ngay kết quả như hình bên dưới.

Các bước thực hiện một số phép tính từ file có tên sample.txt
Các bước thực hiện một số phép tính từ file có tên sample.txt

Ví dụ 10: Sử dụng các hàm toán học có sẵn trong Linux

Linux có sẵn rất nhiều hàm toán học mà bạn có thể dùng ngay với lệnh bc. Trong ví dụ này, chúng ta sẽ thử nghiệm với hàm arctangent (ký hiệu là a). Hãy làm theo các bước sau:

Bước 1: Mở ứng dụng Terminal trên Ubuntu.

Bước 2: Trong Terminal bạn nhập lệnh sau và nhấn Enter:

pi=`echo "h=10; 4*a(1)" | bc -l`

Lệnh này sẽ tính diện tích của một hình tròn có bán kính là 1 và lưu kết quả vào biến pi. Giá trị của pi sẽ xấp xỉ 3.1416. Tùy chọn -l yêu cầu bc sử dụng thư viện toán học.

Bước 3: Để hiển thị kết quả bạn nhập lệnh sau và nhấn Enter:

echo $pi

Kết quả: Màn hình sẽ hiển thị giá trị của pi như hình bên dưới.

Kết quả tính diện tích của một hình tròn có bán kính là 1 và lưu kết quả vào biến pi
Kết quả tính diện tích của một hình tròn có bán kính là 1 và lưu kết quả vào biến pi

Câu hỏi thường gặp

Có thể sử dụng bc để thực hiện các phép toán logic không?

Có thể. Người dùng có thể sử dụng 2 phép toán logic cơ bản trong bc:
1. Toán tử so sánh:
==: Bằng nhau
!=: Khác nhau
<: Nhỏ hơn
>: Lớn hơn
<=: Nhỏ hơn hoặc bằng
>=: Lớn hơn hoặc bằng
2. Toán tử Boolean:
&&: VÀ (AND)
||: HOẶC (OR)
!: PHỦ định (NOT)

Liệt kê các cách sử dụng biến trong bc

3 cách khai báo và sử dụng biến:
– Khai báo: Thay vì khai báo kiểu dữ liệu cho biến, bạn chỉ cần gán trực tiếp giá trị cho biến.
Gán giá trị: Sử dụng dấu bằng (=) để gán giá trị cho biến.
– Sử dụng biến: Gọi tên biến trực tiếp trong biểu thức.

Lời kết

Qua bài viết này, chúng ta đã tìm hiểu chi tiết về lệnh bc trong Linux cùng 10 ví dụ minh họa về cách sử dụng chi tiết. Hy vọng những kiến thức này sẽ giúp bạn sử dụng thành thạo lệnh bc và nâng cao hiệu quả công việc trên môi trường Linux. 

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

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

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

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

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Banner group
Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

MAXSPEED HOSTING

TĂNG TỐC WEBSITE TOÀN DIỆN

CÔNG NGHỆ ĐỘC QUYỀN

PHẦN CỨNG MẠNH MẼ

HỖ TRỢ 24/7

ĐĂNG KÝ NGAY
Pattern

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

Icon
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG