我们这门是考察课,选的是黑马教程的书,感觉还是很基础的,而且学校老师给了代码就不讲了,通过博客把知识点梳理下,有时间去图书馆借几本linux的专业的书看看,特别是讲shell这一块的吧!,写这些是自己梳理下知道点,未来自己掌握,不是供其他人看,不好意思了!
第一章
安装CentOS和远程登录,用华为和华三软件远程都行
第二章
linux常用命令,上学期学过 ubuntu,所以命令基本都知道,忘记看下就会了,
网络命令 考软设的时候考到了,要是找点看这书那个题也不会错了,唉!
netstat 打印linux系统中网络的状态信息,显示端口信息
第三章
用户管理,上学期学过
第四章
shell编程 老师直接跳过,这个其实很重要,有时间去图书馆补习下shell
第五章
linux文件系统,学过操作系统,不过这个是讲linux的,一些文件存储,大致了解了下,
文件I/O, 用的是c语言写的,这个我学c的时候看了下,但记不住,知道那个意思,二次c语言优秀,但以后肯定是java,c就学 的少了。
第六章
进程管理
PCB本质是task_struct结构体 进程pid 父进程ppid,书上给了一些c语言进程代码
fork() 创建子进程,没什么好看的,要是给java代码就好了
wait() 调用此函数进程会挂起,当子进程退出时,此进程才运行
第七章
信号 :中断信号
int kill(pid_t pid, int sig) pid为接收信号的进程 sig表示要发送的信号编号
pid>0,发送信号sig给进程号为pid进程 pid=0 发送信号sig给当前进程所属组中的所有进程
pid=-1,发送信号sig给除1号进程与当前进程外的所有进程 pid<-1 发送信号sig给属于进程组pid所有进程
这章整体来说就是一些信号作用及函数
第八章
进程间的通信
创建管道 int pipe(int pipefd[2]);
管道通信 int dup2(int oldfd,int newfd); 将参数oldfd文件描述符传递给newld 成功返回newld 否则返回-1
.....
第九章
创建线程
int pthread_create(pthread_t *thread,NULL,fun,NULL);
获取id pthread_t pthread_self(void);
退出线程 pthread_exit(NULL);
线程终止 int pthread_cancel(pthread_t thread);
线程挂起 int pthread_join(pthread_t thread,void **retval);
......不写了,都是关于线程的函数
第十章
socket编程,计算机网络,五层协议......这个感觉还是蛮重要的
1. 创建套接字 int socket(int domain,int type,int protocol);
domain 指定通信域,选择通信的地址族,常用设置AF_INET和AF_UNIX ,前者针对因特网,可与远程的通信端连接通信
后者针对本地进程,可在本地系统进程间进行通信
type 指定socket的类型,即选择哪个协议 protocol 设置为0,表示默认协议
2. int bind(int sockfd , const struct sockaddr *addr,socklen_t addrlen);
bing()用于服务器端,调用bind()函数进行地址绑定
sockfd为文件描述符 addr:服务器的通信地址 addrlen 表示addr的长度
struct sockaddr_in servaddr; //结构体定义
bzero(&servaddr,sizeof(servaddr)); //结构体清0
servaddr.sin_family=AF_INET;
servaddr.sin_addr.s_addr=htonl(INADDR_ANY);
servaddr.sin_port=htons(85);
INADDR_ANY选项
网络编程中常用到bind函数,需要绑定IP地址,这时可以设置INADDR_ANY
INADDR_ANY就是指定地址为0.0.0.0的地址,这个地址事实上表示不确定地址,或“所有地址”、“任意地址”。
也就是表示本机的所有IP,因为有些机子不止一块网卡,多网卡的情况下,这个就表示所有网卡ip地址的意思。
比如一台电脑有3块网卡,分别连接三个网络,那么这台电脑就有3个ip地址了,如果某个应用程序需要监听某
个端口,那他要监听哪个网卡地址的端口呢?如果绑定某个具体的ip地址,你只能监听你所设置的ip地址所在的网
卡的端口,其它两块网卡无法监听端口,如果我需要三个网卡都监听,那就需要绑定3个ip,也就等于需要管理3个
套接字进行数据交换,这样岂不是很繁琐?
所以你只需绑定INADDR_ANY,管理一个套接字就行,不管数据是从哪个网卡过来的,
只要是绑定的端口号过来的数据,都可以接收到。
当然, 客户端connect时,不能使用INADDR_ANY选项。必须指明要连接哪个服务器IP。
3.listen(int sockfd,int backlog); 用于服务端 sockfd表示socket文件描述符, backlog设置队列的最大长度
4. accept(int sockfd,struct sockaddr *addr,socklen_t *addrlen);
sockfd为listen()函数返回监听套接字 , addr是传出参数,表示客户端的地址
5. connect(int sockfd, sonst struct sockaddr *addr,socklen_t addrlen); 用于客户端
向服务器发起连接请求,与bing()函数相似
6. ssize_t send(int sockfd, const void *buf, size_t len, int flags);
向处于连接状态的套接字中发送数据 sockfd文件描述符 ,buf数据缓冲区,flags 调用执行方式(堵塞/非堵塞)