Làm quen câu lệnh và hệ thống tập tin trong Linux

Chào mừng bạn đến với phần 2 của series “Linux dành cho lập trình viên”.

Trong phần Linux cơ bản, đầu tiên mình đã cùng làm quen với Linux qua bài viết “Giới thiệu về Linux”, nếu bạn chưa đọc qua thì hãy dừng ít phút ghé đọc để có cái nhìn tổng quan nhé.

Tiếp theo trong bài này, tụi mình sẽ làm quen câu lệnh và hệ thống tập tin trong Linux, bao gồm:

– Cấu trúc của một câu lệnh

– Giới thiệu hệ thống tập tin

– Điều hướng trong hệ thống tập tin

Tới công chiện rồi, vào thôi! Chúc các bạn đọc nội dung vui vẻ nhé ^^

Cấu trúc câu lệnh

Một câu lệnh sẽ bao gồm 3 phần: <tên câu lệnh> <các lựa chọn> <các đối số>

 

Các options ở đây là các giá trị được định nghĩa sẵn sẽ thay đổi cách là việc của câu lệnh. 

Các đối số sẽ là các giá trị truyền thêm vào.

Ví dụ:  Xem document của câu lệnh ls với man. 

man ls

Ở đây, man là tên câu lệnh(viết tắt của manual), ls là đối số. 

Kết quả là một document của ls xuất hiện trên màn hình.

Để đọc document này, ngoài cách dùng chuột kéo xuống xem nội dung thì mình còn có thể sử dụng các cách như:

<spacebar> : di chuyển xuống dưới một màn hình

<enter> : di chuyển xuống từng dòng

b <enter> : di chuyển lùi một màn hình

/<từ-cần-tìm> : tìm kiếm với <từ-cần-tìm> ở nội dung tiếp theo

h <enter> : hiển thị màn hình trợ giúp, tại đây có hướng dẫn cách điều hướng cho bạn

q <enter> : thoát khỏi màn hình hiện tại

Hệ thống tập tin

Dù mục đích khi học về Linux của bạn là gì đi nữa, thì việc hiểu về hệ thống tập tin(filesystem) và di chuyển(navigate) giữa các thư mục khác nhau, cũng như việc quản lý các tập tin là điều cần biết.

Hiểu thêm về filesystem

 

Filesystem là cách các tập tin được tổ chức một cách có cấu trúc nằm trong những thư mục.

 

Linux có cấu trúc thư mục không phân chia theo ổ đĩa(C, D, …) như Windows mà có một thư mục gốc gọi là thư mục root(thường viết là /). 

Từ / sẽ phân chia thành nhiều loại thư mục có mục đích dùng khác nhau. 

Một số thư mục hay dùng đến là:

/home: chứa nội dung của người dùng user

/rootchứa nội dung của người dùng root

/bin/usr/bin: chứa các chương trình thực thi, hầu hết các câu lệnh hệ thống được chạy. Ví dụ “ls”

/sbin/usr/sbinchứa các chương trình thực thi giành cho admin

Chuyện đặt tên

Nói đến hệ thống file, thì cũng nói luôn đến chuyện cân nhắc khi đặt tên cho thư mục(folder) hoặc tập tin(file) sao cho hợp lý. 

Thường thì sẽ cân nhắc một số điểm sau:

Tên thì sẽ phân biệt viết hoa và viết thường, ví dụ: text.txt và Text.txt sẽ là hai files khác nhau

Tên được phép chứa các ký tự đặc biệt. Tuy nhiên khi đặt tên có khoảng cách hay các ký tự đặc biệt sẽ dễ sinh vấn đề, do đó nên hạn chế.

Ký tự / đại diện cho thư mục root, và cũng dùng trong đường dẫn để chia bậc, cho nên cũng hạn chế sử dụng ký tự này.

Tên được phép chứa các đuôi(extension) như là .csv, .txt, … Tuy nhiên, Linux và BASH shell thì không buộc có các đuôi này, nhưng nó sẽ có ích cho người dùng để dễ hiểu nội dung theo từng loại file.

Một số tên thư mục được định nghĩa sẵn:

  ~ là đại diện cho thư mục home của người dùng hiện tại

   . là đại diện thư mục hiện tại

  .. là đại diện thư mục cha của thư mục hiện tại

Điều hướng filesystem

Khi sử dụng môi trường command-line, thường bạn sẽ cần truy cập vào một file đang ở một thư mục nào đấy, hoặc là truy cập vào một thư mục để xem trong đó có gì.

Khi mở terminal lên(hoặc chương trình shell nào đấy, ví dụ iTerm chẳng hạn), thì bạn con trỏ sẽ tự động được đứng ở thư mục home của người dùng.

Câu lệnh pwd giúp kiểm tra vị trí hiện tại của thư mục. 

 

Kết quả của câu lệnh này trên máy mình là “/Users/thanhnguyen” (máy bạn sẽ khác nha), chính là một đường dẫn(path hay pathname).

Thư mục mà con trỏ đang đứng thường được gọi là working directory hay current directory.

Và công việc mình muốn làm là di chuyển đến thư mục bin nằm trong usr/ chẳng hạn thì gọi là thay đổi thư mục(change directory).

Các loại đường dẫn

Đường dẫn thể hiện cách mình có thể tham chiếu với cấu trúc thư mục. Dấu / được dùng trong đường dẫn để phân cách từng bậc của cấu trúc này.

Có 2 loại đường dẫn bạn sẽ gặp là:

– đường dẫn tuyệt đối(absolute path): đường dẫn này thể hiện vị trí của tệp liên quan đến thư mục root, do đó luôn bắt đầu với /.
  Ví dụ: /usr/bin

– đường dẫn tương đối(relative path): đường dẫn này thể hiện vị trí của tệp từ thư mục hiện tại, do đó sẽ bắt đầu từ thư mục hiện tại .

  Ví dụ: ../../usr/bin

Vậy là có thể dễ dàng xác định loại đường dẫn bằng cách quan sát, nếu đường dẫn bắt đầu bằng / thì là tuyệt đối vì bắt đầu ở root, còn đường dẫn có chứa . hay .. là tương đối vì sử dụng thư mục hiện tại.

Và thêm nữa, đường dẫn có thể giúp mình đến thư mục bin có thể là /usr/bin hoặc ../user/bin.

Tùy loại nào mình thấy nó tiện hơn thì mình dùng. 

Ví dụ nếu từ thư mục hiện tại mà cần ra ngoài đến 4, 5 bậc thì mình nghĩ là absolute path sẽ tiện hơn, còn từ thư mục hiện tại chỉ ra ngoài 1,2 bậc thì sẽ ưu tiên dùng relative path.

Cách điều hướng

Để điều hướng trong filesystem, sử dụng câu lệnh cd đi kèm với đường dẫn của nơi muốn đến

cd <đường-dẫn>

Nếu cd không có đường dẫn sẽ mặc định về thư mục ~

Điều hướng relative path

Cách làm: bắt đầu từ thư mục hiện tại, mỗi lần .. là di chuyển lên trên một bậc, là thư mục cha của thư mục hiện tại.

Ví dụ mình muốn di chuyển từ /Users/thanhnguyen đến /usr/bin

  – .. lần 1 sẽ di chuyển ra đứng ở thư mục Users

  – .. lần 2 sẽ di chuyển ra đứng ở /

  – sau đó truy cập vào usr/bin 

Nên cd ../../user/bin sẽ giúp mình chuyển từ thư mục hiện tại sang thư mục user/bin.

Điều hướng absolute path

Cách làm: thư mục bin nằm trong folder usr, và folder usr nằm trong folder root /, nên absolute path sẽ là cd /usr/bin

Nội dung bài blog này đến đây tạm hết rồi, tụi mình đã làm quen với hệ thống tập tin trong Linux cũng như cách điều hướng trong hệ thống này.

Trong bài viết tiếp theo của series “Làm quen Linux giành cho lập trình viên”, sẽ là tìm hiểu thêm về việc quản lý hệ thống tập tin trong Linux.

Hẹn gặp các bạn trong bài viết sau.

Nếu bạn thích hãy comment hay like, share ủng hộ mình. Cảm ơn bạn.

BeautyOnCode.

Please follow and like us:

Leave a Reply

Your email address will not be published. Required fields are marked *

RELATED POST

Gỡ lỗi chương trình

Hôm nay mình muốn nói về “Gỡ lỗi”(Debugging) , một qui trình sửa lỗi trong chương trình phần mềm. (Phần…

Giới thiệu về CLI và các câu lệnh làm việc với file trong Linux

Chào mừng bạn đến với blog số 5 của series “Linux dành cho lập trình viên”. Trong các blog trước, mình…

.gitkeep

Khi bắt đầu một dự án xây dựng web, một trong những công việc đầu tiên là tạo cấu trúc…

Basic knowledges about Redis

Introduction & What is Redis? An in memory database stored by key-value, usually use as a database to cache, is…