Hệ điều hành Linux đã cung cấp nhiều lệnh để chúng ta có thể làm việc với tập tin và thư mục. Bài viết này sẽ giới thiệu với các bạn về cách tạo thư mục trên linux, tạo tập tin mới hoặc tập tin trống, xem nội dung của tập tin và tìm kiếm tập tin trên linux, thay đổi dấu thời gian của tập tin và di chuyển, xóa và đổi tên tập tin hoặc thư mục. Các lệnh này giúp bạn quản lý dữ liệu và tập tin của mình và đảm bảo rằng dữ liệu chính xác có sẵn tại đúng vị trí từ đây giúp cho các bạn có thể tự học linux một cách dể dàng hơn.
Làm việc với tập tin và thư mục1. Lệnh ls - xem danh sách tập tin thư mụcls -[tùy chọn] [đường dẫn thư mục muốn xem]
Các tuỳ chọn phổ biến của lệnh ls:
Các tùy chọnÝ nghĩa-LHiển thị danh sách tập tin, thư mục [chỉ hiện thị tên].-lHiển thị danh sách tập tin, thư mục [gồm nhiều cột: filename, size, date,….-aLiệt kê tất cả các tập tin, thư mục, bao gồm những tập tin ẩn.-RLiệt kê tất cả các tập tin, thư mục kể cả các tập tin, thư mục bên trong thư mục cha.
Ngoài ra chúng ta có thể sử dụng "man" để xem các tuỳ chọn của lệnh ls
man ls
1.1. Lệnh grep
Lệnh grep - lọc lại tên tập tin thư mục muốn xem
Lệnh
grep “yum” /root/*.txt
3 của "/" cho kết quả nhiều thông tin, nếu muốn lọc lại tên tập tin thư mục muốn xem chỉ cần thêm grep “yum” /root/*.txt
4.lệnh | grep [nhập ký tự muốn lọc]
Ví dụ 1: Muốn xem trong "/" có tập tin, thư mục nào có ký tự là pro thì thực hiện như sau:
ls -l | grep pro
Ví dụ 2: Muốn xem trong thư mục /etc có tập tin, thư mục nào có ký tự là yum thì thực hiện như sau:
ls -l /etc/ | grep yum
Lệnh grep còn được dùng tìm kiếm chuỗi trong file:
grep “ chuoi ” tên file
Lệnh grep còn được dùng tìm kiếm chuỗi trong nhiều file cùng lúc:
grep “ chuoi ” file_pattern
Chú ý: Dùng ký hiệu "*" để thực hiện tìm kiếm nhiều tập tin cùng một lúc.
Ví dụ: Tìm kiếm chuỗi "yum" trong các file có đuôi .txt trong thư mục /root:
grep “yum” /root/*.txt
2. Lệnh cdLệnh
grep “yum” /root/*.txt
5 dùng để đổi sang thư mục khácCác lệnh cd thông dụng
- Di chuyển về thư mục gốc:
6grep “yum” /root/*.txt
- Di chuyển đến 1 vị trí bất kì khi biết đường dẫn tuyệt đối:
7grep “yum” /root/*.txt
- Di chuyển đến thư mục con nằm trong thư mục hiện tại:
8 hoặcgrep “yum” /root/*.txt
9grep “yum” /root/*.txt
Di chuyển đến thư mục mẹ:
cd ..
Hoặc
cd ../.. : di chuyển về thư mục mẹ 2 lần
- Lệnh cd không có tham số, sẽ đưa bạn về home directory, dù bất kể bạn đang ở đâu:
5 hoặcgrep “yum” /root/*.txt
1cd ..
- Lệnh cd dùng để quay về thư mục trước:
2cd ..
Lệnh
cd ..
3 chúng ta sẽ có ful path của thư mục mà chúng ta đang dùng ở hiện tại.man ls
04. Lệnh mkdir – dùng để tạo thư mục trên LinuxLệnh
cd ..
4 được sử dụng để tạo một thư mục trong thư mục hiện tại:man ls
1Ví dụ: Tạo thư mục tên exampledir trong thư mục hiện tại:
man ls
25. Lệnh xóa tập tin thư mục5.1: Xóa tập tin:
man ls
3Ví dụ: Xóa tập tin abc.txt trong /usr/passwd:
man ls
45.2: Xóa tập tin mà không cần hỏi:
man ls
5Ví dụ: Xóa tập tin abc.txt trong /usr/passwd:
man ls
65.3: Xóa thư mục:
man ls
7Ví dụ: Xóa thư mục example trong /usr/bin:
man ls
85.4: Xóa thư mục rỗng:
man ls
9Ví dụ: Xóa thư mục dir trong /usr/bin:
cd ..
56. Lệnh copy tập tin, thư mục6.1: Lệnh sao chép tập tin:
lệnh | grep [nhập ký tự muốn lọc]
0Ví dụ: Sao chép tập tin abc.txt trong thư mục /root sang /usr:
cd ..
66.2: Lệnh sao chép thư mục:
lệnh | grep [nhập ký tự muốn lọc]
1Ví dụ: Sao chép thư mục /root/networks sang /usr/bin:
lệnh | grep [nhập ký tự muốn lọc]
27. Lệnh mv - dùng di chuyển, đổi tênLệnh
cd ..
7 thực hiện nhiệm vụ kép. Nó có thể thực hiện:7.1:Cần đổi tên một tập tin
lệnh | grep [nhập ký tự muốn lọc]
3Ví dụ: Đổi tên tập tin test1.txt trong /root thành test.txt:
lệnh | grep [nhập ký tự muốn lọc]
47.2: Di chuyển một tập tin đến vị trí khác, trong khi đó nó có thể đổi tên cùng lúc.
lệnh | grep [nhập ký tự muốn lọc]
5Ví dụ: Di chuyển và đổi tên tập tin test1.txt trong /root sang /etc đổi tên thành test.txt:
cd ..
88.Lệnh touch - dùng để tạo tập tin rỗngLệnh
cd ..
9 thường được sử dụng để thiết lập hoặc cập nhật quyền truy cập, thay đổi và sửa đổi thời gian của tập tin.Theo mặc định, nó đặt lại dấu thời gian của tập tin để khớp với thời gian hiện tại.Ngoài ra lệnh
cd ..
9 còn dùng để tạo tập tin rỗng.lệnh | grep [nhập ký tự muốn lọc]
6Ví dụ: Tạo tập tin tên test1.txt:
lệnh | grep [nhập ký tự muốn lọc]
7Lệnh
cd ..
9 còn cung cấp một số tiện ích, như tuỳ chọn -t cho phép bạn đặt ngày thời gian của tệp.lệnh | grep [nhập ký tự muốn lọc]
8Ví dụ: Đặt thời gian cho tập tin myfile, ngày 9 tháng 12 và lúc 4 giờ chiều [12091600]:
lệnh | grep [nhập ký tự muốn lọc]
99. Dùng trình soạn thảo viLinux có nhiều chương trình cho phép soạn thảo văn bản như: vi, emacs, joe, pico,… chương trình soạn thảo văn bản thông dụng nhất đó là vi.
Khi
cd ../.. : di chuyển về thư mục mẹ 2 lần
2 khởi động sẽ ở chế độ dòng lệnh. Để chuyển đổi từ chế độ dòng lệnh sang chế độ soạn thảo thì nhấn phím insert. Để trở lại chế độ dòng lệnh thì chọn phím ESC.ls -l | grep pro
0Ví dụ: Tạo tập tin 123.txt và đặt trong thư mục /usr/bin với nội dung là “ dung trinh soan thao vi”
Bước 1: Dùng lệnh vi để tạo tập tin 123.txt. Nếu tập tin này đã có thì cũng dùng vi để mở và cũng theo cú pháp ở trên.
ls -l | grep pro
1Bước 2: Nhấn phím i để nhập nội dung “dung trinh soan thao vi”.
Bước 3: Nhấn phím ESC để nhập một trong các yêu cầu sau:
3: thoát mà không lưu văn bản.cd ../.. : di chuyển về thư mục mẹ 2 lần
4: Lưu và thoát khỏi tập tin.cd ../.. : di chuyển về thư mục mẹ 2 lần
Các câu lệnh và tác dụng trong chế độ dòng lệnh của trình soạn thảo vi:
Câu lệnhTác dụng^ hoặc 0Dịch chuyển con trỏ đến vị trí bắt đầu của dòng hiện tại.$Dịch chuyển con trỏ đến vị trí kết thúc của dòng hiện tại.i,aChèn văn bản ngay trước/sau vị trí con trỏ.OMở một dòng mới ngay sau dòng hiện tại.OMở một dòng mới ngay trước dòng hiện tại.XXóa ký tự sau con trỏ.DwXoá một từ [bao gồm cả ký tự trống ngay sau nó].DXoá từ vị trí con trỏ đến kết thúc dòng.d^Xoá từ vị trí bắt đầu dòng đến vị trí ký tự trống hay ký tự bên trái con trỏ.UHuỷ bỏ thay đổi trước đó./patternTìm xâu pattern. Theo hướng tiến.?patternTìm xâu pattern, theo hướng lùi về đầu văn bản.n,NLặp lại việc tìm kiếm theo cùng hướng/ngược hướng.p, PDán đoạn văn bản vừa xoá vào trước/sau con trỏ..Lặp lại câu lệnh cuối.DdXóa dòng có con trỏ chạy.:wGhi lại tất cả các thay đổi của file hiện tại và tiếp tục soạn thảo.:q!Kết thúc, không lưu trữ bất kỳ thay đổi.:ZZLưu thay đổi của file hiện tại và kết thúc.
10. Tạo tập tin có nội dung:ls -l | grep pro
2Ghi vào dòng tiếp theo của tập tin có nội dung:
ls -l | grep pro
311. Xem tập tinChúng ta sử dụng các lệnh để xem tập tin:
LệnhChức năngcatDùng để xem các tập tin không quá dài.tacDùng để xem nội dung của một tập tin ngước bắt đầu từ dòng cuối.tessDùng để xem tập tin lớn hơn vì đây là chương trình phân trang.tailDùng để in 10 dòng cuối của tập tin theo mặc định. Chúng ta có thể thay đổi số dòng bằng cách thêm -n vào sau tail, n là số dòng bạn muốn.headDùng để in 10 dòng đầu của tập tin theo mặc định. Chúng ta có thể thay đổi số dòng bằng cách thêm -n vào sau head, n là số dòng bạn muốn.
12. Lệnh tìm kiếmls -l | grep pro
4Ví dụ: Tìm vị trí của tập tin xyz.txt trong /etc:
ls -l | grep pro
5Ngoài việc tìm theo tên [-name], có thể tìm theo các tùy chọn khác như: -type, -user, -atime, -amin, -newer,… Sử dụng lệnh man find để xem chi tiết.
Chú ý: Có thể dùng ký hiệu "*" để thực hiện xóa, tìm kiếm, sao chép... nhiều tập tin cùng một lúc.
12.1: Tìm theo thời gian và size
Find có thêm cả phần lọc kết quả theo thời gian và size nữa.
12.1.1: Size
Ta có thể tìm những file có dung lượng tùy ý, bằng cách dùng -size. Một số option thường dùng:
5: bytescd ../.. : di chuyển về thư mục mẹ 2 lần
6: Kilobytescd ../.. : di chuyển về thư mục mẹ 2 lần
7: Megabytescd ../.. : di chuyển về thư mục mẹ 2 lần
8: Gigabytescd ../.. : di chuyển về thư mục mẹ 2 lần
9: 512-byte blockscd ../.. : di chuyển về thư mục mẹ 2 lần
Tìm tất cả các file nặng đúng 100 bytes:
ls -l | grep pro
6Tìm các file nhỏ hơn 100 bytes:
ls -l | grep pro
7Hoặc tìm các file nặng hơn 1GB:
ls -l | grep pro
812.1.2: Time
Linux lưu trữ 1 vài thông tin liên quan đến thời gian như: thời điểm truy cập, thời điểm chỉnh sửa, và thời điểm thay đổi file.
- Access Time [thời điểm truy cập]: Lần cuối cùng file được đọc hoặc ghi vào.
- Modification Time [thời điểm chỉnh sửa]: Lần cuối nội dung file được chỉnh sửa.
- Change Time [thời điểm thay đổi]: Lần cuối mà inode meta-data của file bị sửa.
Tương đương với các thông tin trên, ta dùng -atime, -mtime, -ctime, và cả "-" và "+" để lọc ra những thời gian trước hay sau thời điểm đó.
Để tìm các file được chỉnh sửa trong vòng 1 ngày trước:
ls -l | grep pro
9Tìm các file được truy cập trong ngày hôm qua:
ls -l /etc/ | grep yum
0Các file mà meta-data bị chỉnh sửa lần cuối là 3 ngày trước và hơn:
ls -l /etc/ | grep yum
1Hoặc tìm theo phút chứ không phải ngày:
ls -l /etc/ | grep yum
2Lệnh trên sẽ tìm các file được chỉnh sửa trong vòng 1 phút trước.
Lệnh find còn có thể so sánh với 1 file, và trả về những file mới hơn:
ls -l /etc/ | grep yum
312.2: Tìm theo Owner và Permission
Chúng ta có thể tìm theo user hay group owner bằng
man ls
00 và man ls
01.Tìm các file mà user "test" sở hữu:
ls -l /etc/ | grep yum
4Hoặc các file mà group "newgroup" sở hữu:
ls -l /etc/ | grep yum
5Chúng ta cũng tìm được theo permission của file, bằng -perm
Tìm những file có permission 644:
ls -l /etc/ | grep yum
6hoặc những file có permission ít nhất 644, nghĩa là gồm cả các file có permisson là 744:
ls -l /etc/ | grep yum
712.3: Kết hợp find và command khác
Chúng ta còn có thể kết hợp
man ls
02 và các command khác để xử lý những file vừa tìm được với man ls
03ls -l /etc/ | grep yum
8Tìm các file có permission là 644 và chmod sang 755:
ls -l /etc/ | grep yum
9Tìm 1 file test.py và xóa nó:
grep “ chuoi ” tên file
0Hoặc xóa các file có đuôi .txt ở dir hiện tại:
grep “ chuoi ” tên file
113. Lệnh nén và giải nén tập tin thư mụcTrong hệ thống Linux tồn tại một số dạng nén cơ bản như: zip,... Dưới đây là một vài ví dụ về cách nén và giải nén với định dạng đó.
Nén và giải nén tập tin có đuôi là .gz
grep “ chuoi ” tên file
2Ví dụ 1: Nén tập tin test.txt trong thư mục /usr/bin thành test.txt.gz:
grep “ chuoi ” tên file
3Ví dụ 2: Giải nén tập tin test.txt.gz trong thư mục /usr/bin:
grep “ chuoi ” tên file
414. Lệnh locateLệnh
man ls
04 giúp chúng ta tìm kiếm rất nhanh một file bất kì trên hệ thống Linux. Chúng ta thường dùng cú pháp như sau:grep “ chuoi ” tên file
5Chương trình
man ls
04 có tên gói cài đặt là man ls
06Cú pháp cài đặt chương trình
man ls
04 như sau:Đối với CentOS/RHEL
6grep “ chuoi ” tên file
Đối với Debian/Ubuntu
7grep “ chuoi ” tên file
Một số ví dụ về lệnh
man ls
04:Ví dụ 1: Tìm một file với lệnh
man ls
04grep “ chuoi ” tên file
8Ví dụ 2: Hiển thị đếm số lượng kết quả sử dụng tùy chọn
man ls
10grep “ chuoi ” tên file
9Ví dụ 4: Hiển thị kết quả tên file chữ hoa chữ thường
Theo mặc định thì
man ls
04 chỉ tìm ra những file có chữ thường. Nhưng trong một số trường hợp thì chúng ta muốn tìm kiếm file có chữ thường chữ hoa chúng ta sử dụng tùy chọn man ls
12. Cú pháp như sau:grep “ chuoi ” file_pattern
0Ví dụ 5: Giới hạn kết quả xuất ra
Nếu không giới hạn kết quả xuất ra sẽ ra rất nhiều kết quả liên quan. Như ví dụ sau
grep “ chuoi ” file_pattern
1Để giới hạn số lượng xuất ra chúng ta sử dụng tùy chọn
man ls
13. Ví dụ chúng ta muốn xuất 5 dòng thì chúng ta thực hiện như sau:grep “ chuoi ” file_pattern
2Để cập nhật lại dữ liệu cho
man ls
04 chúng ta chay lệnh sau:grep “ chuoi ” file_pattern
315. Lệnh which và lệnh whereis15.1. Lệnh which
Lệnh
man ls
15 xác định vị trí một chương trình trong đường dẫn của người dùng.Một số cú pháp của lệnh
man ls
15:Tìm kiếm biến môi trường PATH và hiển thị vị trí của bất kỳ tập tin thực thi phù hợp nào
grep “ chuoi ” file_pattern
4Nếu có nhiều tập tin thực thi khớp, hiển thị tất cả:
grep “ chuoi ” file_pattern
515.2 Lệnh whereis
Lệnh
man ls
17 rất hữu ích để tìm kiếm các trang nhị phân, nguồn các lệnh trong hệ thống Linux. Cú pháp như sau:grep “ chuoi ” file_pattern
6Ví dụ 1: Nó định vị các trang nhị phân, nguồn và man của lệnh
man ls
18 và nó hiển thị các đường dẫn trong đó các trang nhị phân, lệnh man có sẵn trong hệ thống.grep “ chuoi ” file_pattern
7Ví dụ 2: Xác định vị trí của tập tin nhị phân lệnh
man ls
19 tuỳ chọn man ls
20grep “ chuoi ” file_pattern
8Ví dụ 3: Xác định vị trí của trang man lệnh
man ls
19 tuỳ chọn man ls
22grep “ chuoi ” file_pattern
916. Lệnh typeLệnh
man ls
23 trong Linux được sử dụng để tìm hiểu một lệnh mà chúng ta nhập sẽ diễn giải là một lệnh tích hợp, lệnh bên ngoài hoặc bí danh[alias] của shell hiện tại. Cú pháp của lệnh này là: