面試linux
㈠ 一般面試linux都問什麼問題
平時用的不多的或者確實本身就有點模糊的,非常感謝面試官的解釋,這里記錄下:
文件許可權 4755的涵義 = 文件許可權中s/S的意義?
chmod是Linux下設置文件許可權的命令,後面的數字表示不同用戶或用戶組的許可權。
一般是三個數字:
第一個數字表示文件所有者的許可權
第二個數字表示與文件所有者同屬一個用戶組的其他用戶的許可權
第三個數字表示其它用戶組的許可權
許可權分為三種:讀(r=4),寫(w=2),執行(x=1)。綜合起來還有可讀可執行(rx=5=4+1)、可讀可寫(rw=6=4+2)、可讀可寫可執行(rwx=7=4+2+1)。
所以,chmod 755 設置用戶的許可權為:
1.文件所有者可讀可寫可執行
2.與文件所有者同屬一個用戶組的其他用戶可讀可執行
3.其它用戶組可讀可執行
chmod 4755與chmod 755 的區別在於開頭多了一位,這個4表示其他用戶執行文件時,具有與所有者相當的許可權。
文章Linux中的文件特殊許可權中通過實例很好地解釋了這里的4的含義:
先看個實例,查看你的/usr/bin/passwd 與/etc/passwd文件的許可權
[root@MyLinux ~]# ls -l /usr/bin/passwd /etc/passwd
-rw-r--r--1 root root 154908-1913:54/etc/passwd
-rwsr-xr-x 1 root root 229842007-01-07/usr/bin/passwd
眾所周知,/etc/passwd文件存放的各個用戶的賬號與密碼信息,/usr/bin/passwd是執行修改和查看此文件的程序,但從許可權上看,/etc/passwd僅有root許可權的寫(w)權,可是為什麼每個用戶都可以直接調用/usr/bin/passwd來寫/etc/passwd從而達到修改自己的密碼呢?注意這里的s代替了x( -rwsr-xr-x 1 root root 229842007-01-07/usr/bin/passwd) , 這里的s使得其他的用戶執行/usr/bin/passwd時具有與owner root相當的許可權。
這里的4或s是特殊的文件許可權,其實s可以用在user或group,還有另一種特殊許可權t:
再看個實例,查看你的/tmp目錄的許可權
[root@MyLinux ~]# ls -dl /tmpdrwxrwxrwt 6 root root 4096 08-22 11:37 /tmp tmp目錄是所有用戶共有的臨時文件夾,所有用戶都擁有讀寫許可權,這就必然出現一個問題,A用戶在/tmp里創建了文件a.file,此時B用戶看了不爽,在/tmp里把它給刪了(因為擁有讀寫許可權),那肯定是不行的。
有t特權的目錄下的文件或目錄只有owner和root才可以刪除和修改,其他的人即使有寫許可權也不能刪除。
如何設置以上特殊許可權:
setuid:chmod u+s xxx
setgid: chmod g+s xxx
stick bit : chmod o+t xxx
或者使用八進制方式,在原先的數字前加一個數字,三個許可權所代表的進制數與一般許可權的方式類似,如下:
suid guid stick bit
1 1 1
所以:
suid的二進制串為:100,換算十進制為:4
guid的二進制串為:010,換算十進制:2
stick bit 二進制串:001,換算十進制:1
於是也可以這樣設:
setuid:chmod 4755 xxx
setgid:chmod 2755 xxx
stick bit:chmod 1755 xxx
最後,在一些文件設置了特殊許可權後,字母不是小寫的s或者t,而是大寫的S和T,那代表此文件的特殊許可權沒有生效,是因為你尚未給它對應用戶的x許可權.
硬鏈接和軟連接的大小?
通過下面的測試,硬鏈接與源文件是相同的inode節點,指向相同的文件,肯定是相同的大小;軟連接可以理解為文件內容中存儲了源文件的地址或路徑,所以有自己的大小。
[aaa@myvm ~]$ mkdir mytest
[aaa@myvm ~]$ cd mytest
[aaa@myvm mytest]$ echo "AAAAAAAAAAAAAAAAA" >hello
[aaa@myvm mytest]$ ln hello hello2
[aaa@myvm mytest]$ ln -s hello hello3
[aaa@myvm mytest]$ ls -lia
總計 16
5764989 drwxrwxr-x 2 aaa aaa 4096 11-25 16:03 .
5566272 drwx------ 23 aaa aaa 4096 11-25 16:02 ..
5765068 -rw-rw-r-- 2 aaa aaa 18 11-25 16:03 hello
5765068 -rw-rw-r-- 2 aaa aaa 18 11-25 16:03 hello2
5765116 lrwxrwxrwx 1 aaa aaa 5 11-25 16:03 hello3 -> hello
[aaa@myvm mytest]$ echo "BBBBBBBBBBB" >>hello
[aaa@myvm mytest]$ ls -lia
總計 16
5764989 drwxrwxr-x 2 aaa aaa 4096 11-25 16:03 .
5566272 drwx------ 23 aaa aaa 4096 11-25 16:02 ..
5765068 -rw-rw-r-- 2 aaa aaa 30 11-25 16:04 hello
5765068 -rw-rw-r-- 2 aaa aaa 30 11-25 16:04 hello2
5765116 lrwxrwxrwx 1 aaa aaa 5 11-25 16:03 hello3 -> hello
如何設置當前用戶新建文件或目錄的默認許可權?
umask用來定義新建文件或目錄的默認許可權,新的目錄的許可權為777-umask設置的值,新建文件的許可權為666-umask設置的值。若要長期修改umask的值,可以把它寫進/etc/profile或~/.profile或~/.bash_profile中。
[aaa@myvm mytest]$ umask
0002
[aaa@myvm mytest]$ umask -S
u=rwx,g=rwx,o=rx
[aaa@myvm mytest]$ mkdir aa
[aaa@myvm mytest]$ touch bb
[aaa@myvm mytest]$ ls -la
總計 12
drwxrwxr-x 3 aaa aaa 4096 11-25 16:20 .
drwx------ 23 aaa aaa 4096 11-25 16:20 ..
drwxrwxr-x 2 aaa aaa 4096 11-25 16:20 aa
-rw-rw-r-- 1 aaa aaa 0 11-25 16:20 bb
[aaa@myvm mytest]$ umask 022
[aaa@myvm mytest]$ mkdir aa2
[aaa@myvm mytest]$ touch bb2
[aaa@myvm mytest]$ ls -la
總計 16
drwxrwxr-x 4 aaa aaa 4096 11-25 16:29 .
drwx------ 23 aaa aaa 4096 11-25 16:20 ..
drwxrwxr-x 2 aaa aaa 4096 11-25 16:20 aa
drwxr-xr-x 2 aaa aaa 4096 11-25 16:29 aa2
-rw-rw-r-- 1 aaa aaa 0 11-25 16:20 bb
-rw-r--r-- 1 aaa aaa 0 11-25 16:29 bb2
find . -name "filename" 中的filename為啥必須加引號?但是ls中不需要?
find [-H] [-L] [-P] [path...] [expression]
ls [OPTION]... [FILE]...
因為這里的"filename"其實是表達式中的一個pattern,所以必須要加「」來組織shell的解析。 例如find . -name "aa*" -exec rm {}。
如何快速地將遠程機器上的共享目錄下的所有文件拷貝到本地供只讀使用?
如果不拷貝,簡單地mount到本地目錄。但是這里是要求拷貝到本地,所以這里可以使用softlink來將對文件的拷貝時間變為固定值。具體可以使用cp的-s參數。
Linux中文件路勁可以用空格嗎?
windows中用雙引號就可以了,linux中用\加空格來表示。
mkdir my\ \ folder (中間有2個空格)
cd my\ \ folder/
㈡ linux常用命令面試題有哪些
linux常用命令有:
1、cp命令,作用復制,參數如下:
-a:將文件的特性一起復制。
-p:連同文件的屬性一起復制,而非使用默認方式,與-a相似,常用於備份。
-i:若目標文件已經存在時,在覆蓋時會先詢問操作的進行。
-r:遞歸持續復制,用於目錄的復制行為。
-u:目標文件與源文件有差異時才會復制。
2、rm命令作用為刪除,參數:
-f:就是force的意思,忽略不存在的文件,不會出現警告消息。
-i:互動模式,在刪除前會詢問用戶是否操作。
-r:遞歸刪除,最常用於目錄刪除,它是一個非常危險的參數。
3、mv命令作用為移動文件:
-f:force強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋。
-i:若目標文件已經存在,就會詢問是否覆蓋。
-u:若目標文件已經存在,且比目標文件新,才會更新。
4、pwd命令,作用為查看」當前工作目錄「的完整路徑。
pwd-P#顯示出實際路徑,而非使用連接(link)路徑;pwd顯示的是連接路徑。
5、rmdir命令刪除目錄:
rmdir [選項]... 目錄...
-p:遞歸刪除目錄dirname,當子目錄刪除後其父目錄為空時,也一同被刪除。如果整個路徑被刪除或者由於某種原因保留部分路徑,則系統在標准輸出上顯示相應的信息。
-v:verbose顯示指令執行過程。
㈢ 關於linux面試
哎喲 根據我被面試了N次的經驗.基本上都是.
1.你先做個自我介紹吧.
2.知道是應屆生或是歷屆生 問是否有工作經驗
以前在什麼單位工作過,或有什麼工作或實習經歷.
中間擔任什麼職位,負責的是什麼.
3.然後問你對這個職位是怎麼理解的,再問一些技術方面的問題.或者出個問題讓他(她)實際操作一邊.
4.問 對我們公司了解多少.
5.然後向他(她)介紹我們公司的一些基本情況
6.然後問他(她)待遇什麼有要求.
7.再告訴他(她)我們的待遇分配.
8.最主要的一個問題:你覺得你的優勢在哪.基本上所有面試官都會問.
這個問題在他介紹完自己之後問.
大致就這樣啦.結束之後讓他回去等通知.
PS:技術方面么,LINUX 企業接觸最多的是 伺服器(web.ftp.mail.dns.nis等等) 資料庫咯, 問他(她)這些方面了解多少 掌握的多少.
㈣ Linux運維工程師面試,要掌握哪些知識和素質
、對Linux下各種網路服務、應用系統、監控系統等進行自動化腳本開發的工作,並根據項目對系統進行性能優化; 、負責網站項目中Linux伺服器的部署與維護,解決Linux系統下版本兼容性問題; 、精通linux操作系統,熟練部署和維護Linux伺服器以及在linux伺服器上架設各種服務; 、熟練編寫shellscript腳本; 、熟悉TCP/IP協議; 、良好的英語讀寫能力,聽說能力優秀者優先。 、熟練LAMP,LNMP以及Mysql,oracle資料庫維護
㈤ 面試遇到的有關Linux的問題
我現在維護數十台Linux+Freebsd 伺服器,
就我個人經驗而系統工程師的工作內容就是
確保伺服器的穩定的運行和調整結構滿足應用服務的需要
1.做好安全防範,配置防火牆。
2.定期做好備份工作,以便在出現問題可以及時修復。
3.有一定的監控程序,對硬體+服務+流量做監控。以便出現問題時能第一時間知道並解決
4.在就是伺服器改動前要做好備份,及改動方案。
5.網路結構要盡可能的減少單點故障,最好有一定的故障處理機制!
6.了解不同應用的硬體及系統需求,如資料庫伺服器的內存要足夠大以盡可能減少io操作,硬碟要轉數越快越好(個人感覺現在用SAS硬碟的就比以前SCSI 是Mysql的表現要好一些),還有系統參數的調整,優化,如文件描述符等等吧,
多看多學,你的經驗會越來越多的!
給你推薦一個學習的好地方
www.chinaunix.net
一般人我不告訴他,哈哈!
㈥ 一個新手面試 Linux 運維工作至少需要知道哪些知識
忘記了在哪兒摘的,我一直保存著:
1、linux系統基礎,這個不用說了,是基礎中的基礎,連這個都不會就別幹了,沒必須全部掌握,但基本命令總得會吧
2、網路服務,服務有很多種,每間公司都會用到不同的,但基礎的服務肯定要掌握,如FTP, DNS,SAMBA
3、shell腳本和另一個腳本語言,shell是運維人員必須具備的,不懂這個連入職都不行,至少也要寫出一些系統管理腳本,最簡單也得寫個監控CPU,內存比率的腳本吧,這是最最最基本了
4、sed和awk工具,必須要掌握,在掌握這兩個工具同時,還要掌握正則表達式,這個就痛苦了,正則是最難學的表達式,但結合到sed和awk中會很強大,在處理文本內容和過濾WEB內容時十分有用,不過在學shell的同時一般會經常結合用到的,所以學第3點就會順便學第4點。
5、文本處理命令,sort , tr , cut, paste, uniq, tee等,必學,也是結合第3點時一並學習的。
6、資料庫,首選mysql,別問我為什麼不學sqlserver和oracle,因為linux用得最多絕對是mysql,增刪改查必學,特別要學熟查,其它方面可能不太需要,因為運維人員使用最多還是查,哪些優化和開發語句不會讓你弄的。
7、防火牆,不學不行,防火牆也算是個難點,說難不難,說易不易,最重要弄懂規則,如果學過CCNA的朋友可能會比較好學,因為iptables也有NAT表,原理是一樣的,而FILTER表用得最多,反正不學就肯定不合格。
8、監控工具,十分十分重要,我個人建議,最好學這3個,cacti,nagios,zibbix,企業用得最多應該是nagios和 zibbix,反正都學吧,但nagios會有點難,因為會涉及到用腳本寫自動監控,那個地方很難。
9、集群和熱備,這個很重要,肯定要懂的,但到了公司就不會讓你去弄,因為新手基本不讓你碰,集群工具有很多,最好學是LVS,這是必學,最好也學學nginx集群,反向代理
10、數據備份,不學不行,工具有很多,但至少要把RAID的原理弄懂,特別是企業最常用的1+0或0+1,自己做實驗也要弄出來,備份工具有很多,如tar,
㈦ Linux運維工程師會面試哪些
知識上面的答主說的很精準了,我來說說技巧。我本身是一名HR,負責新盟教育的Linux講師招聘,所以我需要懂Linux基礎知識,方便對面試者提問。
首先,我會就應聘者簡歷上填寫的內容進行,提問,一般會包括拿到的證書,有無經驗,熟悉的技能,然後我的同事會提問專業內容。比如你寫了擅長MySQL ,Jquery,bootstrap,那麼我們就會提問這些內容,當然都不會特別困難,只需要證明你確實知道,不是在吹噓就行。
其次我們會就崗位需求進行提問,我會問到加班,出差,經驗等問題,我的同事會問會不會某些特定要求的內容,比如zabbix、nagios、elk等……
如果不會,請千萬不要吹牛,我們會問到說明我們肯定知道這玩意,如果吹牛肯定一眼就看出來,然後三兩句話把你送走這樣。
如果你一面過了,要准備二面,那麼請你至少,在二面之前,把我們提到的崗位要求的內容了解一下,避免我們再次提到的時候還是不知道,這樣很影響面試結果。
㈧ 面試軟體測試,一般要是問Linux/UNIX相關的,會問什麼內容
基本shell命令
sed、awk文本流處理工具
文件I/O
進程監控
性能測試工具,最簡單的如
top
定時任務
crontab
遠程協議SSH
文件傳輸協議
FTP、TFTP
Samba共享
。。。。。。
你能想到多少就看多少,誰也吃不準會問什麼,因為不同公司、不同崗位要求不一樣。
㈨ Java面試Linux需要了解哪些
1.常見的linux命令,這里就不一一列出,在後面有文章簡述linux入門
2.了解常見的Linux版本
5.大致了解shell編程6.熟悉Linux下的常見許可權問題 關於這些,在Java高級部分,園主將陸續更新Java開發之Linux!
㈩ 一個新手面試linux運維工作,至少需要知道哪些知識
以下是新手必須會的內容
1、網站建設技術支持;包括版面規劃、網頁設計,動畫製作,圖片處理等;要求會使用網頁製作的三大軟體。
2、網路相關基礎技術;包括域名注冊、認證、解析、虛擬主機申請、備案、管理、企業郵箱應用等。
3、網站技術優化;包括搜索引擎優化技巧,包括網站內部和外部的優化等。
4、網路營銷技術攻略;包括各大搜索引擎提交信息等當下應用較廣泛的網路營銷方式等。