目录
5. POSIX线程中如果数据被其他线程修改,则应该数据声明为:volatile
6. 修改账号名称:usermod -l new_name old_name
10. 建立动态路由需要用到的文件:/etc/gateways
12. Linux中shell变量$$, $!, $?, $-, $*, $#, $@, $0, $1~$2的含义
14. 基本的Linux操作系统 vs 日志文件系统 vs 写时复制文件系统
19. Red Hat Linux系统中,DHCP服务器可以提供的服务有哪些
32. 查看Linux主机的默认路由:route, netstat
36. dhcpd.conf中用于向某个客户主机分配固定IP地址的参数是:fixed-address
38. 存储用于创建用户目录的系统用户默认文件:/etc/skel
39. Linux在什么情况下发生报错page fault:所需访问虚拟内存未被装载
40. Linux查看中断的命令: cat /proc/kcore
【写在前面】
汇总二的链接在此:Linux知识点汇总二(NK)
1. 哪些命令可以获取Linux主机的负载相关的指标
(1)uptime:可以显示系统的: 现在时间,运行了多长时间,目前有多少登录用户,系统在过去的1分钟,5分钟,15分钟内的平均负载。
(2)top:查看系统整体状态。
(3)sar -u:输出显示CPU信息。以百分比的形式显示。
补充几个无关的命令的含义:
(1)ls:列出目录下的文件。
(2)crontab:是一个定时执行任务命令,不能查看系统负载。
2. 子进程继承了父进程的哪些内容
(1)用户号UIDs,用户组号GIDs
(2)环境 Environment
(3)堆栈
(4)共享内存
(5)打开文件的描述符
(6)执行时关闭(Close-on-exec)标志
(7)信号(Signal)控制设定
(8)进程组号
(9)当前工作目录
(10)根目录
(11)文件方式创建屏蔽字
(12)资源限制
(13)控制终端
经过fork()以后,父进程和子进程拥有相同内容的代码段,数据段和用户堆栈,就像父进程把自己克隆了一遍。事实上,父进程只复制了自己的PCB块,而代码段,数据段和用户堆栈内存空间并没有复制一份,而是与子进程共享。只有当子进程在运行中出现写操作时,才会产生中断,并为子进程分配内存空间。由于父进程的PCB和子进程的一样,所以在PCB终端中所记录的父进程占有的资源,也是与子进程共享使用的。这里的共享,意味着竞争。
3. 子进程独有内容
(1)进程号PID
(2)不同的父进程号
(3)自己的文件描述符和目录流的拷贝
(4)子进程不继承父进程的进程正文text,数据和其他锁定内存memory locks
(5)不继承异步输入和输出
补充:
(1)父进程和子进程拥有各自独立的地址空间和PID参数。
(2)父进程设置的锁,子进程不继承(因为如果是排它锁,被继承的话,就矛盾了)
(3)子进程的未决告警pending alarms被清除
(4)子进程的未决信号集pending signals设置为空集
4. 关于Linux交换分区
(1)Linux交换分区通常就是swap分区,即虚拟内存分区。
(2)它的作用就是在物理内存使用完之前,将磁盘空间虚拟成内存来使用。
(3)swap分区作为虚拟的内存,它的运行速度比物理内存慢的多。所以如果需要更快的速度,最好的方法是加大物理内存。
(4)安装Linux时,不一定要划分交换分区。
(5)推荐交换分区的大小应当与系统物理内存的大小保持线性比例关系(这个比例有待研究)。
物理内存小于2GB时,交换分区大小应该设置为内存大小的两倍。
物理内存大于2GB时,交换分区大小应该设置为内存大小加上2GB。
5. POSIX线程中如果数据被其他线程修改,则应该数据声明为:volatile
volatile修饰的成员变量,在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。
而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。
这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。
即, volatile实现了可见性。但不支持原子性。
6. 修改账号名称:usermod -l new_name old_name
7. Linux运行的7个级别
命令格式: init 级别数
(1)0:系统停机状态。默认级别不能是0,否则不能正常启动。
(2)1:单用户工作状态。root权限,用于系统维护,禁止远程登录。类似win的安全模式。
(3)2:多用户状态,没有NFS支持。
(4)3:完整的多用户模式,有NFS,登录后进入控制台命令行模式。
(5)4:系统未使用,保留一般不用,在一些特殊情况下可以用来处理事情,比如笔电的电池用尽时,可以切换到这个模式来做一些设置。
(6)5:XX控制台,登录后进入图形GUI模式,XWindow系统。
(7)6:系统正常关闭并重启,默认运行级别不能是6,否则不能正常启动。运行init 6就会重启。
8. 禁止所有普通用户登录系统的命令
(1)init 1 (单用户工作状态。root权限,用于系统维护,禁止远程登录)
(2)touch /etc/nologin
(3)iptables -S INPUT -t tcp -s !127.0.0.1 -j DROP
9. 用户登录系统时,首先执行什么文件?
(1)bash首先执行/etc/profile配置文件和/etc/profile.d目录下的配置文件,这些配置文件对所有用户都有效,为所有的用户设置环境变量等信息。
(2)/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行,并从目录的配置文件中搜集shell的设置。
10. 建立动态路由需要用到的文件:/etc/gateways
11. 查看当前系统时间的命令
(1)w
(2)top
(3)uptime
(4)who -b
(5)last reboot
12. Linux中shell变量$$, $!, $?, $-, $*, $#, $@, $0, $1~$2的含义
(1)$$:Shell本身的PID
(2)$!:Shell最后运行的后台Process的PID
(3)$?:最后运行的命令的结束代码
(4)$-:使用Set命令设定的Flag一览
(5)$*:所有参数列表。以"$1 $2 $3...$n"形式输出所有参数
(6)$#:添加到Shell的参数个数
(7)$@:所有参数列表。以"$1" "$2" "$3"..."$n"的形式输出所有参数。
(8)$0:Shell本身的文件名。
(9)$1~$2:添加到Shell的各参数值。$1是第一参数....
13. 网络服务的daemon:netd
(1)Netd是Network Daemon的缩写,表示Network守护进程。
(2)Netd负责跟一些涉及网络的配置,操作,管理,查询等相关的功能实现。比如带宽控制Bandwidth,流量统计,网络地址转换NAT,个人局域网pan,PPP链接, soft-ap,共享上网Tether,配置路由表,interface配置管理等。
14. 基本的Linux操作系统 vs 日志文件系统 vs 写时复制文件系统
(1)基本的linux操作系统:ext,ext2
(2)日志文件系统:ext3, ext4, Reiser, JFS, XFS, ntfs
(3)写时复制系统:ZFS, Btrf
15. Linux创建文件的命令有哪些
(1)touch
(2)vi/vim
(3)>
17. Linux进程类型
按照进程的功能和运行的程序,可以分为:系统进程,用户进程
(1)系统进程:
可以执行内存资源分配和进程切换等管理功能,而且,该进程的运行不受用户的干预,即使是root用户也不能干预系统进程的运行。
(2)用户进程:
通过执行用户程序,应用程序或内核之外的系统程序而产生的进程,此类进程可以在用户的控制下运行或关闭。用户进程又分为:
1)交互进程:由一个shell终端启动的进程,在执行过程中,需要与用户进行交互操作,可以运行于前台和后台。
2)批处理进程:该进程是一个进程集合,负责按顺序启动其他的进程。
3)守护进程:是一直运行的一种进程,经常在linux系统启动时启动,在系统关闭时终止。他们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。比如httpd进程,一直处于运行状态,等待用户的访问。还有crond进程,类似windows的计划任务,可以周期性的执行用户设定的某些任务。
18. 负责IP地址和域名快速解析的文件:hosts文件
hosts文件,以ASCII格式保存在/etc/目录下,包含了ip地址和主机名之间的映射,还包括主机的别名。
在没有域名解析服务器的情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的IP地址,否则就需要使用dns服务程序来解决。
通常可以将常用的域名和IP地址映射加入到hosts文件中,实现快速访问。
19. Red Hat Linux系统中,DHCP服务器可以提供的服务有哪些
(1)提供DNS,网关信息
(2)为特定客户机提供固定IP地址
(3)为主机提供动态的IP地址
20. DNS服务主配置文件:named.conf
21. 对只读配置文件的强制存盘退出指令::wq!
22. 查看物理内存的大小有哪些方式
(1)free:直观的展示linux系统内存使用及交换区的容量大小
(2)top:动态实时查看系统中每一个进程的资源使用情况
(3)cat /proc/meminfo:查看当前系统所在设备的内存信息,比较详细
(4)gnome-system-monitor:显示最近一段时间内的CPU, 内存,交换区和网络使用情况的视图工具
(5)ps aux --sort -rss:各个线程的资源使用情况
(6)vmstat -s:显示实时的和平均的统计,覆盖CPU, 内存,I/O等内容。
23. Linux进程间的六大通信方式
(1)管道/无名管道pipe
(2)信号 signal
(3)报文对列
(4)共享内存
(5)信号量 semaphore
(6)套接字 socket
此外,还有(7)文件锁:也可以实现进程间的通信
24. POSIX线程同步方式有哪些
(1)POSIX信号量
(2)互斥锁
(3)条件变量cond
(4)读写锁
25. ifconfig的主要作用有哪些
(1)用户查看和更改网络接口的地址和参数,包括IP地址,网络掩码,广播地址,其使用权限是超级用户
(2)用于配置本地回环地址
(3)用于配置网卡的IP地址
(4)用于激活网络适配器
不包括:加载网卡到内核中
27. OSI七层模型
(1)应用层:FTP, DNS, Telnet, SMTP, HTTP, WWW, NFS
(2)表示层:JPEG, MPEG, ASII
(3)会话层:NFS, SQL, NETBIOS, RPC
(4)传输层:TCP, UDP, SPX
(5)网络层:IP, ICMP, ARP, RARP, OSPF, IPX, RIP, IGRP, 路由器
(6)数据链路层:PPP, FR, HDLC, VLAN, MAC(网桥,交换机)
(7)物理层:RJ45,CLOCK,IEEE802.3(中继器,集线器,网关)
28. TCP模型
29. 查看TCP连接的命令:netstat
netstat显示网络有关的信息,比如套接口使用情况,路由,接口,协议(TCP)等。
30. Unix系统由哪几部分组成
(1)内核 kernel
(2)外壳 shell
(3)文件系统
(4)应用程序
31. Linux内核锁有哪些
(1)自旋锁 spin_lock:
Linux内核中最基础的锁机制。自旋锁不会引起调用者休眠,如果自旋锁应被其他的执行单元持有,调用者就会一直循环等在该自旋锁的持有者是否已经释放了锁。自旋锁适用于锁的持有者保持锁的时间比较短的情形。
运行在多核处理器上的linux环境中,若临界区非常短,且不允许线程上下文切换的情况下,使用spin_lock机制的性能最好。
(2)读写自旋锁 _RW_LOCK_UNLOCKED:
即没有读没有写的请求时,读者可以获得读写锁。在读写锁没有写者的时候,读者获得其自旋锁。
(3)顺序锁 seq_lock:
是对读写锁的优化。也就是写锁不被读锁所阻塞。写者写的同时,读者可以读。
(4)信号量 semaphore:
信号量和自旋锁的区别是,信号量会引起调用者的休眠。
(5)读-拷贝 RCU:
在访问RCU保护的资源时,读者不需要任何等待,而写者访问它时,首先得拷贝一个副本,然后对父辈修改,最后在没有任何对读者操作时,该资源把指向原来的数据的指针指向新的数据。
32. 查看Linux主机的默认路由:route, netstat
(1)route:显示默认路由
(2)netstat -route:显示默认路由
33. 启动交换文件的命令:swapon
(1)swapon:激活,启动swap
(2)swapoff:关闭系统交换分区
(3)mkswap:设置交换区,可将磁盘分区或文件设为 Linux 的交换区
34. 死锁的必要条件
(1)互斥
(2)请求保持
(3)不可剥夺
(4)环路
35. Samba服务器的配置文件:smb.conf
samba脚本:rc.samba
启动脚本配置文件: initd.conf
WEB服务器配置文件: http.conf
36. dhcpd.conf中用于向某个客户主机分配固定IP地址的参数是:fixed-address
37. 用于设置环境变量的命令: export
(1)export:设置环境变量
(2)echo:查看是否成功
(3)env:显示所有的环境变量
(4)set:显示所有本地定义的Shell变量
(5)unset:清除环境变量
38. 存储用于创建用户目录的系统用户默认文件:/etc/skel
(1)etc/skel:此目录在新建用户时很有用,灵活运用此目录可以节约一定的配置时间。
(2)skel是skeleton的缩写,意为骨骼,框架。故此目录的作用是在建立新用户时,用于初始化用户根目录。
(3)系统会将此目录下的所有文件和目录都复制到新建用户的根目录,并且将用户属主与用户组调整为与此根目录相同。所以可以将用户配置文件预置到/etc/skel目录下,比如说.bashrc, .profile, .vimrc等。
39. Linux在什么情况下发生报错page fault:所需访问虚拟内存未被装载
40. Linux查看中断的命令: cat /proc/kcore
41. Redhat9的安装方式
(1)从本地硬盘驱动器进行安装
(2)通过NFS进行网络安装
(3)通过HTTP进行网络安装
不支持:Telnet的网络安装