50道Linux面試題,答上一半面試不成功也難!
小編在這裡給大家準備了50道Linux面試題,或者是說日常知識點,不管是前端或者後端,我覺得都是必備的,或者學會了不會吃虧的。建議收藏。
1.什麼是Linux?
是一套免費使用和自由傳播的類UNIX作業系統,其核心由林納斯·本納第克特·託瓦茲於1991年第一次釋出,它主要受到Minix和Unix思想的啟發,是一個基於POSIX和Unix的多使用者、多工、支援多執行緒和多CPU的作業系統。它能執行主要的Unix工具軟體、應用程式和網路協議。它支援32位和64位硬體。
2.Linux核心主要負責哪些功能
系統記憶體管理
軟體程式管理
硬體裝置管理
檔案系統管理
3.互動方式
控制檯終端、圖形化終端
4.啟動shell
GNU bash shell能提供對linux 系統的互動式訪問。作為普通程式執行,通常在使用者登陸終端時啟動。登入時系統啟動的shell依賴與使用者賬戶的配置。
5.bash手冊
大多數linux發行版自帶以查詢shell命令及其他GNU工具資訊的線上手冊。man命令用來訪問linux系統上的手冊頁面。當用man命令檢視手冊,使用分頁的程式來現實的。
6.登陸後你在的位置?
一般登陸後,你的位置位於自己的主目錄中。
7.絕對檔案路徑?相對檔案路徑?快捷方式?
絕對檔案路徑:描述了在虛擬目錄結構中該目錄的確切位置,以虛擬目錄跟目錄開始,相當於目錄全名。
以正斜線(/)開始,比如 /usr/local。
相對檔案路徑:允許使用者執行一個基於當前位置的目標檔案路徑。
比如:當前在/usr/local
➜ local ls Caskroom Frameworks bin go lib sbin var Cellar Homebrew etc include opt share ➜ local cd go
快捷方式(在相對路徑中使用):
單點符(.) : 表示當前目錄; 雙點符(..) : 表示當前目錄的父目錄。
8.迷路,我的當前位置在哪?
pwd 顯示當前目錄
[root@iz2ze76ybn73dvwmdij06zz local]# pwd /usr/local
9.如何切換目錄?
語法: cd destination
destination : 相對檔案路徑或絕對檔案路徑
可以跳到存在的任意目錄。
10.如何檢視目錄中的檔案?區分哪些是檔案哪些是目錄?遞迴查?
ls 命令會用最基本的形式顯示當前目錄下的檔案和目錄:
➜ local ls Caskroom Frameworks bin go lib sbin var Cellar Homebrew etc include opt share
可以看出預設是按照字母序展示的
一般來說,ls命令回顯示不同的顏色區分不同的檔案型別,如果沒有安裝顏色外掛可以用ls -F來區分哪些是目錄(目錄帶/),哪些是檔案(檔案不帶/)
ls -R 遞迴展示出目錄下以及子目錄的檔案,目錄越多輸出越多。
11.建立檔案?建立目錄?批量建立?
建立檔案:touch 檔名
批量建立檔案: touch 檔名 檔名 …
➜ test touch a ➜ test ls a ➜ test touch b c ➜ test ls a b c
建立目錄:mkdir 目錄名
批量建立目錄: mkdir 目錄名 目錄名 …
➜ test mkdir aa ➜ test mkdir bb cc ➜ test ls a aa b bb c cc ➜ test ls -F a aa/ b bb/ c cc/
12.刪除檔案?強制刪除?遞迴刪除?
語法: rm destination
-i 詢問是否刪除,-r 遞迴刪除,-f 強制刪除。
rm不能刪除有檔案的目錄,需要遞迴刪除。
➜ xktest rm jdk rm: jdk: is a directory ➜ xktest rm -r jdk ➜ xktest ls
rm -i 詢問刪除,建議大家平時刪除多用 -i,確定一下再刪除。
➜ xktest touch tomcat ➜ xktest rm -i tomcat remove tomcat? n
rm -rf 會直接刪除,沒有警告資訊,使用必須謹慎**。
13.製表符自動補全?
有的時候檔案的名字很長,很容易拼出錯即使拼寫對了也很浪費時間。
➜ xktest ls java* javaxiaokaxiu
比如操作javaxiaokaxiu這個檔案時,輸入到java的時候,然後按製表鍵(tab)就會補全成javaxiaokaxiu,是不是方便多了。
14.複製檔案
語法: cp source target
如果target不存在則直接建立,如果存在,預設不會提醒你是否需要覆蓋,需要加-i就會詢問你是否覆蓋,n否y是。
➜ xktest cp a c ➜ xktest cp -i a c overwrite c? (y/n [n]) y ➜ xktest ls a c
15.重新命名檔案?移動檔案?
語法 : mv soucre target
重新命名:
➜ xktest ls ➜ xktest touch java ➜ xktest ls java ➜ xktest mv java java1.8 ➜ xktest ls java1.8
移動檔案:
新建jdk目錄把java1.8檔案移動到jdk目錄下。
➜ xktest ls java1.8 ➜ xktest mkdir jdk ➜ xktest mv java1.8 jdk ➜ xktest ls -R jdk
./jdk: java1.8
16.什麼是連結檔案?
如過需要在系統上維護同一檔案的兩份或者多份副本,除了儲存多分單獨的物理檔案副本之外。還可以採用儲存一份物理檔案副本和多個虛擬副本的方法,這種虛擬的副本就叫做連結。
17.檢視檔案型別?字元編碼?
語法: file destination
➜ apache file tomcat tomcat: ASCII text
可以看出,file命令可以顯示檔案的型別text以及字元編碼ASCII
18.檢視整個檔案?按照有文字顯示行號?無文字顯示行號?
語法 : cat destination
-n 顯示行號,-b 有文字的顯示行號。 (預設是不顯示行號的)
➜ apache cat -n tomcat 1 text 2 text 3 4 start 5 stop 6 restart 7 end ➜ apache cat -b tomcat 1 text 2 text
19.檢視部分檔案
語法 : tail destination
預設情況會展示檔案的末尾10行。 -n 行數,顯示最後n行。
➜ apache tail -n 2 tomcat restart end
語法: head destination
預設情況會展示檔案的開頭10行。 -n 行數,顯示開頭n行。
➜ apache head -n 2 tomcat text text
20.資料排序?對數字進行排序?對月份排序?
預設情況下,檔案的資料展示是按照原順序展示的。sort命令可以對文字檔案中的資料進行排序。sort預設會把資料當成字元處理。
語法: sort destination
sort -n 所以排序數字時需要用-n,它的含義是說當前排序是的數字。
sort -M 比如月份Jan、Feb、Mar,如果希望它按照月份排序,加入-M就會按照月份的大小來排序。
21.查詢匹配資料?反向搜?
語法: grep [options] pattern [file]
該命令會查詢匹配執行模式的字串的行,並輸出。
➜ apache grep start tomcat start restart
-v 反向搜
➜ apache grep -v start tomcat text text
stop end
-n 顯示行號
-c 顯示匹配的行數
22.壓縮工具有哪些?
image-20200421122324314
23.如何壓縮檔案?如何解壓檔案?
比如以.gz的格式舉例。
壓縮語法: gzip destination
➜ apache gzip tomcat ➜ apache ls tomcat.gz
解壓語法: gunzip destination
➜ apache gunzip tomcat.gz ➜ apache ls tomcat
24.Linux廣泛使用的歸檔資料方法?
雖然zip命令能壓縮和解壓單個檔案,但是更多的時候廣泛使用tar命令來做歸檔。
語法: tar function [options] obj1 obj2
➜ apache tar -cvf service.tar service1 service2 // 建立規定檔案service.tar a service1 a service2 ➜ apache tar -tf service.tar //檢視檔案中的目錄內容 service1 service2 ➜ apache tar zxvf service.tar //解壓 x service1 x service2
25.如何檢視命令歷史記錄?
history 命令可以展示你用的命令的歷史記錄。
4463 touch service1 service2 4464 ls 4465 tar -cvf service.tar service1 service2 4466 tar -tf service.tar 4467 tar zxvf service 4468 tar zxvf service.t 4469 tar zxvf service.tar 4470 ls 4471 tar -zxvf service.tar 4472 ls
26.檢視已有別名?建立屬於自己的別名?
alias -p 檢視當前可用別名
[root@iz2ze76ybn73dvwmdij06zz ~]# alias -p alias cp='cp -i' alias egrep='egrep —color=auto' alias fgrep='fgrep —color=auto' alias grep='grep —color=auto' alias l.='ls -d .* —color=auto' alias ll='ls -l —color=auto'
alias li = 'ls -li' 建立別名
27.什麼是環境變數?
bash shell用一個叫作環境變數(environment variable)的特性來儲存有關shell會話和工作環境的資訊。這項特性允許你在記憶體中儲存資料,以便程式或shell中執行的指令碼能夠輕鬆訪問到它們。這也是儲存持久資料的一種簡便方法。
在bash shell中,環境變數分為兩類:
全域性變數:對於 shell會話和所有生成的子shell都是可見的。 區域性變數: 只對建立他們的shell可見。
28.儲存使用者的檔案是?包括哪些資訊?
/etc/passwd儲存來一些使用者有關的資訊。
[root@iz2ze76ybn73dvwmdij06zz ~]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin
檔案資訊包括如下內容。
登入使用者名稱
使用者密碼
使用者賬戶的UID(數字形式)
使用者賬戶的組ID(GID)(數字形式)
使用者賬戶的文字描述(稱為備註欄位)
使用者HOME目錄的位置
使用者的預設shell
29.賬戶預設資訊?新增賬戶?刪除使用者?
[root@iz2ze76ybn73dvwmdij06zz ~]# useradd -D//檢視系統預設建立使用者資訊 GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes [root@iz2ze76ybn73dvwmdij06zz ~]# useradd xiaoka//新增使用者
[root@iz2ze76ybn73dvwmdij06zz /]# userdel xiaoka//刪除使用者
30.檢視組資訊?如何建立組?刪除組?
[root@iz2ze76ybn73dvwmdij06zz ~]# cat /etc/group root:x:0: bin:x:1: daemon:x:2: sys:x:3: adm:x:4: tty:x:5: disk:x:6: [root@iz2ze76ybn73dvwmdij06zz ~]# groupadd java //建立組 [root@iz2ze76ybn73dvwmdij06zz ~]# groupdel java //建立組
31.檔案描述符?每個描述符的含義?
[root@iz2ze76ybn73dvwmdij06zz xiaoka]# ls -l 總用量 0 -rw-r—r— 1 root root 0 4月 21 13:17 a -rw-r—r— 1 root root 0 4月 21 13:17 b -rw-r—r— 1 root root 0 4月 21 13:17 c -rw-r—r— 1 root root 0 4月 21 13:17 d -rw-r—r— 1 root root 0 4月 21 13:17 e
1、檔案型別:
-代表檔案
d代表目錄
l代表連結
c代表字元型裝置
b代表塊裝置
n代表網路裝置
2、訪問許可權符號:
r代表物件是可讀的
w代表物件是可寫的
x代表物件是可執行的
若沒有某種許可權,在該許可權位會出現單破折線。
3、這3組許可權分別對應物件的3個安全級別:
物件的屬主
物件的屬組
系統其他使用者
32.修改許可權?
chmod options mode file
比如給檔案附加可以執行許可權:
[root@xiaoka ~]# chmod +x filename
33.如何執行可以執行檔案?
[root@xiaoka ~]# sh sleep.sh hello,xiaoka [root@xiaoka ~]# ./sleep.sh hello,xiaoka
34.列出已經安裝的包?安裝軟體?更新軟體?解除安裝?
列出已經安裝的包: yum list installed
安裝軟體: yum install package_name
更新軟體: yum update package_name
解除安裝軟體:yum remove package_name //只刪除軟體包保留資料檔案和配置檔案
如果不希望保留資料檔案和配置檔案
可以執行:yum erase package_name
35.原始碼安裝通常的路子?
tar -zxvf xx.gz //解包 cd xx ./configure make make install
36.vim編輯器幾種操作模式?基本操作?
操作模式:
普通模式
插入模式
基礎操作:
h:左移一個字元。
j:下移一行(文字中的下一行)。
k:上移一行(文字中的上一行)。
l:右移一個字元。
vim提供了一些能夠提高移動速度的命令:
PageDown(或Ctrl+F):下翻一屏
PageUp(或Ctrl+B):上翻一屏。
G:移到緩衝區的最後一行。
num G:移動到緩衝區中的第num行。
gg:移到緩衝區的第一行。
退出vim:
q:如果未修改緩衝區資料,退出。
q!:取消所有對緩衝區資料的修改並退出。
w filename:將檔案儲存到另一個檔案中。
wq:將緩衝區資料儲存到檔案中並退出。
37.檢視裝置還有多少磁碟空間?
df 可以檢視所有已掛在磁碟的使用情況。
-m 用兆位元組,G代替g位元組
[root@iz2ze76ybn73dvwmdij06zz ~]# df 檔案系統 1K-塊 已用 可用 已用% 掛載點 devtmpfs 1931568 0 1931568 0% /dev tmpfs 1940960 0 1940960 0% /dev/shm tmpfs 1940960 720 1940240 1% /run tmpfs 1940960 0 1940960 0% /sys/fs/cgroup /dev/vda1 41152812 9068544 30180560 24% / tmpfs 388192 0 388192 0% /run/user/0
快速判斷某個特定目錄是否有超大檔案?
預設情況,du會顯示當前目錄的所有檔案、目錄、子目錄的磁碟使用情況。
[root@iz2ze76ybn73dvwmdij06zz src]# du 4 ./debug 4 ./kernels 12
38.預設程式資訊顯示?
ps它能輸出執行在系統上的所有程式的許多資訊。
預設情況下ps值顯示執行在當前控制檯下的當前使用者的程式。
[root@iz2ze76ybn73dvwmdij06zz ~]# ps PID TTY TIME CMD 10102 pts/0 00:00:00 bash 10131 pts/0 00:00:00 ps
39.實時監測程式
與ps相比,top可以實時監控程式資訊。
平均負載有3個值:最近1分鐘的、最近5分鐘的和最近15分鐘的平均負載。值越大說明系統 的負載越高。由於程式短期的突發性活動,出現最近1分鐘的高負載值也很常見,但如果近15分 鍾內的平均負載都很高,就說明系統可能有問題。
40.如何中斷一個程式?
在一個終端中, Ctrl + c
通過這個命令許多(不是全部)命令列程式都可以被中斷。
如何把一個程式放到後臺執行?
[root@iz2ze76ybn73dvwmdij06zz ~]# ./sleep.sh &
此時,程式並不能被Ctrl + c 中斷。
41.如何停止一個程式?
kill命令被用來給程式傳送訊號。如果沒有指定訊號,預設傳送TERM(終止)訊號。
語法 : kill [-signal] PID …
42.驗證網路可連結命令是什麼?什麼原理?
ping。這個 ping 命令傳送一個特殊的網路資料包(叫做 IMCP ECHO REQUEST)到一臺指定的主機。大多數接收這個包的網路裝置將會回覆它,來允許網路連線驗證。
一旦啟動,ping會持續在特定時間(預設1秒)傳送資料包。
43.檢視某埠是否被佔用?
netstat -ntulp|grep 8080 [root@iz2ze76ybn73dvwmdij06zz ~]# netstat -ntulp|grep 8080 tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 4517/java
引數說明:
-t (tcp) 僅顯示tcp相關選項
-u (udp)僅顯示udp相關選項
-n 拒絕顯示別名,能顯示數字的全部轉化為數字
-l 僅列出在Listen(監聽)的服務狀態
-p 顯示建立相關連結的程式名
44.如何查詢匹配的檔案?基於檔案屬性?
find 程式能基於各種各樣的屬性,搜尋一個給 定目錄(以及它的子目錄),來查詢檔案。
find 命令的最簡單使用是,搜尋一個或多個目錄。
普通查詢,按照name查詢:
[root@iz2ze76ybn73dvwmdij06zz ~]# find -name xiaoka ./xiaoka
檔案型別查詢:
比如,輸出我們的家目錄檔案數量
[root@iz2ze76ybn73dvwmdij06zz ~]# find ~|wc -l 17130
根據檔案型別查:
[root@iz2ze76ybn73dvwmdij06zz ~]# find ~ -type d | wc -l 7340
find支援的型別: b 塊裝置檔案、 c 字元裝置檔案、d 目錄、f 普通檔案、l 符號連結
45.如何檢視當前主機名?如何修改?如何重啟後生效?
[root@iz2ze76ybn73dvwmdij06zz ~]# hostname//檢視當前主機名 iz2ze76ybn73dvwmdij06zz [root@iz2ze76ybn73dvwmdij06zz ~]# hostname xiaoka//修改當前主機名 [root@iz2ze76ybn73dvwmdij06zz ~]# hostname xiaoka
大家知道一般來講命令重啟就會失效,目前基本上用的centos7的比較多,兩種方式可以支援重啟生效。
一、命令
[root@iz2ze76ybn73dvwmdij06zz ~]# hostnamectl set-hostname xiaoka [root@iz2ze76ybn73dvwmdij06zz ~]# hostname xiaoka [root@xiaoka ~]#
二、修改配置檔案:/etc/hostname
[root@xiaoka ~]# vim /etc/hostname
46.如何寫一條規則,拒絕某個ip訪問本機8080埠?
iptables -I INPUT -s ip -p tcp —dport 8080 -j REJECT
47.哪個檔案包含了主機名和ip的對映關係?
/etc/hosts
48.如何用sed只列印第5行?刪除第一行?替換字串?
只列印第5行:
➜ apache sed -n "5p" tomcat stop
刪除第一行:
[root@xiaoka ~]# cat story Long ago a lion and a bear saw a kid. They sprang upon it at the same time. The lion said to the bear, “I caught this kid first, and so this is mine.” [root@xiaoka ~]# cat story They sprang upon it at the same time. The lion said to the bear, “I caught this kid first, and so this is mine.”
替換字串:
➜ apache cat story Long ago a lion and a bear saw a kid. They sprang upon it at the same time. The lion said to the bear, “I caught this kid first, and so this is mine.” ➜ apache sed 's#this#that#g' story Long ago a lion and a bear saw a kid. They sprang upon it at the same time. The lion said to the bear, “I caught that kid first, and so that is mine.”
49.列印檔案第一行到第三行?
檔案tomcat中內容:
➜ apache cat tomcat text21 text22 text23 start stop restart end
➜ apache head -3 tomcat text21 text22 text23 ➜ apache sed -n '1,3p' tomcat text21 text22 text23 ➜ apache awk 'NR>=1&&NR<=3' tomcat text21 text22 text23
50.如何用awk檢視第2行倒數第3個欄位?
➜ apache awk 'NR==3{print $(NF-2)}' story this ➜ apache cat story Long ago a lion and a bear saw a kid. They sprang upon it at the same time. The lion said to the bear, “I caught this kid first, and so this is mine.”
如果你想以程式語言立生,建議你先學習C語言打好基礎。C語言是一門通用計算機程式語言,是程式導向的語言,其語法結構及其嚴謹,且應用十分廣泛。而且只要將C語言研究透徹了的話,學習其他語言就會輕鬆很多。
相關文章
- 最全的50道Redis面試題Redis面試題
- 75 道 BAJT 高階 Java 面試題,你能答上幾道?Java面試題
- 75 道 BAJT 中高階 Java 面試題,你能答上幾道?Java面試題
- shell有哪些面試簡答題技巧?Linux面試題Linux面試題
- 分享100 道 Linux 常見面試題(上)Linux面試題
- 資料庫面試簡答、30道高頻面試題資料庫面試題
- 阿里面試最最俱全的,50道Redis面試題阿里Redis面試題
- 關於Python爬蟲面試50道題Python爬蟲面試
- 50道 CSS 基礎面試題(附答案CSS面試題
- 50道CSS基礎面試題(附答案)CSS面試題
- 《27道大廠高頻Spring面試題,95%的人答不上》Spring面試題
- 面試了50個前端工程師後,99%答不上這些題面試前端工程師
- Go 開發者面試突破:50 道高頻面試題及解答Go面試題
- js非同步程式設計面試題你能答上來幾道JS非同步程式設計面試題
- 答面試題·答J_Knight_《2017年5月iOS招人心得(附面試題)》中的面試題(一)面試題iOS
- 【Java面試】Java面試題基礎系列212道(上)Java面試題
- 週三面試Python開發,這幾道Python面試題差點答錯,Python面試題No7Python面試題
- 測試一下:HBase 40道測試題,你能答對幾道
- Java面試系列:Java面試題基礎系列228道(上)Java面試題
- GitHub#algorithm#:《劍指offer》 的50道面試題GithubGo面試題
- iOS面試問答集錦,從容應對各種面試技術難題!iOS面試
- 【Linux運維教程】Linux命令面試的簡答題(三)!Linux運維面試
- 50道Redis面試題史上最全,以後面試再也不怕問Redis了Redis面試題
- 10道網路安全基礎面試題,你答對了幾道?面試題
- 一道騷面試題目面試題
- 一道面試題的分析面試題
- 【理解】一道 JS 面試題JS面試題
- 面試題抽答(補充)面試題
- Apache Hive 面試問答題ApacheHive面試
- 吐血總結!50道Python面試題集錦(附答案)Python面試題
- Python面試50題!面試鞏固必看!【轉】Python面試
- 答面試題·答J_Knight_《2017年5月iOS招人心得(附面試題)》中的面試題(二)面試題iOS
- 面試三十三題!說實話,中高階面試題看完解析後也不怎麼難!面試題
- 6道常見的python面試題,你答對了嗎?Python面試題
- Spring Boot 面試,一個問題你就答不上來了Spring Boot面試
- React高頻面試題梳理,看看怎麼答?(上)React面試題
- Linux運維工程師 50個常見面試題Linux運維工程師面試題
- 面試疑難問題面試