一、环境搭建
(1) 下载virtualbox
https://www.virtualbox.org/wiki/Downloads
(2) 下载ubuntu server
(3) ubuntu的下载和安装参考
https://www.jb51.net/article/95311.htm
备注:virtual box和ubuntu server已上传至百度云盘,后续安装所需软件可以从百度云盘下载
二、一些基础命令
(1) 保存退出vim编辑
vim命令进入编辑文档,按i进入编辑模式。按ESC键跳到命令模式,该模式下:q!+回车键退出vim编辑,更多见https://blog.csdn.net/u014796999/article/details/52562731
(2) stat和fstat函数返回包含所有文件属性的一个信息结构
(3) 可用man 1 ls或man -s1 ls命令查看ls命令手册页。
(4) 如果该源码名为myls.c,用cc myls.c命令对其进行编译,编译结果是生成默认名为a.out的可执行文件中。ls
(5) ls > file.list执行ls命令,其标准输出重新定位到名为file.list的文件。
vim file.list
三、一些基础知识
(1) 只有斜线(/)和空字符不能出现在文件名中。
(2) 创建新目录是会自动创建了两个文件名:.(称为点)和..(称为点点)。点指向当前目录,点点指向父目录。在最高层次的根目录中,点点与点相同。
(3) 几乎所有商业化的UNIX文件系统都支持超过255个字符的文件名。
(4) 以斜线开头的路径名称称为绝对路径名(absolute pathname),否则称为相对路径名(relative pathname)。相对路径名指向相对于当前目录的文件。文件系统根的名字(/)是一个特殊的绝对路径名。
(5) cc未找到命令,原因在于未安装gcc,可通过apt install gcc来安装。
参考链接:https://blog.csdn.net/gwd1154978352/article/details/74784340
(6) 每个进程都有一个工作目录(working directory),有时称其为当前工作目录(current working directory)。所有相对路径名都从工作目录开始解释。进程可以用chdir函数更改其工作目录。
(7) 登录时,工作目录设置为起始目录(home directory),该起始目录从口令文件中相应用户的登录项中取得。
(8) 文件描述符(file descriptor)通常是一个小的非负整数。
(9) read返回0,程序停止执行。如果发生了一个错误,read返回-1。出错时大多数系统函数返回-1。
(10) 程序(program)是一个存储在磁盘上某个目录中的可执行文件。内核使用exec函数,将程序读入内存,并执行程序。
(11) 程序的执行实例被称为进程(process)。
(12) UNIX系统确保每个进程都有一个唯一的数字标识符,称为进程ID(process ID)。进程ID总是一个非负整数。
(13) 有3个用于进程控制的主要函数:fork、exec和waitpid。
(14) 口令文件(/etc/passwd),组文件(/etc/group)。存储用户ID和组ID只需四个字节。在检验权限期间,比较字符串较之比较整型数更消耗时间。
(15) ls -l命令使用口令文件将数值的用户ID映射为登录名,从而打印出文件所有者的登录名。
(16) 信号(signal)用于通知进程发生了某种情况。进程有以下三种处理信号的方式(忽略信号、按系统默认方式处理、提供一个函数,信号发生时调用该函数,这被称为捕捉该信号)。当向一个进程发送信号时,我们必须是那个进程的所有者或者是超级用户。