Việc sử dụng hầu hết các trình chỉnh sửa vi là để tạo tệp mới, chỉnh sửa tệp hiện có hoặc chỉ đọc tệp.. Lệnh này được sử dụng nhiều hơn trong việc soạn thảo chương trình.. • Chúng ta có
Trang 1NHÓM CHIA DƯ
CHO 10 TRỪ 2
Vũ Thị Hồng Ngọc
Vũ Đức Anh Nguyễn Danh Dương
Trang 2WINDOW SUBSYSTEM
Trang 3Biên tập chương trình C/C++
Trang 4Giới thiệu
0 1
Trang 5Hệ thống con Windows dành cho Linux cho phép các nhà phát triển chạy môi trường GNU/Linux bao gồm hầu hết các công cụ, tiện ích và ứng dụng dòng lệnh trực tiếp trên Windows, không bị sửa đổi, mà không cần cài đặt khởi động kép hoặc máy ảo truyền thống.
Trang 6Cài đặt
0
2
Trang 8dism.exe /online /enable-feature
/featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online
/enable-feature /featurename:VirtualMachinePlatform /all
/norestart
Tải xuống gói nhân cập nhật: Packet wsl set -default-version2
Để liệt kê tên distro, wsl - - list - - online wsl install –d <tên bản phân phối> Thiết lập người dùng và mật khẩu
Trang 9GUI Bật TÍNH NĂNG CỬA SỔ
cho WSL.
Trang 10Tải xuống gói kernel cập nhật cho wsl (nếu cần).
Tải xuống Ubuntu (mới nhất) từ Microsoft Store.
Thiết lập người dùng và mật khẩu
10
Trang 11COMMAND LINES
Các câu
lệnh
0 3
Trang 12whoami Hiển thị người dùng hiện tại
man <command> Nhận hướng dẫn sử dụng <lệnh>
clear Xóa toàn bộ dữ liệu trên màn hình
pwd Hiển thị thư mục làm việc hiện tại
ls Liệt kê tất cả những gì có trong thư mục
hiện tại
cd Thay đổi thư mục (theo trình tự)
cd Quay lại thư mục trước
Trang 13open Mở tệp, thư mục
mv <file> <path>/ Di chuyển <tệp> đến <đường dẫn>
cp <src> <dest> Sao chép nội dung của src sang dest
head <file> -n lines In ra dòng đầu tiên của tệp
tail <file> -n lines In ra dòng cuối cùng của tệp
date Hiển thị ngày- giờ
> Chuyển hướng đầu ra tiêu chuẩn
cat –n <file> Đọc tệp và hiển thị số dòng
less <file> Hiển thị nội dung của tệp trong giao diện người
dùngecho Nhập kí tự vào file chỉ định
Trang 14wc <file> In dòng, từ, số byte của tệp
ps Hiển thị các tiến trình hiện đang chạy
top Liệt kê các tiến trình đang chạy trong thời gian
thực
kill <PID> Gửi nhiều tín hiệu đến một chương trình <PID>
Mặc định: gửi tín hiệu ‘TERM' đến <PID>
nano <file_name> Mở và sửa đổi tệp
sudo Chạy lệnh với quyền quản trị
Trang 15Các quyền
Ký tự đầu tiên cho biết loại tệp:
- : tệp thông thường d: thư mục
Trang 17Để thay đổi quyền của một tập tin hoặc một thư mục.
Để sử dụng “chmod”, chúng ta cần nói với nó:
Trang 19Vim & Nano
Commands
0 4
Trang 20Vim
• Vim là một trình soạn thảo văn bản là phiên bản nâng cấp của trình soạn thảo Vi và tương thích hơn với Vi Việc sử dụng hầu hết các trình chỉnh sửa vi là để tạo tệp mới, chỉnh sửa tệp hiện có hoặc chỉ đọc tệp Trình chỉnh sửa Vim hữu ích hơn trong việc chỉnh sửa các loại văn bản thuần túy khác nhau Lệnh này được sử dụng nhiều hơn trong việc soạn thảo chương trình
• Chúng ta có thể sử dụng Vim để chỉnh sửa các tệp txt
Trang 21• Mở hoặc tạo một tệp : vim <tên file>
• Cho phép chỉnh sửa tập tin đó : Ấn phím Insert hoặc I
• Copy và dán trong Vim:
Phím [v] và sử dụng ← → để đánh dấu văn bản Sử dụng [V] (capslock) để chọn toàn bộ dòng.
Phím [y] – bật chế độ và sao chép nó vào khay nhớ tạm.Tạo một dòng mới với phím [o].
Dán: [ESC] + p.
• Để thoát ra khỏi Vim ấn Esc -> :q
Trang 22• Cũng giống như Vim, nhưng Nano dễ tiếp cận hơn
Trang 230 5
COMPILING A C/C+
+ PROGRAM
Biên tập chương trình C/C++ GCC & G+ +
Trang 24Khác nhau giữa GCC và G++
g++ gcc
g++ được sử dụng để biên dịch chương trình
C++. gcc được sử dụng để biên dịch chương trình C.
g++ có thể biên dịch bất kỳ
tệp .c hoặc .cpp nhưng chúng sẽ chỉ được coi là
tệp C++.
gcc có thể biên dịch bất kỳ tệp .c hoặc .cpp nhưng chúng sẽ được coi là C
Sử dụng g ++ để liên kết các tệp đối tượng,
các tệp sẽ tự động liên kết trong các thư viện
C++ tiêu chuẩn. gcc không làm điều này.
g++ biên dịch với nhiều macro được xác định
trước hơn.
gcc biên dịch các tệp C++ với nhiều macros được xác định trước hơn Một số là #define GXX_WEAK 1, #define cplusplus 1,
#define DEPRECATED 1, v.v.
Trang 25Bước 1: Tạo chương trình C
Trang 261 Pre-processing
gcc –E {file_name}.c -o {file_name}.i
Đây là giai đoạn đầu tiên mà mã nguồn được chuyển qua Giai đoạn này bao gồm:
• Xóa ghi chứ
• Mở rộng Macro
• Mở rộng các tập tin bao gồm
• Biên dịch có điều kiện
Đầu ra được xử lý trước được lưu trữ trong tên tệp.i Hãy xem có gì bên trong
filename.i: using $vi filename.i
Trong đầu ra ở trên, tệp nguồn chứa rất nhiều thông tin, nhưng cuối cùng,
mã của chúng tôi được giữ nguyên.
printf bây giờ chứa a + b thay vì add(a, b) đó là do macro đã được
mở rộng
Bình luận bị tước bỏ
#include<stdio.h> bị thiếu thay vào đó chúng tôi thấy rất nhiều mã
Vì vậy, các tệp tiêu đề đã được mở rộng và đưa vào tệp nguồn của chúng tôi
Những gì diễn ra bên trong quá trình biên
dịch?
Trang 272 Complier (Biên dịch)
Bước tiếp theo là biên dịch filename.i và tạo một; tập tin đầu ra được biên dịch
trung gian filename.s Tệp này nằm trong hướng dẫn cấp độ lắp ráp Hãy xem qua tập tin này bằng cách sử dụng $nano filename.s lệnh đầu cuối.
gcc –S {file_name}.c => {file_name}.s
3 Assembler
Trong giai đoạn này, filename.s được lấy làm đầu vào và được trình hợp dịch mã chuyển thành filename.o Tệp này chứa các hướng dẫn ở cấp độ máy Ở giai đoạn này, chỉ mã hiện có được chuyển đổi thành ngôn ngữ máy và các lệnh gọi hàm
như printf() không được giải quyết Hãy xem tập tin này bằng cách sử dụng $vi
filename.o
gcc –c {file_name.s) => {file_name}.o
Trang 284 Linker
Đây là giai đoạn cuối cùng trong đó tất cả việc liên kết các lệnh gọi hàm với định nghĩa của chúng được thực hiện Trình liên kết biết tất cả các chức năng này được triển khai ở đâu Trình liên kết cũng thực hiện một
số công việc bổ sung, nó thêm một số mã bổ sung vào chương trình của chúng tôi, mã này được yêu cầu khi chương trình bắt đầu và kết thúc Ví dụ: có một mã cần thiết để thiết lập môi trường như truyền đối số dòng lệnh Bạn có thể dễ dàng xác minh tác vụ này bằng cách sử dụng $size filename.o và $size filename Thông qua các lệnh này, chúng ta biết cách tệp đầu ra tăng từ tệp đối tượng thành tệp thực thi Điều này là do
mã bổ sung mà Trình liên kết thêm vào chương trình của chúng tôi
gcc {file_name}.o -o {output_file_name}
Trang 29Makefil e
0
6
Trang 30• Makefile là một công cụ xây dựng chương trình chạy trên Unix, Linux
và các hương vị của chúng Nó hỗ trợ đơn giản hóa việc thực thi
chương trình xây dựng có thể cần nhiều mô-đun khác nhau Để xác định cách các mô-đun cần được biên dịch hoặc biên dịch lại cùng nhau, hãy tạo sự trợ giúp của các tệp tạo tệp do người dùng xác định Hướng dẫn này sẽ nâng cao kiến thức của bạn về cấu trúc và tiện ích của
makefile
• Makefiles là các tệp định dạng đặc biệt giúp xây dựng và quản lý dự án một cách tự động
Trang 31Các biến đại diện cho các hằng số mà người dùng có thể muốn tùy chỉnh trên dòng lệnh hoặc trong môi trường được viết bằng tất cả chữ hoa, theo quy ước.
Để sử dụng các biến, sử dụng ${var} or $(var)
Vận hành:
Các biến
:= | ::= Các biến mở rộng đơn giản.
?= Đặt giá trị biến nếu nó chưa được đặt
trước đó.
Trang 32* ký tự đại diện
• Tìm kiếm hệ thống tệp của
• bạn để tìm tên tệp phù hợp
• Có thể được sử dụng trong mục
tiêu, điều kiện tiên quyết hoặc
trong chức năng ký tự đại diện
Wildcards
% ký tự đại diện
• Khi được sử dụng ở chế độ
“khớp”, nó khớp với một hoặc nhiều ký tự trong một chuỗi
• Khi được sử dụng trong chế độ
“thay thế”, nó sẽ khớp và thay thế chuỗi đó trong một chuỗi
• Quy tắc mẫu tĩnh?
• Quy tắc mẫu?
Ví dụ: *.txt – tìm kiếm các file có txt