03/08/2018, 10:19

Quản lý file trên Linux

Bài này chúng ta sẽ tìm hiểu về cách 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 ...

Bài này chúng ta sẽ tìm hiểu về cách 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.

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 ...

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:

Một số lệnh thao tác với file trên Linux

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

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, 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
Ví dụ
$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.

3. Tổng kết

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.  

Tài liệu:

Các bạn có thể chạy thử các lệnh trên máy android qua một số phần mềm như dưới đây. Có thể bạn phải root máy trước thì mới có đầy đủ tính năng các lệnh và quyền để chạy chúng.

https://play.google.com/store/apps/details?id=org.pocketworkstation.pckeyboard&hl=en

http://​https://play.google.com/store/apps/details?id=com.jrummy.busybox.installer

https://play.google.com/store/apps/details?id=web.oss.sshsftpDaemon https://play.google.com/store/apps/details?id=org.connectbot

https://play.google.com/store/apps/details?id=jackpal.androidterm

BÀI KẾ SAU
BÀI KẾ TIẾP

Nguồn: code24h.com

0