1. 程式人生 > >Linux職場解讀:如何進入500強企業?

Linux職場解讀:如何進入500強企業?

linux 職場

職場解讀:如何進入500強企業?



面試題:請解釋Linux中/dev/null和/dev/zero兩個文件的作用和區別。

在類Unix操作系統中,設備節點並不一定要對應物理設備。沒有這種對應關系的設備被稱之為偽設備。操作系統運用了它們實現多種多樣的功能,/dev/null和/dev/zero就是這樣的設備,類似的還有/dev/urandom、/dev/tty等。

先檢查下/dev/null和/dev/zero兩個文件的屬性:
[root@oldboy ~]# ls -l/dev/null /dev/zero
crw-rw-rw-. 1 root root 1, 3Jul 15 00:11 /dev/null
crw-rw-rw-. 1 root root 1, 5Jul 15 00:11 /dev/zero

提示:從文件屬性可以看出這兩個文件都是字符設備文件。
/dev/null
/dev/null介紹
大家都知道宇宙中“太陽黑洞”吧,所有的天體(含地球)一旦進入了太陽黑洞都會消失的無影無蹤。這裏的/dev/null就是Linux系統中的"黑洞"。

在類Unix系統中,/dev/null(空設備文件或黑洞文件)是一個特殊的設備文件,所有寫入其中的數據,都會被丟棄的無影無蹤,/dev/null通常被用於丟棄不需要的數據輸出,或作為用於輸入流的空文件。這些操作通常由重定向完成。
/dev/null實踐
範例1-1:清空文件
[root@oldboy ~]# cp/etc/hosts{,.ori}#<==備份。
[root@oldboy ~]# cat /dev/null>/etc/hosts#<==將讀取黑洞設備寫入到/etc/hosts,表示清空hosts文件。
[root@oldboy ~]# cat/etc/hosts#<==果然沒了。使用上述備份恢復回來。
範例1-2:將無用的輸出流寫入到黑洞丟棄。
當取一個地址響應頭的第一行時,加上管道就會出現下面的特殊結果:
[root@oldboy ~]# curl -Iwww.oldboyedu.com|head -1
% Total % Received % Xferd AverageSpeed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
HTTP/1.1 200 OK
執行上述命令時,會憑空多出來的幾行無用信息,此時就可以使用將錯誤信息定向到黑洞(2>/dev/null)的方式丟棄無用信息。
[root@oldboy ~]# curl -Iwww.oldboyedu.com 2>/dev/null|head -1 #<==將錯誤信息定向到黑洞。
HTTP/1.1 200 OK
當然了curl命令也提供了實現參數,這裏暫且不多表。
[root@oldboy ~]# curl -I -s www.oldboyedu.com|head-1
HTTP/1.1 200 OK
範例1-3:將定時任務腳本結尾加上>/dev/null 2>&1
在書寫定時任務總,規範的寫法就是將所有定時任務腳本結尾加上>/dev/null 2>&1,讓所有的輸出流(包括錯誤的和正確的)都定向到空設備丟棄。
[root@oldboy ~]# crontab -l
#time sync by oldboy at2010-2-1
*/5 * * * * /usr/sbin/ntpdatetime.windows.com >/dev/null 2>&1
#bak all db
00 01 * * * /bin/sh/server/scripts/mysqlbak.sh >/dev/null 2>&1
/dev/zero
和/dev/null類似,/dev/zero也是一個特殊的字符設備文件,當我們使用或讀取它的時候,它會提供無限連續不斷的空的數據流(特殊的數據格式流)。
/dev/zero文件的常見應用場景有二:
a./dev/zero文件覆蓋其他文件信息。
b.產生指定大小的空文件,例如:交換文件、模擬虛擬文件系統等。
/dev/zero實踐
範例1-5:產生指定大小的空文件。
[root@oldboy ~]# dd if=/dev/zeroof=test.data bs=1M count=2 #<==生成塊大小1M,含有2個塊的文件。
2+0 records in
2+0 records out
2097152 bytes (2.1 MB) copied,0.00279345 s, 751 MB/s
[root@oldboy ~]# ls -lhtest.data
-rw-r--r--. 1 root root 2.0MJul 15 20:20 test.data #<==一共2M大小。
[root@oldboy ~]# filetest.data
test.data: data #<==特殊的數據文件格式。
提示:在使用dd命令產生空文件時常用/dev/zero作為字符流的源。
範例1-4:利用/dev/zero文件覆蓋其他文件信息
[root@oldboy ~]# echo oldboy>new.txt #<==生成一個新文件寫入oldboy字符串。
[root@oldboy ~]# ddif=/dev/zero of=new.txt bs=1M count=10 #<==用空的字符流覆蓋存在的new.txt文件。
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied,0.0475368 s, 221 MB/s



來自夢夢的提醒
1、了解你面試的單位
在接受面試之前一定要把你所面試的這家單位的基本情況搞清楚。什麽行業,做什麽業務以及當你來到這個公司就職以後,你能為你所在的崗位做些什麽?最好是自己在心裏演練一遍,做到在面試的時候處變不驚,有條不紊!
2、給人一個好的第一印象
一個好的印象是接下來能不能合作的關鍵。首先去面試的時候著裝正式,舉止應該大方得體,面試官來了一定要站起來問好,最差的也要說句“您好”。回答問題的時候要思路明確,口齒清晰,這樣才能在面試中脫穎而出。
3、主要細節和禮貌
當你在面試的時候,面試官可能會對你的回答給出一些建議,這個時候千萬不要忘記說聲“謝謝您的指導”,不管面試官有沒有看上你,面試結束的時候也要保持微笑,點頭示意!

學習Linux最好途徑就是關註老男孩雙十一活動。

Linux職場解讀:如何進入500強企業?