Loading

《Linux程序设计》各章知识点梳理

《Linux程序设计》各章知识点梳理

  • 正则表达式
    • 字符集。[]表示其中的某一个字符。如[adz] [A-Z]
    • ^表示行的开头,$表示行的结尾(不是字符,是位置),‘$’表示空行
    • .表示任意一个字符,必须存在(需要使用.的时候用\转义)
    • ?表示匹配零个或者一个字符
    • *表示匹配零个或者多个字符(oo*表示第一个o一定存在,第二个o有零个或者多个)
    • +表示匹配一个或者多个字符
    • 组合使用,.*表示零个或者多个任意字符
    • {n}表示匹配n个字符
    • {n,}表示匹配n个或者多个字符
    • {n,m}表示匹配n个到m个字符
    • |表示或
    • ()表示分组

第1章

  1. 软件包的管理方式方面,Ubuntu、CentOS的差异
    Ubuntu使用apt-get,CentOS使用yum
    yum install emacs
    apt-get install emacs
    
  2. 如何添加一个新用户?
    useradd user1
    
  3. 什么是Shell?
    Shell是系统的用户界面,提供了用户与内核进行监护操作的一种接口。它接受用户输入的命令并把它们送去内核去执行。实际上Shell是一个命令解释器,解释由用户输入的命令并把它们送到内核。广泛的shell有Bash、TC Shell等,默认登录Shell是Bash。
  4. 如何查看一条命令的帮助文档?
    man --options # 获取的信息更全面
    options --help # 获取的信息更简洁
    
  5. ls命令的各种选项
    ls -a # 显示所有文件
    ls -l # 显示详细信息
    ls -h # 以人类可读的方式显示文件大小
    ls -t # 按时间排序
    ls -r # 逆序显示
    ls -R # 递归显示
    ls -S # 按文件大小排序
    ls -d # 显示目录本身
    ls -i # 显示inode(索引编号)
    ls -1 # 每行一个文件
    
  6. 建立、复制、删除目录
    mkdir dir1 # 创建目录
    cp -r dir1 dir2 # 复制目录
    rm -r dir1 # 删除目录 -r:递归整个目录进行操作
    
  7. cd命令,如何进入特定的目录,例如主目录、上一层目录等?
    cd ~ # 进入主目录
    cd .. # 进入上一层目录
    cd . # 进入当前目录
    
  8. chmod命令,修改权限
    chmod 777 file1 # 为file1添加读、写、执行权限
    chmod 755 file1 # 为file1添加读、写、执行权限
    chmod # r:read w:write x:execute  guoa表示用户、同组用户、其他用户、所有用户  
    chmod ug=rwx,o=x file1 # 为file1添加读、写、执行权限
    
    
  9. grep与正则表达式
    grep [参数] [查找内容] [文件名] # 参数:-i:忽略大小写 -v:反向查找 -n:显示行号 -c:统计匹配行数 -r:递归查找
    
  10. sort命令
    sort [参数] [文件名] # 参数:-n:按数字排序 -r:逆序排序 -t:指定分隔符 -k:指定列排序 
    
  11. wc命令,管道的使用
    wc # 统计文件的行数、单词数、字符数
    wc 1.cpp #-c:统计字符数 -w:统计单词数 -l:统计行数
    
  12. pwd与PWD
    pwd # 显示当前目录
    PWD # 环境变量,显示当前目录
    
  13. 各种压缩命令,特别是tar命令
    tar [参数] [文件名] # -c:创建 -x:解压 -f <文件名>:指定文件名(不带文件名也可以,必选项) --list:列出文件名但是不解压 -z:具有gzip属性 -j:调用bzip2命令
    
  14. find命令
    find [路径] [参数] [文件名] # -name:按文件名查找 -user:按用户查找
    
  15. mv命令,移动与改名
    mv file1 dir1 # 移动文件
    mv file1 file2 # 改名
    
  16. ln 与 ln -s,符号链接文件与硬链接文件的区别?
    ln file1 file2 # 创建硬链接,指向同一个数据块,同时修改,完全相同
    ln -s file1 file2 # 创建符号链接,指向原始文件名的路径
    
  17. head tail cat more
    head -n 10 file1 # 显示文件的前10行
    tail -n 10 file1 # 显示文件的后10行
    cat file1 # 显示文件的全部内容
    more file1 # 分页显示文件内容
    
  18. bc计算,与echo命令搭配,如何做计算?如何做小数或浮点数的运算?
    echo "1+1" | bc # 计算1+1,搭配echo使用管道
    echo "scale=2;1/3" | bc # 计算1/3,保留两位小数
    
  19. ps -l命令、ps -ef命令
    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函数让操作变得更简单?
命名管道文件的类型是以什么开头的?

posted @ 2024-05-19 17:23  Gary_818  阅读(52)  评论(0编辑  收藏  举报