Các lệnh Linux cho người mới bắt đầu: Hướng dẫn thiết bị đầu cuối cần thiết kèm ví dụ

  1. Trang chủ
  2. Blog
  3. DevOps

DevOps

Các lệnh Linux dành cho người mới bắt đầu: Hướng dẫn thiết bị đầu cuối cần thiết kèm ví dụ

Thiết bị đầu cuối trông có vẻ đáng sợ cho đến khi bạn biết được vài chục lệnh. Tìm hiểu những vấn đề quan trọng, được nhóm theo những gì bạn đang cố gắng thực hiện, sau đó kết hợp chúng để trả lời câu hỏi thực sự về tệp nhật ký.

Đọc 9 phút
Các lệnh Linux dành cho người mới bắt đầu: hướng dẫn thiết bị đầu cuối cần thiết kèm ví dụ

Điểm chính

  • Một tập hợp nhỏ lệnh Linux bao gồm hầu hết công việc hàng ngày: ls, cd, cp, mv, rm, cat và grep.
  • Ống (|) kết nối các công cụ đơn giản để trả lời các câu hỏi khó hơn.
  • rm không có thùng rác nên hãy kiểm tra kỹ trước khi nhấn Enter.
  • Sử dụng man hoặc --help bất cứ khi nào bạn quên một tùy chọn.

Hầu hết các máy chủ, bộ chứa và máy đám mây đều chạy Linux và chúng thường không có màn hình đồ họa. Đó là lý do tại sao việc học các lệnh Linux lại là một kỹ năng hữu ích cho cả nhà phát triển và người thử nghiệm. Bạn không cần phải ghi nhớ hàng trăm. Một vài chục sẽ mang bạn đi một chặng đường dài.

Chúng tôi đã thử nghiệm các ví dụ về tệp, tìm kiếm và đường dẫn trong Git Bash trên Windows, nơi cung cấp các công cụ cốt lõi giống nhau và kết quả đầu ra là từ lần chạy đó. Chúng tôi không chạy các lệnh về quyền, dịch vụ, gói và quyền truy cập từ xa vì chúng phụ thuộc vào hệ thống Linux thực. Thông tin chi tiết có thể thay đổi tùy theo phân phối, vì vậy hãy kiểm tra tài liệu của hệ thống của riêng bạn.

Bắt đầu an toàn

Bạn không cần cài đặt Linux để thực hành. Các lựa chọn tốt bao gồm:

  • Windows: Hệ thống con Windows cho Linux (WSL) hoặc Git Bash để biết thông tin cơ bản.
  • macOS: Terminal tích hợp, có các lệnh rất giống nhau, mặc dù một số tùy chọn có khác nhau.
  • Bất kỳ hệ thống nào: một thùng chứa. Hướng dẫn về Docker dành cho người mới bắt đầu của chúng tôi chỉ ra cách bắt đầu một cái.

Thực hành trong một thư mục dùng một lần và nhớ rằng mọi thứ trong Linux đều phân biệt chữ hoa chữ thường: Notes.txt và notes.txt là các tệp khác nhau.

Giải phẫu của một lệnh

ls -l /var/log
^  ^  ^
|  |  argument: what to act on
|  option: how to behave
command: what to run

Các tùy chọn ngắn thường có thể được kết hợp, vì vậy ls -l -a và ls -la giống nhau. Các tùy chọn dài sử dụng hai dấu gạch ngang, như trong --help. Để được trợ giúp, hãy chạy man ls để xem hướng dẫn đầy đủ hoặc ls --help để xem tóm tắt. Nhấn q để thoát khỏi trang hướng dẫn.

Lệnh Nó làm gì
pwd In thư mục hiện tại của bạn
ls Liệt kê các tập tin
ls -la Liệt kê tất cả các tệp, bao gồm cả các tệp ẩn, với thông tin chi tiết
thư mục cd Di chuyển vào một thư mục
đĩa .. Di chuyển lên một cấp độ
đĩa ~ Đi tới thư mục chính của bạn
cd - Trở về thư mục trước đó

Nhấn Tab để tự động hoàn thành tên tệp và mũi tên lên để quay lại các lệnh trước đó. Hai thói quen này giúp tiết kiệm thời gian hơn bất kỳ mẹo nào khác ở đây. Tên tệp bắt đầu bằng dấu chấm, chẳng hạn như .env, bị ẩn và ls chỉ hiển thị bằng -a.

Quản lý tập tin và thư mục

Lệnh Nó làm gì
mkdir -p dự án/nhật ký Tạo thư mục, bao gồm cả cha mẹ
chạm vào ghi chú.txt Tạo một tập tin trống
cp a.txt b.txt Sao chép một tập tin
cp -r src/ sao lưu/ Sao chép một thư mục
mv a.txt b.txt Đổi tên hoặc di chuyển một tập tin
rm a.txt Xóa một tập tin
rm -r thư mục/ Xóa một thư mục và mọi thứ trong đó

Đây là một phiên ngắn trong hoạt động của chúng tôi:

$ mkdir -p project/logs
$ cd project
$ touch notes.txt
$ ls
logs  notes.txt

$ cp notes.txt backup.txt
$ mv backup.txt old.txt
$ ls
logs  notes.txt  old.txt

$ rm old.txt
$ ls
logs  notes.txt

Mẹo: rm không sử dụng thùng rác và các tệp đã xóa thường không còn nữa. Hãy đặc biệt cẩn thận với rm -r và các ký tự đại diện. Trước tiên, hãy chạy ls với cùng một mẫu để xem chính xác những gì phù hợp và sử dụng rm -i nếu bạn muốn có lời nhắc cho mỗi tệp.

Xem nội dung tập tin

Lệnh Nó làm gì
tập tin mèo In toàn bộ tập tin
ít tập tin hơn Cuộn qua một tập tin dài (q để thoát)
tập tin đầu -n 5 Hiển thị năm dòng đầu tiên
tập tin đuôi -n 5 Hiển thị năm dòng cuối cùng
tập tin đuôi -f Theo dòng mới khi chúng được viết
tập tin wc -l Đếm dòng

Đối với một số ví dụ tiếp theo, chúng tôi đã tạo một tệp nhật ký nhỏ:

$ cat logs/app.log
ERROR db down
INFO started
ERROR disk full
INFO stopped

$ head -n 1 logs/app.log
ERROR db down

$ tail -n 1 logs/app.log
INFO stopped

$ wc -l logs/app.log
4 logs/app.log

tail -f là công cụ hàng ngày để xem nhật ký ứng dụng trực tiếp trong khi bạn tái hiện lỗi. Nhấn Ctrl+C để dừng nó.

grep tìm kiếm bên trong các tệp và find tự tìm kiếm các tệp:

$ grep ERROR logs/app.log
ERROR db down
ERROR disk full

$ grep -c ERROR logs/app.log
2

$ find . -name "*.log"
./logs/app.log
Tùy chọn Ý nghĩa
grep -i Bỏ qua trường hợp
grep -r Tìm kiếm một thư mục theo cách đệ quy
grep -n Hiển thị số dòng
grep -v Hiển thị các dòng không khớp
grep -c Đếm các dòng phù hợp

Đường ống và chuyển hướng

Đây là ý tưởng làm cho dòng lệnh trở nên mạnh mẽ. Mỗi công cụ thực hiện một công việc nhỏ và bạn kết nối chúng:

Biểu tượng Nó làm gì
| Gửi đầu ra của một lệnh vào lệnh tiếp theo
> Ghi đầu ra vào một tập tin, thay thế nội dung của nó
>> Nối đầu ra vào một tập tin
2> Ghi thông báo lỗi vào một tập tin
$ echo "hello" > greeting.txt
$ echo "world" >> greeting.txt
$ cat greeting.txt
hello
world

Hãy cẩn thận với một >, vì nó âm thầm ghi đè lên những gì đã có trong tệp.

Một ví dụ thực tế: tóm tắt nhật ký

Có bao nhiêu dòng của mỗi loại trong nhật ký của chúng tôi? Kết hợp bốn lệnh đơn giản sẽ cho câu trả lời:

$ cut -d' ' -f1 logs/app.log | sort | uniq -c
      2 ERROR
      2 INFO

Đọc từ trái sang phải: cut lấy từ đầu tiên cách nhau bằng dấu cách trên mỗi dòng, sort nhóm các từ giống nhau lại với nhau và uniq -c đếm từng nhóm. Bước sắp xếp quan trọng vì uniq chỉ thu gọn các bản sao lân cận. Thêm | sort -nr vào cuối để liệt kê những điều phổ biến nhất trước tiên.

Loại lời giải thích này sẽ giúp ích rất nhiều khi bạn đang điều tra các lỗi. Nó có thể nhanh chóng cho bạn biết lỗi xảy ra hai lần hay hai nghìn lần. Đây là chi tiết hữu ích để đưa vào báo cáo lỗi.

Quyền tập tin

Chạy ls -l và bạn sẽ thấy một cái gì đó như thế này:

-rwxr-xr-- 1 asha devs 512 Nov 1 10:00 deploy.sh

Sau ký tự đầu tiên hiển thị loại tệp, có ba nhóm gồm ba ký tự dành cho chủ sở hữu, nhóm và mọi người khác. Mỗi cái có thể có r (đọc), w (ghi) và x (thực thi).

Lệnh Nó làm gì
chmod +x triển khai.sh Làm cho một tập lệnh có thể thực thi được
tập tin chmod 644 Chủ sở hữu có thể đọc và viết, người khác có thể đọc
chmod 755 script.sh Chủ sở hữu có toàn quyền truy cập, những người khác có thể đọc và chạy
tập tin asha chown Thay đổi chủ sở hữu
lệnh sudo Chạy lệnh với tư cách quản trị viên

Các số cộng lại: đọc là 4, viết là 2 và thực thi là 1. Vậy 7 có nghĩa là cả ba và 5 có nghĩa là đọc và thực thi. Tránh chmod 777, nơi cung cấp cho mọi người quyền truy cập đầy đủ, như một cách khắc phục nhanh các lỗi về quyền. Thay vào đó hãy tìm nguyên nhân thực sự. Và hãy sử dụng sudo một cách cẩn thận vì nó loại bỏ các kiểm tra an toàn thường bảo vệ hệ thống.

Quy trình và thông tin hệ thống

Lệnh Nó làm gì
phụ trợ ps Liệt kê các tiến trình đang chạy
top hoặc htop Hiển thị chế độ xem trực tiếp của CPU và bộ nhớ
giết 1234 Yêu cầu quá trình 1234 dừng lại
df -h Hiển thị dung lượng đĩa trống
thư mục du -sh Hiển thị kích thước của thư mục
miễn phí -h Hiển thị việc sử dụng bộ nhớ
trạng thái systemctl nginx Hiển thị trạng thái của dịch vụ
tạp chí -u nginx Hiển thị nhật ký của dịch vụ

Để cài đặt phần mềm, hãy sử dụng trình quản lý gói của bản phân phối của bạn, chẳng hạn như sudo apt install curl trên Debian và Ubuntu hoặc sudo dnf install curl trên Fedora và RHEL.

Lưu trữ và làm việc từ xa

$ tar -czf logs.tar.gz logs
$ tar -tzf logs.tar.gz
logs/
logs/app.log

Trong tar, c có nghĩa là tạo, z có nghĩa là gzip, f đặt tên tệp và t liệt kê nội dung. Để trích xuất một kho lưu trữ, hãy sử dụng tar -xzf logs.tar.gz. Để làm việc với các máy khác, bạn cần có ba máy sau:

Lệnh Nó làm gì
người dùng ssh@server Mở một thiết bị đầu cuối từ xa
tập tin scp user@server:/path/ Sao chép một tập tin qua SSH
cuộn tròn -I https://example.com Hiển thị tiêu đề phản hồi của URL

Các lệnh tương tự này được sử dụng bên trong Dockerfiles và CI/CD Pipeline, vì vậy kiến thức này sẽ mang lại hiệu quả trong công việc DevOps.

Những lỗi thường gặp

  • Sử dụng rm -rf mà không cần nhìn. Trước tiên, hãy kiểm tra thư mục của bạn với pwd và cẩn thận với các khoảng trắng trong đường dẫn.
  • Ghi đè bằng >. Sử dụng >> khi bạn muốn nối thêm.
  • Chạy mọi thứ với sudo. Chỉ sử dụng nó khi được yêu cầu.
  • Dán các lệnh mà bạn không hiểu. Đọc chúng trước, đặc biệt là bất kỳ lệnh nào dẫn đường tải xuống vào shell.
  • Quên dấu ngoặc kép. Tên tệp có dấu cách, như "my file.txt", cần có dấu cách.

Lời kết

Bạn không tìm hiểu thiết bị đầu cuối bằng cách đọc về nó. Mở shell, tạo một thư mục thực hành và chạy các lệnh của từng phần. Sau đó cố gắng trả lời một câu hỏi thực sự bằng cách sử dụng một dấu gạch đứng, chẳng hạn như lỗi nào xuất hiện thường xuyên nhất trong nhật ký. Bắt đầu với điều hướng và tệp trong tuần này, thêm grep và các đường dẫn tiếp theo, phần còn lại sẽ thực hiện theo khi bạn cần.

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

Các lệnh Linux cơ bản nhất là gì?

Bắt đầu với pwd, ls, cd, mkdir, cp, mv, rm, cat và grep. Những công việc này bao gồm việc di chuyển, quản lý tập tin và tìm kiếm, những công việc chiếm phần lớn công việc hàng ngày của thiết bị đầu cuối.

Làm cách nào tôi có thể thực hành các lệnh Linux trên Windows?

Sử dụng Hệ thống con Windows cho Linux để có môi trường đầy đủ hoặc Git Bash cho những điều cơ bản. Chạy vùng chứa Linux với Docker cũng hoạt động tốt.

Sự khác biệt giữa > và >> trong Linux là gì?

Một > thay thế nội dung của tệp bằng đầu ra. Double >> thêm đầu ra vào cuối tệp và giữ lại những gì đã có ở đó.

Tôi có thể hoàn tác lệnh rm không?

Nói chung là không, vì rm không sử dụng thùng rác. Các công cụ khôi phục đôi khi có ích nhưng không đáng tin cậy, vì vậy hãy sao lưu và kiểm tra cẩn thận trước.

Sudo có nghĩa là gì?

sudo chạy một lệnh duy nhất với quyền quản trị viên. Nó cần thiết cho các công việc như cài đặt phần mềm và cần được sử dụng cẩn thận.

Tiếp tục học hỏi

Làm việc với Stack Quora

Cần trợ giúp về kiểm tra, WordPress hoặc SEO?

Chúng tôi giúp các nhóm phát triển phần mềm tốt hơn và phát triển trang web của họ. Hãy cho chúng tôi biết bạn đang làm gì và chúng tôi sẽ đề xuất bước tiếp theo rõ ràng.

Tiếp tục đọc

Thêm hướng dẫn về thử nghiệm, AI và phát triển hiện đại

Bạn thích bài viết này? Chọn một chủ đề và chuyển ngay sang phần hướng dẫn mới nhất của chúng tôi.

Trí tuệ nhân tạo

Giải thích về ảo giác AI: Tại sao các mô hình ngôn ngữ lại tạo nên mọi thứ và cách giảm thiểu nó

Ảo giác AI đã giải thích: chúng là gì, tại sao mô hình ngôn ngữ tạo ra chúng, các loại phổ biến, cách giảm thiểu chúng bằng cách căn cứ và nhắc nhở …

Đọc bài viết →
DevOps

Giải thích về các biến môi trường: Tệp .env, bí mật và cấu hình được thực hiện đúng

Các biến môi trường được giải thích bằng các ví dụ Python mà chúng tôi đã chạy: đọc và thiết lập chúng, tại sao mọi giá trị đều là một chuỗi, tệp .e…

Đọc bài viết →
Phát triển phần mềm

Giải thích về giới hạn tỷ lệ API: Thuật toán, tiêu đề và xử lý lỗi 429

Giới hạn tốc độ API được giải thích bằng mô phỏng mà chúng tôi đã chạy: nhóm mã thông báo, cửa sổ cố định, cửa sổ trượt, 429 phản hồi, tiêu đề giới …

Đọc bài viết →
Tự động hóa kiểm thử

Chế giễu bằng Python: unittest.mock, patch và những sai lầm khiến bài kiểm tra nói dối

Mô phỏng bằng Python với unittest.mock, đã được thử nghiệm: Mock và return_value, side_effect, vá lỗi nơi sử dụng tên, thông số kỹ thuật và thông số…

Đọc bài viết →
Kiểm thử phần mềm

Giải thích về phạm vi bảo hiểm của mã: Phạm vi tuyến so với chi nhánh và ý nghĩa thực sự 100%

Phạm vi bảo hiểm mã được giải thích bằng cách chạy phạm vi bảo hiểm thực tế: phạm vi bảo hiểm dòng, chi nhánh và điều kiện, đọc báo cáo, lý do tại s…

Đọc bài viết →
Cơ sở dữ liệu & SQL

DELETE vs TRUNCATE vs DROP trong SQL: Sự khác biệt, khôi phục và thời điểm sử dụng mỗi loại

DELETE vs TRUNCATE vs DROP được giải thích bằng SQL đã được thử nghiệm: mỗi loại loại bỏ, khôi phục, kích hoạt, đặt lại danh tính, tốc độ và Postgre…

Đọc bài viết →
Cơ sở dữ liệu & SQL

Giải thích về Chế độ xem SQL: Tạo, sử dụng và tránh những cạm bẫy, kèm theo ví dụ

Chế độ xem SQL được giải thích bằng các truy vấn chúng tôi đã chạy: tạo chế độ xem, kết quả trực tiếp, ẩn cột, hiệu suất, chế độ xem có thể cập nhật…

Đọc bài viết →
Phát triển phần mềm

Giao diện TypeScript so với loại: Sự khác biệt thực sự, được thử nghiệm bằng trình biên dịch

Giao diện TypeScript so với loại, được kiểm tra bằng trình biên dịch thực: cả hai có thể làm gì, chỉ một người có thể làm gì, hợp nhất khai báo, mở …

Đọc bài viết →
Phát triển phần mềm

Giải thích về Python *args và **kwargs: Hàm linh hoạt với ví dụ rõ ràng

Python *args và **kwargs được giải thích bằng mã chúng tôi đã chạy: đóng gói và giải nén, thứ tự tham số, đối số chỉ từ khóa và chỉ vị trí, trình tr…

Đọc bài viết →
Phát triển phần mềm

Hàm Lambda của Python: Cú pháp, cách sử dụng thực tế và khi nào không nên sử dụng chúng

Các hàm lambda của Python được giải thích bằng mã chúng tôi đã chạy: cú pháp, sắp xếp bằng khóa, bản đồ và bộ lọc, các phần đóng, bẫy liên kết muộn …

Đọc bài viết →
Trí tuệ nhân tạo

Đại lý AI là gì? Cách chúng hoạt động, với vòng lặp tác nhân đơn giản, bạn có thể chạy

Tác nhân AI là gì? Hướng dẫn đơn giản về vòng lặp tác nhân, công cụ, bộ nhớ và lan can, với một vòng lặp Python nhỏ mà chúng tôi đã chạy, những rủi …

Đọc bài viết →
DevOps

Giám sát và Khả năng quan sát: Sự khác biệt thực sự, với nhật ký, số liệu và dấu vết

Giải thích về giám sát và khả năng quan sát: lỗi đã biết và chưa biết, nhật ký, số liệu và dấu vết, hướng dẫn về sự cố thanh toán, tín hiệu vàng, Op…

Đọc bài viết →
DevOps

Docker Volumes vs Bind Mounts: Duy trì dữ liệu vùng chứa đúng cách

Giải thích về khối lượng Docker và liên kết gắn kết: tại sao dữ liệu vùng chứa biến mất, khối lượng được đặt tên, liên kết gắn kết, tmpfs, ví dụ về …

Đọc bài viết →
Tự động hóa kiểm thử

TDD vs BDD: Key Differences, One Feature Built Both Ways and When to Use Each

TDD và BDD được giải thích bằng một tính năng giảm giá được xây dựng theo cả hai cách: tái cấu trúc màu đỏ-xanh với mã chúng tôi đã chạy, kịch bản C…

Đọc bài viết →
Kiểm thử phần mềm

Kiểm tra chấp nhận của người dùng (UAT): Quy trình, danh sách kiểm tra và ví dụ thực tế

Giải thích về thử nghiệm chấp nhận của người dùng: ai chạy nó, nó khác với QA như thế nào, quy trình bảy bước, mẫu trường hợp thử nghiệm UAT, danh s…

Đọc bài viết →
Cơ sở dữ liệu & SQL

Giải thích về các giá trị NULL của SQL: IS NULL, COALESCE, NULLIF và những cái bẫy cần tránh

Các giá trị SQL NULL được giải thích bằng các truy vấn chúng tôi đã chạy: logic ba giá trị, IS NULL, COALESCE, NULLIF, cách tổng hợp, kết hợp và sắp…

Đọc bài viết →
Cơ sở dữ liệu & SQL

Câu lệnh SQL CASE WHEN: Cú pháp, ví dụ thực tế và các lỗi thường gặp

TRƯỜNG HỢP SQL KHI được giải thích bằng các truy vấn mà chúng tôi đã chạy: các biểu mẫu đơn giản và được tìm kiếm, thứ tự điều kiện, các thủ thuật S…

Đọc bài viết →
Phát triển phần mềm

JWT là gì? Mã thông báo Web JSON được giải thích bằng một ví dụ hoạt động

JWT là gì? Mã thông báo Web JSON đã giải thích: ba phần, mã thông báo được xây dựng và giả mạo trong mã chúng tôi đã chạy, JWT so với phiên, lưu trữ…

Đọc bài viết →
Phát triển phần mềm

Giải thích về vòng lặp sự kiện JavaScript: Ngăn xếp cuộc gọi, Microtask và bộ hẹn giờ kèm ví dụ

Vòng lặp sự kiện JavaScript được giải thích bằng mã chúng tôi đã chạy: ngăn xếp cuộc gọi, hàng đợi tác vụ và vi nhiệm, tại sao setTimeout 0 không di…

Đọc bài viết →
Phát triển phần mềm

Giải thích về trình tạo và năng suất của Python: Tiết kiệm bộ nhớ bằng các ví dụ thực tế

Trình tạo và lợi nhuận Python được giải thích bằng mã chúng tôi đã chạy: cách chúng tạm dừng và tiếp tục, đo mức tiết kiệm bộ nhớ, quy trình, chuỗi …

Đọc bài viết →
Trí tuệ nhân tạo

Nhúng là gì? Giải thích sự tương đồng về vectơ và Cosine một cách đơn giản

nhúng là gì? Hướng dẫn bằng ngôn ngữ đơn giản về vectơ, độ tương tự cosine và tìm kiếm ngữ nghĩa, với một ví dụ nhỏ mà chúng tôi đã chạy, các cách s…

Đọc bài viết →
DevOps

Triển khai Blue-Green và Canary: Sự khác biệt, sự đánh đổi và cách lựa chọn

Giải thích về triển khai Blue-green và Canary: cách hoạt động của từng loại, chi phí, rủi ro và khôi phục, nhóm người dùng ổn định mà chúng tôi đã t…

Đọc bài viết →
Tự động hóa kiểm thử

Kiểm tra không ổn định: Nguyên nhân gây ra chúng và cách khắc phục chúng vĩnh viễn

Các thử nghiệm không ổn định được giải thích bằng các bản demo mà chúng tôi đã chạy: nguyên nhân chính, cách xác nhận và chẩn đoán nguyên nhân, cách…

Đọc bài viết →
Kiểm thử phần mềm

Kiểm tra tải và kiểm tra căng thẳng: Sự khác biệt, số liệu và ví dụ về k6

Giải thích về thử nghiệm tải và thử nghiệm căng thẳng: mỗi thử nghiệm chứng minh điều gì, thử nghiệm tăng đột biến và ngâm, số liệu quan trọng, lý d…

Đọc bài viết →
Kiểm thử phần mềm

Trường hợp thử nghiệm và kịch bản thử nghiệm: Sự khác biệt chính, ví dụ và thời điểm sử dụng từng trường hợp

Giải thích trường hợp kiểm thử và kịch bản kiểm thử: định nghĩa rõ ràng, bảng cạnh nhau, một tính năng đặt lại mật khẩu được lấy từ các tình huống n…

Đọc bài viết →
Cơ sở dữ liệu & SQL

Tối ưu hóa truy vấn SQL: Đọc kế hoạch thực thi và sửa các truy vấn chậm, có tính thời gian

Đã thử nghiệm tối ưu hóa truy vấn SQL trên một triệu hàng: đọc kế hoạch thực hiện, thêm chỉ mục phù hợp, sửa các bộ lọc không thể mở rộng, sử dụng c…

Đọc bài viết →
Cơ sở dữ liệu & SQL

SQL UNION và UNION ALL: Sự khác biệt, ví dụ và hiệu suất đã được kiểm tra

SQL UNION và UNION ALL được giải thích bằng các truy vấn chúng tôi đã chạy: trùng lặp, cả hai quy tắc đều tuân theo, lỗi dữ liệu thực, hiệu suất đượ…

Đọc bài viết →
Phát triển phần mềm

Hướng dẫn API tìm nạp JavaScript: GET, POST, Xử lý lỗi và hết thời gian chờ

Hướng dẫn API tìm nạp JavaScript đã được thử nghiệm trên máy chủ cục bộ: GET và POST, tại sao 404 không gửi, trình trợ giúp có thể sử dụng lại, chuỗ…

Đọc bài viết →
Phát triển phần mềm

Xử lý tệp Python: Đọc, ghi, CSV, JSON và pathlib kèm ví dụ

Việc xử lý tệp Python được giải thích bằng mã chúng tôi đã chạy: chế độ mở, với, đọc tệp lớn, CSV, JSON, pathlib, tệp nhị phân, ghi an toàn, xử lý l…

Đọc bài viết →
Phát triển phần mềm

Các lớp và đối tượng Python: Hướng dẫn OOP với các ví dụ thực tế

Các lớp và đối tượng Python được giải thích bằng mã mà chúng tôi đã chạy: __init__, các phương thức, thuộc tính lớp và phiên bản, tính kế thừa, thuộ…

Đọc bài viết →
Trí tuệ nhân tạo

Mô hình ngôn ngữ lớn là gì? LLM hoạt động như thế nào, được giải thích mà không cường điệu hóa

Mô hình ngôn ngữ lớn là gì? LLM được giải thích bằng ngôn ngữ đơn giản: mã thông báo, phần nhúng, sự chú ý, đào tạo, cửa sổ nhiệt độ và ngữ cảnh, mộ…

Đọc bài viết →
DevOps

Các lệnh Linux cho người mới bắt đầu: Hướng dẫn thiết bị đầu cuối cần thiết kèm ví dụ

Các lệnh Linux dành cho người mới bắt đầu, được nhóm theo tác vụ: điều hướng, tệp, xem nhật ký, grep, đường dẫn, quyền, quy trình và lưu trữ, cùng v…

Đọc bài viết →
Tự động hóa kiểm thử

Selenium vs Nhà viết kịch: Sự khác biệt chính, So sánh mã và nên chọn cái nào

Selenium và Playwright được so sánh: kiến trúc, chờ đợi, hỗ trợ trình duyệt và ngôn ngữ, gỡ lỗi, kiểm tra giống nhau ở cả hai công cụ, lời khuyên di…

Đọc bài viết →
Kiểm thử phần mềm

Phân vùng tương đương: Giải thích kỹ thuật thiết kế thử nghiệm bằng các ví dụ đã thực hiện

Giải thích về phân vùng tương đương: cách tìm các phân vùng hợp lệ và không hợp lệ, các ví dụ hoạt động theo độ tuổi, mật khẩu và phiếu giảm giá, cá…

Đọc bài viết →
Kiểm thử phần mềm

Mức độ nghiêm trọng và mức độ ưu tiên trong kiểm thử phần mềm: Sự khác biệt, Ma trận và ví dụ thực tế

Giải thích về mức độ nghiêm trọng và mức độ ưu tiên trong kiểm thử phần mềm: định nghĩa rõ ràng, ma trận bốn chiều với các ví dụ, thang đo cấp độ, a…

Đọc bài viết →
Cơ sở dữ liệu & SQL

Hướng dẫn về truy vấn con SQL: Các loại, truy vấn con tương quan và TỒN TẠI kèm ví dụ

Hướng dẫn về truy vấn con SQL với các truy vấn chúng tôi đã chạy: truy vấn con vô hướng, IN, FROM và SELECT, truy vấn con tương quan, EXISTS, bẫy và…

Đọc bài viết →
Cơ sở dữ liệu & SQL

Giải thích về giao dịch SQL và ACID: Các mức CAM KẾT, ROLLBACK và Cô lập

Các giao dịch SQL và ACID được giải thích bằng chuyển khoản ngân hàng mà chúng tôi đã thực hiện: CAM KẾT, ROLLBACK, điểm lưu trữ, khóa, mức cách ly,…

Đọc bài viết →
Phát triển phần mềm

Git merge vs rebase: khác biệt, ví dụ và khi nào dùng cái nào

Git merge vs rebase được giải thích bằng đầu ra log thực tế, bảng so sánh, quy tắc vàng của rebase và quy trình làm việc nhóm an toàn.

Đọc bài viết →
Phát triển phần mềm

List comprehension trong Python: cú pháp, ví dụ và khi nào nên tránh

List comprehension trong Python: cú pháp, lọc dữ liệu, if-else, vòng lặp lồng nhau, thời gian đo thực tế và khi nào vòng lặp for thông thường tốt hơn.

Đọc bài viết →
Cơ sở dữ liệu & SQL

Giải thích SQL JOIN kèm ví dụ (Inner, Left, Right, Full)

Hiểu SQL JOIN từng bước với bảng và truy vấn mẫu: INNER, LEFT, RIGHT, FULL, CROSS và SELF, cùng lỗi thường gặp và mẹo hiệu năng.

Đọc bài viết →