Tất cả dữ liệu trong Unix được tổ chức trong các file. Tất cả các file được tổ chức trong các thư mục. Những thư mục này được tổ chức trong một cấu trúc cây mà được gọi là hệ thống file.
Khi bạn làm việc với Unix, bằng cách này hay cách khác, bạn dành hầu hết thời gian làm việc với các file. Chương này sẽ hướng dẫn bạn cách tạo và di chuyển các file, sao chép và đặt lại tên cho chúng, tạo liên kết cho chúng….
Để liệt kê các file và các thư mục lưu giữ trong thư mục hiện tại, bạn sử dụng lệnh sau:
$ls
Dưới đây là ví dụ về kết quả của lệnh trên.
$ls
bin hosts lib res.03
ch07 hw1 pub test_results
ch07.bak hw2 res.01 users
docs hw3 res.02 work
Lệnh ls hỗ trợ tùy chọn -l giúp bạn nhận được nhiều thông tin hơn về các file được liệt kê.
$ls -l
total 1962188
drwxrwxr-x 2 amrood amrood 4096 Dec 25 09:59 uml
-rw-rw-r-- 1 amrood amrood 5341 Dec 25 08:38 uml.jpg
drwxr-xr-x 2 amrood amrood 4096 Feb 15 2006 univ
drwxr-xr-x 2 root root 4096 Dec 9 2007 urlspedia
-rw-r--r-- 1 root root 276480 Dec 9 2007 urlspedia.tar
drwxr-xr-x 8 root root 4096 Nov 25 2007 usr
drwxr-xr-x 2 200 300 4096 Nov 25 2007 webthumb-1.01
-rwxr-xr-x 1 root root 3192 Nov 25 2007 webthumb.php
-rw-rw-r-- 1 amrood amrood 20480 Nov 25 2007 webthumb.tar
-rw-rw-r-- 1 amrood amrood 5654 Aug 9 2007 yourfile.mid
-rw-rw-r-- 1 amrood amrood 166255 Aug 9 2007 yourfile.swf
drwxr-xr-x 11 amrood amrood 4096 May 29 2007 zlib-1.2.3
$
Dưới đây là các thông tin về tất cả các cột được liệt kê:
Trong ví dụ về ls - l, mỗi dòng file bắt đầu với một ký tự d, -, hoặc l. Những ký tự này chỉ kiểu của file được liệt kê.
Tiền tố | Miêu tả |
---|---|
- | File thường chẳng hạn như một file văn bản ASCII, nhị phân hoặc đường link cứng. |
b | Nhóm file đặc biệt. nhóm file thiết bị đầu vào/đầu ra ví dụ như một đĩa cứng vật lý. |
c | File ký tự đặc biệt. File thiết bị đầu vào/đầu ra thô ví dụ như một đĩa cứng vật lý. |
d | Là thư mục mà chứa một danh sách các file và thư mục khác. |
l | File liên kết ký tự. Kết nối trên bất kỳ một file thường nào. |
p | Pipe được đặt tên. Một cơ cấu để giao tiếp liên tiến trình. |
s | Socket được sử dụng cho giao tiếp liên tiến trình. |
Các siêu ký tự có ý nghĩa quan trọng trong Unix. Ví dụ * và ? là siêu ký tự. Chúng ta sử dụng * để so khớp 0 hoặc nhiều ký tự, sử dụng ? để kết nối với một ký tự đơn.
Ví dụ:
$ls ch*.doc
Hiển thị tất cả các file mà tên bắt đầu với cặp ký tự ch và kết thúc với .doc.
ch01-1.doc ch010.doc ch02.doc ch03-2.doc
ch04-1.doc ch040.doc ch05.doc ch06-2.doc
ch01-2.doc ch02-1.doc c
Dưới đây ký tự * thực hiện so khớp với bất kỳ ký tự nào. Nếu bạn muốn hiển thị tất cả các file kết thúc với .doc, thì khi đó bạn sử dụng lệnh sau:
$ls *.doc
Một file không nhìn thấy là một file mà các ký tự đầu tiên của nó là dấu chấm (.). Các chương trình Unix (bao gồm shell) sử dụng hầu hết những file này để giữ các thông tin cấu hình.
Một vài ví dụ về các file ẩn bao gồm:
Để liệt kê các file nhìn không nhìn thấy (bị ẩn), xác định tùy chọn -a cho lệnh ls:
$ ls -a
. .profile docs lib test_results
.. .rhosts hosts pub users
.emacs bin hw1 res.01 work
.exrc ch07 hw2 res.02
.kshrc ch07.bak hw3 res.03
$
Bạn có thể sử dụng vi editor để tạo ra các file thường có tên là filename trên hệ thống Unix. Bạn chỉ cần đơn giản sử dụng lệnh sau:
$ vi filename
Lệnh trên sẽ mở một file với tên đã cung cấp. Bạn sẽ cần nhấn phím i để tiến vào chế độ chỉnh sửa. Một khi bạn trong chế độ chỉnh sửa, bạn có thể bắt đầu ghi nội dung vào file như hình dưới:
This is unix file....I created it for the first time.....
I'm going to save this content in this file.
Khi đã thực hiện xong, bạn làm theo các bước sau:
Bây giờ bạn sẽ có một file được tạo với filename trong thư mục hiện tại.
$ vi filename
$
Bạn có thể chỉnh sửa các file hiện tại bằng cách sử dụng bộ soạn vi. Chúng ta sẽ đi vào chi tiết từng phần trong một chương hướng dẫn cụ thế. Nhưng rút gọn ở đây, bạn có thể mở một file đang tồn tại như sau:
$ vi filename
Một khi file này được mở, bạn có thể tiến vào chế độ chỉnh sửa bằng cách nhấn phím i và sau đó bạn có thể chỉnh sửa nội dung như bạn thích. Nếu bạn muốn di chuyển tại nơi này hoặc nơi khác bên trong file, khi đó đầu tiên bạn cần thoát khỏi chế độ chỉnh sửa bằng cách nhấn phím esc, sau đó bạn có thể sử dụng các phím sau để di chuyển bên trong một file:
Do đó bằng cách sử dụng các phím trên, bạn có thể đặt con trỏ bất cứ vị trí nào bạn muốn chỉnh sửa. Một khi bạn đã xác định vị trí, sau đó bạn có thể sử dụng phím i để tiến vào chế độ chỉnh sửa. Sau khi bạn thực hiện xong, nhấn esc và cuối cùng nhấn tổ hợp phím Shift+ZZ để thoát khỏi file hoàn toàn.
Bạn có thể sử dụng lệnh cat để quan sát nội dung của một file. Dưới đây là ví dụ đơn giản để quan sát nội dung của một file đã được tạo.
$ cat filename
This is unix file....I created it for the first time.....
I'm going to save this content in this file.
$
Bạn có thể hiển thị số lượng dòng bằng cách sử dụng tùy chọn -b cùng với lệnh cat như sau:
$ cat -b filename
1 This is unix file....I created it for the first time.....
2 I'm going to save this content in this file.
$
Bạn có thể sử dụng lệnh wc để nhận được số dòng, số lượng từ và số lượng các ký tự có trong một file. Dưới đây là một ví dụ đơn giản để quan sát thông tin về file đã được tạo trên.
$ wc filename
2 19 103 filename
$
Dưới đây là chi tiết trong 4 cột:
Bạn có thể đồng thời nhận được thông tin về nhiều file trong cùng một lúc bằng cú pháp đơn giản sau:
$ wc filename1 filename2 filename3
Để tạo một bản sao của một file, bạn sử dụng lệnh cp. Cú pháp đơn giản của lệnh này là:
$ cp source_file destination_file
Trong đó, source_file là file chứa thông tin bạn cần sao chép đến destination_file. Dưới đây là ví dụ để tạo một bản sao của filename đang tồn tại:
$ cp filename copyfile
$
Bây giờ bạn sẽ tìm thấy một copyfile trong thư mục hiện tại của bạn. File này sẽ giống hoàn toàn filename.
Để thay đổi tên của một file, bạn sử dụng lệnh mv. Cú pháp đơn giản của lệnh này là:
$ mv old_file new_file
Dưới đây là một ví dụ mà đặt lại filename đang tồn tại thành newfile:
$ mv filename newfile
$
Lệnh mv sẽ di chuyển tất cả file đang tồn tại vào trong file mới. Vì thế trong tình huống này bạn sẽ chỉ tìm thấy một newfile duy nhất trong thư mục hiện tại.
Để xóa một file đang tồn tại, bạn sử dụng lệnh rm. Cú pháp đơn giản của nó là:
$ rm filename
Chú ý: Có thể rất nguy hiểm khi xóa một file bởi vì nó chứa thông tin hữu ích. Vì thế bạn cần phải cẩn thận trong khi thực hiện lệnh này. Nó đề nghị tùy chọn -i song song với lệnh rm.
Dưới đây là ví dụ mà gỡ bỏ hoàn toàn filename đang tồn tại:
$ rm filename
$
Bạn có thể gỡ bỏ nhiều file tại cùng một lớp như sau:
$ rm filename1 filename2 filename3
$
Các chi tiết trong chương trình Unix có 3 stream (hoặc file) được mở cho nó khi nó bắt đầu:
Unpublished comment
Viết câu trả lời