linux易错题

  1. 卸载光盘设备 /dev/hdc的正确命令是使用umount后接设备路径或挂载点
    1. umount只需要指定一个参数(设备路径或挂载点),同时提供两者,系统可能报错,因为他们指向同一挂载
  2. 短作业优先调度算法可能导致优先级低的进程出现饥饿现象,因为SJF算法总是优先选择执行时间最短的进程运行,如果系统中不断有短进程到来,那么执行时间较长的进程可能会一直得不到处理机会,从而发生饥饿现象
    先来先服务算法按照进程到达的先后顺序进行调度,只要进程到达就会依次执行,不会出现饥饿现象
    时间片轮转算法让所有进程轮流进行,每个进程分配相同的时间片,所有进程都能得到公平对待,不会出现饥饿
    高响应比优先算法同时考虑进程的等待时间和执行时间,响应比=(等待时间+要求服务时间)/要求服务时间,等待时间越长,优先级越高,避免饥饿
  3. systemctl命令用于管理系统的服务,可以启动、停止、重启、查看状态等,可以查看正在运行的服务进程
  4. du命令在不带任何参数的情况下可显示当前目录及其子目录下所有文件的大小,会递归统计目录占用的磁盘空间,以块为单位显示
  5. df命令用于显示文件系统的磁盘使用情况,显示的是整个分区的空间使用状况,而不是单个文件的大小
  6. > 表示输出重定向
    >>表示输出重定向追加
  7. linux系统调用是用户进程与操作系统内核之间的重要接口,它允许用户程序请求操作系统内核提供的服务。
    1. 系统调用的例子:打开文件、读写文件、创建进程等
  8. ln命令用于创建文件连接,其中软链接是一种特殊的文件,它包含一个指向另一个文件或目录的路径
    1. ln -s file1 link1创建软链接
    2. ln file link 创建硬链接
    3. ln -r file1 link1 表示递归处理目录
    4. 软链接与硬链接的主要区别
      1. 软链接可以跨文件系统
      2. 软链接可以链接目录
      3. 软链接有自己的inode号
      4. 删除源文件后软链接将失效
  9. fstab文件时linux系统中用于存储文件系统信息的重要配置文件,位于/etc目录下,系统在启动时会读取fstab文件中的内容
    1. fstab文件可以描述多种类型的文件系统,linux、ext4、NTFS、FAT32
    2. CD-ROM和软盘的挂载方式可以在fstab中灵活配置,既可以设置为自动挂载也可以设置为手动挂载
    3. fstab文件中描述的文件系统时可以被卸载的,通过umount命令可以卸载已经挂载的文件系统,这是linux系统正常的文件系统管理机制
    4. fstab文件的每一行通常包含文件系统设备、挂载点、文件系统类型、挂载选项、dump选项和fsck选项等信息
  10. linux进程类型主要分为交互进程、批处理进程和守护进程三大类
    1. 就绪进程指的时进程的一种状态,而不是进程类型
    2. 交互进程:通常由终端发起并需要终端的交互
    3. 批处理进程:是一次性执行的程序,他们被提交到作业队列中,由系统调度执行
    4. 守护进程:是在系统引导时启动并一直运行的进程,通常在后台运行
  11. linux系统中的bash配置文件各有不同的作用和执行时机
    1. bash_logout是在退出shell时执行的命令文件,通常用于进行一些清理工作,比如清除临时文件、记录退出日志等
    2. bash_profile是用户级的配置文件,位于用户主目录下,用于配置用户特定的shell环境,只在用户登录时执行一次
    3. /etc/bash.bashrc是系统级的bash配置文件,而不是专用于个人的,个人配置应该在用户主目录下的.bashrc文件中设置
    4. /etc/profile是系统级的环境配置文件,为所有用户设置全局环境变量和启动程序,在用户首次登录时执行
  12. less命令
    1. /字符串 是向下(向后)搜索
    2. ?字符串 是向上(向前)搜索
    3. 空格键 是向下翻页
    4. b键 是向上翻页(backword)
    5. n键 是重复前一个搜索命令
    6. N键 是反向重复前一个搜索命令
  13. grep命令是常用的文本搜索工具,可以在文件中搜索指定的字符串或正则表达式,并显示包含匹配内容的行
    1. 使用场景
      1. 在日志中查找错误信息
      2. 在代码文件中搜索特定函数或变量
      3. 在配置文件中查找特定设置
      4. 结合管道符过滤命令输出结果
    2. grep "被查找的字符串" 文件名
    3. | 管道符,前面命令的标准输出作为后面命令的标准输入
    4. wc命令用于计算字数
    5. -l 表示显示行数
  14. gzip命令是压缩、解压缩文件的命令
  15. find命令主要用于在文件系统中按照文件名、大小、时间等条件查找文件,不能搜索文件内容
  16. sort命令用于对文件内容进行排序
  17. 虚拟内存是计算机系统内存管理的一种即使,使应用程序认为它拥有连续可用的内存,使得每个进程看到的内存空间一致
  18. linux中的crontab是一个用于设置周期性执行任务的工具,五个星号依次代表分钟、小时、日、月、星期
    1. 不支持秒级别的定时任务,最小单位是分钟
    2. 5个星号代表每分钟都执行一次
    3. 除星号外,还可以用具体数字、都好、横杠等来表示不同的时间点
    4. /usr/local/run.sh是要执行的脚本路径
    5. crontab的时间设置非常灵活,可以实现复杂的定时任务需求
  19. linux命令执行成功后返回0作为退出状态码
    1. 1通常表示命令执行出现一般性错误
    2. 2通常表示命令使用不当,比如参数错误
    3. -1不是标准的退出状态码,在shell中退出状态码是0-255之间的整数
  20. nohup命令是系统中专门用于让进程在后台运行且不受终端退出影响的命令
    1. 当用户退出登录后,普通的进程会被终止,但使用nohup启动的进程会继续运行
    2. 工作原理:免疫信号,该信号在用户退出终端时发送给所有子进程
    3. 使用nohup的典型方式:nohup command &
      1. command表示要执行的命令
      2. &表示在后台运行
      3. nohup会将命令的输出重定向到nohup.out文件中
  21. 死锁的必要条件
    1. 互斥:进程对所分配到的资源进行排他性使用,其他进程不能访问
    2. 请求保持:进程已获得部分资源,在等待其他资源时继续占有已有资源不释放
    3. 不可剥夺:进程获得的资源在未使用完之前不能被其他进程强行剥夺,只能由进程自己释放
      1. 允许资源剥夺来破坏不可剥夺条件
    4. 环路:存在一系列进程组成的环路,每个进程都在等待下一个进程占有的资源
      1. 采用资源有序分配来预防环路等待
  22. linux用户磁盘配额配置文件 aquota.user的默认访问权限是600
  23. 进程之间的通信方式:共享内存、消息队列、系统管道
    1. 共享内存:允许两个或多个进程共享一个给定的存储区,数据不需要再进程间复制,因此效率很高
    2. 消息队列:提供了一个由消息链表维护的字节流通信方式,进程可以向消息队列写入或读取消息,实现进程间的数据传递
      1. 同步通信机制
      2. 允许进程通过发送和接收消息来进程数据交换,发送方和接收方的执行是同步的
    3. 系统管道:提供了单项数据流,可用于具有亲缘关系的进程间通信,包括匿名管道和命名管道
      1. 典型的单项通信机制,数据只能从一段写入,从另一端读出,如果需要双向通信,需要建立两个管道
      2. 匿名管道:内核中临时的、无文件系统的通信通道,仅存于内存中,依赖进程间的继承关系实现通信
        1. 创建方式:pipe()系统调用
        2. 生命周期:随进程结束自动销毁
      3. 命名管道:是内核中具有文件系统路径的通信通道,独立于进程存在,支持非亲缘关系的进程间通信
        1. 创建方式:mkfifo()系统调用或mknod命令
        2. 生命周期:需手动删除(或文件系统清理)
    4. 信号:异步通信机制,用于向进程发送事件通知,进程收到信号后,可根据预设逻辑异步处理该事件
    5. 信号量:是一种同步原语,本质上是一个计数器,用于控制多个进程对共享资源的互斥或同步访问
    6. 套接字:是跨主机进程通信的标准接口,通过网络地址------端口标识通信断电,支持不同主机或同一主机的进程间数据传输
  24. Makefile是在软件开发中用于构建和还礼项目的重要工具
    1. makefile 确实保存了编译器和连接器的参数选项,这些参数选项可以包括编译标志、链接库、优化级别等
    2. makefile的五个基本要素
      1. 显示规则:明确指定如何生成目标文件
      2. 隐晦规则:make的默认规则
      3. 变量定义:定义和使用变量
      4. 文件指示:如include等指令
      5. 注释:#开头的说明文字
  25. top命令是linux系统中常见的CPU资源监控文件,能够实时显示系统中各个进程的资源占用状况,包括CPU使用率、内存使用、运行时间等信息
    1. top命令的主要特点
      1. 可以实时的动态的查看系统的整体运行状况
      2. 默认每三秒更新一次显示内容
      3. 可以按CPU、内存等资源使用量对进程进行排序
      4. 能够显示进程的详细信息,如PID、用户、优先级等
      5. 支持交互式命令来管理进程
  26. POSIX互斥锁的相关函数
    1. 用于销毁的互斥锁:pthread_mutex_destroy
    2. 用于对互斥锁进行加锁:pthread_mutex_lock
    3. 用于尝试对互斥锁进行加锁,如果加锁失败则立即返回而不是阻塞等待
    4. 创建互斥锁
      1. 使用pthread_mutex_init函数动态初始化
      2. 使用PTHREAD_MUTEX_INITIALIZER宏进行静态初始化
  27. 终止前台进程可能用到的命令和操作
    1. kill
      1. 可以通过进程PID来终止指定的进程
      2. 支持发送不同的信号来控制进程行为
      3. 适用于终止后台和前台进程
      4. 使用格式:kill [-signal] pid
    2. Ctrl+C
      1. 是终止前台进程最简单直接的方式
      2. 向前台进程发送SIGINT信号
      3. 用户可以通过键盘快捷操作实现
      4. 只能用于终止当前终端的前台进程
  28. shut down:关机命令,用于关闭整个系统
  29. halt:系统级的关机命令,会终止所有进程并关闭系统,不适合用来终止单个进程
  30. PCB-process control block进程控制块,是linux操作系统中进程管理的核心数据结构,它包含了操作系统管理进程所需的所有信息
    1. PCB记录了进程当前的状态、程序计数器、CPU寄存器、内存管理信息、I/O状态信息等重要数据
    2. 通过PCB操作系统能对进程进行有效的管理和调度,并能快速定位到进程的程序段和数据段
  31. CONTEXT-上下文,是指进程执行时CPU的状态信息,它指示PCB的一部分内容,而不是完整的进程管理数据实体
  32. 在linux/unix中,每个进程默认打开三个文件描述符
    1. 0:标准输入
    2. 1:标准输出
    3. 2:标准错误输出
  33. linux进程地址空间的划分为用户空间和内核空间
    1. 32位系统中,0~3G划分为用户空间,3G~4G划分为内核空间,这种划分有利于内存管理和系统安全
  34. unix系统是由Kernel-内核、Shell-外壳、文件系统及应用程序
    1. 内核:核心部分,负责管理系统的硬件资源,提供进程管理、内存管理、文件系统管理等基本功能
    2. 外壳:是用户与内核之间的接口层,负责解释用户命令并传递给内核执行,shell提供了命令行界面,支持脚本编程
    3. 工具及应用程序:文本编辑器、编译器、文件处理工具等各类应用软件
  35. rpm -qf命令用于查询指定文件属于哪个软件包,这是标准的查询文件所属包的方法
    1. rpm -requires:用于显示软件包的依赖关系
    2. rpm -q:命令后面需要跟包名而不是文件名,这个命令用于查询某个包是否安装
  36. 进程是具有一定独立功能的程序,关于某个数据集合上的一次运行活动,是操作系统进行资源分配和调度的一个独立单位
    1. 线程是进程的一个实体,一个进程包括多个线程,是CPU调度和分派的基本单位,是比进程更小的能独立运行的基本单位
    2. 进程有独立的地址空间,线程是共享进程的地址空间
  37. linux的负载监控
    1. uptime-适合快速查看:可以显示系统运行时间和平均负载,他会显示1分钟、5分钟、15分钟的系统平均负载值
    2. top-适合实时监控:可以实时显示系统的负载情况,包括CPU使用率、内存使用、进程状态等信息
    3. sar-适合历史数据分析和定时采样:是一个全面的系统性能分析工具,可以手机、记录和报告系统的CPU使用率、内存使用、磁盘I/O、网络I/O等负载指标
  38. linux中的文件系统类型:ext系列、XFS、Btrfs等
    1. NTFS是windows标准的系统文件系统
    2. ext2:主要用于管理硬盘分区和文件,采用索引节点来管理文件数据
    3. ext3:在ext2的基础上增加了日志功能,日志功能可以在系统崩溃后快速回复文件系统,提高了可靠性
    4. ext4:是ext3的升级版,支持更大的文件和文件系统容量,引入了多块分配和延迟分配等特性,显著提升了性能
  39. RAID各级别具有不同的特点和应用场景
    1. RAID5-平衡了性能和冗余:采用条带化+分布式奇偶校验的方式,至少需要3块硬盘,2块用于数据存储,1块用于奇偶校验
    2. RAID10-高性能和高可用性:先做镜像再做条带,因此至少需要4块硬盘,由于采用镜像方式,具有100%的数据冗余
    3. RAID0-追求性能:只有条带化功能,可以提供很高的读写速率,但不具备数据冗余能力,当任何一块磁盘损坏的时候,所有数据都会丢失
    4. RAID1-用于数据安全:采用镜像方式工作,数据在多块磁盘上完全相同,RAID1具有很好的数据安全性和高可用性,当一块盘出现故障时,可以从镜像盘读取数据,保证服务持续进行
  40. inode是文件系统中重要的数据结构,用于存储文件的元数据信息
    1. 实际内容是存储在数据块中的
    2. inode记录的信息
      1. 文件的权限
      2. 文件的所有者和所属组
      3. 文件类型
      4. 文件的硬链接数
      5. 指向数据块的指针
  41. whereis:专门用来查找二进制文件、源代码和man手册页文件的命令,他在系统中的特定位置是由($PATH环境变量指定的目录)进行搜索
    1. 特点
      1. 可以同时查找二进制文件、源代码文件和man手册页
      2. 搜索范围限定在特定的系统目录中
      3. 搜索速度较快,因为只在固定的目录下查找
      4. 输出结果会显示所有找到的匹配文件的完整路径
  42. whatis:用于显示命令的简短描述,会在man手册页的NAME部分进行搜索,并返回命令的简单说明,不负责查找文件
  43. which:仅用于在PATH环境变量指定的路径中搜索可执行文件的位置,不会搜索源代码和帮助文件,只显示第一个匹配的可执行文件的完整路径
  44. linux的DNS配置信息:/etc/resolv.conf
    1. 包含了域名服务器的IP地址、搜索域等重要的DNS解析相关信息。系统在进行域名解析时首先读取这个文件的配置内容
    2. nameserver:指定DNS服务器的IP地址
    3. domain:指定本地域名
    4. search:指定域名搜索列表
    5. options:指定一些解析器的选项
  45. Linux最早是由一位名叫Linus Torvalds的计算机爱好者开发
  46. Linux系统中用户组GID变更后对用户登录的影响
    1. /etc/passwd文件存储了用户的基本信息,包括用户ID(UID)和主组ID(GID)。当通过修改/etc/group文件改变了sales组的GID后,/etc/passwd文件中Jack用户的GID还保持着旧值,造成了不匹配,这种不一致会导致Jack无法正常登录系统
    2. 修复方法:将/etc/passwd文件中Jack用户记录的GID字段更新为新的sales组GID值,这样Jack就能重新正常登录系统了
  47. 在linux中,链接分为硬链接和软链接
    1. 硬链接不会创建inode,他跟源文件是同一个文件,inode也跟源文件是同一个,因此不能跨文件系统
    2. 软链接会创建一个新的文件和inode,类似与指针指向源文件,是可以跨文件系统的
相关推荐
wxjlkh2 分钟前
powershell 批量测试ip 端口 脚本
java·服务器·前端
翟天保Steven34 分钟前
Ubuntu-安装Epics教程
linux·ubuntu·epics
Nightwish537 分钟前
Linux随记(二十一)
linux·运维·服务器
IT成长日记3 小时前
【自动化运维神器Ansible】Ansible常用模块之File模块详解
运维·自动化·ansible·file·常用模块
獭.獭.3 小时前
Linux -- 文件【上】
linux·运维·服务器·进程·pcb
不会敲代码的XW3 小时前
高可用集群KEEPALIVED的详细部署
运维·云原生
老实巴交的麻匪3 小时前
提问的智慧,用最少的时间获得最有效的帮助
运维·团队管理
nbsaas-boot4 小时前
收银系统优惠功能架构:可扩展设计指南(含可扩展性思路与落地细节)
java·大数据·运维
爱喝酸奶的桃酥4 小时前
解密负载均衡:如何轻松提升业务性能
运维·负载均衡
搬码临时工4 小时前
使用FRP搭建内网穿透工具,自己公网服务器独享内外网端口转发
运维·服务器