14. chroot 

Cú pháp là: 

Lệnh này sẽ đổi thư mục root đến NEWROOT và chạy lệnh COMMAND với các tham số ARGS. 
Chỉ có super-user mới có quyền chạy lệnh này. 

Lấy một ví dụ: 

+ Tạo một thư mục chroot trong /tmp: 
[[email protected] quanta]# mkdir /tmp/chroot/ 
[[email protected] quanta]# cd /tmp/chroot 

+ Tạo một số thư mục con trong thư mục này: 
[[email protected] chroot]# mkdir bin lib home 

+ Bây giờ chúng ta copy /bin/bash và các thư viện phụ thuộc qua cấu trúc thư mục trong /tmp/chroot. Đầu tiên sử dụng lệnh ldd để liệt kê các thư viện phụ thuộc: 

 

+ Copy các thư viện này sang thư mục /tmp/chroot/lib tương ứng: 

+ Bây giờ copy /bin/bash sang /tmp/chroot/bin: 
[[email protected] chroot]# cp /bin/bash /tmp/chroot/bin 

+ Dùng lệnh chroot chuyển sang thư mục /tmp/chroot/: 
[[email protected] chroot]# chroot /tmp/chroot/ 

Nếu bạn gặp lỗi tương tự như: 

hãy kiểm tra lại xem bạn đã copy đầy đủ các thư viện phụ thuộc qua /tmp/chroot/lib chưa? 

+ Sau khi thực hiện chroot, bạn có: 

+ Thử gõ vài lệnh xem sao: 

Như bạn thấy: thư mục hiện tại là / và lệnh ls không được tìm thấy. Gõ exit để thoát. 

Bây giờ thử copy lệnh /bin/ls qua /tmp/chroot/bin sau đó thực hiện lại xem sao: 

Như vậy là ls vẫn còn thiếu một số thư viện để có thể chạy. 

Copy nốt các thư viện này qua /tmp/chroot/lib và thực hiện lần cuối: 

Trên *nix, khi bạn gõ một lệnh, nó sẽ được tìm bắt đầu từ thư mục gốc trong cấu trúc thư mục (tức là root – /). Bây giờ khi bạn thực hiện chroot qua thư mục NEWROOT, gõ một lệnh nào đó, nó sẽ được tìm bắt đầu từ NEWROOT (lúc này NEWROOT được hiểu là thư mục gốc), chứ không phải là /. Đó là lý do tại sao, ở ví dụ trên, khi bạn gõ ls, bạn nhận được thông báo “bash: ls: command not found” (vì ls không nằm trong thư mục bin của /tmp/chroot). 

15 : alias

Lệnh này sử dụng nếu như bạn không quen thuộc với “rm”, “cp” hay “mv” .. mà thích “del”, “copy” hay “move” hơn thì sao, và nếu như bạn muốn nó bao giờ cũng -v Code:

Như vậy, khi bạn gõ del, shell sẽ tự hiểu là bạn muốn gõ rm -v

Lưu ý : lệnh này chỉ có hiệu lực tại thời điểm tạo lệnh, nếu thoát khỏi terminal trong GUI hay logout trong Text Mode lệnh sẽ mất hiệu lực. Nếu các bạn muốn hiểu sâu hơn hoặc muốn lệnh automatically khi khởi động hãy tìm hiểu về ~/.bashrc, ~/.bash_profile, /etc/profile, …

16. mktemp

Bạn đang viết một đoạn script và cần tạo một file hoặc thư mục tạm mà không muốn phải kiểm tra xem nó đã được tạo trước đó hay chưa, bạn có thể dùng lệnh mktemp. Lệnh này tạo một file hoặc thư mục với tên duy nhất. File hoặc thư mục này được đặt trong /tmp vào có dạng tmp.XXXXXXXXXX. Dùng tuỳ chọn -d để tạo thư mục thay vì file.
Ví dụ, trong các script files bạn có thể dùng như sau:

sau đó gọi đến đường dẫn của thư mục này với $STORE
17. file
Lệnh này xác định loại file.






18. who: Ai đang dùng máy

19. whoami / who am i: Tôi là ai

19. pwd: Tôi đang ở đâu? lấy thu mục mình đang thao tác và gõ trên terminal

20. id: Chứng minh thư của tôi đâu? lấy ID của tài khoản đang sử dụng cũng như các thông tin cần thiết

id của user FaL là 1019, thuộc nhóm FaL (cùng tên) với id của nhóm là 1003, những nhóm mà thằng FaL còn tham gia là: 1003 và (wheel)

21. cd: đưa tôi tới …
Nếu ko có tham số ở sau, cd sẽ đưa bạn về thư mục gốc của user

Nếu sau cd có đường dẫn bạn sẽ được chuyển đến đường dẫn đó.

Trong *nix, . có nghĩa là thư mục hiện tại, .. có nghĩa là thư mục cha. Vậy để chuyển ra ngoài thư mục cha, bạn gõ:

(Lưu ý: Sau cd có một khoảng trắng)
Bây giờ, giả sử bạn đang làm việc trong thư mục /mnt/data/linux. Sau đó bạn chuyển sang thư mục /etc/sysconfig. Để quay trở lại thư mục /mnt/data/linux, bạn gõ:

(Lưu ý: Sau cd có một khoảng trắng)

22. ls (list): liệt kê các file trong thư mục bạn đang xem

Tham số -l (chữ L): xem thông tin chi tiết của từng file:

23. Which– lệnh hiện thị ‘đầy đủ’ đường dẫn.

Cấu trúc câu lệnh : which -[option] [–] programname […]

Ví dụ bạn muốn xem đường dẫn openssl bạn sử dụng

hay bạn xem thử đường dẫn mysql cũa bạn. Sử dụng

Tham khảo đầy đủ:

Mạn phép viết tiếp 1 lệnh:
24. find – tìm kiếm tập tin/thư mục

Cấu trúc câu lệnh: find [DIR_TO_FIND] -name “FILENAME_WITH_REGEX” -type f/d ….

Đây là 1 lệnh tìm kiếm không dựa trên database như lệnh locate, lệnh này rất mạnh vì hỗ trợ việc kết hợp với các lệnh khác.

Ví dụ bạn muốn tìm và xóa tất cả các tập tin/thư mục có tên là .svn trong thư mục hiện tại, bạn chỉ cần gõ:

Nếu muốn chỉ xóa tập tin thì thêm -type f vào câu trên.

25. lsof

Liệt kê các files, sockets, pipes đang mở, đang được sử dụng bởi các tiến trình khác.

Một số tham số hữu ích hay dùng:
+ Xem /dev/dsp (thường liên quan đến sound card) đang bị dùng bởi chương trình nào:

+ Xem tại sao khi unmount CD Rom lại gặp lỗi “device is busy”:

+ Xem ứng dụng nào đang dùng cổng 80:

+ Tất cả các processes đang sử dụng bash shell:

+ Ai đang dùng vim:

+ Init processes đang sử dụng những files nào:

26. stat
Cung cấp tất cả các thuộc tính về một file

27. netstat
Đưa ra thông tin về network connections, routing tables, interface.

Ví dụ:
– Thông tin về các connections:

– Tiến trình nào đang lắng nghe trên cổng 22:

Ta thấy tiến trình với PID là 3216 đang nghe trên cổng này. Kết hợp với ps sẽ thêm một số thông tin:

– In ra bảng định tuyến:

28. groups

Liệt kê các nhóm mà user đó là thành viên.

29. Liệt kê các thành viên trong một nhóm

30. apropos

Đôi khi muốn thực hiện một tác vụ nào đó, nhưng bạn không biết phải dùng lệnh nào. Có nhiều cách để có thể tìm được, một trong số đó là dùng lệnh apropos. Lệnh này sẽ tìm trong man page chuỗi ký tự miêu tả ngắn gọn về lệnh bạn cần tìm.

Ví dụ:
+ Muốn tìm các lệnh liên quan đến user account bạn có thể gõ:

+ Các lệnh liên quan đến monitoring:

+ Các lệnh làm việc với processes:

31. pushd và popd

Đôi khi bạn thường xuyên phải làm việc với vài thư mục có đường dẫn khá dài. Lệnh cd có thể chuyển qua lại giữa chúng, nhưng có một cách nhanh hơn đó là dùng pushd và popd. 2 lệnh này sẽ tạo ra một ngăn xếp thư mục ảo (Virtual directory stack):
+ pushd: thay đổi thư mục hiện tại và đưa thư mục bạn sẽ đến vào stack
+ popd: lấy thư mục ở đỉnh ra khỏi stack và đưa bạn đến thư mục kế tiếp trong stack

Ví dụ: Tôi thường xuyên làm việc với vài thư mục: /mnt/data/linux-unix/packages, /mnt/data/pentaho, /mnt/data/linux-unix/Ebooks, … Tôi sẽ “đẩy” chúng và ngăn xếp để khi cần thì “lấy” ra cho nhanh:

Để liệt kê các thư mục đang có trong stack bạn dùng lệnh dirs:

Bây giờ, để chuyển đến thư mục /mnt/data/pentaho, bạn chỉ việc gõ popd:

2 lệnh này cũng hỗ trợ các tham số để chuyển đến một phần tử xác định trong ngăn xếp, đó là +n và -n. Ví dụ, hiện tại ngăn xếp của bạn như sau:

Bạn cần chuyển /mnt/data/linux-unix/packages lên đỉnh ngăn xếp, bạn có thể gõ:

Hiểu nôm na là ngăn xếp sẽ bị “quay” sang trái 2 phần tử.

32. top
Kiểm tra các tiến trình đang hoạt động (giống task manager của windows), xem tiến trình nào đang chiếm tài nguyên hệ thống như thế nào. top sẽ cập nhật liên tục thay đổi của các tiến trình. nhấn q để kết thúc lệnh

33. uname
Bạn đang chuẩn bị tải 1 phần mềm (MySQL chẳng hạn ) nhưng nó có quá nhiều phiên bản, để xác định phiên bản nào là phù hợp với hệ thống của mình bạn phải biết được các thông tin như “nền tảng phần cứng” (dịch từ chữ hardware-platform), version của nhân:

Để xem hệ thống của bạn đang chạy nhân version nào:

34. Lệnh mkdir 

Lệnh này dùng để tạo thư mục mới

35. lệnh touch 
Dùng để tạo ra 1 file mới. Hoặc bạn có thể dùng lệnh “vi” <- lệnh này dùng để soạn thảo văn bản và tạo file mới, nếu file này chưa tồn tại.

36. Lệnh rm.

Lệnh này dùng để xoá file hay thư mục
Options -f: dùng để xoá ko cần hỏi.

37. Lệnh rpm 
Dùng để install/ uninstall software hay 1 application.
Options: -qa để xem version của soft đã install.
Tham khảo chi tiết lệnh này trong phần “mục lục các bài viết có giá trị của hđh *nix” hoặc gõ man rpm.

Leave a Reply

avatar
  Subscribe  
Notify of