Tôi nhớ khi tôi lần đầu tiên bắt đầu sử dụng Linux và tôi đã quen với giao diện đồ họa của Windows, tôi thực sự ghét bộ điều khiển Linux. Lúc đó tôi thấy việc nhớ các lệnh và cách sử dụng đúng mỗi lệnh là khó khăn. Với thời gian, tôi nhận ra sự đẹp, linh hoạt và khả năng sử dụng của bộ điều khiển Linux và trung thực mà một ngày không trôi qua mà không sử dụng. Hôm nay, tôi muốn chia sẻ một số mẹo và thủ thuật hữu ích cho người mới làm quen với Linux để giảm bớt sự chuyển đổi sang Linux hoặc đơn giản là giúp họ học thêm điều gì đó mới (hy vọng).
Bài viết này nhằm để chỉ cho bạn một số mẹo hữu ích để sử dụng bộ điều khiển Linux như một chuyên gia với mức độ kỹ năng tối thiểu. Bạn chỉ cần một bộ điều khiển Linux và một ít thời gian rảnh để thử những lệnh này.
1. Tìm lệnh phù hợp
Thực thi lệnh đúng có thể rất quan trọng đối với hệ thống của bạn. Tuy nhiên, trên Linux có rất nhiều các dòng lệnh khác nhau nên thường khó nhớ. Vậy làm sao để bạn tìm kiếm lệnh phù hợp mà bạn cần? Câu trả lời là apropos. Bạn chỉ cần chạy lệnh sau:
# apropos
Nơi bạn nên thay đổi "mô tả" bằng mô tả thực tế của lệnh bạn đang tìm kiếm. Đây là một ví dụ tốt:
# apropos "list directory"
dir (1) - list directory contents
ls (1) - list directory contents
ntfsls (8) - list directory contents on an NTFS filesystem
vdir (1) - list directory contents
Bên trái, bạn có thể thấy các lệnh và bên phải là mô tả của chúng.
2. Thực thi lệnh trước đó
Nhiều khi bạn sẽ cần thực thi cùng một lệnh lặp đi lặp lại nhiều lần. Trong khi bạn có thể nhấn nút Lên trên bàn phím lặp đi lặp lại, bạn có thể sử dụng lệnh history thay thế. Lệnh này sẽ liệt kê tất cả các lệnh bạn đã nhập từ khi khởi chạy bộ điều khiển:
# history
1 fdisk -l
2 apt-get install gnome-paint
3 hostname tecmint.com
4 hostnamectl tecmint.com
5 man hostnamectl
6 hostnamectl --set-hostname tecmint.com
7 hostnamectl -set-hostname tecmint.com
8 hostnamectl set-hostname tecmint.com
9 mount -t "ntfs" -o
10 fdisk -l
11 mount -t ntfs-3g /dev/sda5 /mnt
12 mount -t rw ntfs-3g /dev/sda5 /mnt
13 mount -t -rw ntfs-3g /dev/sda5 /mnt
14 mount -t ntfs-3g /dev/sda5 /mnt
15 mount man
16 man mount
17 mount -t -o ntfs-3g /dev/sda5 /mnt
18 mount -o ntfs-3g /dev/sda5 /mnt
19 mount -ro ntfs-3g /dev/sda5 /mnt
20 cd /mnt
...
Như bạn sẽ thấy từ đầu ra ở trên, bạn sẽ nhận được một danh sách các lệnh bạn đã chạy. Trên mỗi dòng, bạn có số chỉ định hàng mà bạn đã nhập lệnh. Bạn có thể gọi lại lệnh đó bằng cách sử dụng:
!#
Ở đây, # nên được thay bằng số thực tế của lệnh. Để hiểu rõ hơn, xem ví dụ dưới đây:
!501
Tương đương với:
# history
3. Sử dụng Trình quản lý Midnight Commander
Nếu bạn không quen với việc sử dụng các lệnh như cd, cp, mv, rm thì bạn có thể sử dụng trình quản lý Midnight. Đây là một giao diện dòng lệnh dễ sử dụng mà bạn cũng có thể sử dụng chuột:
Nhờ các phím F1 - F12, bạn có thể thực hiện các nhiệm vụ khác nhau một cách dễ dàng. Hãy kiểm tra chú giải ở dưới cùng. Để chọn một tệp hoặc thư mục, nhấn nút "Chèn".
Ngắn gọn, trình quản lý Midnight gọi là "mc". Để cài đặt mc trên hệ thống, bạn chỉ cần chạy:
$ sudo apt-get install mc [On Debian based systems]
# yum install mc [On Fedora based systems]
Đây là một ví dụ đơn giản về việc sử dụng trình quản lý Midnight commander. Mở mc bằng cách đơn giản gõ:
# mc
Bây giờ sử dụng nút TAB để chuyển đổi giữa các cửa sổ - bên trái và bên phải. Tôi có một tệp LibreOffice sẽ di chuyển vào thư mục "Phần mềm":
Để di chuyển tệp vào thư mục mới, nhấn nút F6 trên bàn phím. MC sẽ yêu cầu xác nhận:
Sau khi xác nhận, tệp sẽ được di chuyển vào thư mục đích mới.
Đọc thêm: Cách sử dụng Trình quản lý tệp Midnight Commander trong Linux
4. Đóng máy tính vào thời điểm cụ thể
Đôi khi bạn sẽ cần tắt máy tính sau một số giờ kể từ khi giờ làm việc kết thúc. Bạn có thể cấu hình máy tính của bạn để tắt nguồn vào thời điểm cụ thể bằng cách sử dụng:
$ sudo shutdown 21:00
Điều này sẽ yêu cầu máy tính của bạn tắt nguồn vào thời điểm cụ thể mà bạn đã cung cấp. Bạn cũng có thể đặt cho hệ thống tắt nguồn sau một số phút nhất định:
$ sudo shutdown +15
Điều này có nghĩa là hệ thống sẽ tắt trong 15 phút.
5. Hiển thị thông tin về người dùng đã biết
Bạn có thể sử dụng một lệnh đơn giản để liệt kê người dùng hệ thống Linux của bạn và một số thông tin cơ bản về họ. Đơn giản sử dụng:
# lslogins
Điều này sẽ mang lại cho bạn đầu ra sau đây:
UID USER PWD-LOCK PWD-DENY LAST-LOGIN GECOS
0 root 0 0 Apr29/11:35 root
1 bin 0 1 bin
2 daemon 0 1 daemon
3 adm 0 1 adm
4 lp 0 1 lp
5 sync 0 1 sync
6 shutdown 0 1 Jul19/10:04 shutdown
7 halt 0 1 halt
8 mail 0 1 mail
10 uucp 0 1 uucp
11 operator 0 1 operator
12 games 0 1 games
13 gopher 0 1 gopher
14 ftp 0 1 FTP User
23 squid 0 1
25 named 0 1 Named
27 mysql 0 1 MySQL Server
47 mailnull 0 1
48 apache 0 1 Apache
...
6. Tìm kiếm tệp tin
Tìm kiếm tệp tin đôi khi không phải là một nhiệm vụ dễ dàng như bạn nghĩ. Một ví dụ tốt cho việc tìm kiếm tệp tin là:
# find /home/user -type f
Lệnh này sẽ tìm kiếm tất cả các tệp tin nằm trong /home/user. Lệnh find là một lệnh mạnh mẽ và bạn có thể truyền nhiều tùy chọn hơn để tìm kiếm cụ thể hơn. Nếu bạn muốn tìm kiếm các tệp tin lớn hơn kích thước nhất định, bạn có thể sử dụng:
# find . -type f -size 10M
Lệnh trên sẽ tìm kiếm từ thư mục hiện tại các tệp tin lớn hơn 10 MB. Hãy đảm bảo không chạy lệnh từ thư mục gốc của hệ thống Linux của bạn vì điều này có thể gây ra I/O cao trên máy của bạn.
Một trong những kết hợp được sử dụng nhiều nhất mà tôi sử dụng find là tùy chọn “exec”, cho phép bạn chạy một số hành động trên kết quả của lệnh find.
Ví dụ, hãy nói rằng chúng ta muốn tìm tất cả các tệp tin trong một thư mục và thay đổi quyền truy cập của chúng. Điều này có thể dễ dàng thực hiện với:
# find /home/user/files/ -type f -exec chmod 644 {} \;
Lệnh trên sẽ tìm kiếm tất cả các tệp tin trong thư mục chỉ định theo đệ quy và sẽ thực hiện lệnh chmod trên các tệp tin tìm thấy. Tôi chắc chắn rằng bạn sẽ tìm thấy nhiều cách dùng hơn cho lệnh này trong tương lai, bây giờ hãy đọc 35 ví dụ của lệnh "find" và cách sử dụng trên Linux.
7. Xây dựng cây thư mục bằng một lệnh
Bạn có thể tạo mới các thư mục bằng cách sử dụng lệnh mkdir. Vì vậy, nếu bạn muốn tạo một thư mục mới, bạn sẽ chạy một điều như thế này:
# mkdir new_folder
Nhưng nếu bạn muốn tạo 5 thư mục con trong thư mục đó? Chạy mkdir 5 lần liên tiếp không phải là một giải pháp tốt. Thay vào đó, bạn có thể sử dụng tùy chọn -p như sau:
# mkdir -p new_folder/{folder_1,folder_2,folder_3,folder_4,folder_5}
Cuối cùng, bạn sẽ có 5 thư mục nằm trong thư mục mới.
8. Sao chép tệp tin vào nhiều thư mục
Thường thì việc sao chép tệp tin sẽ được thực hiện bằng lệnh cp. Việc sao chép một tệp tin thường trông như sau:
# ls new_folder/
folder_1 folder_2 folder_3 folder_4 folder_5
Bây giờ hãy tưởng tượng rằng bạn cần sao chép tệp tin đó vào nhiều thư mục:
# cp /path-to-file/my_file.txt /path-to-new-directory/
Điều này khá không thực tế. Thay vào đó, bạn có thể giải quyết vấn đề này bằng một lệnh duy nhất đơn giản:
# cp /home/user/my_file.txt /home/user/1
# cp /home/user/my_file.txt /home/user/2
# cp /home/user/my_file.txt /home/user/3
9. Xóa các tệp tin lớn hơn
Đôi khi các tệp tin có thể tăng lên rất lớn. Tôi đã gặp trường hợp một tệp tin nhật ký đơn đã lên tới 250GB do kỹ năng quản trị kém. Xóa tệp tin bằng cách sử dụng tiện ích rm có thể không đủ trong những trường hợp như vậy do việc xóa một lượng dữ liệu lớn. Quá trình này sẽ khá nặng nề và nên tránh. Thay vào đó, bạn có thể sử dụng một giải pháp đơn giản:
# echo /home/user/1/ /home/user/2/ /home/user/3/ | xargs -n 1 cp /home/user/my_file.txt
Nơi tất nhiên bạn sẽ cần thay đổi đường dẫn và tên tệp tin với những thông tin chính xác để phù hợp với trường hợp của bạn. Lệnh trên đơn giản là viết dữ liệu trống vào tệp tin. Nói một cách đơn giản hơn, nó sẽ làm trống tệp tin mà không gây ra I/O cao trên hệ thống của bạn.
10. Chạy cùng lệnh trên nhiều máy chủ Linux
Gần đây, một trong số độc giả của chúng tôi đã hỏi trên diễn đàn LinuxSay của chúng tôi, cách thực thi lệnh duy nhất trên nhiều máy Linux cùng một lúc bằng SSH. Anh ta có các địa chỉ IP máy chủ của mình như sau:
# > /path-to-file/huge_file.log
Cho nên đây là một giải pháp đơn giản cho vấn đề này. Thu thập các địa chỉ IP của các máy chủ trong một tệp tin gọi là list.txt- mỗi địa chỉ IP nằm trong một dòng như đã hiển thị ở trên. Sau đó, bạn có thể chạy:
10.0.0.1
10.0.0.2
10.0.0.3
10.0.0.4
10.0.0.5
Trong ví dụ trên, bạn sẽ cần thay đổi “user” bằng người dùng thực tế với người dùng mà bạn sẽ đăng nhập và “bash command” bằng lệnh bash thực tế bạn muốn thực thi. Phương pháp hoạt động tốt hơn khi bạn sử dụng xác thực SSH không cần mật khẩu bằng khóa SSH tới các máy của bạn bởi vì cách này bạn không cần nhập mật khẩu cho người dùng của bạn điều này và điều này.
Lưu ý rằng bạn có thể cần truyền một số thông số bổ sung cho lệnh SSH tùy thuộc vào cài đặt hệ thống Linux của bạn.
Kết luận
Các ví dụ trên đều rất đơn giản và tôi hy vọng chúng đã giúp bạn khám phá những điều tuyệt vời của Linux và cách bạn có thể dễ dàng thực hiện các hoạt động khác mà có thể tốn nhiều thời gian hơn trên các hệ điều hành khác.