每天被面試虐一點點(二)

2021-07-06 04:41:52 字數 4781 閱讀 5277

1. gdb命令

backtrace bt列印當前的函式呼叫棧的所有資訊。

info threads顯示當前可除錯的所有執行緒,每個執行緒會有乙個gdb為其分配的id,後面操作執行緒的時候會用到這個id。 前面有*的是當前除錯的執行緒。

set scheduler-locking執行緒除錯 顯示執行緒狀態,off不鎖定任何執行緒

info break可列出所有斷點資訊,info break 後也可設定要檢視的break num

2. linux下解釋: ip rule add from 192.168.3.112/32 [tos 0x10] table 2 pref 1500。

向規則鏈增加一條規則,規則匹配的物件是ip為192.168.3.112,tos等於0x10的包,使用路由表2,這條規則的優先順序是1500

3.你被需要檢查系統中的裝置情況,/var/log/messages的日誌資訊

/var/log/messages— 包括整體系統資訊,其中也包含系統啟動期間的日誌。此外,mail,cron,daemon,kern和auth等內容也記錄在var/log/messages日誌中。

/var/log/dmesg— 包含核心緩衝資訊(kernel ring buffer)。在系統啟動時,會在螢幕上顯示許多與硬體有關的資訊。可以用dmesg檢視它們。

/var/log/auth.log— 包含系統授權資訊,包括使用者登入和使用的許可權機制等。

/var/log/boot.log— 包含系統啟動時的日誌。

/var/log/daemon.log— 包含各種系統後台守護程序日誌資訊。

/var/log/dpkg.log– 包括安裝或dpkg命令清除軟體包的日誌。

/var/log/kern.log– 包含核心產生的日誌,有助於在定製核心時解決問題。

/var/log/lastlog— 記錄所有使用者的最近資訊。這不是乙個ascii檔案,因此需要用lastlog命令檢視內容。

/var/log/maillog /var/log/mail.log— 包含來著系統執行電子郵件伺服器的日誌資訊。例如,sendmail日誌資訊就全部送到這個檔案中。

/var/log/user.log— 記錄所有等級使用者資訊的日誌。

/var/log/xorg.x.log— 來自x的日誌資訊。

/var/log/alternatives.log– 更新替代資訊都記錄在這個檔案中。

/var/log/btmp– 記錄所有失敗登入資訊。使用last命令可以檢視btmp檔案。例如,」last -f /var/log/btmp | more「。

/var/log/cups— 涉及所有列印資訊的日誌。

/var/log/anaconda.log— 在安裝linux時,所有安裝資訊都儲存在這個檔案中。

/var/log/yum.log— 包含使用yum安裝的軟體包資訊。

/var/log/cron— 每當cron程序開始乙個工作時,就會將相關資訊記錄在這個檔案中。

/var/log/secure— 包含驗證和授權方面資訊。例如,sshd會將所有資訊記錄(其中包括失敗登入)在這裡。

/var/log/wtmp或/var/log/utmp— 包含登入資訊。使用wtmp可以找出誰正在登陸進入系統,誰使用命令顯示這個檔案或資訊等。

/var/log/faillog– 包含使用者登入失敗資訊。此外,錯誤登入命令也會記錄在本檔案中。

4. read ,pread,write,pwrite,lseek是系統呼叫,而fseek是函式

7.下面有關new/delete和malloc/free的區別?

malloc與free是標準庫函式,new/delete是運算子

new初始化物件,呼叫物件的建構函式,malloc僅僅分配記憶體

new、delete返回的是所分配型別變數(物件)的指標,malloc、free返回的是void指標

8.init啟動程序需要讀取/etc/inittab配置檔案

sbin/init在核心完整的載入後,開始執行系統的第一支程式,主要的功能就是準備軟體執行的環境,包括系統的主機名稱、網路配置、語系處理、檔案系統格式及其他服務的啟動等。 

/bin/sh解釋指令碼的shell命令,開機後執行

/etc/sysvinit就是 system v 風格的 init 系統,顧名思義,它源於 system v 系列 unix。sysvinit 中執行模式描述了系統各種預訂的執行模式。

/etc/inittab定義了系統引導時的執行級別, 進入或者切換到乙個執行級別時做什麼

啟動init程序的配置檔案是/etc/inittab

/etc/sysvinit是系統初始化用的

9.top 命令是 linux 下常用的效能分析工具,能夠實時顯示系統中各個程序的資源占用狀況,預設5秒重新整理一下程序表.

顯示的前五行是系統的整體統計資訊

第一行表示任務佇列資訊

第二三行表示程序和cpu的資訊

第四五行表示記憶體資訊

10. 軟鏈結和硬鏈結,i節點並不是和檔名一一對應

(1)軟連線可以跨檔案系統,硬連線不可以

(2)硬連線不管有多少個,都指向的是同乙個i節點,會把結點連線數增加,只要結點的連線數不是0,檔案就一直存在不管你刪除的是原始檔還是連線的檔案。只要有乙個存在檔案就存在。 當你修改原始檔或者連線檔案任何乙個的時候,其他的檔案都會做同步的修改。軟鏈結不直接使用i節點號作為檔案指標, 而是使用檔案路徑名作為指標。所以刪除連線檔案對原始檔無影響,但是刪除原始檔,連線檔案就會找不到要指向的檔案。軟鏈結有自己的inode, 並在磁碟上有一小片空間存放路徑名。

(3)軟連線可以對乙個不存在的檔名進行連線 。

(4)軟連線可以對目錄進行連線。

11.在/etc/fstab檔案中指定的檔案系統載入引數中, 引數一般用於cd-rom等移動裝置。noauto

defaults 使用預設設定 sw 自動掛載的可讀寫分割槽 noauto 裝置(分割槽)只能手動掛載

ro 掛載為唯讀許可權

rw 掛載為讀寫許可權 所以選擇d

12.區域網的網路位址192.168.1.0/24,區域網路連線其它網路的閘道器位址是192.168.1.1。主機192.168.1.20訪問172.16.1.0/24網路時,其路由設定正確的是?

route add –net 172.16.1.0 gw 192.168.1.1 netmask 255.255.255.0 metric 1
路由資訊是由組成

13.clone是fork的公升級版本,不僅可以建立程序或者執行緒,還可以指定建立新的命名空間(namespace)、有選擇的繼承父程序的記憶體、甚至可以將建立出來的程序變成父程序的兄弟程序等等

fork()

函式複製時將父程序的所以資源都通過複製資料結構進行了複製,然後傳遞給子程序,所以

fork()

函式不帶引數;

clone()

函式則是將部分父程序的資源的資料結構進行複製,複製哪些資源是可選擇的,這個可以通過引數設定,所以

clone()

函式帶引數,沒有複製的資源可以通過指標共享給子程序

14.web伺服器配置檔案  http.conf

啟動指令碼配置檔案   initd.conf

samba指令碼          rc.samba

samba服務配置檔案  smb.conf

15.乙個檔案名字為rr.z,可以用來解壓縮的命令是:uncompress

16./etc/hosts 主機名到 ip 位址的對映關係的檔案

/etc/resolv.conf dns 服務的配置檔案 

/etc/gateways 建立動態路由需要用到的檔案 

17.關於unix系統**段和資料段分開的目的

1)防止程式指令被修改,設定**段許可權為唯讀,設定資料段許可權為可讀寫 

2)**段和資料段分開有利於提高程式的區域性性,現代cpu快取一般設計為資料快取和指令快取分離,指令和資料分開存放可以提高cpu快取命中率。

3)共享指令,當系統執行多個程式的副本時,它們指令時一樣的,因此記憶體只需儲存乙份程式的指令**。每個副本程序的資料區是程序私有,可以節省記憶體。

18.ifconfig命令作用範圍的是配置本地回環位址,配置網絡卡的ip位址,啟用網路介面卡

19.

chmod +許可權 +檔案或目錄

chown +屬主.屬組+檔案或目錄

chgrp +屬組 +目錄

20.ip位址越多,系統建立的連線數就越多,檔案控制代碼是應用程式呼叫系統函式對檔案進行i/o操作時,函式返回的用來唯一表示這個檔案的符號,它會影響虛擬檔案系統的數值。

會限制linux伺服器併發連線數:

系統記憶體大小
系統最大檔案控制代碼數量
系統ip位址數量

每天被面試虐一點點(一)

1.如果myclass為乙個類,執行 myclass a 5 b 6 語言會自動呼叫該類建構函式的次數是5 myclass a 5 會建立5個物件,所以會自動呼叫5次建構函式,但是myclass b 6 這不會自動呼叫建構函式,因為這是宣告乙個指向6個元素的陣列的指標,指標宣告的時候是不分配空間的,...

每天進步一點點

很多朋友總喜歡問 成功靠什麼?其實,成功很難單一的歸納為靠什麼條件,如果一定要回答,只能從某種意義上說 很多人的成功就是靠他們每天比別人 多做一點點 正如古人有云 業精於勤,荒於嬉。這裡所說的勤,也就是比別人多做一點點,即付出多一點的勞動和努力。不要小看這一點點,又如古語說 集腋成裘,積沙成丘。如果...

每天進步一點點

在模組化程式設計時,在子模組中宣告變數 例如unsigned char aa 不需要在標頭檔案中宣告 要在主函式中呼叫,要寫成 extern unsigned char aa 而不能寫成 extern aa 寫成extern aa 則無法改變aa的值。2014年9月22日 21 12 00 品質因數...