clinux面試
㈠ linux C語言,有哪些重難點希望得到補充,下面是我自己工作中遇到的自己整理出來的,希望能夠得到補充。
這些都是基本的,真正的工作是程序的設計。比如你要寫一篇文章,你這些都只是文字,詞語。
面試官要了解的是你做過哪些。比如你用socket 做了一個登錄程序,那這個程序的流程是如何的?有哪些改進,比如斷線重連,又比如心跳機制等等。
如果你沒有做過這些,那你頂多就是學校剛出來的,我會放心把重要的崗位給你做嗎?
比如當下最流行的 視頻直播程序。
其實就涉及到了你的這些基本元素,但是你會做嗎?
就好像一個普通的廚師和頂級廚師,所用的材料都差不多,但做出來的就是天差之別。
Linux c是最基層的,還有很多標准庫和各種非標的庫是運用。
㈡ linuxc闈㈣瘯棰樼洰鍙婄瓟妗坙inuxc闈㈣瘯棰
宓屽叆寮忛潰璇曡瘝奼囷紵
宓屽叆寮忚蔣浠跺伐紼嬪笀闈㈣瘯棰樼洰鏁寸悊錛堜簩錛
linux涓鍐呮牳絀洪棿鍙婄敤鎴風┖闂寸殑鍖哄埆錛熺敤鎴風┖闂翠笌鍐呮牳閫氫俊鏂瑰紡鏈夊摢浜涳紵
瀛楃﹁懼囧拰鍧楄懼囩殑鍖哄埆錛岃峰垎鍒鍒椾婦涓浜涘疄闄呯殑璁懼囪村嚭瀹冧滑鏄灞炰簬鍝涓綾昏懼
linux涓緋葷粺璋冪敤榪囩▼錛熷:搴旂敤紼嬪簭涓璻ead()鍦╨inux涓鎵ц岃繃紼嬪嵆浠庣敤鎴風┖闂村埌鍐呮牳絀洪棿錛
鏌ョ湅椹卞姩妯″潡涓鎵撳嵃淇℃伅搴旇ヤ嬌鐢ㄤ粈涔堝懡浠わ紵濡備綍鏌ョ湅鍐呮牳涓宸叉湁鐨勫瓧絎﹁懼囩殑淇℃伅錛熷備綍鏌ョ湅姝e湪浣跨敤鐨勬湁鍝浜涗腑鏂鍙鳳紵
_to_user()鍜宑opy_from_user()涓昏佺敤浜庡疄鐜頒粈涔堝姛鑳斤紵涓鑸鐢ㄤ簬file_operations緇撴瀯鐨勫摢浜涘嚱鏁伴噷闈錛
璇風畝榪頒富璁懼囧彿鍜屾¤懼囧彿鐨勭敤閫斻傚傛灉鎵ц宮knodchartestc464錛屽壋寤篶hartest璁懼囥傝峰垎鏋恈hartest浣跨敤鐨勬槸閭d竴綾昏懼囬┍鍔ㄧ▼搴忋
璁懼囬┍鍔ㄧ▼搴忎腑濡備綍娉ㄥ唽涓涓瀛楃﹁懼囷紵鍒嗗埆瑙i噴涓涓嬪畠鐨勫嚑涓鍙傛暟鐨勫惈涔夈
瀛楃﹀瀷椹卞姩璁懼囨庝箞鍒涘緩璁懼囨枃浠?
insmod涓涓椹卞姩妯″潡錛屼細鎵ц屾ā鍧椾腑鐨勫摢涓鍑芥暟錛焤mmod鍛錛熻繖涓や釜鍑芥暟鍦ㄨ捐′笂瑕佹敞鎰忓摢浜涳紵閬囧埌榪囧嵏杞介┍鍔ㄥ嚭鐜板紓甯告病錛熸槸浠涔堥棶棰樺紩璧風殑錛
璁懼囬┍鍔ㄦā鍨嬩笁涓閲嶈佹垚鍛樻槸錛焢latform鎬葷嚎鐨勫尮閰嶈勫垯鏄錛熷湪鍏蜂綋搴旂敤涓婅佷笉瑕佸厛娉ㄥ唽椹卞姩鍐嶆敞鍐岃懼囷紵鏈夊厛鍚庨『搴忔病錛
鍐呮牳鍑芥暟mmap鐨勫疄鐜板師鐞嗭紝鏈哄埗錛
鐢寵峰唴瀛樼殑鏂瑰紡
IIC鍘熺悊錛屾葷嚎妗嗘灦錛岃懼囩紪鍐欐柟娉
Linux涓鐨勭敤鎴鋒ā寮忓拰鍐呮牳妯″紡鏄浠涔堝惈鎰
鎬庢牱鐢寵峰ぇ鍧楀唴鏍稿唴瀛橈紵
鐢ㄦ埛榪涚▼闂撮氫俊涓昏佸摢鍑犵嶆柟寮
鍐呮牳閰嶇疆緙栬瘧鍙奙akefile?
璋堣皥瀵筕olatile鍏抽敭瀛楃殑鐞嗚В
framebuffer鏈哄埗
spinlock涓庝俊鍙烽噺鐨勫尯鍒
linux涓鐨勫悓姝ユ満鍒
鑷鏃嬮攣鍜屼俊鍙烽噺鍦ㄤ簰鏂ヤ嬌鐢ㄦ椂闇瑕佹敞鎰忓摢浜涳紵鍦ㄤ腑鏂鏈嶅姟紼嬪簭閲岄潰鐨勪簰鏂ユ槸浣跨敤鑷鏃嬮攣榪樻槸淇″彿閲忥紵榪樻槸涓よ呴兘鑳界敤錛熶負浠涔堬紵
椹卞姩閲岄潰涓轟粈涔堣佹湁騫跺彂銆佷簰鏂ョ殑鎺у埗錛熷備綍瀹炵幇錛熻蹭釜渚嬪瓙錛
linux涓鏂瀹炵幇鏈哄埗銆乼asklet鍜寃orkqueue鐨勫尯鍒鍜屽簳灞傚疄鐜扮殑鍖哄埆錛屼負浠涔堣佸尯鍒嗕腑鏂涓婂崐閮ㄥ拰涓鏂涓嬪崐閮
涓鏂鍜岃疆璇㈠摢涓鏁堢巼楂橈紵鎬庢牱鍐沖畾鏄閲囩敤涓鏂鏂瑰紡榪樻槸閲囩敤杞璇㈡柟寮忓幓瀹炵幇椹卞姩錛
鍐欎竴涓涓鏂鏈嶅姟闇瑕佹敞鎰忓摢浜涳紵濡傛灉涓鏂浜х敓涔嬪悗瑕佸仛姣旇緝澶氱殑浜嬫儏浣犳槸鎬庝箞鍋氱殑錛
IRQ鍜孎IQ鏈変粈涔堝尯鍒錛屽湪CPU閲岄潰鏄鏄鎬庝箞鍋氱殑錛
Linux杞涓鏂鍜屽伐浣滈槦鍒楃殑浣滅敤鏄浠涔
闈㈣瘯鏃墮棶浜嗚Вlinux緋葷粺鍚楁庝箞錛
濡傛灉闈炲父鐔熸倝錛岄偅灝辯洿鎺ヨ〃鏄庯紝騫跺睍鍑鴻嚜宸變互鍓嶇殑涓浜涗綔鍝侊紝瀵逛簬涓浜涘父鐢ㄧ殑鍛戒護閮藉彲浠ヨ蹭竴涓嬨
濡傛灉涓嶇啛鎮夛紝灝辮存湁鎺ヨЕ錛屼絾鏄鍒氬叆闂錛屼箣鍚庝細鑷瀛︼紝涓嶈借宸ヤ綔銆
濡傛灉鑷宸變粠鏉ユ病鏈夋帴瑙﹁繃錛屽氨鐩存帴璇存槑鑷宸辨病鏈夋帴瑙﹁繃linux錛岃嚦浜庢槸鍚﹀綍鐢錛岄潰璇曞畼鑷宸變細鍒ゆ柇銆
㈢ Linux運維工程師會面試哪些
知識上面的答主說的很精準了,我來說說技巧。我本身是一名HR,負責新盟教育的Linux講師招聘,所以我需要懂Linux基礎知識,方便對面試者提問。
首先,我會就應聘者簡歷上填寫的內容進行,提問,一般會包括拿到的證書,有無經驗,熟悉的技能,然後我的同事會提問專業內容。比如你寫了擅長MySQL ,Jquery,bootstrap,那麼我們就會提問這些內容,當然都不會特別困難,只需要證明你確實知道,不是在吹噓就行。
其次我們會就崗位需求進行提問,我會問到加班,出差,經驗等問題,我的同事會問會不會某些特定要求的內容,比如zabbix、nagios、elk等……
如果不會,請千萬不要吹牛,我們會問到說明我們肯定知道這玩意,如果吹牛肯定一眼就看出來,然後三兩句話把你送走這樣。
如果你一面過了,要准備二面,那麼請你至少,在二面之前,把我們提到的崗位要求的內容了解一下,避免我們再次提到的時候還是不知道,這樣很影響面試結果。
㈣ 在Linux下用C語言編程
4。守護進程的創建
如果你在DOS時代編寫過程序,那麼你也許知道在DOS下為了編寫一個常駐內存的程序我們要編寫多少代碼了.相反如果在Linux下編寫一個"常駐內存"的程序卻是很容易的.我們只要幾行代碼就可以做到. 實際上由於Linux是多任務操作系統,我們就是不編寫代碼也可以把一個程序放到後台去執行的.我們只要在命令後面加上&符號SHELL就會把我們的程序放到後台去運行的. 這里我們"開發"一個後台檢查郵件的程序.這個程序每個一個指定的時間回去檢查我們的郵箱,如果發現我們有郵件了,會不斷的報警(通過機箱上的小喇叭來發出聲音). 後面有這個函數的加強版本加強版本
後台進程的創建思想: 首先父進程創建一個子進程.然後子進程殺死父進程(是不是很無情?). 信號處理所有的工作由子進程來處理.
#include
#include
#include
#include
#include
#include
#include
/* Linux 的默任個人的郵箱地址是 /var/spool/mail/用戶的登錄名 */
#define MAIL "/var/spool/mail/hoyt"
/* 睡眠10秒鍾 */
#define SLEEP_TIME 10
main(void)
{
pid_t child;
if((child=fork())==-1)
{
printf("Fork Error:%s\n",strerror(errno));
exit(1);
}
else if(child>0)
while(1);
if(kill(getppid(),SIGTERM)==-1)
{
printf("Kill Parent Error:%s\n",strerror(errno));
exit(1);
}
{
int mailfd;
while(1)
{
if((mailfd=open(MAIL,O_RDONLY))!=-1)
{
fprintf(stderr,"%s","\007");
close(mailfd);
}
sleep(SLEEP_TIME);
}
}
}
你可以在默認的路徑下創建你的郵箱文件,然後測試一下這個程序.當然這個程序還有很多地方要改善的.我們後面會對這個小程序改善的,再看我的改善之前你可以嘗試自己改善一下.比如讓用戶指定郵相的路徑和睡眠時間等等.相信自己可以做到的.動手吧,勇敢的探險者.
好了進程一節的內容我們就先學到這里了.進程是一個非常重要的概念,許多的程序都會用子進程.創建一個子進程是每一個程序員的基本要求!
㈤ linux認證面試題及答案(5)
0 1 * * * /bin/sh /usr/bin/fileback
7.有一普通用戶想在每周日凌晨零點零分定期備份/user/backup到/tmp目錄下,該用戶應如何做?
參考答案:(1)第一種方法:
用戶應使用crontab –e 命令創建crontab文件。格式如下:
0 0 * * sun cp –r /user/backup /tmp
(2)第二種方法:
用戶先在自己目錄下新建文件file,文件內容如下:
0 * * sun cp –r /user/backup /tmp
然後執行 crontab file 使生效。
8.設計一個Shell程序,在/userdata目錄下建立50個目錄,即user1~user50,並設置每個目錄的許可權,其中其他用戶的許可權為:讀;文件所有者的許可權
為:讀、寫、執行;文件所有者所在組的許可權為:讀、執行。
參考答案: 建立程序 Pro16如下:
#!/bin/sh
i=1
while [ i -le 50 ]
do
if [ -d /userdata ];then
mkdir -p /userdata/user$i
chmod 754 /userdata/user$i
echo "user$i"
let "i = i + 1" (或租仔茄i=$(($i+1))
else
mkdir /userdata
mkdir -p /userdata/user$i
chmod 754 /userdata/user$i
echo "user$i"
let "i = i + 1" (或i=$(($i+1))
fi
done
五、多選題
1.關於硬鏈接的描述正確的(BE)。
A 跨文件系統 B不可以跨文件系統 D可以做目錄的連接
C 為鏈接文件創建新的i節點 E鏈接文件的i節點同被鏈接文件的i節點
2.在網站發布用戶wang的個人網頁時,需要創建用戶網頁目錄,假定用戶網頁目錄設定為web
(用戶戚鋒目錄在/home目錄下),如下描述正確的是(BCE)
A 存放用戶網頁的絕對路徑/wang/web B存放用戶網頁的目錄~wang/
C 存放用戶網頁的絕對路徑/home/wang/web D存放用戶網頁的絕對路徑/home/web
E 在本機訪問用戶wang的個人網頁的URL地址http://localhost/~wang/
3.在一台WWW伺服器上將端弊察口號設定為8000,默認的網頁文件index.html,伺服器網頁的根目錄/www。在本機訪問伺服器時,正確的用法是(BDE)
A 瀏覽器訪問該伺服器的URL地址http://localhost/
B 瀏覽器訪問該伺服器的URL地址http://localhost:8000/
C 瀏覽器訪問該伺服器的用戶li網頁URL地址http://localhost/~li
D 瀏覽器訪問該伺服器的用戶li網頁URL地址http://localhost:8000/~li
E 瀏覽器訪問該伺服器的URL地址localhost:8000/
4.在shell編程中關於$2的描述正確的是(CE)
A 程序後攜帶了兩個位置參數 B 宏替換 C 程序後面攜帶的第二個位置參數
D 攜帶位置參數的個數 E 用$2引用第二個位置參數
5.某文件的許可權是 - r w x r - - r- -,下面描述正確的是(CD)
A 文件的許可權值是755 B 文件的所有者對文件只有讀權 限
C 文件的許可權值是 744 D 其他用戶對文件只有讀許可權 E同組用戶對文件只有寫許可權
6.關於OpenSSH的作用的描述正確的是(ACE)
A 開放源代碼的安全加密程序 B OpenSSH常用於為http協議加密
C OpenSSH用於提高遠程登錄訪問的安全性 D 它和telnet實用同樣的埠號
E OpenSSH是免費下載的應程序
7.關於NFS伺服器描述正確的是(BC)
A 網路中實現Windows系統之間文件系統共享的應用軟體
B 網路中實現Linux系統之間文件系統共享的應用軟體
C 網路中實現Unix系統之間文件系統共享的應用軟體
D 網路中實現Windows系統和Unix之間文件系統共享的應用軟體
E 網路中實現Windows系統和Linux之間文件系統共享的應用軟體
8.關於sed描述正確的是(ABD)
A sed 是Linux系統中的流編輯器 B sed 是UNIX系統中的流編輯器
C sed 網路文件系統的類型
D 利用管道對標准輸入/標准輸入的數據進行編輯和組合
E sed是NFS的應用程序
9.關於限制磁碟限額,描述正確的是(ABD)
A 使用edquota可以監控系統所有用戶使用的磁碟空間,並在接近極限時提示用戶
B 用戶組的磁碟限額是用戶組內所有用戶予設磁碟空間總和
C 單個用戶的磁碟限額就是該用戶所在用戶組內所有磁碟限額的總合
D 在Linux系統下限制用戶使用的磁碟空間可以使用edquota
E 用戶組的磁碟限額就是該用戶組內擁有最大磁碟限額值的用戶的磁碟限額
10.關於建立系統用戶的正確描述是(ABD)
A 在Linux系統下建立用戶使用adser命令
B 每個系統用戶分別在/etc/passwd和/etc/shadow文件中有一條記錄
C 訪問每個用戶的工作目錄使用命令“cd /用戶名”
D 每個系統用戶在默認狀態下的工作目錄在/home/用戶名
E 每個系統用戶在/etc/fstab文件中有一條記錄
㈥ 嵌入式Linux中關於c面試題
2.某32位系統下, C++程序,請計算sizeof 的值(5分).char str[] = 「 http://www.ibegroup.com/」char *p = str ;int n = 10;請計算sizeof (str ) = ?(1)sizeof ( p ) = ?(2)sizeof ( n ) = ?(3)void Foo ( char str[100]){請計算sizeof( str ) = ?(4)}void *p = malloc( 100 );請計算sizeof ( p ) = ?(5)2>Void GetMemory(char **p, int num){*p = (char *)malloc(num);}void Test(void){char *str = NULL;GetMemory(&str, 100);strcpy(str, "hello");printf(str);}請問運行Test 函數會有什麼樣的結果?3>int i=10, j=10, k=3; k*=i+j; k最後的值是4>以下是求一個數的平方的程序,請找出錯誤:#define SQUARE(a)((a)*(a))int a=5;int b;b=SQUARE(a++);4>C/C++編譯器中虛表是如何完成的?5>.對於一個頻繁使用的短小函數,在C語言中應用什麼實現,在C++中應用什麼實現?6>unsigned char *p1; unsigned long *p2; p1=(unsigned char *)0x801000; p2=(unsigned long *)0x810000; 請問p1+5= ; p2+5= ;