hocvietcode.com
  • Trang chủ
  • Học lập trình
    • Lập trình C/C++
    • Lập trình HTML
    • Lập trình Javascript
      • Javascript cơ bản
      • ReactJS framework
      • AngularJS framework
      • Typescript cơ bản
      • Angular
    • Lập trình Mobile
      • Lập Trình Dart Cơ Bản
        • Dart Flutter Framework
    • Cơ sở dữ liệu
      • MySQL – MariaDB
      • Micrsoft SQL Server
      • Extensible Markup Language (XML)
      • JSON
    • Lập trình PHP
      • Lập trình PHP cơ bản
      • Laravel Framework
    • Lập trình Java
      • Java Cơ bản
    • Cấu trúc dữ liệu và giải thuật
    • Lập Trình C# Cơ Bản
    • Machine Learning
  • WORDPRESS
    • WordPress cơ bản
    • WordPress nâng cao
    • Chia sẻ WordPress
  • Kiến thức hệ thống
    • Microsoft Azure
    • Docker
    • Linux
  • Chia sẻ IT
    • Tin học văn phòng
      • Microsoft Word
      • Microsoft Excel
    • Marketing
      • Google Adwords
      • Facebook Ads
      • Kiến thức khác
    • Chia sẻ phần mềm
    • Review công nghệ
    • Công cụ – tiện ích
      • Kiểm tra bàn phím online
      • Kiểm tra webcam online
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • Linux
Giới thiệu về Shell Script và lập trình C cơ bản trong UNIX

Giới thiệu về Shell Script và lập trình C cơ bản trong UNIX

  • 30-10-2024
  • Toanngo92
  • 0 Comments

Mục lục

    • 1. Giới thiệu về Shell Script trong UNIX
    • 2. Cấu trúc Shell Script Cơ bản
    • 3. Biến trong Shell Script
    • 4. Câu lệnh Điều kiện và Vòng lặp trong Shell Script
    • 5. Hàm trong Shell Script
    • 6. Truyền dữ liệu giữa các tiến trình và điều hướng (Redirection)
    • 7. Giới thiệu về Lập trình C trong UNIX
    • 8. Gọi Hệ thống (System Call) trong C
  • Ví dụ:
    • 9. Quản lý Tệp tin trong Lập trình C

1. Giới thiệu về Shell Script trong UNIX

  • Mô tả: Shell script là một chuỗi các lệnh UNIX được kết hợp thành một tập tin thực thi, giúp tự động hóa các tác vụ, tiết kiệm thời gian và giảm thiểu thao tác lặp đi lặp lại.
  • Nội dung:
    • Giới thiệu về Shell và các loại Shell phổ biến như Bourne Shell (sh), Bash (bash), C Shell (csh), Korn Shell (ksh).
    • Cấu trúc cơ bản của một shell script, cú pháp, và cách lưu tệp script với phần mở rộng .sh.

2. Cấu trúc Shell Script Cơ bản

  • Mô tả: Cách viết shell script đơn giản với cú pháp cơ bản, bao gồm dòng shebang và các lệnh cơ bản.
  • Nội dung:
    • Dòng shebang (#!/bin/sh) ở đầu tệp để xác định shell sẽ chạy script.
    • Cú pháp viết lệnh và các phép gán biến trong shell.
    • Ví dụ:
      bash #!/bin/sh echo "Xin chào, đây là script đầu tiên của tôi!"

3. Biến trong Shell Script

  • Mô tả: Các loại biến trong Shell script, cách khai báo và sử dụng.
  • Nội dung:
    • Biến cục bộ: Khai báo bằng cách gán giá trị, không có kiểu dữ liệu cố định.
    • Ví dụ:
      bash name="UNIX" echo "Hệ điều hành của tôi là $name"
    • Biến hệ thống: Các biến mặc định như $HOME, $PATH, $USER.
    • Biến tham số: Sử dụng các biến đặc biệt để truy cập tham số dòng lệnh ($1, $2,…).

4. Câu lệnh Điều kiện và Vòng lặp trong Shell Script

  • Mô tả: Hướng dẫn viết cấu trúc điều kiện (if, else) và vòng lặp (for, while) trong Shell.
  • Nội dung:
    • Cấu trúc if:
    • Ví dụ:
      bash #!/bin/sh if [ "$1" -gt 0 ]; then echo "Tham số lớn hơn 0" else echo "Tham số nhỏ hơn hoặc bằng 0" fi
    • Vòng lặp for:
    • Ví dụ:
      bash for file in *.txt; do echo "Đang xử lý $file" done
    • Vòng lặp while:
    • Ví dụ:
      bash i=1 while [ $i -le 5 ]; do echo "Số $i" i=$((i + 1)) done

5. Hàm trong Shell Script

  • Mô tả: Tạo hàm để tái sử dụng các đoạn mã, giúp code ngắn gọn và dễ quản lý hơn.
  • Nội dung:
    • Cú pháp định nghĩa hàm:
      bash function tên_hàm { # Lệnh thực thi trong hàm }
    • Ví dụ về hàm:
      bash greet() { echo "Xin chào, $1!" } greet "Người dùng"

6. Truyền dữ liệu giữa các tiến trình và điều hướng (Redirection)

  • Mô tả: Cách truyền dữ liệu giữa các tiến trình bằng pipeline (|) và điều hướng đầu vào/đầu ra.
  • Nội dung:
    • Pipeline (|): Sử dụng đầu ra của lệnh này làm đầu vào cho lệnh tiếp theo.
    • Ví dụ:
      bash ls | grep ".txt"
    • Điều hướng đầu vào (<) và đầu ra (>/>>):
    • Ví dụ:
      bash echo "Đây là dữ liệu" > file.txt # Ghi đè vào file.txt echo "Thêm dữ liệu" >> file.txt # Ghi thêm vào file.txt

7. Giới thiệu về Lập trình C trong UNIX

  • Mô tả: Giới thiệu cơ bản về lập trình C trong UNIX, từ cấu trúc chương trình, biên dịch, và chạy chương trình C trong môi trường UNIX.
  • Nội dung:
    • Cấu trúc cơ bản của chương trình C: Hàm main(), khai báo thư viện #include.
    • Các bước biên dịch và chạy chương trình C:
    • Sử dụng gcc để biên dịch:
      bash gcc -o ten_chuong_trinh chuong_trinh.c ./ten_chuong_trinh

8. Gọi Hệ thống (System Call) trong C

Mô tả: Cách sử dụng các lời gọi hệ thống (system calls) để tương tác với hệ điều hành từ chương trình C.

Lời gọi hệ thống phổ biến:

  • fork(): Tạo một tiến trình con.

  • exec(): Thay thế tiến trình hiện tại bằng một chương trình khác

  • .wait(): Đợi tiến trình con kết thúc.

Ví dụ:

#include <stdio.h>
#include <unistd.h>

int main() {
    printf("Tiến trình hiện tại có PID: %d\n", getpid());
    fork();  // Tạo tiến trình con
    printf("Tiến trình sau khi fork, PID: %d\n", getpid());
    return 0;
}

9. Quản lý Tệp tin trong Lập trình C

Mô tả: Cách thao tác với tệp tin trong C, như tạo, đọc, ghi và đóng tệp tin.

Nội dung Sử dụng thư viện stdio.h để thao tác tệp tin với fopen(), fread(), fwrite(), và fclose().

Ví dụ:

#include <stdio.h>

int main() {
    FILE *f = fopen("file.txt", "w");
    if (f == NULL) {
        printf("Không thể mở tệp\n");
        return 1;
    }
    fprintf(f, "Nội dung ghi vào tệp.\n");
    fclose(f);
    return 0;
}


Bài tập

Bài tập Thực hành Shell Script và Lập trình C cơ bản trong UNIX

  • Mô tả: Các bài tập giúp củng cố kiến thức về Shell Script và lập trình C.
  • Nội dung:
    • Viết shell script để tự động sao lưu tệp tin trong thư mục.
    • Viết chương trình C để tạo một tệp, ghi dữ liệu vào đó, và đọc nội dung đã ghi.
    • Thực hành với các lời gọi hệ thống fork() và exec() để tạo tiến trình mới và thực thi chương trình từ tiến trình đó.

Bài viết liên quan:

Khái niệm Disk Inode và cách xem Inode, sử dụng Inode trong ubuntu
Giới thiệu về bảo mật và phân quyền trong unix/linux
Làm việc với tệp tin (file) trong Linux
Hướng dẫn mount (gắn kết) ổ cứng trong ubuntu
Giới thiệu cấu trúc thư mục và bắt đầu phiên làm việc với Linux
Giới Thiệu về Hệ Điều Hành Linux
Fix lỗi initramfs (fsck) khi khởi động ubuntu: BusyBox v1.22.1 (Ubuntu 1:1.30.0-4ubuntu6.4)
Hướng dẫn sử dụng Rclone backup VPS lên google drive
Hướng dẫn backup linux server bằng Rsync
Hướng dẫn xử lý lỗi CentOS 8 – Failed to download metadata for repo ‘AppStream’ [CentOS] khi chạy lệnh yum
Hướng dẫn cài đặt Ubuntu Server cho máy tính cá nhân, laptop và setup NAT làm Home Server host website
Hướng dẫn cài đặt EasyEngine để tạo website wordpress nhanh chóng trên VPS Ubuntu

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

4. KIỂM THỬ VÀ TRIỂN KHAI HỆ THỐNG

2. PHÂN TÍCH VÀ ĐẶC TẢ HỆ THỐNG

3. THIẾT KẾ HỆ THỐNG

1. TỔNG QUAN KIẾN THỨC THỰC HÀNH TRIỂN KHAI DỰ ÁN CÔNG NGHỆ THÔNG TIN

Hướng dẫn tự cài đặt n8n comunity trên CyberPanel, trỏ tên miền

Giới thiệu

hocvietcode.com là website chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với HỌC VIẾT CODE

© hocvietcode.com - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.
Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×