引言
CentOS作为一个广泛使用的开源Linux发行版,以其稳定性和兼容性著称。对于想要学习Linux编程的开发者来说,CentOS是一个理想的平台。本文将带您通过一系列实战案例,轻松掌握Linux编程技巧。
1. 安装CentOS 64位系统
1.1 准备工作
下载CentOS 64位系统镜像文件。
准备一个空的U盘或硬盘分区,用于安装系统。
1.2 安装步骤
使用虚拟机软件(如VMware)创建新的虚拟机。
选择Linux系统,选择CentOS 7.x 64位版本。
设置虚拟机内存和CPU资源。
将CentOS镜像文件加载到虚拟光驱中。
按照安装向导进行操作。
2. 基础命令学习
2.1 文件和目录操作
ls
:列出目录内容。
cd
:切换目录。
mkdir
:创建目录。
rm
:删除文件或目录。
cp
:复制文件或目录。
mv
:移动文件或目录。
2.2 文本处理
cat
:查看文件内容。
echo
:输出文本到控制台。
grep
:搜索文件中的内容。
sed
:流编辑器,用于文本替换。
2.3 系统信息查询
hostname
:显示主机名。
ifconfig
:显示网络接口信息。
df
:显示磁盘空间使用情况。
free
:显示内存使用情况。
3. 网络编程实战
3.1 TCP服务器
#include
#include
#include
#include
#include
#include
int main() {
int server_fd, new_socket;
struct sockaddr_in address;
int opt = 1;
int addrlen = sizeof(address);
// 创建socket文件描述符
if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0) {
perror(“socket failed”);
exit(EXIT_FAILURE);
}
// 强制绑定到端口8080
if (setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR | SO_REUSEPORT, &opt, sizeof(opt))) {
perror(“setsockopt”);
exit(EXIT_FAILURE);
}
address.sin_family = AF_INET;
address.sin_addr.s_addr = INADDR_ANY;
address.sin_port = htons(8080);
// 绑定socket到端口
if (bind(server_fd, (struct sockaddr *)&address, sizeof(address))<0) {
perror("bind failed");
exit(EXIT_FAILURE);
}
// 监听socket
if (listen(server_fd, 3) < 0) {
perror("listen");
exit(EXIT_FAILURE);
}
// 等待并接受连接
if ((new_socket = accept(server_fd, (struct sockaddr *)&address, (socklen_t*)&addrlen))<0) {
perror("accept");
exit(EXIT_FAILURE);
}
// 接收客户端数据
char buffer[1024] = {0};
read(new_socket, buffer, 1024);
printf("%s\n", buffer);
// 关闭连接
close(new_socket);
close(server_fd);
return 0;
}
3.2 TCP客户端
”`c
#include
#include
#include
#include
#include
#include
int main() {
struct sockaddr_in address;
int sock = 0, valread;
struct sockaddr_in serv_addr;
char buffer[1024] = {0};
// 创建socket文件描述符
if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
printf("\n Socket creation error \n");
return -1;
}
memset(&serv_addr, '0', sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(8080);
// 将IP地址转换为网络字节序
if(inet_pton(AF_INET, "127.0.0.1", &serv_addr.sin_addr)<=0) {
printf("\nInvalid address/ Address not supported \n");
return -1;
}
// 连接到服务器
if (connect(sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) {
printf