Linux面试知识点总结

1.Linux关机重启命令:

在linux命令中reboot重新启动shutdown -r now是立即停止然后重新启动,都说他们两个是一样的,其实是有一定的区别的。
    shutdown命令可以安全地关闭或重启Linux系统,它在系统关闭之前给系统上的所有登录用户提示一条警告信息。该命令还允许用户指定一个时间参数,可以是一个精确的时间,也可以是从现在开始的一个时间段。
    精确时间的格式是hh:mm,表示小时和分钟,时间段由+ 和分钟数表示。系统执行该命令后会自动进行数据同步的工作。
    该命令的一般格式: shutdown [选项] [时间] [警告信息]
    命令中各选项的含义为:
       - k 并不真正关机而只是发出警告信息给所有用户
       - r 关机后立即重新启动
       - h 关机后不重新启动
       - f 快速关机重启动时跳过fsck
       - n 快速关机不经过init 程序
       - c 取消一个已经运行的shutdown
    需要特别说明的是该命令只能由超级用户使用。
    例1,系统在十分钟后关机并且马上重新启动: # shutdown –r +10
    例2,系统马上关机并且不重新启动:# shutdown –h now
  halt是最简单的关机命令,其实际上是调用shutdown -h命令。halt执行时,杀死应用进程,文件系统写操作完成后就会停止内核。
    halt命令的部分参数如下:
     [-f] 没有调用shutdown而强制关机或重启
     [-i] 关机或重新启动之前,关掉所有的网络接口
     [-p] 关机时调用poweroff,此选项为缺省选项

reboot的工作过程与halt类似,其作用是重新启动,而halt是关机。其参数也与halt类似。reboot命令重启动系统时是删除所有的进程,而不是平稳地终止它们。因此,使用reboot命令可以快速地关闭系统,但如果还有其它用户在该系统上工作时,就会引起数据的丢失。所以使用reboot命令的场合主要是在单用户模式。
    init是所有进程的祖先,其进程号始终为1。init用于切换系统的运行级别,切换的工作是立即完成的。init 0命令用于立即将系统运行级别切换为0,即关机;init 6命令用于将系统运行级别切换为6,即重新启动。

2.进程对应的内存空间中所包含的5种不同的数据区:

代码段:代码段是用来存放可执行文件的操作指令,也就是说是它是可执行程序在内存中的镜像。代码段需要防止在运行时被非法修改,所以只准许读取操作,而不允许写入(修改)操作—它是不可写的。
    数据段:数据段用来存放可执行文件中已初始化全局变量,换句话说就是存放程序静态分配的变量和全局变量
    BSS段:BSS段包含了程序中未初始化的全局变量,在内存中bss段全部置零。
    堆(heap):堆是用于存放进程运行中被动态分配的内存段,它的大小并不固定,可动态扩张或缩减。当进程调用malloc等函数分配内存时,新分配的内存就被动态添加到堆上(堆被扩张);当利用free等函数释放内存时,被释放的内存从堆中被剔除(堆被缩减)。
    :栈是用户存放程序临时创建的局部变量,也就是说我们函数括弧“{}”中定义的变量(但不包括static声明的变量,static意味着在数据段中存放变量)。除此以外,在函数被调用时,其参数也会被压入发起调用的进程栈中,并且待到调用结束后,函数的返回值也会被存放回栈中。由于栈的先进后出特点,所以栈特别方便用来保存/恢复调用现场。从这个意义上讲,我们可以把堆栈看成一个寄存、交换临时数据的内存区。

3.Linux文件权限:

为了更加安全的存储文件,Linux为不同的文件赋予了不同的权限,每个文件都拥有下面三种权限:
     ● 所有者权限:文件所有者能够进行的操作。
     ● 组权限:文件所属用户组能够进行的操作。
     ● 外部权限(其他权限):其他用户可以进行的操作。
    查看文件权限
    ls -l 命令可以查看与文件权限相关的信息:

$ls -l /home/amrood
-rwxr-xr--  1 amrood   users 1024  Nov 2 00:10  myfile
drwxr-xr--- 1 amrood   users 1024  Nov 2 00:10  mydir

第一列就包含了文件或目录的权限。

第一列的字符可以分为三组,每一组有三个,每个字符都代表不同的权限,分别为读取(r)、写入(w)和执行(x):
      · 第一组字符(2-4)表示文件所有者的权限,-rwxr-xr-- 表示所有者拥有读取(r)、写入(w)和执行(x)的权限。
      · 第二组字符(5-7)表示文件所属用户组的权限,-rwxr-xr-- 表示该组拥有读取(r)和执行(x)的权限,但没有写入权限。
      · 第三组字符(8-10)表示所有其他用户的权限,rwxr-xr-- 表示其他用户只能读取(r)文件。
   文件访问模式
      文件权限是Linux系统的第一道安全防线,基本的权限有读取(r)、写入(w)和执行(x):
       · 读取:用户能够读取文件信息,查看文件内容。
       · 写入:用户可以编辑文件,可以向文件写入内容,也可以删除文件内容。
       · 执行:用户可以将文件作为程序来运行。
   目录访问模式
      目录的访问模式和文件类似,但是稍有不同:
      · 读取:用户可以查看目录中的文件
      · 写入:用户可以在当前目录中删除文件或创建文件
      · 执行:执行权限赋予用户遍历目录的权利,例如执行 cd 和 ls 命令。

改变权限:
     chmod (change mode) 命令来改变文件或目录的访问权限,权限可以使用符号或数字来表示。
     使用符号表示权限:
     可以增加(+)和删除(-)权限,也可以指定特定权限。
     符号说明:
        +   为文件或目录增加权限
        -   删除文件或目录的权限
        =  设置指定的权限
    下面的例子将会修改testfile文件的权限:

$ls -l testfile
-rwxrwxr--  1 amrood   users 1024  Nov 2 00:10  testfile
$chmod o+wx testfile
$ls -l testfile
-rwxrwxrwx  1 amrood   users 1024  Nov 2 00:10  testfile
$chmod u-x testfile
$ls -l testfile
-rw-rwxrwx  1 amrood   users 1024  Nov 2 00:10  testfile
$chmod g=rx testfile
$ls -l testfile
-rw-r-xrwx  1 amrood   users 1024  Nov 2 00:10  testfile

也可以同时使用多个符号:

$chmod o+wx,u-x,g=rx testfile
$ls -l testfile
-rw-r-xrwx  1 amrood   users 1024  Nov 2 00:10  testfile

使用数字表示权限:
     除了符号,也可以使用八进制数字来指定具体权限,如下表所示:
     数字权限说明:
      0               没有任何权限                                                         ---
      1               执行权限                                                               --x
      2               写入权限                                                               -w-
      3    执行权限和写入权限:1 (执行) + 2 (写入) = 3                  -wx
      4               读取权限                                                               r--
      5    读取和执行权限:4 (读取) + 1 (执行) = 5                         r-x
      6    读取和写入权限:4 (读取) + 2 (写入) = 6                         rw-
      7    所有权限: 4 (读取) + 2 (写入) + 1 (执行) = 7                    rwx

下面的例子,首先使用  ls -1  命令查看testfile文件的权限,然后使用chmod命令更改权限:

$ls -l testfile
-rwxrwxr--  1 amrood   users 1024  Nov 2 00:10  testfile
$ chmod 755 testfile
$ls -l testfile
-rwxr-xr-x  1 amrood   users 1024  Nov 2 00:10  testfile
$chmod 743 testfile
$ls -l testfile
-rwxr---wx  1 amrood   users 1024  Nov 2 00:10  testfile
$chmod 043 testfile
$ls -l testfile
----r---wx  1 amrood   users 1024  Nov 2 00:10  testfile  

更改所有者和用户组
    在Linux中,每添加一个新用户,就会为它分配一个用户ID和群组ID,上面提到的文件权限也是基于用户和群组来分配的。

有两个命令可以改变文件的所有者或群组:
     · chown :chown 命令是"change owner"的缩写,用来改变文件的所有者。
     · chgrp :chgrp 命令是"change group"的缩写,用来改变文件所在的群组。

chown 命令用来更改文件所有者,其语法如下:
        $ chown user filelist
        user 可以是用户名或用户ID,例如
        $ chown amrood testfile
        $ 将testfile文件的所有者改为amrood。

注意:超级用户 root 可以不受限制的更改文件的所有者和用户组,但是普通用户只能更改所有者是自己的文件或目录。

chgrp 命令用来改变文件所属群组,其语法为:
        $ chgrp group filelist
        group 可以是群组名或群组ID,例如
        $ chgrp special testfile
        $ 将文件 testfile 的群组改为 special。

4.死锁:

产生死锁的原因主要是:
   (1) 因为系统资源不足
   (2) 进程运行推进的顺序不合适
   (3) 资源分配不当等。
   如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。 
   产生死锁的四个必要条件:
   (1) 互斥条件:一个资源每次只能被一个进程使用。
   (2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
   (3) 不剥夺条件:进程已获得的资源,在未使用完之前,不能强行剥夺。
   (4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
   这四个条件是死锁的必要条件 ,只要系统发生死锁,这些条件必然成立,而只要上述条件之一不满足,就不会发生死锁。 
   死锁的解除与预防:
   理解了死锁的原因,尤其是产生死锁的四个必要条件,就可以最大可能地避免、预防和解除死锁。所以,在系统设计、进程调度等方面注意如何不让这四个必要条件成立,如何确定资源的合理分配算法,避免进程永久占据系统资源。此外,也要防止进程在处于等待状态的情况下占用资源。因此,对资源的分配要给予合理的规划。

时间: 2024-08-14 05:02:18

Linux面试知识点总结的相关文章

Android面试知识点(转)

该文所有问题转自:http://www.cnblogs.com/hpboy/p/3307371.html 一.算法,数据结构 1.排序算法 2.查找算法 3.二叉树 4.广度,深度算法: 二.java基础 1.集合Collection,List,Map等常用方法,特点,关系: 2.线程的同步,中断方式有几种,线程池,线程状态,常用的方法比较,比如wait,sleep等: 3.反射机制 4.IO包的使用,运用了什么设计模式 5.设计模式,常用的设计模式,运用场景: 6.内存管理,引用的种类: 7.

L--前端开发面试知识点(HTML相关)

简介 前端开发面试知识点大纲: HTML&CSS: 对web标准的理解.浏览器内核的差异.兼容性.hack.css基本功:布局.盒子模型.选择器优先级及使用.HTML5.CSS3.移动端适应. javascript: 数据类型.面向对象.继承.闭包.插件.作用域.跨域.原型链.模块化.自定义事件.内存泄露.事件机制.异步装载回调.模板引擎.nodejs.JSON.ajax 其他:HTTP.安全.正则.优化.重构.响应式.移动端.团队协作.可维护.SEO.UED.架构.职业生涯 1.请你谈谈Coo

linux理论知识点(用于考试)

ps:为其十天左右的linux培训即将结束了,未雨绸缪,为了更好的通过之后的考试,提前多看些考试题和知识点.这是在chinaunix论坛看到的一个帖子,贴来分享. 原文地址:[http://bbs.chinaunix.net/thread-3668921-1-1.html] 一.填空题:1. 在Linux系统中,以 文件 方式访问设备 .2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统.3. Linux文件系统中每个文件用 索引节点来标识.Linux文件系统使用索

Linux面试试题宝典,你能打多少分?大神勿进

linux面试宝典(1)一.选择题1. Linux系统中DNS服务进程名为 (  )A.named  B.httpd  C.ftpd  D.SysLog 2.在UINX/Linux中,系统Root用户口令信息一半保存的文件夹是( )A.autobat  B.service.conf  C.inetd.conf  D.shadow 3. 在下列选项中,属于Linux系统日志服务的是( )A.named  B.httpd  C.ftpd  D.SysLog 4.Linux操作系统支持的文件系统类型是

Linux面试中所谓的专业不专业你怎么看?

先抛出几个问题: 1.MySQL5.6.x包多大? 2.你谈一下linux内核结构? 3.谈谈reboot和shutdown和halt区别 4.200G的数据库你怎么保障其高效稳定运行? 5.给你1000台服务器你怎么规划? 6.你谈谈nginx的相关模块? 7.lvs.haproxy,nginx,apache区别是什么?那个好用? 8.你谈谈redis和mc的区别? 9.谈一下你怎么保障服务器的安全性? 10.谈谈unix和linux的区别? ...... 遇到过一些面试,和朋友经历的面试.总

Java---常用基础面试知识点

综合网上的一点资源,给大家整理了一些Java常用的基础面试知识点,希望能帮助到刚开始学习或正在学习的学员. 1.抽象 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象包括两个方面,一是过程抽象,二是数据抽象. 2.继承 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法. 对象的一个新类可以从现有的类中派生,这个过程称为类继承.新类继 承了原始类的特性,新

linux面试题目--1

Linux面试题目 填空题1. 在Linux系统中,以 (文件)方式访问设备 .2. Linux内核引导时,从文件/etc/fstab 中读取要加载的文件系统.3. Linux文件系统中每个文件用i节点来标识.4. 全部磁盘块由四个部分组成,分别为引导块 .专用块 . i节点表块 和数据存储块.5. 链接分为:硬链接 和 符号链接.6. 超级块包含了i节点表 和 空闲块表等重要的文件系统信息.7. 某文件的权限为:drw-r--r--,用数值形式表示该权限,则该八进制数为: 644,该文件属性是

linux面试题目—2

linux面试题目—2 linux面试题目—2 二 选择题 1.关闭linux系统(不重新启动)可使用命令 B . A Ctrl+Alt+Del B halt C shutdown -r now D reboot 2.实现从IP地址到以太网MAC地址转换的命令为: C . A ping B ifconfig C arp D traceroute 3.在vi编辑器中的命令模式下,键入 B 可在光标当前所在行下添加一新行. A <a>; B <o>; C <I>; D A

Java 面试知识点解析(二)——高并发编程篇

前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大部分内容参照自这一篇文章,有一些自己补充的,也算是重新学习一下 Java 吧. 前序文章链接: Java 面试知识点解析(一)--基础知识篇 (一)高并发编程基础知识 这里涉及到一些基础的概念,我重新捧起了一下<实战 Java 高并发程序设计>这一本书,感觉到心潮澎湃,这或许就是笔者叙述功底扎实的