Các lệnh quản lý file trên Linux
Bài này chúng ta sẽ tìm hiểu về các lệnh quản lý file trên Linux, các thao tác xem, tạo mới hay sửa, xóa file. Đó là những thao tác cơ bản nhất khi làm việc trên môi trường linux.
Một đặc điểm mà nhiều người rất thích trên Linux đó là có thể dễ dàng quản lý tài nguyên bằng dòng lệnh command line, trông rất chuyên nghiệp, đương nhiên bạn sẽ phải mất nhiều thời gian để nhớ những lệnh đó.
Và để giúp các bạn ôn tập kiến thức thì trong bài này mình sẽ hướng dẫn cách quản lý file trên Linux thông qua lệnh command line.
1. Hệ thống file trên Linux
Trên hệ điều hành Windows các bạn hẳn rất quen thuộc với trình quản lý file Windows Explorer. Theo đó có thể thấy hệ thống file sẽ được tổ chức dạng phân cấp, đầu tiên là các ổ đĩa như C, D, E, ... sau đó là các thư mục con trong đó, và trong mục con là file hay các mục con khác. Hệ thống file trên linux cũng tổ chức phân cấp như vậy - có phân vùng, file, folder rồi các mục folder con ...
Bài viết này được đăng tại [free tuts .net]
Thao tác với file, folder trên linux thường dùng lệnh. Danh sách dưới đây mô tả các lệnh cơ bản giúp tạo, xóa, sửa, copy, di chuyển file:
Lệnh | Mô tả |
ls | hiện danh sách file |
touch, vi |
tạo mới file |
cat, vi |
xem nội dung file |
cp | copy file, folder |
mv | di chuyển, đổi tên file, folder |
rm | xóa file |
2. Các lệnh thao tác file trên Linux
Dưới đây là các lệnh thao tác file, bắt đầu là lệnh hiện file:
$ls
Lệnh này hiện danh sách các file và mục ra màn hình.
Như hình trên thì folder hiện màu xanh dương in đậm, file thì hiện màu vàng. Muốn hiện đầy đủ thông tin về file, folder hơn thì thêm tham số -l
.
Nó hiện ra tên người sở hữu, ngày sửa đổi gần nhất, kích thước file … Tổng cộng 7 cột thông tin được mô tả bên dưới.
$ls -l
Giải thích kết quả hiển thị
- ~ Cột 1: Mô tả kiểu file (là folder, files hay link …), quyền truy cập file. Kiểu file thì mình mô tả chi tiết ở bảng bên dưới.
- ~ Cột 2: Số lượng khối nhớ file chiếm dụng. Nếu là thư mục thì hiện số mục con của nó.
- ~ Cột 3: Người sở hữu : Tên người sở hữu
- ~ Cột 4: Nhóm sở hữu : Nhóm sở hữu file, folder. Một nhóm có thể có nhiều user.
- ~ Cột 5: Kích thước file theo bytes.
- ~ Cột 6: Thời gian file bị sửa đổi.
- ~ Cột 7: Tên file, thư mục.
Kiểu file (ký tự đầu tiên trong cột 1)
Ký hiệu | Ý nghĩa |
- | File thông thường như file text (chữ) hay file binary (máy có thể chạy được), hard-link : link cứng (tương đương file gốc) nghĩa là khi file gốc thay đổi thì link cũng thay đổi theo. |
b | Block special file. Block input/output device file such as a physical hard drive. |
c | Character special file. Raw input/output device file such as a physical hard drive |
d | Thư mục, chứa các file hoặc thư mục con khác. |
l | link tới file hoặc thư mục. |
p | ống dẫn - một cơ chế truyền thông liên tiến trình (các bạn chưa care cái này vội) |
s | socket để kết nối liên tiến trình (các bạn chưa care cái này vội) |
Các ký tự meta
Các ký tự như ?
, *
gọi là ký tự meta.
*
đại diện cho một chuỗi ký tự dài tùy ý. Ví dụ như*.doc
thì là tất cả các file có đuôi là.doc
;?
có ý nghĩa tương tự nhưng chỉ đại diện cho 1 ký tự. Ví dụ như tìm các file.php
dài 2 ký tự thì cú pháp là??.php
.
Khi kết hợp lệnh ls
với các ký tự meta sẽ cho ra những kết quả chính xác hơn.
$ls -l *.mp4 // list ra các file đuôi .mp4 FreeTut_Alias_1.mp4 FreeTut_Alias_2.mp4
Tìm các file .blade
có 3 ký tự trong mục có các file như sau:
app.blade.php home.blade.php welcome.blade.php $ls ???.blade.* // file .blade dài 3 ký tự app.blade.php
File ẩn ls -a
Các file ẩn thường là file config cấu hình hệ thống như: .bashrc
, .bash_profile
là file cấu hình cho user.
Ví dụ mục home (~) có một số file ẩn sau:
$ ls -a ~ .goutputstream-TNR9YX .viminfo .goutputstream-ZY71ZX .viminfo.tmp .gphoto .viminft.tmp .gradle .viminfv.tmp .gstreamer-0.10 .viminfw.tmp .gtk-bookmarks .viminfx.tmp .gtkrc-2.0 .viminfy.tmp .gvfs .viminfz.tmp .history_Symfony .vimrc .ICEauthority x264 .icedtea .Xauthority iMacros .xchm
Tạo file mới touch và vim
Nhập lệnh:
$ vi ten_file
Lệnh trên sẽ mở trình xoạn thảo vim lên. Bạn nhấp phím i
để vào chế độ Insert. Sau khi gõ xong thì nhấn phím Esc
. Lưu lại thì gõ :w
rồi enter. Thoát bằng cách gõ :wp
→ enter, hoặc nhấn Shift + ZZ.
Lệnh touch cũng tạo được file. Nếu muốn tạo nhiều file cùng lúc thì cứ để dấu cách ra.
$touch tên_file1 tên_file2 …
Sửa file
$vim file_a
vi là trình soạn thảo nên nó vừa hiển thị nội dung vừa sửa được file.
Xem nội dung file
Ngoài vim
ra thì lệnh cat
hay dùng để xem nội dung file.
$cat ten_file
$cat ~/.vimrc if v:lang =~ "utf8$" || v:lang =~ "UTF-8$" set fileencodings=ucs-bom,utf-8,latin1 endif set nocompatible " Use Vim defaults (much better!) set bs=indent,eol,start " allow backspacing over everything in insert mode "set ai " always set autoindenting on ...
Muốn xem một phần nội dung thì dùng head hoặc tail:
$head -n 10 ~/.vimrc // xem 10 dòng đầu file if v:lang =~ "utf8$" || v:lang =~ "UTF-8$" set fileencodings=ucs-bom,utf-8,latin1 endif set nocompatible " Use Vim defaults (much better!) set bs=indent,eol,start " allow backspacing over everything in insert mode "set ai " always set autoindenting on "set backup " keep a backup file set viminfo='20,\"50 " read/write a .viminfo file, don't store more " than 50 lines of registers $tail -n 10 ~/.vimrc // xem 10 dòng cuối if &term=="xterm" set t_Co=8 set t_Sb=^[[4%dm set t_Sf=^[[3%dm endif " Don't wake up system with blinking cursor: " http://www.linuxpowertop.org/known.php let &guicursor = &guicursor . ",a:blinkon0"
Copy file cp
cp file_a file_b // Copy file a → 2 file a, b
Di chuyện mv
Các bạn dùng lệnh mv
(move)
mv file_1 file_2 // Đổi file_1 thành file_2 mv file_1 file_2 file_3 folder_one // di chuyển 3 file vào thư mục folder_one
Xóa file rm
rm file_1 // Xóa file 1 rm test* // Xóa hết file bắt đầu = test rm -rf folder_one // Xóa thư mục folder_one.
Trên đây là các lệnh cơ bản rất hay dùng khi làm việc trên linux. Lệnh rm
(xóa) cần phải cẩn thận vì trên linux một khi đã xóa file thì rất khó lấy lại được. Một số tình huống đặc biệt như khi số lượng các file quá nhiều (hàng triệu file), kích thước quá lớn (vài chục GB) thì các lệnh trên sẽ không hoạt động hoặc không chạy như ý muốn. Những tình huống như vậy rất hiếm nhưng khá hay, mình sẽ trình bày trong một bài khác.