Linux------自测1

1、简述如下目录的功能:

  1. /bin :可执行程序或命令
  2. /etc :系统配置文件
  3. /boot 内核 与系统启动有关的文件
  4. /root :管理员的家目录
  5. /home:所有普通用户的家目录
  6. /proc:虚拟目录,进程在内存中的映像
  7. /mnt :临时挂载点
  8. /lib :库文件
  9. /usr :系统运行过程中不常改变的文件
  10. /var:系统运行过程中常改变的文件
  11. /dev :设备文件
  12. /proc :虚拟目录,进程在内存中的映像
  13. /tmp:临时文件,所有的用户均可访问

2、写15个熟悉Linux命令,并简述其功能

  1. 显示当前工作目录的绝对路径:pwd
  2. 查找文件:find
  3. 查看文件内容:tail -f 文件名
  4. 显示进程信息:ps
  5. 结束进程:kill pid
  6. 系统监测工具:top
  7. 改变当前工作目录:cd +路径
  8. 查看ip :ifconfig
  9. 查看、发送邮件:mail
  10. 查看服务进程:ps -ef | grep 进程名
  11. 输出命令:echo
  12. 重启mysql:mysqladmin restart
  13. 关闭mysql :mysqladmin shutdown
  14. 修改mysql用户密码:mysqladmin -u用户名 -p旧密码 password 新密码 修改mysql用户密码
  15. 历史命令:history

3、Linux系统都有哪些类型的文件?改变文件权限使用什么命令?

普通文件、目录文件、字符设备文件和块设备文件、符号链接文件等

ls -lh可以查看某个文件的属性

修改文件权限的命令:chmod

1)字符修改法:chmod   u/g/o/a   +/-/=   r/w/x  文件名

u:属主  g:同组  o:其他文件

r:读权限  w:写权限  x:可执行权限

2)数字修改法:chmod   664 main.c

r:4  w:2   x:1

4、添加一个用户使用哪个命令,它会修改/etc下的哪些文件

useradd

/etc /passwd   /etc /group        /etc /shadow

5、系统关机和重启的命令

1)关机:halt     立刻关机

         poweroff 立刻关机

       root用户才能运行:

init 0

shutdown -h now     立刻关机

shutdown -h 10        十分钟后自动关机

2)重启:reboot       

       root用户才能运行:

init 6

shutdown -r now            立即重启

shutdown –r 10        过10分钟自动重启

6、简述makefile文件是用来做什么的?

管理工程,实现自动化的编译

makefile里主要包含了五个东西:显示规则、隐晦规则、变量定义、文件指示和注释

7、Linux调试程序使用什么工具,说明工具中常用的命令有哪些

gdb调试    //test

gcc/g++ -g test.c/cpp -o test

gdb test

进入gdb调试界面设置参数

  1. 运行程序:r(run)
  2. 查看代码:l(list)
  3. 设置断点:b+断点(break 26)
  4. 单步执行:n(next)
  5. 继续执行:c(continue)
  6. 查看断点:info break
  7. 打印变量的值:p(print i)
  8. 删除断点:delete(delete 2)
  9. 查看线程信息:info thread
  10. 调试目标id指定的线程:thread id
  11. 退出gdb:q(quit)

8、什么是库?请简述静态库和动态库的区别

库是共享程序代码的方式,一般分为静态库和动态库(库就是预先编译好的方法的集合)

1)静态库:链接时完整的拷贝到可执行文件中,被多次使用就有多份冗余拷贝

2)动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序公用,节省内存

9、什么是进程,什么是进程描述符?Linux最多可以产生多少个进程,一个进程最多可以打开多少个文件描述符,什么命令可以查看某个进程打开了哪些文件?

1)进程:一个正在运行的程序

2)进程描述符:结构体task_struct,用来描述进程的属性信息

3)Linux最多可以产生32768个进程(pid的上限,pid是一个整型)

4)一个进程最多可以打开1024个文件描述符,

5)lsof -p可以查看某个进程打开了哪些文件

10、画出进程状态转移图(三个状态的模型)

11、用户态和内核态的区别,什么时候会从用户态切换到内核态?

1)用户态:只能受限的访问内存,且不允许访问外围设备,占用cpu的能力被剥夺,cpu资源可以被其他程序获取

2)内核态:cpu可以访问内存的所有数据,包括外围设备,例如硬盘,网卡,cpu也可以将自己从一个程序切换到另一个程序

执行用户代码处在用户态,执行内核代码  //取决于当前所执行的代码

库函数运行在用户态,实现在内核态

3)执行系统调用的时候 | 产生中断

12、linux环境下main函数有几个参数,并说明各个参数的意义

int main(int argc,char* argv[],char* envp[])

三个参数

1)argc:参数个数

2)argv:参数内容

3)envp:环境变量

13、什么是系统调用,它和函数有啥区别?

1)系统调用:Linux内核中设置了一组用于实现各种系统功能的子程序,称为系统调用。系统调用是在内核完成的。

2)区别:

库函数的实现在函数库中;系统调用调用内核的服务;

函数在用户地址空间执行;系统调用在内核地址空间执行;

函数调用属于过程调用,调用开销较小;系统调用需要在用户空间和内核环境上下环境间切换,开销较大

14、调用系统调用后,如何从用户态切到内核态?

产生中断,陷入内核

系统调用号、系统调用表

15、简述有名管道和无名管道的区别,并说明管道是全双工还是半双工

1)有名管道  mkfifo/mkfifo()创建:任意两个进程间通信

2)无名管道  pipe():只能在父子进程间通信

3)半双工,写入的管道都在内存中

16、su命令是用来做什么的

切换用户身份

17、简述与信号有关的系统调用signal和kill的功能,并说明信号如何实现

信号:系统先定义号的某些特定的时间,可以被发生,也可以被接受,发生和接受的主体都是进程

18、简述fork复制进程的流程,并说明什么是写时拷贝

《内核设计与实现》第三章

申请新的pid,将父进程的pcb复制一份,进程实体的复制(进程地址空间)

调用do_fork     父进程的内核栈

写时拷贝可以提高复制的效率

19、什么是僵死进程?怎么做可以避免僵死进程的产生

僵死进程:子进程先于父进程结束,父进程没有调用wait获取子进程的退出码,此时,子进程变成僵死进程

解决办法:父进程调用wait获取退出码,或父进程先结束,让init进程接管子进程。

20、什么是虚拟内存,引入虚拟内存后对系统运行程序有什么作用?

不是真正的内存,是把磁盘上的空间

运行比物理内存更大的空间

21、以下程序输出多少个”a”?

int i=0;

for(;i<2;i++)

{

fork();

printf(“a”);

}

8个a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值