Linux căn bản

Cũng giống như hệ điều hành Windows, khi sử dụng  Linux  bạn cũng nên tìm hiểu các lệnh Linux cơ bản để thực hiện các thao tác nhanh chóng ...

Cũng giống như hệ điều hành Windows, khi sử dụng Linux bạn cũng nên tìm hiểu các lệnh Linux cơ bản để thực hiện các thao tác nhanh chóng và dễ dàng hơn. Dưới đây là một số lệnh cơ bản trên Linux bạn nên biết.
Với một số lệnh bên dưới, bạn sẽ thấy các bộ lệnh với giải thích đơn giản, ví dụ minh họa cụ thể giúp cho bạn hoặc những người dùng Linux mà bạn đang hỗ trợ sử dụng hệ điều hành này nói chung và dòng lệnh trên Linux nói riêng hiệu quả hơn.

1. Một số lưu ý quan trọng về Linux Terminal

Một số lưu ý quan trọng về Linux Terminal
Để mở Terminal nhanh chóng từ GUI, nhấn tổ hợp phím Ctrl + Alt + T.
Mổ xẻ hầu hết các lệnh Linux:
[sudo] command [optional switch] [file or directory path]
Sử dụng sudo sẽ chạy bất kỳ một lệnh nào đó dưới quyền Admin. Hầu hết các lệnh Linux dùng để cài đặt/gỡ bỏ các file hệ thống một chương trình, sử dụng nào đó để yêu cầu sudo.

2. Làm quen với tài khoản

Các lệnh này sẽ giúp người dùng Linux mới làm quen với tài khoản Linux của mình.
LệnhChức năngVí dụ
pwdHiển thị vị trí hiện tại trong hệ thống file.pwd
whoamiHiển thị tên người dùng - hữu ích nhất nếu chuyển đổi người dùng bằng lệnh su và cần được nhắc nhở về tài khoản nào đang được sử dụngwhoami
lsCung cấp một danh sách file. Với tham số -a, lệnh hiển thị các file có tên bắt đầu bằng dấu chấm (ví dụ: .bashrc). Với tham số -l, lệnh hiển thị quyền, kích thước file và ngày/giờ cập nhật mới nhất.ls
ls -a
ls -l
envHiển thị cài đặt môi trường người dùng (ví dụ: đường dẫn tìm kiếm, kích thước phần lịch sử được lưu lại, thư mục chính, v.v...)env
echoLặp lại phần văn bản mà người dùng cung cấp hoặc hiển thị giá trị của một số biến.echo hello
echo $PATH
historyLiệt kê các lệnh đã đưa ra trước đó.history
history | tail -5
passwdThay đổi mật khẩu. Lưu ý rằng các yêu cầu phức tạp có thể được thi hành.passwd
history | tail -5

3. Tạo một thư mục mới

mkdir là lệnh thao tác với thư mục cơ bản trên Linux, giúp bạn tạo một thư mục mới nhanh chóng. Cú pháp câu lệnh:
mkdir folder
Lưu ý:
Folder là tên thư mục bạn muốn tạo. Chẳng hạn nếu bạn muốn tạo thư mục có tên là backup thì cú pháp là:
mkdir /home/marin/backup
Trong trường hợp nếu muốn tạo một thư mục chứa nhiều thư mục con, bạn có thể sử dụng tùy chọn "-p". Giả sử, bạn có thư mục foo và có quyền truy cập vào nó:
mkdir -p /foo/bar/baz
Lệnh trên sẽ tạo thư mục bar, thư mục baz nằm trong bar; bar và baz nằm trong /foo đã có.

4. Tìm kiếm thư mục hiện tại

Nếu muốn tìm kiếm thư mục hiện tại của bạn, bạn có thể sử dụng lệnh pwd.
Ví dụ như:
marin@[LinuxVeda]:[~/work]$ pwd
/home/marin/work

5. Tạo và chỉnh sửa các file

Các hệ thống Linux cung cấp các lệnh để tạo các file. Người dùng có thể chọn trình soạn thảo văn bản mong muốn. Một số lệnh yêu cầu người dùng phải thành thạo trước khi sử dụng, còn những lệnh khác thì khá đơn giản.
LệnhChức năngVí dụ
nanoMột trình chỉnh sửa văn bản dễ sử dụng, yêu cầu người dùng di chuyển trong file bằng các phím mũi tên và cung cấp các chuỗi điều khiển để định vị văn bản, lưu các thay đổi, v.v.nano myfile
viMột trình chỉnh sửa tinh vi hơn, cho phép người dùng nhập các lệnh để tìm và thay đổi văn bản, thực hiện các thay đổi tổng thể, v.v...vi myfile
exMột trình soạn thảo văn bản được thiết kế cho các lập trình viên và có cả chế độ trực quan và dòng lệnh.ex myfile
touchTạo một file nếu nó chưa tồn tại hoặc cập nhật timestamp nếu nó đã được tạo.touch newfile
touch updatedfile
>Tạo file bằng cách hướng đầu ra cho chúng. > tạo một file trong khi >> gắn với một file hiện có.cal > calendar
ps > myprocs
date >> date.log

6. Đọc một số file

Thông thường bạn phải xem xét nội dung của nhiều file khác nhau. Việc rà soát các file khác nhau thường xuyên thường khá phức tạp và tốn nhiều thời gian. Do đó cách đơn giản nhất để đọc nội dung của chúng là sử dụng câu lệnh cat. Cú pháp câu lệnh khá đơn giản:
cat FILE 
Chỉ cần thay đổi FILE bằng tên file bạn muốn đọc. Kết quả bạn sẽ nhìn thấy nội dung của file xuất hiện ở cuối Terminal.
Ví dụ như:
cat script.sh
Lệnh đọc file trên Linux
Ngoài ra bạn có thể sử dụng lệnh cat cho nhiều file cùng một lúc:
cat FILE-1 FILE-2
Đầu ra của lệnh sẽ hiện thị nội dung các file theo thứ tự nội dung của FILE - 1 rồi đến nội dung FILE -2.
Ngoài ra, Linux cung cấp một số lệnh để xem xét nội dung và bản chất của các file. Sau đây là một số lệnh hữu ích nhất.
LệnhChức năngVí dụ
catHiển thị toàn bộ nội dung của một file văn bản.cat .bashrc
moreHiển thị nội dung của file văn bản. Nhấn phím cách để di chuyển đến từng đoạn bổ sung.more .bash_history
lessHiển thị nội dung của file văn bản, nhưng cho phép quay trở lại bằng phím mũi tên lên trên.less .bash_history
fileXác định các file theo loại (ví dụ: văn bản ASCII, file thực thi, hình ảnh, thư mục)file myfile
file ~/.bashrc
file /bin/echo

7. Sao chép hoặc di chuyển file

Việc sao chép hoặc di chuyển file trong Linux terminal khá đơn giản và dễ dàng.
  • Để sao chép một file, bạn có thể sử dụng lệnh: cp.
  • Để di chuyển 1 file bạn sử dụng câu lệnh: mvoflder.
Cả 2 lệnh sử dụng khá đơn giản. Với lệnh cp. Để sao chép một file, bạn nhập tên file và nhập tên file copy mới. Ví dụ:
cp file1 file2
Trên câu lệnh trên sao chép file1 và tạo ra file2 có chứa nội dụng file1. Bạn có thể sử dụng cp để sao chép thư mục. Điều quan trọng cần lưu ý khi muốn sao chép một thư mục bạn nên sử dụng tùy chọn -r.
Nói cách khác, cp -r sẽ sao chép nội dung của một thư mục nhất định (và các thư mục con) sang thư mục bạn lựa chọn. Ngoài ra bạn có thể sử dụng cp với đường dẫn đầy đủ:
cp -r /home/marin/work/ /home/marin/backup
Câu lệnh trên sẽ sao chép nội dung của thư mục "work" sang thư mục mới có tên "backup".
Nếu muốn sao chép tất cả các file và thư mục của một thư mục sang một thư mục khác, bạn có thể sử dụng ký tự "*". Ký tự được sử dụng để tìm các cổng phù hợp (trường hợp này là các file và thư mục). Ví dụ:
cp /home/marin/work/* /home/marin/backup/
Tiếp theo là lệnh mv. Cú pháp câu lệnh:
mv file1 file2
Câu lệnh trên đổi tiên file1 thành file2. Tương tự với thư mục cũng thế. Tuy nhiên nếu bạn chỉ định 1 file và 1 thư mục, file sẽ được di chuyển vào trong thư mục. Chẳng hạn:
mv /home/marin/file1 /home/marin/work/
Trong câu lệnh trên sẽ di chuyển file1 từ “/home/marin/” sang “/home/marin/work/”. Nếu bạn muốn di chuyển tất cả các file trong một thư mục sang thư mục khác, bạn có thể sử dụng ký tự "*":
mv /home/marin/work/* /home/marin/backup/

8. Xóa các file và thư mục

Nếu muốn xóa một thư mục hoặc một file bạn có thể sử dụng lệnh rm. Điều quan trọng bạn cần lưu ý là khi sử dụng lệnh này để xóa một file hoặc thư mục, các file này không thể restore được. Để xóa 1 file bạn thực hiện:
rm /home/marin/useless-file.txt
Bạn có thể sử dụng rm với nhiều tùy chọn khác nhau. Một số tùy chọn quan trọng như:
  • -f: buộc xóa các file có thông báo nhắc nhở
  • -i: nhắc nhở trước khi xóa
  • -r: xóa bỏ các thư mục đệ quy
  • -d: xóa các thư mục rỗng
  • -v: giải thích đang thực hiện nhiệm vụ gì

9. Tìm file

Có hai lệnh có thể giúp người dùng tìm file trên Linux, nhưng chúng hoạt động rất khác nhau. Một lệnh tìm kiếm hệ thống file, còn lệnh kia xem xét cơ sở dữ liệu được xây dựng trước đó.
Lệnh
Chức năng
Ví dụ
findĐịnh vị các file dựa trên các tiêu chí được cung cấp (tên, loại, chủ sở hữu, quyền, kích thước file, v.v...). Trừ khi được cung cấp một vị trí để bắt đầu tìm kiếm, còn nếu không lệnh này chỉ tìm trong thư mục hiện hành.find . -name myfile
find /tmp -type d
locateĐịnh vị các file bằng cách sử dụng nội dung của /var/lib/mlocate/mlocate.db được cập nhật bằng lệnh updateb chạy qua cron. Không yêu cầu vị trí bắt đầu.locate somefile
locate "*.html" -n 20
Lưu ý: Chi tiết về lệnh find có trong phần bên dưới.

10. Liệt kê nội dung thư mục

Để liệt kê danh sách các thư mục, bạn có thể sử dụng lệnh ls:
Lệnh Linux để liệt kê danh sách các thư mục
Lệnh "ls" có thể lấy các thông số khác nhau giúp bạn thay đổi đầu ra của câu lệnh. Ví dụ, với thông số "-a" sẽ hiển thị tất cả các file và thư mục, trong đó có cả thư mục ẩn có chứa "-a".
Lệnh ls giúp lấy thông số khác nhau
Nếu muốn đầu ra của câu lệnh hiển thị danh sách thông tin chi tiết từng file và thư mục, bạn có thể sử dụng tùy chọn “-l” (L):
ls -l You can try different 
Lệnh ls trên Linux
Ngoài ra bạn có thể kết hợp các thông số để hiển thị thông tin chi tiết tất cả các file:
ls al
Lệnh ls

11. Tìm kiếm lệnh Linux trước đó

Nhấn phím Up sẽ hiển thị câu lệnh Linux cuối cùng bạn sử dụng thành công. Không có câu lệnh lỗi nào hiển thị tại đây cả.
Ngoài ra bạn có thể sử dụng lệnh history để xem tất cả các lệnh Linux đã từng sử dụng trên Terminal.

12. Mật khẩu vô hình

Mật khẩu vô hình
Khi được yêu cầu nhập mật khẩu, giả sử trong trường hợp sử dụng sudo, khi bạn gõ mật khẩu trên màn hình sẽ không hiển thị gì cả, không có ngôi sao hay dấu chấm... Sau khi nhập xong mật khẩu, bạn nhấn Enter là xong.

13. Sao chép và dán lệnh Linux

Sao chép và dán lệnh Linux
Để sao chép hoặc dán lệnh Terminal, bạn không thể sử dụng tổ hợp phím quen thuộc Ctrl + C và Ctrl + V.
Thay vào đó bạn có thể sử dụng Ctrl + Shift + C và Ctrl + Shift + V hoặc kích chuột phải rồi chọn Copy hoặc Paste từ Menu ngữ cảnh.

14. Hiển thị tiến trình trong hệ thống Linux

Một trong những công việc cần thiết khi quản trị hệ thống Linux đó là kiểm soát các tiến trình hiện đang chạy. Khi đã biết được những tiến trình nào đang chạy bạn có thể tắt những tiến trình gây giảm tốc độ của hệ thống. Ngoài ra, thông tin về những tiến trình hệ thống cho chúng ta biết nên tắt nhưng tiến trình làm cho hệ thống vận hành không ổn định. Do đó việc biết được những tiến trình nào đang chạy trên hệ thống rất quan trọng. Linux hỗ trợ nhiều phương pháp kiểm tra tiến trình, một trong số đó là sử dụng lệnh ps. Khi sử dụng lệnh này mọi thông tin về những tiến trình đang chạy sẽ được hiển thị. Bạn chỉ cần nhập cú pháp lệnh sau vào cửa sổ terminal:
# ps aux | less

Hình 1: Thông tin tiến trình đang chạy trong hệ thống.
Ngoài ra lệnh này có thể sử dụng kết hợp với một số tham số khác như:
# ps –A: Kiểm tra mọi tiến trình trong hệ thống.
# ps -U root -u root –N: Kiểm tra mọi tiến trình ngoại trừ những tiến trình hệ thống.
# ps -u username: Kiểm tra những tiến trình được thực hiện bởi một người dùng nhất định.
Hoặc bạn có thể sử dụng lệnh # top để xem những tiến trình đang chạy trên hệ thống trong thời gian thực.

15. Kiểm tra thông tin Socket và thông tin mạng TCP/UDP

Sau khi cấu hình những dịch vụ mạng của hệ thống Linux, bạn cần phải giữ lại tab của các cổng đang thực sự nhận tín hiệu trên giao diện mạng của hệ thống. Điều này rất quan trọng vì hệ thống có thể bị xâm nhập qua các cổng mở. Có một số công cụ quản lý Linux thông báo cho bạn biết thông tin của những cổng mởvà truy cập vào những cổng đang mở trên mạng. Một trong những phương pháp đơn giản và tin cậy nhất đó là sử dụng lệnh ss để kiểm tra thông tin Socket, ngoài ra lệnh này còn có thể hiển thị nhiều thông tin TCP và thông tin trạng thái hơn các công cụ khác. Lệnh ss này cung cấp thông tin về:
  • Mọi Socket TCP.
  • Mọi Socket UDP.
  • Mọi kết nối ssh/ftp/http/https.
  • Mọi tiến trình cục bộ được kết nối tới máy chủ X.
  • Mọi Socket TCP trong trạng thái FIN-WAIT-1.
Dưới đây là một số lệnh ss:
  • # ss –s: Hiển thị tổng số Socket.
Hình 2: Thông tin kết xuất khi chạy lệnh # ss –s.
  • # ss -1: Hiển thị mọi cổng mở.

Hình 3: Thông tin kết xuất khi chạy lệnh # ss -1.
  • # ss –pl: Kiểm tra tên tiến trình sử dụng Socket mở sử dụng lệnh sau:
  • # ss -lp | grep: Kiểm tra người dùng đang làm việc với Socket mở.
  • # ss -t –a: Hiển thị mọi Socket TCP.
  • # ss -u –a: Hiển thị mọi Socket UDP.

16. Theo dõi Average CPU Load và Disk Activity

Nếu là một quản trị viên hệ thống Linux, bạn cần phải biết phương pháp duy trì một sự cân bằng hợp lý trong quá trình tải đầu vào và đầu ra giữa các ổ đĩa vật lý. Bạn có thể thay đổi cấu hình hệ thống để thực hiện tác vụ này. Tuy nhiên có một phương pháp đơn giản hơn rất nhiều đó là sử dụng lệnh isostat để quản lý hệ thống thiết bị tải đầu vào và đầu ra trong Linux bằng cách theo dõi thời gian hoạt động và tốc độ truyền trung bình của những thiết bị này. Lệnh này sẽ thông báo thông tin của CPU (Central Processing Unit), thông tin đầu vào và đầu ra cho những thiết bị, phân vùng và hệ thống file mạng (NFS).
Khi chạy lệnh isostat thông tin kết xuất có dạng:
Hình 4: Thông tin hiển thị khi chạy lệnh isostat.
Để lấy thông tin thư mục NFS bạn hãy sử dụng lệnh sau:
# iostat –n

17. Kiểm tra Memory Map của các tiến trình trong Linux

Khi làm việc trong hệ thống Linux có thể bạn cần kiểm tra dung lượng bộ nhớ sử dụng trong hệ thống. Linux tích hợp nhiều lệnh cho phép kiểm tra dung lượng bộ nhớ chiếm dụng. Trong đó có một lệnh đơn giản giúp hiển thị thông tin tổng dung lượng đã chiếm dụng và chưa chiếm dụng của bộ nhớ vật lý và tổng dung lượng bộ nhớ đó là lệnh free.
Sau khi chạy lệnh này bạn sẽ thấy tổng dung lượng đã chiếm dụng và chưa chiếm dụng của bộ nhớ vật lý và tổng dung lượng bộ nhớ trong hệ thống. Ngoài ra nó còn hiển thị thông tin bộ nhớ đệm mà các nhân sử dụng.

Hình 5: Thông tin hiển thị sau khi chạy lệnh free

18. Kiểm tra thời gian vận hành của hệ thống

Bạn có muốn biết máy chủ đã vận hành bao lâu? Nếu muốn bạn chỉ cần sử dụng lênh uptime để kiểm tra thời gian mà hệ thống đã vận hành. Lệnh đơn giản này không chỉ cho bạn biết thời gian hệ thống vận hành mà còn cho biết lượng người dùng đã đăng nhập vào hệ thống trong một khoảng thời gian trước đó.
Hình 6: Kết quả lệnh uptime.

19. Kiểm tra người dùng đăng nhập

Ngoài những công cụ quản lý Linux, bạn có thể sử dụng một lệnh để kiểm tra những người dùng nào đã thực hiên đăng nhập vào hệ thống và những gì họ đã thực hiện. Lệnh này sẽ hiển thị thời gian hiện tại, thời gian hệ thống đã vận hành, lượng người dùng đã đăng nhập.

Ngoài ra lệnh này cũng hiển thị lượng tải trung bình trong mỗi 1, 5 và 15 phút. Lệnh này rất hữu dụng với những Admin hệ thống muốn sử dụng thông tin tải trung bình để hoạch định dung lượng.

Để kiểm tra ai đã đăng nhập vào hệ thống và những tác vụ họ đã thực hiện bạn chỉ cần chạy lệnh sau:
# w username

Hình 7: Thông tin hiển thị sau khi chạy lệnh # w username.

20. Kiểm soát hành vi hệ thống, phần cứng và thông tin hệ thống trong Linux

Với nhiều người dùng Linux, kiểm soát hệ thống là một tác vụ phức tạp. Hầu hết các bản phân phối Linux tích hợp khá nhiều công cụ kiểm soát. Những công cụ kiểm soát này cung cấp các phương pháp có thể được áp dụng để kiểm tra thông tin hành vi hệ thống. Việc kiểm soát hệ thống cho phép người dùng theo dõi nguyên nhân khả năng thực thi của hệ thống bị cản trở. Một trong những tác vụ cần thiết của quá trình kiểm soát hệ thống là tra cứu thông tin về hành vi hệ thống, phần cứng và thông tin bộ nhớ. Có một lệnh đơn giản giúp hiển thị thông tin về tiến trình, bộ nhớ, trang ghi, nhóm IO, lỗi và hành vi CPU đó là lệnh vmstat.
Bạn chỉ cần nhập lệnh sau vào cửa sổ terminal:
# vmstat 3

Hình 8: Thông tin kết xuất của lệnh # vmstat 3.
Ngoài ra bạn có thể sử dụng lệnh # vmstat –m để kiểm tra thông tin bộ nhớ, và lệnh # vmstat –a để hiển thị thông tin trang nhớ đang hoạt động và không hoạt động.

Hình 9: Thông tin hiển thị sau khi chạy lệnh # vmstat –a.

21. Kiểm tra thông tin phần cứng của hệ thống Linux

Với một số người dùng Linux thì việc kiểm tra thông tin phần cứng thật không dễ dàng. Linux là một hệ thống phức tạp nhưng nó lại tích hợp một số công cụ giúp lấy thông tin chi tiết của phần cứng, chẳng hạn chúng ta có thể sử dụng một lệnh khá đơn giản để kiểm tra thông tin đĩa cứng trên hệ thống đó là lệnh hdparm. Lệnh này cung cấp một giao diện dòng lệnh để thực hiện quản lý nhiều loại đĩa cứng được hệ thống phụ điều khiển thiết bị ATA/IDE của Linux hỗ trợ. Nó cung cấp một lệnh giúp hiển thị thông tin xác minh như dung lượng, thông tin chi tiết, … trực tiếp từ ổ đĩa. Thông tin này được lưu dưới một định dạng mở rộng mới. Bạn chỉ cần đăng nhập dưới quyền root user và sử dụng lệnh sau:
# hdparm -I /dev/sda
Hoặc dùng lệnh:
$ sudo hdparm -I /dev/sda
Khi đó thông tin về đĩa cứng của hệ thống sẽ lập tức hiển thị.


Hình 10: Thông tin chi tiết của đĩa cứng.

22. Các lệnh xử lý tập tin trên Linux

Lệnh để di chuyển xung quanh hệ thống file Linux là ls, nhưng có nhiều biến thể.
Lệnh LinuxNhiệm vụ lệnh sẽ làm
lsLiệt kê nội dung thư mục hiện tại
ls -alLiệt kê nội dung thư mục bao gồm cả file ẩn
cd dirDi chuyển từ thư mục hiện tại sang thư mục dir
cdChuyển từ thư mục hiện tại về thư mục riêng (thường là [Tên User] ở Home)
cd ..Di chuyển lên (về /) một thư mục từ vị trí hiện tại.
cd <location>
Đưa người dùng đến vị trí được chỉ định. Nếu vị trí bắt đầu bằng /, nó được coi là tương đối với thư mục gốc và vị trí hiện tại. Ký tự ~ đại diện cho thư mục Home. Ví dụ:
cd /tmp
cd Documents
cd ~/Documents
pwdHiện thư mục hiện tại
mkdir quantrimangTạo thư mục mới có tên là quantrimang
rm filemuonxoaXóa file có tên là filemuonxoa
rm -r thumuccanxoaXóa thư mục có tên là quantrimang
rm -f filecanxoaBắt xóa file có tên là filecanxoa
rm -rf thumuccanxoaBắt xóa thư mục có tên là thumuccanxoa
cp file1 file2Sao chép file1 sang file2
cp -r dir1 dir2Sao chép thư mục dir1 sang dir2 và tạo dir2 nếu chưa có dir2
mv file1 file2Di chuyển file1 đến chỗ file2 hoặc đổi tên file1 thành file2. Nếu file2 có sẵn thì di chuyển file1 vào file2
ln -s tenfile linkTạo liên kết biểu tượng có tên là link đến file có tên là tenfile
touch filecantaoTạo hoặc cập nhật tập tin filecantao
cat > tenfileNhập từ bàn phím (đầu vào chuẩn - standard input) vào tập tin tenfile mới
more tenfileHiện nội dung file có tên là tenfile
head tenfileHiện 10 dòng đầu của tập tin tenfile
tail tenfileHiện 10 dòng cuối của tập tin tenfile
tail -f tenfileHiện nội dung của tập tin tenfile và cập nhật liên tục trong thời gian thực
tail -f -n N tenfileHiện nội dung của tập tin tenfile và cập nhật liên tục, giới hạn N dòng

23. Các lệnh mạng trên Linux

Quantrimang.com đã có một bài hướng dẫn khá chi tiết về các lệnh làm việc với mạng trên Linux, bạn quan tâm có thể tham khảo nha.

24. Bắt đầu, dừng và liệt kê các service

Các lệnh này cho phép người dùng hiển thị các service cũng như bắt đầu và dừng chúng.
LệnhChức năngVí dụ
systemctlLệnh systemctl có thể bắt đầu, dừng, khởi động lại và load lại các service, cần có quyền admin.sudo systemctl stop apache2.service
sudo systemctl restart apache2.service
sudo systemctl reload apache2.service
serviceLiệt kê các service và cho biết liệu chúng có đang chạy không.service --status-all

25. Xác định phiên bản hệ điều hành

Bảng bên dưới liệt kê các lệnh sẽ hiển thị chi tiết về hệ điều hành Linux đang chạy trên hệ thống.
LệnhChức năngVí dụ
unameHiển thị thông tin về phiên bản hệ điều hành trong một dòng văn bản.uname -a
uname -r
lsb_releaseTrên các hệ thống dựa trên Debian, lệnh này hiển thị thông tin về hệ điều hành bao gồm codename và ID nhà phân phối.lsb_release -a
hostnamectlHiển thị thông tin trên hệ thống bao gồm tên máy chủ, loại chassis (thùng máy), hệ điều hành, kernel và cấu trúc.hostnamectl

26. Đo hiệu suất hệ thống

Sau đây là một số công cụ hữu ích để kiểm tra hiệu năng hệ thống.
LệnhChức năngVí dụ
topHiển thị các tiến trình đang chạy cùng với việc sử dụng tài nguyên và dữ liệu hiệu suất hệ thống. Có thể hiển thị các tiến trình cho một người dùng đã chọn hoặc tất cả người dùng. Các tiến trình có thể được sắp xếp theo các tiêu chí khác nhau (theo mặc định là mức độ sử dụng CPU).top
top jdoe
atopTương tự như lệnh trên nhưng hướng nhiều đến hiệu năng hệ thống hơn so với các tiến trình riêng lẻ.atop
freeHiển thị bộ nhớ và trao đổi tổng bộ nhớ, phần đã sử dụng và còn trống.free
dfHiển thị việc sử dụng không gian ổ đĩa hệ thống của file.df
df -h

27. Quản lý người dùng và nhóm

Các lệnh để tạo và xóa tài khoản người dùng và các nhóm khá đơn giản.
LệnhChức năngVí dụ
useraddThêm tài khoản người dùng mới vào hệ thống. Tên người dùng là bắt buộc. Các trường khác (mô tả người dùng, shell, mật khẩu ban đầu, v.v...) có thể được chỉ định. Thư mục chính sẽ mặc định là /home/username.useradd -c "John Doe" jdoe
useradd -c "Jane Doe" -g admin -s /bin/bash jbdoe
userdelXóa tài khoản người dùng khỏi hệ thống. Tùy chọn -f mạnh mẽ hơn, xóa các file chính và file người dùng khác ngay cả khi người dùng vẫn đăng nhập.userdel jbdoe
userdel -f jbdoe
groupaddThêm một nhóm người dùng mới vào hệ thống, cập nhật /etc/group.groupadd developers
groupdelXóa nhóm người dùng khỏi hệ thống.groupdel developers

28. Thiết lập và chạy các tiến trình theo lịch

Các tác vụ có thể được lên lịch để chạy định kỳ bằng cách sử dụng lệnh được liệt kê dưới đây.
LệnhChức năngVí dụ
crontabThiết lập và quản lý các tiến trình theo lịch. Với tùy chọn -l, các công việc định kỳ được liệt kê. Với tùy chọn -e, các công việc định kỳ có thể được thiết lập để chạy ở các khoảng thời gian đã chọn.crontab -l
crontab -l -u username
crontab -e
anacronCho phép người dùng chỉ chạy các công việc theo lịch trình hàng ngày. Nếu hệ thống bị tắt khi một công việc được đặt lịch chạy, nó sẽ chạy khi hệ thống khởi động.sudo vi /etc/anacrontab

29. Cập nhật, cài đặt và liệt kê các ứng dụng

Các lệnh để cài đặt và cập nhật ứng dụng tùy thuộc vào phiên bản Linux đang sử dụng, cụ thể là dựa trên nền tảng Debian hay RPM.
LệnhChức năngVí dụ
apt updateTrên các hệ thống dựa trên Debian, lệnh này cập nhật danh sách các gói có sẵn và các phiên bản của chúng, nhưng không cài đặt hoặc nâng cấp bất kỳ gói nàosudo apt update
apt upgradeTrên các hệ thống dựa trên Debian, lệnh này cài đặt các phiên bản mới hơn của các gói đã có.sudo apt upgrade
apt listLiệt kê tất cả các gói được cài đặt trên hệ thống dựa trên Debian. Với tùy chọn --upgradable, nó chỉ hiển thị các gói có bản nâng cấp.apt list
apt list --installed
apt list --upgradable
apt installTrên các hệ thống dựa trên Debian, lệnh này cài đặt gói được yêu cầu.sudo apt install apache2
yum updateTrên các hệ thống dựa trên RPM, lệnh này cập nhật tất cả hoặc các gói được chỉ định.sudo yum update
yum update mysql
yum listTrên các hệ thống dựa trên RPM, lệnh này liệt kê các gói.sudo yum update mysql
yum installTrên các hệ thống dựa trên RPM, lệnh này cài đặt gói được yêu cầu.sudo yum -y install firefox
yum listTrên các hệ thống dựa trên RPM, lệnh này liệt kê các gói đã biết và đã cài đặt.sudo yum list
sudo yum list --installed

30. Tắt và khởi động lại

Các lệnh tắt và khởi động lại hệ thống Linux yêu cầu quyền admin. Các tùy chọn như +15 là số phút mà lệnh sẽ đợi trước khi yêu cầu tắt máy được thực hiện.
LệnhChức năngVí dụ
shutdownTắt hệ thống tại thời điểm yêu cầu. Tùy chọn -H tạm dừng hệ thống, còn tùy chọn -P sẽ tắt nguồn.sudo shutdown -H now
shutdown -H +15
shutdown -P +5
haltTắt hệ thống tại thời điểm yêu cầu.sudo halt
sudo halt -p
sudo halt --reboot
poweroffNgắt nguồn khỏi hệ thống tại thời điểm yêu cầu.sudo shutdown -H now
sudo shutdown -H +15
sudo shutdown -P +5

31. Lệnh bảo mật Linux

Lệnh sudo

Chạy các lệnh đặc quyền với sudo, thay vì chuyển người dùng thành root, là một hành động cần thiết vì nó giúp đảm bảo rằng bạn chỉ sử dụng đặc quyền root khi cần và hạn chế tác động của các lỗi xảy ra. Quyền truy cập của bạn vào lệnh sudo phụ thuộc vào các thiết lập trong file /etc/sudoers và /etc/group.
$ sudo adduser shark
Adding user `shark' ...
Adding new group `shark' (1007) ...
Adding new user `shark' (1007) with group `shark' ...
Creating home directory `/home/shark' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for shark
Enter the new value, or press ENTER for the default
 Full Name []: shark
 Room Number []:
 Work Phone []:
 Home Phone []:
 Other []:
Is the information correct? [Y/n] Y
Ví dụ, nếu bạn chạy sudo và muốn tìm hiểu vai trò của mình là gì, bạn sẽ nhận được xác nhận rằng bạn đang chạy lệnh dưới dạng root.
$ sudo whoami
root
Nếu bạn quản lý thiết lập sudo cho nhiều người dùng, bạn cũng sẽ thấy thoải mái với lệnh visudo.

Lệnh visudo

Lệnh visudo cho phép bạn thay đổi file /etc/sudoers bằng cách mở file trong trình soạn thảo văn bản và kiểm tra các thay đổi của bạn đối với cú pháp. Chạy lệnh “sudo visudo” và chắc chắn rằng bạn hiểu rõ về cú pháp. Các đặc quyền có thể được gán bởi một người dùng hoặc theo nhóm. Trên hầu hết các hệ thống Linux, file /etc/sudoers sẽ được cấu hình với các nhóm giống như được hiển thị bên dưới, cho phép các đặc quyền được gán cho các nhóm được thiết lập trong file /etc/group. Trong những trường hợp đó, bạn hoàn toàn không cần phải sử dụng lệnh visudo, mà chỉ cần làm quen với các nhóm có đặc quyền root theo cách này, và thực hiện các cập nhật của bạn cho file /etc/group.
%admin ALL=(ALL) ALL
%sudo ALL=(ALL:ALL) ALL
%wheel ALL=(ALL:ALL) ALL
Lưu ý: Tên nhóm có ký hiệu % đứng trước.
Bạn có thể hiển thị nhóm cung cấp truy cập sudo trong file /etc/group của bạn như sau:
$ egrep "admin|sudo|wheel" /etc/group
sudo:x:27:shs,jdoe
Cách dễ nhất để cung cấp cho ai đó đặc quyền sudo là thêm chúng vào nhóm được uỷ quyền trong /etc/group. Tuy nhiên, điều đó có nghĩa là họ có thể chạy bất kỳ lệnh nào dưới dạng root. Nếu bạn muốn một số người dùng có quyền root cho một nhóm lệnh nhất định (ví dụ, thêm và xóa tài khoản), bạn có thể xác định các lệnh bạn muốn họ có thể chạy qua lệnh như sau:
Cmnd_Alias ACCT_CMDS = /usr/sbin/adduser, /usr/sbin/deluser
Sau đó cung cấp cho người dùng hoặc nhóm người dùng khả năng chạy các lệnh này bằng sudo với một lệnh như sau:
nemo ALL=(ALL) ACCT_CMDS
%techs ALL=(ALL:ALL) ACCT_CMDS
Dòng đầu tiên cho phép người dùng "Nemo" chạy các lệnh twp (adduser và deluser) với sudo, trong khi lệnh thứ hai gán cùng các đặc quyền cho bất kỳ ai thuộc nhóm "tech" trong file /etc/group.
Lệnh bảo mật Linux

Lệnh who và w

Lệnh who và w cho bạn biết ai đã đăng nhập vào hệ thống, trong đó w hiển thị thêm thông tin, như nơi họ đăng nhập, khi nào họ đăng nhập và thời gian họ đăng nhập là bao lâu.
$ w
 18:03:35 up 9 days, 22:48, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
joe tty2 /dev/tty2 27Apr18 9days 7:34 0.09s /usr/lib/x86_64-linux
shs pts/1 192.168.0.15 09:50 7.00s 0.28s 0.00s w
Sử dụng lệnh "sudo update-alternatives – config editor", nếu bạn không thích dùng trình soạn thảo mặc định được gọi khi chạy lệnh visudo. Nó sẽ cung cấp một số trình chỉnh sửa tùy chọn và thay đổi cài đặt của bạn.

Lệnh last

Lệnh last hiển thị cho bạn thông tin đăng nhập gần đây của người dùng và thường hữu ích khi bạn đang cố gắng theo dõi các thay đổi hoặc hoạt động khác.
$ last nemo
nemo pts/1 192.168.0.15 Wed May 2 07:01 - 08:29 (01:27)
wtmp begins Tue May 1 10:21:35 2018
“Nemo” đã không đăng nhập trong một thời gian. Anh ấy có thể đi nghỉ mát (hoặc có thể đi câu cá?) hay vừa mới rời công ty. Loại thông tin này có thể hữu ích trong việc quyết định xem, bạn có cần theo dõi điều này hay không.

Lệnh find

Lệnh find được sử dụng cho nhiều loại tìm kiếm. Khi nói đến bảo mật, bạn có thể thấy mình đang tìm kiếm các file không có chủ sở hữu (không có tài khoản tương ứng) hoặc các file mà bất cứ ai cũng có thể ghi và thực thi được. Lệnh find rất dễ thực hiện, nhưng yêu cầu một số tính năng quen thuộc và nhiều tùy chọn để xác định những gì bạn đang tìm kiếm. Lệnh đầu tiên trong hai lệnh này sẽ tìm các file không có chủ sở hữu xác định. Lệnh thứ hai sẽ tìm thấy các file mà bất kỳ ai cũng có thể chạy và sửa đổi.
$ sudo find /home -nouser
$ sudo find / -perm -o=wx
Hãy nhớ rằng -o trong lệnh thứ hai chỉ nhóm "other" - không phải là chủ sở hữu và không phải là nhóm được liên kết với các file.

Lệnh file

Lệnh file xem xét một file và xác định loại file dựa trên nội dung của file đó, chứ không phải tên file. File “.jpg” trong ví dụ bên dưới rõ ràng không phải là file .jpeg thực, mà là file thực thi.
jdoe@stinkbug:~$ ls -l
total 24
-rw-r--r-- 1 root root 0 Apr 13 09:59 empty
-rwxr-xr-x 1 jdoe jdoe 18840 May 10 17:39 myphoto.jpg
-rwx------ 1 jdoe jdoe 24 May 2 07:06 trythis
jdoe@stinkbug:~$ file myphoto.jpg
myphoto.jpg: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=5d19f7a492405ea9b022a9aa8151f6fb4143633d, stripped

Lệnh which

Lệnh which xác định file thực thi sẽ chạy khi bạn gõ tên của nó. Điều này không phải lúc nào cũng giống như bạn nghĩ. Nếu một Trojan đã được chèn vào hệ thống file ở một vị trí hiển thị trong đường dẫn tìm kiếm của bạn, nó sẽ được chạy thay thế. Đây là lý do chính đáng để đảm bảo rằng đường dẫn tìm kiếm của bạn bao gồm các thư mục như /usr/bin, trước khi nó thêm các vị trí kém chuẩn hơn và đặc biệt là trước "." (thư mục hiện hành).
$ which date
/usr/local/bin/date <=== probably not what we wanted
Bạn có thể kiểm tra đường dẫn tìm kiếm của người dùng bằng cách chuyển sang vai trò người dùng và làm như sau:
shs@stinkbug:~$ sudo su - nemo
nemo@stinkbug:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin
Ngay cả khi đường dẫn tìm kiếm của người dùng được thiết lập trong file hệ thống như /etc/profile hoặc /etc/bash.bashrc, chúng có thể đã bị thay đổi bởi các cài đặt cục bộ.
$ which date
/usr/local/bin/date <=== probably not what we wanted

Lệnh ss

Lệnh ss là một công cụ để điều tra các socket và cho phép bạn làm những việc như hiển thị các cổng nghe và các kết nối hoạt động. Nếu không thêm một số điều kiện, ss sẽ hiển thị nhiều thông tin hơn những gì bạn có thể muốn xem xét. Sau tất cả, nhiều phần của hệ điều hành giao tiếp thông qua các socket. Nếu bạn muốn tạo danh sách các kết nối đã được thiết lập hoặc các cổng nghe (nghĩa là các dịch vụ có sẵn cho các hệ thống bên ngoài), các lệnh như thế này sẽ rất hữu ích.
Cho các kết nối được thiết lập:
$ ss -t
State Recv-Q Send-Q Local Address:Port Peer Address:Port 
ESTAB 0 224 192.168.0.20:ssh 192.168.0.15:56647

$ ss | grep ESTAB | grep tcp
tcp ESTAB 0 64 192.168.0.20:ssh 192.168.0.15:64885
Cho các cổng nghe:
$ ss -ltn
State Recv-Q Send-Q Local Address:Port Peer Address:Port 
LISTEN 0 128 *:22 *:*
LISTEN 0 5 127.0.0.1:631 *:* 
LISTEN 0 50 *:445 *:*
LISTEN 0 50 *:139 *:*
LISTEN 0 128 *:5355 *:*
LISTEN 0 128 :::22 :::*
LISTEN 0 5 ::1:631 :::*
LISTEN 0 50 :::445 :::*
LISTEN 0 128 :::5355 :::*
LISTEN 0 50 :::139 :::*
Lưu ý: Cổng 631 (CUPS) chỉ nghe trên giao diện loopback (127.0.0.1).

Lệnh ufw

Nếu bạn đang chạy tường lửa trên hệ thống Linux của mình - một bước quan trọng để kiểm soát quyền truy cập vào hệ thống, các lệnh được sử dụng để bắt đầu/kết thúc, bật/tắt, sửa đổi và hiển thị trạng thái hoặc các quy tắc hoạt động là rất quan trọng. Dưới đây là một số lệnh mẫu cho ufw mà bạn sẽ tìm thấy trên nhiều hệ thống Ubuntu:
$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To Action From
-- ------ ----
22 ALLOW IN 192.168.0.0/24
Tường lửa này đang hoạt động và chỉ cho phép các kết nối từ mạng cục bộ đến ssh. Các lệnh sau đây sẽ:
  1. Thiết lập quy tắc được hiển thị ở trên
  2. Vô hiệu hóa tường lửa.
$ sudo ufw allow from 192.168.0.0/24 to any port 22
$ sudo ufw disable

Lệnh iptables

Điều quan trọng là phải biết cách liệt kê các quy tắc tường lửa cho iptables. Các lệnh này sẽ cung cấp cho bạn một danh sách đầy đủ các quy tắc netfilter:
sudo iptables -vL -t filter
sudo iptables -vL -t nat
sudo iptables -vL -t mangle
sudo iptables -vL -t raw
sudo iptables -vL -t security

Lệnh ip

Lệnh ip cho phép bạn hiển thị thông tin trên các giao diện mạng của mình. Trong ví dụ bên dưới, chúng ta sẽ thấy loopback (vòng lặp) và giao diện công khai.
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 inet 127.0.0.1/8 scope host lo
 valid_lft forever preferred_lft forever
 inet6 ::1/128 scope host
 valid_lft forever preferred_lft forever
2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
 link/ether 00:1e:4f:c8:43:fc brd ff:ff:ff:ff:ff:ff
 inet 192.168.0.20/24 brd 192.168.0.255 scope global dynamic enp0s25
 valid_lft 59794sec preferred_lft 59794sec
 inet6 fe80::f233:4f72:4556:14c2/64 scope link
 valid_lft forever preferred_lft forever

Lệnh ip route

Lệnh ip route sẽ hiển thị bảng định tuyến của bạn:
$ ip route
default via 192.168.0.1 dev enp0s25 proto static metric 100
169.254.0.0/16 dev enp0s25 scope link metric 1000
192.168.0.0/24 dev enp0s25 proto kernel scope link src 192.168.0.20 metric 100

Lệnh kill, pkill và killall

Các hệ thống Unix và Linux cung cấp một lựa chọn thuận tiện cho các lệnh để chấm dứt các tiến trình, bất cứ khi nào bạn muốn. Bạn có thể kết thúc bằng ID của tiến trình hoặc theo tên của nó. Bạn có thể kết thúc từng tiến trình một hoặc theo nhóm. Trong bất kỳ trường hợp nào, các lệnh kết thúc khác nhau đều có sẵn cho bạn sử dụng khi cần thiết. Những ví dụ bao gồm:
$ kill 1234
$ pkill bad
$ killall badproc

Lệnh passwd

Lệnh passwd có lẽ là khá rõ ràng khi nói đến bảo mật hệ thống, nhưng nó không nên bị bỏ qua trong bất kỳ danh sách cần thiết về bảo mật nào. Thay đổi mật khẩu, đặc biệt là khi nhiều người dùng đến rồi đi hoặc vai trò của họ thay đổi, là rất quan trọng.
Tuy nhiên, lệnh passwd không chỉ được sử dụng để thay đổi mật khẩu. Bạn cũng có thể sử dụng nó với đặc quyền sudo để thay đổi mật khẩu của người dùng khác, khóa/mở khóa hoặc làm tài khoản hết hạn, kiểm tra trạng thái tài khoản và thay đổi cài đặt để xác định thời điểm mật khẩu hết hạn hoặc cảnh báo mật khẩu thời gian.
Kiểm tra trang man (man passwd) để biết chi tiết và sử dụng các lệnh như sau:
$ sudo passwd nemo <== change nemo's password
$ sudo passwd -e dory <== expire dory's password (forces her to reset it)
$ sudo passwd -i shark <== disable shark's account

Lệnh pwck

Lệnh pwck thực hiện kiểm tra trên các file /etc/passwd và /etc/shadow của bạn, đảm bảo các trường bắt buộc có mặt, các file và thư mục tồn tại, v.v...
$ sudo pwck
user 'squash': directory '/home/squash' does not exist
user 'squash': program '/bin/bsh' does not exist

Lệnh setfacl và getfacl

Đừng để rwxr-x --- đánh lừa bạn rằng đây là tất cả những gì cần có để cấp quyền cho các file trên các hệ thống Linux. Với lệnh setfacl và getfacl, bạn có thể cấp quyền cho ai đó không phải là chủ sở hữu của file và không phải là thành viên của nhóm được liên kết (và bạn cũng không muốn họ trở thành thành viên của nhóm này) truy cập vào file. Giả sử bạn muốn “Nemo” có quyền đọc đối với một file phác thảo hướng dẫn thiết lập ufw của bạn và chỉ vậy thôi. Sử dụng lệnh như sau để sửa đổi danh sách điều khiển truy cập (ACL) cho file:
$ setfacl -m u:nemo:r ufw-setup
Lệnh getfacl sau đó sẽ hiển thị rằng thay đổi đã được thực hiện:
$ getfacl ufw-setup
# file: ufw-setup
# owner: shs
# group: shs
user::rwx
user:nemo:r-- <===
group::rw- #effective:r--
mask::r--
other::---

Lệnh sestatus & apparmor

Lệnh sestatus và apparmor có thể hiển thị trạng thái của các công cụ SELinux và apparmor, cung cấp sự cách ly giữa các ứng dụng sử dụng điều khiển truy cập bắt buộc. Nếu bạn đang sử dụng một hoặc các công cụ khác, bạn nên biết cách hiển thị trạng thái của chúng.

sestatus

$ sudo sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 28

apparmor

$ sudo apparmor_status
apparmor module is loaded.
18 profiles are loaded.
18 profiles are in enforce mode.
 /sbin/dhclient
 /usr/bin/evince
 /usr/bin/evince-previewer
 /usr/bin/evince-previewer//sanitized_helper
 /usr/bin/evince-thumbnailer
 /usr/bin/evince-thumbnailer//sanitized_helper
 /usr/bin/evince//sanitized_helper
 /usr/lib/NetworkManager/nm-dhcp-client.action
 /usr/lib/NetworkManager/nm-dhcp-helper
 /usr/lib/connman/scripts/dhclient-script
 /usr/lib/cups/backend/cups-pdf
 /usr/lib/snapd/snap-confine
 /usr/lib/snapd/snap-confine//mount-namespace-capture-helper
 /usr/sbin/cups-browsed
 /usr/sbin/cupsd
 /usr/sbin/cupsd//third_party
 /usr/sbin/ippusbxd
 /usr/sbin/tcpdump
0 profiles are in complain mode.
3 processes have profiles defined.
3 processes are in enforce mode.
 /sbin/dhclient (705)
 /usr/sbin/cups-browsed (30173)
 /usr/sbin/cupsd (26828)
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.
Bạn cũng nên biết cách bắt đầu và dừng các công cụ này.
$ sudo /etc/init.d/apparmor start
$ sudo /etc/init.d/apparmor stop
$ sudo /etc/init.d/apparmor restart
Đối với SELinux, các chế độ khác nhau đại diện cho:
enforcing -- SELinux security policy is enforced
permissive -- SELinux prints warnings instead of enforcing
disabled -- SELinux is fully disabled
Nhiều lệnh trên các hệ thống Linux có thể giúp bạn quản lý bảo mật. Các mô tả ở trên chỉ giới thiệu các lệnh này, nhưng không giải thích mọi thứ về cách chúng hoạt động hoặc có thể được sử dụng.

Ý kiến bạn đọc

Tên

Android,5,Anti virus,7,Bản quyền phần mềm,9,CCNA,3,Dối tác,1,Game Android,2,Game iOS,1,Games,4,Giai tri,1,Hệ điều hành,2,IOS,1,KCXD,1,Kiến thức,12,Kiến thức Xây dựng,24,Linux,2,Phần mềm,14,Phần mềm xây dựng,9,Phong thủy,3,Revit,3,Software,56,Sống,1,TCVN,3,Thủ thuật,35,Ứng dụng,6,VBA excel,8,Video,4,Web,10,web hay,9,Windown Phone,1,
ltr
item
Lê Ngân: Linux căn bản
Linux căn bản
https://st.quantrimang.com/photos/image/2016/04/27/luu-y-lenh-linux.png
Lê Ngân
https://www.lengan.net/2020/03/cung-giong-nhu-he-ieu-hanh-windows-khi.html
https://www.lengan.net/
https://www.lengan.net/
https://www.lengan.net/2020/03/cung-giong-nhu-he-ieu-hanh-windows-khi.html
true
5345002139417399617
UTF-8
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content