Bạn có thể đã thấy bài viết đầu tiên, 'Các lệnh hữu ích cho người mới', rất hữu ích, vì nó được thiết kế dành cho người mới học, bài viết này dành cho người dùng trung cấp và nâng cao.
Nó bao gồm các chủ đề như tùy chỉnh tìm kiếm, hiểu về quy trình và cách chấm dứt chúng, tối ưu hóa terminal Linux để tăng năng suất, và biên dịch các chương trình C, C++ và Java trong môi trường tương tự Unix.
21. Lệnh find
Lệnh find được sử dụng để tìm kiếm tập tin trong thư mục đã cho, theo cấu trúc từ thư mục cha đến các thư mục con.
find -name *.sh
Tùy chọn -name làm cho tìm kiếm phân biệt chữ hoa. Bạn có thể sử dụng tùy chọn -iname để tìm kiếm các tệp không phân biệt chữ hoa với các mẫu viết hoa khác nhau trong phần mở rộng.
Dấu * là một ký tự đại diện và tìm kiếm tất cả các tệp có phần mở rộng .sh bạn có thể sử dụng tên tệp hoặc một phần của tên tệp để tùy chỉnh đầu ra.
find -iname *.SH
Lệnh sau được sử dụng để tìm kiếm tất cả các tệp có phần mở rộng ".tar.gz" trong thư mục hiện tại và các thư mục con bao gồm các thiết bị đã được gắn kết.
find -name *.tar.gz
22. Lệnh grep
Lệnh grep tìm kiếm các dòng trong một tệp đã chỉ định chứa các chuỗi hoặc từ khớp.
Trong trường hợp này, nó được sử dụng để tìm kiếm người dùng 'tecmint' trong tệp '/etc/passwd'.
grep tecmint /etc/passwd
Tùy chọn -i được sử dụng để tìm kiếm chuỗi "TECMINT" (không phân biệt chữ hoa) trong tệp '/etc/passwd'.
grep -i TECMINT /etc/passwd
Tùy chọn -r được sử dụng để tìm kiếm đệ quy chuỗi "127.0.0.1" trong tệp '/etc/hosts'.
grep -r "127.0.0.1" /etc/hosts
23. Lệnh man
Lệnh man là trình xem tài liệu hệ thống, cung cấp tài liệu trực tuyến cho tất cả các tùy chọn có thể của một lệnh và cách sử dụng của nó.
Hầu hết các lệnh Linux đều đi kèm với trang tài liệu tương ứng. Ví dụ, ‘man cat‘ (Trang tài liệu cho lệnh cat) và ‘man ls‘ (Trang tài liệu cho lệnh ls) hiển thị các trang tài liệu cho một lệnh đã cho.
man cat
man ls
24. Lệnh ps
Lệnh ps cung cấp thông tin về quá trình đang chạy với một ID duy nhất gọi là PID.
ps
Để liệt kê tình trạng của tất cả các quá trình cùng với ID quá trình và PID, sử dụng tùy chọn -A.
ps -A
Lệnh ps rất hữu ích khi bạn muốn biết quá trình nào đang chạy hoặc có thể cần PID đôi khi, cho một quá trình cần bị hủy. Bạn có thể sử dụng nó với lệnh grep để tìm kiếm đầu ra tùy chỉnh.
ps -A | grep -i ssh
Ở đây ps được kết nối với lệnh grep để tìm kiếm đầu ra tùy chỉnh và liên quan đến nhu cầu của chúng ta.
25. Lệnh kill
Lệnh kill trong Linux rất quan trọng để chấm dứt quá trình không phản hồi hoặc không liên quan một cách hiệu quả. Khác với Windows, nơi thường phải khởi động lại sau khi kết thúc một quá trình, Linux cho phép bạn kết thúc và khởi động lại các quá trình mà không cần khởi động lại hệ thống.
Ví dụ, nếu bạn cần chấm dứt chương trình 'firefox' nếu nó không phản hồi, bạn có thể sử dụng lệnh ps cùng với grep để tìm PID của quá trình và sau đó sử dụng lệnh kill để dừng quá trình.
ps -A | grep -i firefox
kill 69881
Mỗi khi bạn chạy lại một quá trình hoặc khởi động một hệ thống, một pid mới được tạo ra cho mỗi quá trình và bạn có thể biết về các quá trình đang chạy hiện tại và pid của chúng bằng lệnh 'ps'.
Một cách khác để chấm dứt cùng một quá trình.
pkill apache2
Lệnh kill yêu cầu ID công việc/quá trình để gửi tín hiệu, trong khi đó, pkill cho phép bạn sử dụng một mẫu, chỉ định chủ sở hữu quá trình, v.v.
26. Lệnh whereis
Lệnh whereis được sử dụng để tìm vị trí của tệp nhị phân, nguồn và trang tài liệu của lệnh.
Ví dụ, để tìm vị trí tệp nhị phân, nguồn và trang tài liệu của lệnh 'ls' và 'kill'.
whereis ls
whereis kill
Lệnh whereis hữu ích khi bạn muốn biết nơi các tệp nhị phân được cài đặt để chỉnh sửa thủ công đôi khi.
27. Lệnh systemctl
Lệnh systemctl điều khiển việc khởi động, dừng, khởi động lại, kích hoạt, vô hiệu hóa và kiểm tra trạng thái của một dịch vụ hoặc chương trình.
sudo systemctl start sshd
sudo systemctl stop sshd
sudo systemctl restart sshd
sudo systemctl enable sshd
sudo systemctl disable sshd
sudo systemctl status sshd
28. Lệnh alias
Lệnh alias là một lệnh shell tích hợp cho phép bạn gán tên cho một lệnh dài hoặc lệnh sử dụng thường xuyên.
Tôi thường sử dụng lệnh 'ls - l', bao gồm 5 ký tự, bao gồm khoảng trắng. Do đó, tôi đã tạo một bí danh cho nó là 'l'.
alias l='ls -l'
kiểm tra xem nó hoạt động hay không.
l
Để xóa bí danh 'l', sử dụng lệnh 'unalias' sau đây.
unalias l
kiểm tra, xem liệu 'l' còn là bí danh hay không.
l
l: command not found
Thêm một chút vui vẻ vào các lệnh Linux bằng cách tạo bí danh cho các lệnh quan trọng cụ thể thành các lệnh quan trọng khác.
alias cd='ls -l' (set alias of ls -l to cd)
alias su='pwd' (set alias of pwd to su)
Bây giờ, tưởng tượng vui vẻ khi bạn nhập lệnh 'cd', mong đợi thay đổi thư mục nhưng thay vào đó lại hiển thị danh sách thư mục. Tương tự, nếu bạn thử 'su', thì bạn chỉ thấy vị trí của thư mục làm việc.
Bạn có thể xóa bí danh sau đó bằng cách sử dụng lệnh 'unalias', như đã giải thích ở trên.
29. Lệnh df
Lệnh df được sử dụng để hiển thị thông tin về việc sử dụng không gian đĩa trên hệ thống tệp. Nó hiển thị tổng số không gian, không gian đã sử dụng và không gian có sẵn trên mỗi hệ thống tệp được gắn kết.
df -h
Tùy chọn -h được sử dụng để hiển thị việc sử dụng không gian đĩa ở định dạng dễ đọc cho con người, hiển thị kích thước trong gigabyte (GB) và megabyte (MB) cho mỗi hệ thống tệp đã gắn kết trên hệ thống của bạn.
30. Lệnh du
Lệnh du được sử dụng để hiển thị việc sử dụng không gian đĩa của các tệp và thư mục, bao gồm tổng không gian đĩa bị chiếm bởi một tệp hoặc thư mục cụ thể, bao gồm không gian được sử dụng bởi các thư mục con của nó.
du -h
Tùy chọn -h được sử dụng để hiển thị việc sử dụng tệp theo định dạng dễ đọc cho con người, hiển thị kích thước trong gigabyte (GB) và megabyte (MB).
31. Lệnh rm
Lệnh rm đại diện cho remove, được sử dụng để xóa hoặc xóa vĩnh viễn tệp và thư mục từ hệ thống tệp.
Cú pháp cơ bản để xóa một tệp như sau:
rm file
Cú pháp cơ bản để xóa một thư mục như sau:
rm -rf directory
Tùy chọn -r (đệ quy, xóa thư mục và nội dung của nó) và -f (xóa tệp mà không yêu cầu xác nhận).
Lệnh 'rm -rf' là một lệnh phá hoại. Nếu bạn vô tình thực thi nó trong thư mục sai, tất cả các tệp và thư mục chính sẽ mất vĩnh viễn.
32. Lệnh echo
Lệnh echo như tên gọi của nó, hiển thị một văn bản trên đầu ra tiêu chuẩn. Nó không liên quan đến Shell, cũng không có nghĩa là Shell đọc đầu ra của lệnh echo.
Tuy nhiên, trong một tập lệnh tương tác, lệnh echo truyền thông báo cho người dùng thông qua terminal. Đây là một trong những lệnh thông thường được sử dụng trong scripting, scripting tương tác.
echo "Tecmint.com is a very good website"
Tecmint.com is a very good website
Hãy tạo một tập lệnh bash tương thích nhỏ sẽ hiển thị một thông báo chào mừng cá nhân trên terminal.
#!/bin/bash
echo "Welcome to the Interactive Welcome Script!"
echo "----------------------------------------"
# Prompt the user to enter their name
echo "Please enter your name:"
read name
# Display a personalized welcome message
echo "Hello, $name! Welcome to the interactive script. Have a great day!"
Lưu tập lệnh này vào một tệp, ví dụ: welcome_script.sh và làm cho tập lệnh có thể thực thi bằng lệnh sau.
chmod +x welcome_script.sh
Sau đó, bạn có thể chạy nó bằng cách nhập vào terminal.
./welcome_script.sh
33. Lệnh passwd
Lệnh passwd được sử dụng để thay đổi mật khẩu của chính bạn hoặc mật khẩu của người dùng khác khi được thực hiện dưới đặc quyền sudo.
Ví dụ, để thay đổi mật khẩu cho người dùng hiện tại, chỉ cần nhập:
passwd
Nếu bạn có đặc quyền sudo, bạn có thể thay đổi mật khẩu của người dùng khác bằng cách chỉ định tên người dùng:
sudo passwd username
34. Lệnh lpr
Lệnh lpr được sử dụng để gửi công việc in đến máy in. Nó gửi các tệp đến hàng đợi in của máy in, cho phép người dùng in tài liệu từ dòng lệnh.
lpr document.txt
Lệnh 'lpq' cho phép bạn xem trạng thái của máy in (xem liệu nó đã kết nối hay chưa) và các công việc (tệp) đang chờ được in.
35. Lệnh cmp
Lệnh cmp so sánh hai tệp bất kỳ và ghi kết quả ra đầu ra tiêu chuẩn. Mặc định, 'cmp' trả về 0 nếu hai tệp giống nhau; nếu khác nhau, chỉ số byte và dòng mà khác biệt đầu tiên xảy ra được báo cáo.
Để cung cấp ví dụ cho lệnh cmp, hãy xem xét hai tệp:
cat file1.txt
Hi My name is Tecmint
cat file2.txt
Hi My name is tecmint [dot] com
Bây giờ, hãy so sánh hai tệp và xem kết quả của lệnh.
cmp file1.txt file2.txt
file1.txt file2.txt differ: byte 15, line 1
36. Lệnh wget
Lệnh wget là một tiện ích miễn phí để tải xuống tệp từ web mà không cần tương tác (tức là có thể hoạt động ở nền). Nó hỗ trợ các giao thức HTTP, HTTPS, FTP và proxy HTTP.
Ví dụ, để tải xuống một tệp có tên "Server-Health.sh" từ một trang web, bạn sẽ sử dụng:
wget https://www.tecmint.com/wp-content/scripts/Server-Health.sh
37. Lệnh mount
Lệnh mount được sử dụng để gắn một hệ thống tệp không tự động gắn kết. Bạn cần quyền root để gắn kết một thiết bị.
Trước tiên, hãy chạy 'lsblk' sau khi cắm hệ thống tệp của bạn và xác định tên được gán cho thiết bị của bạn và ghi lại tên đã gán cho thiết bị của bạn.
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 923.6G 0 part /
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 7.9G 0 part [SWAP]
sr0 11:0 1 1024M 0 rom
sdb 8:16 1 3.7G 0 disk
└─sdb1 8:17 1 3.7G 0 part
Từ màn hình này rõ ràng rằng tôi đã cắm vào một ổ đĩa USB 4GB do đó 'sdb1' là hệ thống tệp cần được gắn kết. Trở thành root để thực hiện thao tác này và chuyển đến thư mục '/dev' nơi tất cả các hệ thống tệp được gắn kết.
su
cd /dev
Tạo một thư mục có tên bất kỳ phải liên quan đến tham khảo.
mkdir usb
Bây giờ gắn kết hệ thống tệp 'sdb1' vào thư mục 'usb'.
mount /dev/sdb1 /dev/usb
Bây giờ bạn có thể điều hướng đến '/dev/usb' từ terminal hoặc hệ thống X-windows và truy cập vào các tệp trong thư mục đã gắn kết.
38. Lệnh gcc
Lệnh gcc là trình biên dịch tích hợp sẵn cho ngôn ngữ 'c' trong môi trường linux. Một chương trình 'c' đơn giản, lưu nó trên màn hình làm việc của bạn dưới dạng 'Hello.c' (hãy nhớ rằng phần mở rộng '.c' là bắt buộc).
#include
int main()
{
printf("Hello world\n");
return 0;
}
Tiếp theo, biên dịch và chạy nó.
gcc Hello.c
./a.out
Hello world
Khi biên dịch một chương trình 'c', đầu ra tự động được tạo ra thành một tệp mới 'a.out' và mỗi lần bạn biên dịch một chương trình 'c', cùng một tệp 'a.out' được sửa đổi.
Do đó, đó là một lời khuyên tốt để xác định một tệp đầu ra trong quá trình biên dịch và do đó không có nguy cơ ghi đè lên tệp đầu ra.
gcc -o Hello Hello.c
Ở đây, ' -o ' gửi đầu ra đến tệp 'Hello' thay vì 'a.out'.
39. Lệnh g++
Lệnh g++ là trình biên dịch tích hợp sẵn cho 'C++', ngôn ngữ lập trình hướng đối tượng đầu tiên. Một chương trình C++ đơn giản, lưu nó trên màn hình làm việc của bạn dưới dạng 'Add.cpp' (hãy nhớ rằng phần mở rộng '.cpp' là bắt buộc).
#include
using namespace std;
int main()
{
int a;
int b;
cout<<"Enter first number:\n";
cin >> a;
cout <<"Enter the second number:\n";
cin>> b;
cin.ignore();
int result = a + b;
cout<<"Result is"<<" "<<result<<endl;
cin.get();
return 0;
}
Tiếp theo, biên dịch và chạy nó.
g++ Add.cpp
./a.out
Enter the first number:
...
...
Khi biên dịch một chương trình 'C++', đầu ra tự động được tạo ra thành một tệp mới 'a.out' và mỗi lần bạn biên dịch một chương trình 'C++', cùng một tệp 'a.out' được sửa đổi.
Do đó, đó là một lời khuyên tốt để xác định một tệp đầu ra trong quá trình biên dịch và do đó không có nguy cơ ghi đè lên tệp đầu ra.
g++ -o Add Add.cpp
./Add
Enter the first number:
...
...
40. Lệnh java
Java là một trong những ngôn ngữ lập trình phổ biến nhất trên thế giới và được coi là nhanh, an toàn và đáng tin cậy. Hầu hết các dịch vụ dựa trên web hiện nay chạy trên Java.
Tạo một chương trình Java đơn giản bằng cách dán đoạn mã dưới đây vào một tệp, đặt tên là tecmint.java (hãy nhớ phần mở rộng '.java' là bắt buộc).
class tecmint {
public static void main(String[] arguments) {
System.out.println("Tecmint ");
}
}
Tiếp theo, biên dịch và chạy nó.
javac tecmint.java
java tecmint
Hầu hết các bản phân phối đều đi kèm với trình biên dịch gcc, số lượng lớn các bản phân phối có trình biên dịch G++ và Java tích hợp sẵn, trong khi một số có thể không có. Bạn có thể cài đặt gói yêu cầu bằng gói apt hoặc yum.
Đừng quên nhắc đến ý kiến của bạn và loại bài viết mà bạn muốn thấy ở đây. Tôi sẽ sớm trở lại với một chủ đề thú vị về những sự thật ít biết về Linux.