/*auto readmore*/ /*auto readmore*/ /* an hien script*/ // an hien password /*an hien ma chuong trinh cong tru */ /*Scrollbox thanh cuon*/ /***Nhung CODE***/ /* dòng xanh dòng trắng */ /* https://cdnjs.com/libraries/prism lay thu vien, can vao ten file ma goi 1. copy link vao vi du:prism-python.min.js 2. ten ngon nua la python */ /*=== New posts ===*/ /*header slider*/ /*=== bai viet lien quan===*/ /*===tabcode===*/

Hard Links & Symbolic Links In Linux/Ubuntu/CentOS

Khi một file hoặc folder được tạo ra trong Linux nó sẽ tạo ra 1 số cho file hoặc folder đó. Số đó gọi là INODE và đây là dãy số duy nhất trên hệ thống của Linux nhằm mục đích quản lý. 

Ví dụ:

khanhvc@ubutu:~/projects$ ll -i

total 12

2621505 drwxrwxr-x  3 khanhvc khanhvc 4096 Thg 9  23 14:05 ./

2621442 drwxr-xr-x 27 khanhvc khanhvc 4096 Thg 9  23 14:05 ../

2621869 -rw-rw-r--  1 khanhvc khanhvc    0 Thg 9  23 14:05 file_name.txt

2755955 drwxrwxr-x  2 khanhvc khanhvc 4096 Thg 9  23 14:05 folder_name/

khanhvc@ubutu:~/projects$


1. Hard Links

Ví dụ: tạo hard links có tên hardlink.txt trỏ về file_name.txt
khanhvc@ubutu:~/projects$ ln file_name.txt hardlink.txt
khanhvc@ubutu:~/projects$ ll -i
total 12
2621505 drwxrwxr-x  3 khanhvc khanhvc 4096 Thg 9  23 14:17 ./
2621442 drwxr-xr-x 27 khanhvc khanhvc 4096 Thg 9  23 14:05 ../
2621869 -rw-rw-r--  2 khanhvc khanhvc    0 Thg 9  23 14:05 file_name.txt
2755955 drwxrwxr-x  2 khanhvc khanhvc 4096 Thg 9  23 14:05 folder_name/
2621869 -rw-rw-r--  2 khanhvc khanhvc    0 Thg 9  23 14:05 hardlink.txt
khanhvc@ubutu:~/projects$

Chúng ta thấy file hardlink.txt và file_name.txt có inode giống nhau, có nghĩa hard link sẽ tạo link trỏ về link gốc của tập tin, hay nói cách khác hardlink.txt và file_name.txt có cùng chung một dữ liệu.

Nếu chúng ta thêm dữ liệu vào file hardlink.txt, cũng đồng nghĩa dữ liệu đó được thêm vào file_name.txt
khanhvc@ubutu:~/projects$ echo "thêm nội dung vào hardlink.txt" >> hardlink.txt
khanhvc@ubutu:~/projects$ cat file_name.txt
thêm nội dung vào hardlink.txt
 
khanhvc@ubutu:~/projects$ cat hardlink.txt
thêm nội dung vào hardlink.txt
khanhvc@ubutu:~/projects$

Nội dung 2 file hoàn toàn giống nhau. Nếu chung ta xóa 1 trong 2 file này vẫn không ảnh gì đến dữ liệu của file còn lại

khanhvc@ubutu:~/projects$ rm file_name.txt
khanhvc@ubutu:~/projects$ ls -i
2755955 folder_name  2621869 hardlink.txt
khanhvc@ubutu:~/projects$


Thực hiện xóa file file_name.txt, kiểm tra nội dung file hardlink.txt

 

khanhvc@ubutu:~/projects$ cat hardlink.txt
thêm nội dung vào hardlink.txt
khanhvc@ubutu:~/projects$


2. Symbolic Links: Tạo ra 1 link để trỏ đến file hoặc thưc mục gọi target. Nó không chứa bản sao copy của target mà nó chỉ link đến file hay thư mục, nó tương tự như shortcut trong windows. Vì là shortcut nên khi symbolic links bị xóa sẽ không ảnh hưởng đến nội của file hay thư mục, ngược lại nếu target bị xóa hay đổi tên symblic link sẽ không cập nhật, không hoạt động như link

Ví dụ:
Tạo symbolic link có tên softlink.txt trỏ về file_name.txt, và softlink_folder.txt trỏ về folder_name
khanhvc@ubutu:~/projects$ ln -s file_name.txt softlink.txt
khanhvc@ubutu:~/projects$ ln -s folder_name softlink_folder.txt
khanhvc@ubutu:~/projects$ 

 

khanhvc@ubutu:~/projects$ ls -i
2621869 file_name.txt  2625309 softlink_folder.txt
2755955 folder_name    2621566 softlink.txt
khanhvc@ubutu:~/projects$ 

Các số/inode của symbolic link và target là khác nhau

khanhvc@ubutu:~/projects$ ll -i
total 16
2621505 drwxrwxr-x  3 khanhvc khanhvc 4096 Thg 9  23 14:42 ./
2621442 drwxr-xr-x 27 khanhvc khanhvc 4096 Thg 9  23 14:05 ../
2621869 -rw-rw-r--  1 khanhvc khanhvc   35 Thg 9  23 14:24 file_name.txt
2755955 drwxrwxr-x  2 khanhvc khanhvc 4096 Thg 9  23 14:05 folder_name/
2625309 lrwxrwxrwx  1 khanhvc khanhvc   11 Thg 9  23 14:42 softlink_folder.txt -> folder_name/
2621566 lrwxrwxrwx  1 khanhvc khanhvc   13 Thg 9  23 14:42 softlink.txt -> file_name.txt
khanhvc@ubutu:~/projects$

Thuộc tính của symbolic link là  l

Xong!

Basic File Editing - Vim In Linux/Ubuntu/CentOS

Nội dung

1. Cài đặt Vim
2. Vim modes
3. Saving Changes
4. Moving File
5. Cut, Copy & Paste
6. Searching
7. Replace
8. Specials
9. Others

Commands

1. Cài đặt Vim

Ubuntu:

sudo apt install wim


CentOS:

sudo yum install vim


2. Vim modes

  • Command Mode
  • Insert Mode
  • Visual Mode


 

3. Saving Changes

Commands Diễn Giải
:e ten_file.txt Mở file có tên ten_file.txt từ editor
:sav filename.txt Lưu và đặt tên cho file là filename.txt
:x Lưu và thoát khởi vim
:wq Lưu và thoát khởi vim
:wq! Lưu và thoát khởi vim, ghi đè
:w Lưu, nhưng không thoát khỏi vim
:w! Lưu và thoát khởi vim, ghi đè
:q Thoát vim và không lưu
:q! Thoát vim và không lưu (overrides protection)
ZZ Lưu và thoát khởi vim
. Lặp lại thao tác gần nhất ở Normal Mode
10. Lặp lại 10 lần thao tác gần nhất ở Normal Mode


4. Moving File

Commands Diễn Giải
h hoặc mũi tên trái Duy chuyển sang trái 1 ký tự
l hoặc mũi tên phải Duy chuyển sang phải 1 ký tự
j hoặc mũi tên xuống Duy chuyển con trỏ xuống dưới 1 dòng
k hoặc mũi tên lên Duy chuyển con trỏ lên trên 1 dòng
e Duy chuyển con trỏ đến cuối từ
b Duy chuyển con trỏ đến đầu từ
w Duy chuyển con trỏ đến từ đầu tiên của chữ kế tiếp
gg Duy chuyển con trỏ về đầu file
G Duy chuyển con trỏ về cuối file
5G hoặc :5 Duy chuyển con trỏ đến dòng thứ 5
CTR + Y Cuộn lên 1 dòng
CTR + E Cuộn xuống 1 dòng
CTR + U Cuộn lên nữa màn hình
CTR + D Cuộn xuống nữa màn hình
CTR + B Cuộn lên 1 màn hình
CTR + F Cuộn xuống 1 màn hình


5. Cut, Copy & Paste

Commands Diễn Giải
y Copy phần text đã chọn vào clipboard
p Paste
dd Cut dòng hiện tại
yw Copy word
yy Copy dòng hiện tại
y$ Copy đến cuối dòng
D Copy tới cuối file


6. Searching

Commands Diễn Giải
/vidu Tìm kiếm "vidu" từ trên xuống dưới
?vidu Tìm kiếm "vidu" từ trên dưới lênh
/\cvidu Tìm "vidu" cả chữ hoa lẫn chữ thường (từ trên xuống)
/jo[ha]n Tìm "john" và "joan"
/^the Tìm từ bắt đầu bằng the (từ trên xuống) ví dụ: theatre or then
/the$ Tìm từ kết thúc bằng the ví dụ: breathe



7. Replace

Commands Diễn Giải
:%s/hoc/HocHanh/g nếu tìm thấy chữ "hoc" thì thay thế bằng "HocHanh" trong tất cả các dòng.
:%s/hoc/HocHanh/gc nếu tìm thấy chữ "hoc" thì thay thế bằng "HocHanh" trong tất cả các dòng, nhưng confirm trước khi replace.
:s/hoc/HocHanh/g nếu tìm thấy chữ "hoc" thì thay thế bằng "HocHanh" ở dòng hiện tại.
:4,10s/123/Mot Hai Ba/gc tìm từ dòng 4 -> 10 nếu có nội dung "123" thì thay bằng "Mot Hai Ba", confirm trước khi thay thế.
:5,$s/hoc/hocLinux/g Replace toàn bộ chữ "hoc" thành "hocLinux" từ dòng 5 đến cuối file
:%s/^/hello/g Thêm vào đầu của mỗi dòng chữ "hello"
:%s/$/Seeyouagain/g Thêm vào cuối của mỗi dòng chữ "Seeyouagain"


8. Specials

Commands Diễn Giải
:!ip a hiển thị kết quả của dòng lệnh ip a, nhưng không thoát editor
:r!ip a đưa kết quả của lệnh ip a vào editor
:r file.txt lấy nội dung của file đưa vào editor


9. Others

Commands Diễn Giải
:set number đánh số dòng cho file đang mở
:start,end dòng bắt đầu, dòng kết thức


Xong!

Regular Expression In Linux/Ubuntu/CentOS

Nội dung:

  • Tạo Regular Expression (RegEx) đơn giản
  • Sự khác nhau giữa RegEx căn bản và RegEx extended (Egrep)


Commands

1. Grep - Global RegEx: In ra dòng nếu tìm thấy mẫu (patterns)

Cú Pháp Ví Dụ Giải Thích
grep "chuoi can tim" ten_file grep "vi du" file.txt Tìm chuỗi "vi du" trong file.txt, nếu có trả về dòng có chứa nội dung chữ "vi du"
grep "chuoi" file_pattern grep "vi du" fil*.txt Tìm chuỗi "vi du" trong các file bắt đầu bằng fil*.txt, nếu có trả về dòng có chứa nội dung chữ "vi du"
grep -i "vi du" file.txt -i: không phân biệt chữa hoa chữ thường
grep -l -r -w "vi du" * đưa ra danh sách các file nếu tìm thấy chuỗi "vi du" file đó.(w: word-regex; r: đệ quy; l: tên file nếu tìm thấy)
grep -w "no" file_name.txt - Tìm kiếm chính xác, chỉ trả về kết của các dòng có chứa chữ "no".
- Nếu chuỗi có chữ "not" hoặc "nothing" thì với cách tìm kiếm này "not", "nothing" kết quả sẽ KHÔNG trả về ouput
grep -n -w "Error" file.txt hiển thị số thứ tự của dòng đó nếu tìm thấy chuỗi
grep [0-9] file.txt trả về kết quả dòng đó nếu dòng đó có chứa sổ [0-9]

2. Egrep - Extended grep:

Với grep dùng tham số -E, tuy nhiên để cải tiến về tốc độ cũng như giảm không ban bộ nhớ chúng ta dùng egrep.

grep -E "[a-z]+" file.txt

tương đương
egrep "[a-z]+" file.txt


Xong!

Using Streams, Pipes & Redirects - STDOUT/STDIN/STDERR In Linux/Ubuntu/CentOS

Nội dung:

  • Redirecting standard input/output/error
  • Pipe: dữ liệu output của command này trở thành dữ liệu input của command khác
  • Sử dung output của command như là argument của command khác
  • Đẩy output của command đến stdout và log file


Command 

Lệnh Giải Thích Ví Dụ
> Đưa STDOUT ghi vào file, nếu file đã có thì ghi đè, file chưa tồn tại thì tạo file
>> chèn vào cuối file
2> STDERR nếu có lỗi sẽ ghi vào file, ghi đề lên file cũ
2>> STDERR lỗi chèn vào cuối file
< STDIN đưa dữ liệu vào từ 1 file
<> STDIN dữ liệu vào của 1 file sẽ redirect sang STDOUT vào file
tr tạm hiểu là tìm và thay thế.
Nếu trong chuỗi "Hoc linux go miet" có khoảng trắng thì thay thế bằng dấu "_" echo "Hoc linux go miet" | tr " " "_"
Nếu nội dung trong file.txt có khoảng trắng thì thay dấu "_" tr " " "_" < file.txt
tee cho phép ghi output ra file và ghi output ra terminal
ghi chuỗi "example" vào file có tên là file.txt echo "example" | tee file.txt
chèn thêm chuỗi "example-1" vào file.txt (không ghi đè) echo "example-1" | tee -a file.txt

Xong!

Basic File Management In Linux / Quản Lý File Căn Bản Trong Linux

 Nội dung:

  • Copy, duy chuyển và xóa file và thư mục
  • Copy nhiều file, nhiều thư mục với đệ qui (recursively)
  • Xóa file, thư mục đệ qui
  • Tìm kiếm


Command

Lệnh Giải Thích Ví Dụ
mkdir tạo thư mục mới mkdir vidu
rmdir xóa thư mục rmdir vidu
touch tạo file mới rỗng touch vidu.txt
rm xóa file đã có rm vidu.txt

xóa thư mục vidu và tất cả các file thư mục này rm -r vidu/

xóa thư mục vidu và tất cả các file thư mục này mà không cần hỏi. f: force rm -rf vidu/
cp copy file hoặc thư mục. Cấu trúc: cp file_nguon file_dich
mv duy chuyển file hay thư mục. cấu trúc mv nguon dich
tar
Tape Archive (tarball) - là chương trình cho phép lưu trữ nhiều file dưới dạng một file (đóng gói)

Tạo file vidu.tar với dữ liệu được lấy từ thư mục vidu. c: tạo file; v: hiển thị dánh sách các file trong tiến trình; f: tên file tar -cvf vidu.tar vidu/

Giải nén file.tar, các file sau khi giải nén sẽ được đưa vào thư mục vidu. x: giải nén file tar -xvf vidu.tar vidu/
gzip
tar.gz hoặc tgz: Nén và giải nén tốc độ nhưng nén (compressed) không cao
bz2
tab.bz2 hoặc tbz hoặc tb2: nén và giải nén tốn nhiều thời gian hơn gzip, do thuật toán giải nén có độ nén cao hơn
find
tìm kiếm. ví dụ tìm kiếm tất cả các file .txt và ký tự bắt đầu là fi find -name fi*.txt

Xong!

History Commands In Linux/Ubuntu/CentOS - Lệnh History Trên Linux

Ví Dụ Giải Thích
history hiển thị các câu lệnh user đã thực hiện trước đó
history 3 hiển thị 3 câu lệnh gần nhất
!! Thực hiện lại câu lệnh gần nhất
!101 thực hiện lại câu lệnh có số thứ tự là 101
!systemctl thực hiện lại câu lệnh cuối cùng bắt đầu bằng chuỗi "systemctl"
history | grep date hiển thị các câu lệnh đã thực thi có chuỗi "date"
history -w ghi lịch sử vào file users ~/.bash_history
history -c xóa lịch sử các câu lệnh đã thực hiện
history -d 101 xóa lịch sử câu lệnh có số thứ tự 101
echo "test"; history -d $(history 1) thực hiện in ra mà hình chữ test và không ghi câu lệnh này vào history
echo $HISTSIZE hiển thị kích thước lưu trử hiện tại
HISTSIZE=1500 Tăng khả năng lưu trữ lên là 1500 câu lệnh

Xong!
/*header slide*/