Linux面试问题

grep和find的区别?

所以简单点说说,grep是查找匹配条件的行,find是搜索匹配条件的文件。

find /dir -name filename

grep的使用干货:

ls -l | grep '^a' 通过管道过滤ls -l输出的内容,只显示以a开头的行。

grep 'test' d* 显示所有以d开头的文件中包含test的行。

grep 'test' aa bb cc 显示在aa,bb,cc文件中匹配test的行。

grep '[a-z]' aa 显示所有包含每个字符串至少有5个连续小写字符的字符串的行。

grep 'w(es)t.*' aa 如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着另外一个es(),找到就显示该行。如果用egrep或grep -E,就不用""号进行转义,直接写成'w(es)t.*'就可以了。

 

Shell函数的声明和调用(linux编程和bash编程)

其中关于函数的声明有两种方法:

Linux中查看内存使用状况的命令行?

进程之间切换有哪些无法切换的?

 进程有三种基本状态:就绪,阻塞,运行

就绪和阻塞的区别:就绪:该得到的资源都有了,就差分配cpu了。阻塞是调用出现了冲突,需要等待一个特定程序发生。

就绪有就绪队列,等待有等待队列。用自己的引用存过去。 所以二者之间的切换,是从一个队列移动到另一个队列中

当然理论上上述三种状态之间转换分为六种情况;

运行---》就绪:这是有调度引起的,主要是进程占用CPU的时间过长

就绪---》运行:运行的进程的时间片用完,调度就转到就绪队列中选择合适的进程分配CPU

运行---》阻塞:发生了I/O请求或等待某件事的发生

阻塞---》就绪:进程所等待的事件发生,就进入就绪队列

以上4种情况可以相互正常转换,不是还有两种情况吗?

阻塞--》运行:即使给阻塞进程分配CPU,也无法执行,操作系统載进行调度时不会載阻塞队列进行挑选,其调度的选择对象为就绪队列:

就绪--》阻塞:因为就绪态根本就没有执行,何来进入阻塞态?

  • Uniq -c:-c或--count 在每列旁边显示该行重复出现的次数。

linux命令行中:sort user.txt:sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。

 

猜你喜欢

转载自blog.csdn.net/qq_36067000/article/details/82530620