《Linux程序设计》各章知识点梳理
第1章
-
软件包的管理方式方面,Ubuntu、CentOS的差异
-
如何添加一个新用户?
useradd user1
-
什么是Shell?
Shell是系统的用户界面,提供了用户与内核进行监护操作的一种接口。它接受用户输入的命令并把它们送去内核去执行。实际上Shell是一个命令解释器,解释由用户输入的命令并把它们送到内核。广泛的shell有Bash、TC Shell等,默认登录Shell是Bash。 -
如何查看一条命令的帮助文档?
man --options # 获取的信息更全面 options --help # 获取的信息更简洁
-
ls命令的各种选项
ls -a # 显示所有文件 ls -l # 显示详细信息 ls -h # 以人类可读的方式显示文件大小 ls -t # 按时间排序 ls -r # 逆序显示 ls -R # 递归显示 ls -S # 按文件大小排序 ls -d # 显示目录本身 ls -i # 显示inode ls -1 # 每行一个文件
-
建立、复制、删除目录
mkdir dir1 # 创建目录 cp -r dir1 dir2 # 复制目录 rm -r dir1 # 删除目录 -r 递归整个目录进行操作
cd命令,如何进入特定的目录,例如主目录、上一层目录等?
chmod命令,修改权限
grep与正则表达式
sort命令
wc命令,管道的使用
pwd与PWD
各种压缩命令,特别是tar命令
find命令
mv命令,移动与改名
ln 与 ln -s,符号链接文件与硬链接文件的区别?
head tail cat more
bc计算,与echo命令搭配,如何做计算?如何做小数或浮点数的运算?
ps -l命令、ps -ef命令
who、free
kill命令及kill函数(C语言)
大写的PWD、PATH、HOME、USER分别表示什么含义?
Shell元字符 *、?、[]、{}、~的使用方法
重定向> >> < ,命令的后台执行、顺序执行分别用什么?
vim有哪几种工作模式?命令模式、末行模式的各种基本操作
Linux文件系统中,有一些默认的目录,例如/etc、/dev等,它们分别存放什么文件?
/etc/passwd是什么文件?文件的内容有哪些?
如何利用管道将多个命令连接起来完成一个指定的任务,例如“统计所有普通文件所含有的字符数”、“统计所有普通文件的个数”
第2章
bash脚本的第一行
shell脚本中,$0 $1 $2 $# $* \(?的含义
Shell编程例题
知道()、{}、[]、`` (())的使用方法
echo “\)i” 与 echo ‘$i’的执行结果的区别
read命令,read $xyz是否正确?
牢固掌握if语句的用法
shell下如何做字符串拼接?
如何判断一个变量是文件还是目录,-e -s的含义
字符串、表达式的比较
for循环,for循环的C语言风格写法
while循环,无限循环,怎么写?
case语句
break
continue
数组,a=(one two three four)是什么含义?如何输出数组的每个元素?
斐波那契数列的构造及其求和。
注:下列内容中,系统调用与函数在说法上没有加以区分。
第3章
gcc -c的含义
gcc编译过程包括哪些步骤,其中的链接步骤指的是什么?
静态库与共享库的不同之处是什么?
make命令的功能、好处?makefile、Makefile的作用,基本结构?
第4章
时间函数(asctime、localtime、time)的使用方法
tm结构的基本属性
如何在C语言中输出当前的时间?(不使用system或exec函数族)
什么是用户空间、什么是内核空间?
getenv函数与env命令
第5章
什么是系统调用、什么是函数?
chmod函数
umask函数的作用、umask命令的使用方法
stat结构体与stat函数、stat命令的联系、各自的功能。
如何根据stat结构体获得文件的类型、权限等信息?
文件描述符与文件指针的区别,各自的应用环境
open、close、read、write要非常熟悉。读文件、读键盘、输出到屏幕、输出到文件操作要熟悉。
open文件时如果采用O_NONBLOCK方式,则后续的效果是怎么样的?
open文件时,O_TRUNC、O_WRONLY是什么方式?
如何利用C语言实现文件的复制?如何编写属于自己的命令程序,mycp ?
opendir、readdir、closedir是用来做什么的?
如何将指定目录下的文件或目录的详细信息(名称、类型、大小、修改时间等)列举出来?
第6章
进程的基本概念
如何获得进程的PID、PPID?
熟练掌握fork函数的用法
父子进程如何交替执行?
什么是僵尸进程、什么是孤儿进程,由谁来回收?
sleep函数的作用?
如何避免僵尸进程,wait函数、waitpid函数的多种用法
如何产生多个进程,而不发生僵尸进程,进程号之间彼此有什么关联?
WIFEXITED、WEXITSTATUS两个宏是用来做什么的?
什么是SIGCHILD信号,有什么作用?
父进程如何给其子进程发送信号,通过什么函数?kill函数与raise函数的区别是什么?
守护进程的特点是什么?如何产生一个守护进程?产生守护进程的每个步骤的作用分别是什么?
什么是进程组、什么是会话组?
守护进程是孤儿进程吗?
如何编写简单的守护进程?例如周期性地向指定文件中写入当前的最新时间、如何监督检查指定文件是否被修改过?
system函数与exec函数族的使用方法,区别
exec函数族中execl、execv、exec le、execlp在使用时,参数方面有何区别?
第7章
进程间通信的几种方式是什么?
用户进程对于信号响应的方式有哪些?如何编程实现?
alarm函数
signal函数的用法
当前进程如何在收到某一特定的信号(例如SIGINT)后,不执行默认的操作,转而执行自定义的操作?
SIGKILL与SIGSTOP的特殊性在哪里?SIGINT、SIGQUIT、SIGTERM的共同点是什么?
什么是管道?什么是匿名管道、什么是命名管道,各自的应用场景是什么?
如何利用pipe系统调用实现父子进程的管道通信?
如何利用匿名管道让父进程写文件、子进程读文件?如何使用dup2函数让操作变得更简单?
命名管道文件的类型是以什么开头的?