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碼值進行比較,最后將他們按升序輸出。
?
總結
- 上一篇: 交换机中tag、untag的理解
- 下一篇: Spring 3整合Quartz 2实现