



















Preview text:
Mục lục
Phần 6 : Biểu thức chính quy....................................................................................2
6.1 Giới thiệu.........................................................................................................2
6.2 Các siêu ký tự điều khiển................................................................................2
6.3 Grep.................................................................................................................3
6.4 Sed...................................................................................................................3
6.5 Awk.................................................................................................................4
Phần 7: Shell Scripting..............................................................................................4
7.1 Giới thiệu.........................................................................................................4
7.2 Shell Script cơ bản...........................................................................................4
7.3 Biến, bài chuyển, tham số................................................................................5
7.4 Đầu vào đầu ra.................................................................................................6
7.5 Thao tác...........................................................................................................6
7.6 Vòng lặp:.........................................................................................................7
7.7 Mảng:...............................................................................................................7
7.8 Điều chỉnh chuỗi..............................................................................................8
7.9 Hàm.................................................................................................................8
7.10 C-Shell Scripting...........................................................................................9
Phần 8: Tải Linux......................................................................................................9
8.1 Giới thiệu.........................................................................................................9
8.2 Hệ điều hành Linux.........................................................................................9
8.3 Cài đặt hệ điều hành Linux............................................................................10
8.3.1 Cài đặt hệ điều hành Linux trên máy ảo.................................................10
8.3.2 Cài đặt song song hệ điều hành Linux với hệ điều hành hiện tại...........21
Phần 6 : Biểu thức chính quy 6.1 Giới thiệu
Biểu thức chính quy (regular expression, viết tắt là regexp, regex hay regxp) là một
chuỗi miêu tả một bộ các chuỗi khác, theo những quy tắc cú pháp nhất định. Biểu
thức chính quy thường được dùng trong các trình biên tập văn bản và các tiện ích
tìm kiếm và xử lý văn bản dựa trên các mẫu được quy định.
Có 3 phiên bản regex trong LINUX :
BRE (Basic Regular Expressions)
ERE (Extended Regular Expressions)
PRCE (Perl Regular Expressions).
6.2 Các siêu ký tự điều khiển ˆ đánh dấu đầu dòng $ đánh dấu cuối dòng
. Biểu diễn ký tự bất kỳ
[] Biểu diễn một ký tự bất kỳ trong cặp dấu []
[ˆ] Biểu diễn phép phủ định của nội dung trong []
[−] Biểu diễn một ký tự bất kỳ bên trong vùng được chỉ rõ bởi []
() Biểu diễn các ký tự trong () như một nhóm ký tự
? Phép lặp: Ký tự/nhóm ký tự đi trước có thể xuất hiện hoặc không
+ Phép lặp: Ký tự/nhóm ký tự đi trước xuất hiện ≥ 1 lần
∗ Phép lặp: Ký tự/nhóm ký tự đi trước xuất hiện ≥ 0 lần
{n} Phép lặp: Ký tự/nhóm ký tự đi trước xuất hiện đúng n lần
{n, } Phép lặp: Ký tự/nhóm ký tự đi trước xuất hiện ≥ n lần
{n, m} Phép lặp: Ký tự/nhóm ký tự đi trước có thể xuất hiện từ n đến m lần | Phép hoặc Ví dụ :
[ˆ09] ≡ Tập các ký tự khác 0 và 9
– 0|([1 − 9][0 − 9]*) ≡ Biểu diễn tập các số tự nhiên
– ˆthis Biểu diễn các dòng bắt đầu bằng this 6.3 Grep
grep (global regular expression print) là công cụ để tìm và in ra
những dòng chứa chuỗi khớp với biểu thức chính quy.
Cú pháp : grep [options] regex [file] Trong đó :
regex : là biểu thức chính quy biểu diễn mẫu tìm kiếm. [options]:
∗ -i: Tìm kiếm không phân biệt hoa thường
∗ -v: Tìm các kết quả không chứa các xâu biểu diễn bởi ‘regex’
∗ -w: Đưa ra các dòng có chứa xâu biểu diễn bởi ‘regex’ là một từ
(tìm kiếm chính xác từ đó)
∗ -c: Đếm số dòng chứa xâu ‘regex’
∗ -e: Đếm số lần xuất hiện của xâu ‘regex’ trong tệp tin 6.4 Sed
Lệnh thay thế chuỗi kí tự, lọc văn bản Cú pháp chính:
sed ’s/pattern/replace_string/’ file
pattern: Một chuỗi hoặc một biểu thức chính quy
/g: thêm tham số g vào sau sẽ thay thế các xuất hiện của
mẫu cho tới cuối văn bản
/Ng: Thay thế từ xuất hiện thứ N tới cuối văn bản
/N: chỉ thay thế xuất hiện thứ N
Ví dụ : thay day thành night trong tệp word1.txt thành
trong tệp word2.txt ta làm như sau
$sed ’s/day/night/’ word1.txt > word2.txt 6.5 Awk
Nhìn chung awk là một ứng dụng mạnh mẽ hơn, công cụ hiệu quả hơn grep hay
sed. Awk cung cấp cho người sử dụng nhiều tính năng tương tự như một chương trình ngôn ngữ.
Cấu trúc lệnh awk đơn giản :
awk ‘/pattern/{print ...}’ filename
pattern là một chuỗi, biểu thức chính quy hoặc một điều kiện.
Cấu trúc lệnh awk phức tạp hơn : awk ‘/pattern 1/{action 1} ....
/pattern n/{action n}’ filename
Cấu trúc của lệnh awk chứa khối BEGIN và END :
awk ‘BEGIN{commands}/pattern/{action} END{commands}’ filename Phần 7: Shell Scripting 7.1 Giới thiệu
- Shell là chương trình giao tiếp với người dùng. Có nghĩa là shell chấp nhận các
lệnh từ bạn (keyboard) và thực thi nó. Nhưng nếu bạn muốn sử dụng nhiều lệnh chỉ
bằng một lệnh, thì bạn có thể lưu chuỗi lệnh vào text file và bảo shell thực thi text
file này thay vì nhập vào các lệnh. Điều này gọi là shell script.
- Trong chương này, chúng tôi giới thiệu shell script như một công cụ lập trình.
Chúng ta sẽ xem xét hầu hết các cấu trúc có sẵn trong shell Bash. 7.2 Shell Script cơ bản - Cấu trúc: + dòng đầu tiên: #!/ + Các lệnh shell - Thực thi: o Bash đường_dẫn_tệp o Sh đường_dẫn_tệp o ./tên_tệp -
Các lỗi chỉ được phát hiện trong thời gian chạy. Tức là bạn sẽ chỉ biết nếu có lỗi tồn tại khi
bạn cố chạy tập lệnh.
7.3 Biến, bài chuyển, tham số
- Có hai loại biến: biến môi trường, vì chúng đã được xuất nên có thể truy
cập được từ bên trong tập lệnh của bạn hoặc từ dòng lệnh và các biến được xác
định trong tập lệnh của bạn chỉ có sẵn trong tập lệnh.
- Để gán một giá trị cho một biến, chúng ta sử dụng câu lệnh gán. Hình thức
cơ bản của câu lệnh gán là BIẾN = GIÁ TRỊ
Giá trị ở phía bên phải có thể là một trong bốn giá trị sau:
• Một giá trị theo nghĩa đen như Xin chào, “Xin chào” hoặc 5
• Giá trị được lưu trữ trong một biến khác, trong trường hợp đó,
tên biến ở phía bên phải của câu lệnh gán được đặt trước ký
hiệu đô la như trong $FIRST_NAME hoặc $X
• Kết quả của phép tính số học hoặc chuỗi
• Kết quả trả về từ lệnh Linux
Khi gọi lại biến cần $ ở trước
Phép tính trong gán cần ở trong $(( )) VD n=$((n=1+n))
Khi nhập tham số từ ngoài vd ./a_script 32 1 25 biến tính theo số thứ tự từ 1 đến n, $1 =32,$2 = 1… 7.4 Đầu vào đầu ra
-echo dùng để in ra VD echo Hello $NAME, how are you? - nhập vào với read 7.5 Thao tác
- so sánh giữa 2 chuỗi == hoặc !=(không bằng)
- so sánh 2 số -eq, -ne, -lt, -gt, -le, -ge(equal to, not equal to, less than,
greater than, less than or equal to, greater than or equal to respectively) - làm việc với file:
+ > để gán toàn bộ vào file ./script1 > output.txt + >> bổ sung - Hàm if: If condition Then Commands Elif condition Then Commands Else Commands Fi - Hàm case case $variable in pattern1) commands ;; pattern2) commands ;; ... patternN) commands ;; *) commands ;; Esac 7.6 Vòng lặp: o For
for ((initialization; condition; increment)); do loop body done o While while [ condition ]; do action(s); done o until until [ condition ]; do action(s); done 7.7 Mảng:
Khai báo và khởi tạo mảng
Mảng có n số phần tử số thứ tự của mảng sẽ bắt đầu từ 0 đến n-1 o
declare –a ARRAY=(apple banana cherry date) ARRAY[0]=apple ARRAY[1]=banana ARRAY[2]=cherry ARRAY[3]=date
Truy cập các phần tử mảng và toàn bộ mảng
${ARRAY[i]}- trả về phần tử thứ i
${ARRAY[@]}- liệt kê toàn bộ mảng
${ARRAY[*]}- liệt kê toàn bộ mảng
"${array[@]}"- trả về các phẩn tử mảng trong ngoặc kép
"${array[*]}"- trả về toàn bộ mảng trong ngoặc kép
${#array[@]}- trả về số phần tử mảng
${#array[*]}- trả về số phần tử mảng 7.8 Điều chỉnh chuỗi
Công thức: ${string:start:length} VD: name = “Frank Zappa”
${name:6:15} trả về “Zappa.”
${name:3} trả về “nk Zappa.”
In ra chuỗi với điều kiện nhất định theo quy tắc biểu thức chính quy
VD: echo ‘expr match "abcdefg" '\([a-dg]*\)'‘ abcd
echo ‘expr match "abcdefg123" '.*\([0-9][0-9][0-9]\)'‘ 123 Đếm chuỗi:
VD: echo ‘expr match "abcdef" '[a-z]*'‘ 6 7.9 Hàm
Lập trình hàm là tổ chức các nhóm lệnh thành các khối với chức năng cụ thể someFunction() { ... } function someFunction { ... } - Thực thi: o ./functions.sh o Source functions.sh 7.10 C-Shell Scripting
Ngôn ngữ C-shell (csh), như tên gọi của nó có thể ám chỉ, dựa trên cú pháp của
ngôn ngữ kịch bản lệnh dựa trên ngôn ngữ lập trình C.
Nếu bạn đã học tập lệnh Bash, việc chuyển đổi sang tập lệnh csh sẽ dễ dàng. Phần 8: Tải Linux 8.1 Giới thiệu
Do máy tính cá nhân của sinh viên hầu hết là đang sử dụng hệ điều hành Window
và máy tính nhà trường không thể đáp ứng được hết nhu cầu học tập và tìm hiểu
của sinh viên. Do đó việc cài đặt hệ điều hành Linux trên máy tính cá nhân là điều tất yếu
Có những cách cài đặt hệ điều hành Linux sau:
+Bạn mua một máy tính mới và không có hệ điều hành nào được cài đặt sẵn trên
máy. Sau đó bạn hãy cài đặt hệ điều hành Linux
+Bạn cài đặt và sử dụng 2 hệ điều hành song song giữa Linux và một hệ điều hành khác trên cùng một máy
+Bạn xoá hệ điều hành hiện tại và tải hệ điều hành Linux về máy
+Bạn cài đặt hệ điều hành Linux trên một máy ảo đã được cài đặt sẵn trong máy 8.2 Hệ điều hành Linux
Linux là một họ các hệ điều hành tự do nguồn mở tương tự Unix và dựa trên Linux
kernel1. Linux kernel là một hạt nhân hệ điều hành được phát hành lần đầu tiên
vào ngày 17 tháng 9 năm 1991, bởi Linus Torvalds1. Linux ban đầu được phát
triển cho các máy tính cá nhân dựa trên kiến trúc Intel x86, nhưng sau đó đã được
ported sang nhiều nền tảng hơn bất kỳ hệ điều hành nào khác1. Linux thường được
đóng gói thành các bản phân phối Linux. Nó có lẽ là một ví dụ nổi tiếng nhất của
phần mềm tự do và của việc phát triển mã nguồn mở. Các bản phân phối Linux
phổ biến bao gồm Debian, Fedora, và Ubuntu.
8.3 Cài đặt hệ điều hành Linux
8.3.1 Cài đặt hệ điều hành Linux trên máy ảo
A. Cài đặt máy ảo về máy tính
Có thể cài đặt máy ảo Virtual Box hoặc VMware Client về máy để sử dụng hệ điều hành Linux.
Link tải: Download VMware Workstation Pro
Oracle VM VirtualBox - Downloads | Oracle Technology Network | Oracle
Bạn chọn phiên bản và tải về cài đặt. Đến khi cần key bản quyền thì lên mạng tìm
từ khoá “key vmware/virtual box” thì sẽ được hướng dẫn lấy key miễn phí. Nếu
bạn giàu bạn có thể mua bản quyền.
B. Cài đặt Linux trên máy ảo
Link tải hệ điều hành Linux: Download Linux Mint 21.2 - Linux Mint
B1:Tạo máy ảo trên VMware
Trước tiên hãy mở máy ảo VMWare của bạn lên, sau đó chọn File-> New- > VirtualMachine
Hộp thoại NewVirtualMachineWizard sẽ xuất hiện, tại đây bạn hãy
chọn Typical(recommended) và click Next.
Bây giờ hãy chọn will installtheoperatingsystemlater và click Next
Bước tiếp theo bạn cần chọn hệ điều hành cho máy ảo. Như trong bài này thì
chúng ta sẽ cài đặt máy ảo Linux nên bạn hãy chọn Linux, sau đó chọn
version Linux64bit và click Nextnhé.
Bây giờ hãy đặt một cái tên cho máy ảo của bạn. Như trong hình thì mình đặt là
Ubuntu-VMWare-Demo. Sau đó chọn nơi sẽ lưu trữ máy ảo. Bạn nên chọn vào ổ
đĩa bình thường nhé, tránh ổ đĩa chứa hệ điều hành Windows, vì lỡ sau này cài lại
Windows sẽ bị mất luôn cả máy ảo. Xong click Next.
Bước tiếp theo là chọn dung lượng trên ổ đĩa cho máy ảo. Bạn chọn khoảng 20GB,
còn trong phần options phía dưới thì chọn dòng "Store virtual disk as a single file"
để tăng hiệu suất nhé. Sau đó click Next.
B2: Cài đặt Linux mint trên VMware
Sau khi tạo xong máy ảo thì nhìn vào phần danh sách bạn sẽ thấy tên của máy ảo
mà ta đã tạo, hãy click vào đó để mở nhé.
Bây giờ ta cần cấu hình một chút để máy ảo có thể nhận biết được file ISO đang nằm ở đâu.
Hãy vào menu VM-> Settings.
Vào tab CD/DVD và chọn UseISOimagefile.
Xong ta sẽ có giao diện như sau:
Bây giờ hãy qua tab Memory, mình cần cấu hình chọn dung lượng RAM cho máy ảo.
Giá trị mặc định của RAM là 2GB, nếu máy của bạn mạnh hơn thì có thể chọn
thành 4GB, còn không thì để nguyên 2GB cũng được.
Thao tác xong nhấn vào OK để lưu lại nhé.
Tạo tab Processors settings, bạn có thể chọn số lượng processors cho máy ảo. Giá
trị mặc định của nó là 1, bạn có thể tăng lên nếu muốn.
Nếu bạn muốn bật chức năng cho phép tạo máy ảo bên trong máy ảo nữa thì chọn
vào mục "Virtualize Intel VT-x/EPT or AMD-v/RVI".
Nếu bạn muốn sử dụng phần mềm điều chỉnh hiệu suất trong máy ảo, hãy chọn
mục "CPU performance counters".