linux常见的23道面试题总结分享,linux23道


1.ps的用法ps -ef其中各列的内容意思如下(8列)UID //用户ID、但输出的是用户名PID //进程的IDPPID //父进程IDC //进程占用CPU的百分比STIME //进程启动到现在的时间TTY //该进程在那个终端上运行,若与终端无关,则显示 若为pts/0等,则表示由网络连接主机进程。CMD //命令的名称和参数

ps -aux同ps -ef 不同的有列有(11列)%CPU //进程占用的CPU百分比%MEM //占用内存的百分比VSZ //该进程使用的虚拟內存量(KB)RSS //该进程占用的固定內存量(KB)(驻留中页的数量)STAT //进程的状态START //该进程被触发启动时间TIME //该进程实际使用CPU运行的时间

2.killkill命令用来中止一个进程。杀死进程最安全的方法:kill pid强行中止:kill -9 pid和缓的重启进程:kill -HUP PID使用进程名字中止:killall httpd杀死它和它的子进程:kill -TERM PPID

3.crontab配置 , 如何实现每秒执行第一列 分钟: 1——59第二列 小时: 1——23(0表示子夜)第三列 日 : 1——31第四列 月 : 1——12第五列 星期: 星期0——6(0表示星期天,1表示星期一、以此类推)第六列 要运行的命令http://blog.csdn.net/fdipzone/article/details/22701113

4.进程和线程的区别进程就是一个“执行中的程序”,它是一个动态的概念,它可以申请和拥有系统资源。进程作为分配资源的基本单位线程是进程中的一部分,进程中可以包含若干个线程,它们可以利用进程所拥有的资源。线程作为独立运行和独立调度的基本单位。由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度。

5.进程的状态三态模型(1)运行:当一个进程在处理机上运行时,则称该进程处于运行状态。(2)就绪:当一个进程获得了除处理机以外的一切所需资源,一旦得到处理机即可运行,则称此进程处于就绪状态。(3)阻塞:也称为等待或睡眠状态,一个进程正在等待某一事件发生(例如请求I/O而等待I/O完成等)而暂时停止运行,这时即使把处理机分配给进程也无法运行,故称该进程处于阻塞状态。五态模型:对于一个实际的系统,进程的状态及其转换更为复杂。引入新建态和终止态构成了进程的五态模型。

6.chmod chown chgrp(1)chmod变动文件属性r=4,w=2,x=1 格式:chmod 777 file 三个数字代表User、Group、及Other的权限(2)chown 转变文件拥有者 -R选项意味着对所有子目录下的文件也都进行同样的操作格式:chown 用户名:用户组:文件/目次 例:chown -R root:root /home(3)chgrp 转变文件所属用户组-R选项意味着对所有子目录下的文件也都进行同样的操作格式:chgrp 用户组 文件名 例:chgrp -R user smb.conf

7. vim(1)替换:使用 :s 命令来替换字符串:s/vivian/sky/ 替换当前行第一个 vivian 为 sky:s/vivian/sky/g 替换当前行所有 vivian 为 sky:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky(2)查找: 使用/word 下一个n 上一个N(3) 剪切一行:dd (4)复制一行:yy (5)粘贴:p(6)定位:gg定位到第一行,G定位到最后一行(7)删除所有行:1,$d (8)撤销: u (9)反撤销:ctrl+r

8.rm删除Linux系统中的文件或目录要慎用rm -rf *这样的命令-f 强制删除,忽略不存在的文件,从不给出提示-i 交互模式删除文件,删除文件前给出提示-r递归的删除目录下面文件以及子目录下文件

9.sortsort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。-r以相反的顺序来排序。-f排序时,忽略大小写字母。-b忽略每行前面开始出的空格字符。

10.uniquniq命令删除文件中的重复行。注:uniq只除去相邻的重复的行,可以使用 sort 命令使所有重复行相邻,然后可以真正的去除所有重复的行-c 在输出行前面加上每行在输入文件中出现的次数。-d 仅显示重复行。-u 仅显示不重复的行。

11.查询某一段时间的日志awk-F']''($1>="2017-03-1201:50:11"&&$1<="2017-03-1201:50:13"){print$1}'

12.堆和栈的区别  一、堆栈空间分配区别:  1、栈(操作系统):由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈;  2、堆(操作系统): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。  二、堆栈缓存方式区别:  1、栈使用的是一级缓存, 他们通常都是被调用时处于存储空间中,调用完毕立即释放;  2、堆是存放在二级缓存中,生命周期由虚拟机的垃圾回收算法来决定(并不是一旦成为孤儿对象就能被回收)。所以调用这些对象的速度要相对来得低一些。  三、堆栈数据结构区别:  堆(数据结构):堆可以被看成是一棵树,如:堆排序;  栈(数据结构):一种先进后出的数据结构。

13.Linux进程结构可由三部分组成:代码段、数据段、堆栈段。也就是程序、数据、进程控制块PCB(Process Control Block)组成。进程控制块是进程存在的惟一标识,系统通过PCB的存在而感知进程的存在。代码段存放程序的可执行代码。数据段存放程序的全局变量、常量、静态变量。堆栈段中的堆用于存放动态分配的内存变量,堆栈段中的栈用于函数调用,它存放着函数的参数、函数内部定义的局部变量。

14.IO模型常见的IO模型有四种:(1)同步阻塞IO(BlockingIO):即传统的IO模型。(2)同步非阻塞IO(Non-blockingIO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非Java的NIO(NewIO)库。(3)IO多路复用(IOMultiplexing):即经典的Reactor设计模式,有时也称为异步阻塞IO,Java中的Selector和Linux中的epoll都是这种模型。(4)异步IO(AsynchronousIO):即经典的Proactor设计模式,也称为异步非阻塞IO。同步和异步的概念描述的是用户线程与内核的交互方式:同步是指用户线程发起IO请求后需要等待或者轮询内核IO操作完成后才能继续执行;而异步是指用户线程发起IO请求后仍继续执行,当内核IO操作完成后会通知用户线程,或者调用用户线程注册的回调函数。阻塞和非阻塞的概念描述的是用户线程调用内核IO操作的方式:阻塞是指IO操作需要彻底完成后才返回到用户空间;而非阻塞是指IO操作被调用后立即返回给用户一个状态值,无需等到IO操作彻底完成。

15.find在目录结构中搜索文件,并执行指定的操作。find pathname -options [-exec]-name 按照文件名查找文件。-mtime -n +n 按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。例: php {} \;

16.文件属性l是链接d是目录c是字符设备文件b是块设备 -是文件

17.socket网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。

18.tar压缩操作:# tar -cvf /usr/local/auto_bak/test.tar /usr/local/test仅打包,不压缩# tar -zcvf /usr/local/auto_bak/test.tar.gz /usr/local/test打包后,以gzip压缩解压操作:#tar -zxvf /usr/local/test.tar.gz

19.软连接软连接: ln -s 源文件 目标文件20.shell操作光标ctrl + a移动光标到行首crtl + e移动光标到行尾ctrl + u 删除光标左边的内容

20.全局查找查找某个目录所有文件里是否含有某个字符串:(1)进入要查询的目录(2)grep -rn "hello world" *

21.快捷键复制:ctrl+insert粘贴:shift+insert

22.dstat实时地看到所有系统资源使用情况CPU状态:CPU的使用率,这项报告更有趣的部分是显示了用户,系统和空闲部分磁盘统计:磁盘的读写操作,这一栏显示磁盘的读、写总数。网络统计:网络设备发送和接受的数据,这一栏显示的网络收、发数据总数。分页统计:系统的分页活动系统统计:这一项显示的是中断(int)和上下文切换(csw)

23.历史命令history记录执行过的命令ctrl+r 反向查询历史命令

相关内容