關於linux的考試題

轉載於:[https://www.cnblogs.com/presleyren/p/10717961.html](侵刪)
答案linux考試題
1.在登錄Linux時,一個具有唯一進程ID號的shell將被調用,這個ID是什麼(b)
A.NID B.PID C.UID C.CID
答:
w命令查看用戶tty終端信息
ps -ef|grep pts/0

2.下面那個用戶存放用戶密碼信息(b)
A./boot B./etc C./var D./dev

3.用於自動補全功能時,輸入命令或文件的前1個或後幾個字母按什麼鍵(b)
A.ctrl B.tab C.alt D.esc

4.vim退出不保存的命令是(a)
A.:q B.q C.:wq D.:q!

5.文件權限讀、寫、執行三種符號的標誌依次是(a)
A.rwx B.xrw C.rdx D.rws

6.某文件的組外成員的權限是隻讀、屬主是全部權限、組內權限是可讀可寫、該文件權限爲(d)
A.467 B.674 C.476 D.764

7.改變文件的屬主的命令是©
A.chmod B.touch C.chown D.cat

8.解壓縮文件mydjango.tar.gz,我們可以用(a)
A.tar -zxvf mydjango.tar.gz
B.tar -xvz mydjango.tar.gz
C.tar -czf mydjango.tar.gz
D.tar - xvf mydjango.tar.gz

9.檢查linux是否安裝了,可用哪些命令(b) #注意rpm -qi只能查詢用yum安裝的軟件,編譯的查不到
A.rpm -ivh nginx
B.rpm -q nginx
C.rpm -U nginx
D.rpm -x nginx

10.Linux配置文件一般放在什麼目錄(a)
A.etc B.bin C.lib D.dev

11.linux中查看內存,交換內存的情況命令是© #free -m
A.top B.last c.free D.lastcomm

12.觀察系統動態進程的命令是(b)
A.free B.top C.lastcomm D.df

13.如果執行命令,chmod 746 file.txt ,那麼該文件的權限是(a)
A.rwxr—rw-
B.rw-r—r—
C.—xr—rwx
D.rwxr—r—

14.找出當前目錄以及其子目錄所有擴展名爲”.txt”的文件,那麼命令是(d)
A.ls .txt
B.find /opt -name “.txt”
C.ls -d .txt
d.find -name “.txt”

15.什麼命令常用於檢測網絡主機是否可達? c
A.ssh B.netstat C.ping D.exit

16.退出交互式shell,應該輸入什麼? d
A:q! B.quit C.; D.exit

17.在父目錄不存在的時候,添加的參數是? d
A.-P B.-d C.-f D.-p

18.下列文件中,包含了主機名到IP地址映射關係的文件是? b
A./etc/hostname
B./etc/hosts
C./etc/resolv.conf
D./etc/networks

19.請問你使用的linux發行版是什麼?如何查看linux發行版信息?
centos7
cat /etc/os-release

20.請問你公司的服務器環境是物理機還是虛擬化?
500人企:
26臺dell power r720服務器,託管在世紀互聯
通過vmware esxi虛擬化的280+linux服務器,有100+centos 100+redhat
分爲三個環境
測試服務器、預生產服務器、生產服務器
技術棧:
svn 、java、apache、tomcat、oracle、nagios、redhat、centos、weblogic
初創企業:
5臺阿里雲

21.vim有幾種工作模式
命令模式
編輯模式
底線命令模式

22.nginx的主配置文件是?如何實現多虛擬主機?nginx反向代理參數是?
nginx.conf
多個server{}
proxy_pass http://ip

23.如何解壓縮後綴是.gz文件?
gipz -d *.gz

24.如何解壓縮後綴是.tar文件?
tar -xf .tar

25.如何解壓縮後綴是.xz文件?
xz -d .xz

26.www服務在internet最爲廣泛,採用的結構是?
Browser/Server

27.如何給linux添加dns服務器記錄?
/etc/resolv.conf
添加2條主備dns記錄
nameserver dns服務器ip

28.每月的5,15,25的晚上5點50重啓nginx
ctontab -e
50 17 5,15,25 /usr/bin/systemctl restart nginx
50 17 5,15,25 /opt/nginx112/sbin/nginx -s reload

29.每分鐘清空/tmp/內容

/usr/bin/rm -rf /tmp/*
30.每天早上6.30清空/tmp/的內容
30 6 /usr/bin/rm -rf /tmp/

31.每個星期三的下午6點和8點的第5到15分鐘之間備份mysql數據到/opt/
5-15 18,20 3 /usr/bin/cp -r /var/lib/mysql /opt/

32.某文件權限是drw-r—rw-,請解讀該權限?
d:目錄文件
rw- 屬主:可讀可寫
r— 屬組:可讀
rw- other:可讀可寫

33.centos版本系統服務管理命令是?
service
systemctl

34.如何遠程登錄阿里雲123.206.16.61?
ssh [email protected]

35.備份mariadb的命令是?
mysqldump -uroot -p

36.簡述特殊符號的含義?

root用戶的身份提示符
重啓定向覆蓋寫

重定向追加寫
$PATH 取值符
. 當前目錄
… 上級目錄
37.如果你發現在公司無法使用rm,使用提示’禁止你使用rm’,是爲什麼?
別名alias

38.如何修改test.py屬組爲alex?
chgrp alex test.py

39.如何在windows和linux傳輸文件?有哪些方法?
xftp lrzsz scp

40.如何殺死mariad進程?
pkill mariadb

ps -ef|grep mysql
kill pid

killall mariadb

41.簡述dns解析流程?訪問www.pythonav.cn的解析流程
自上而下的順序
1.優先查找本地dns緩存
2.查找本地/etc/hosts文件,是否有強制解析
3.如果沒有去/etc/resolv.conf指定的dns服務器中查找記錄(需聯網
4.在dns服務器中找到解析記錄後,在本地dns中添加緩存
5.完成一次dns解析

42.linux如何安裝軟件?有幾種方式?
yum
rpm
源碼包

43.出於安全角度,簡述如何安裝啓動redis服務端?
更改端口
開啓protomode yes安全模式
設置redis密碼
redis-server redis.conf

44.如何保證本地測試環境和線上開發環境一致性?思路?
1.docker打包鏡像
2.手動解決環境問題 pip3 freeze導出依賴

45.virtualenv是什麼?簡述如何使用
在開發Python應用程序的時候,系統安裝的Python3只有一個版本:3.4。所有第三方的包都會被pip安裝到Python3的site-packages目錄下。

如果我們要同時開發多個應用程序,那這些應用程序都會共用一個Python,就是安裝在系統的Python 3。如果應用A需要jinja 2.7,而應用B需要jinja 2.6怎麼辦?

這種情況下,每個應用可能需要各自擁有一套“獨立”的Python運行環境。virtualenv就是用來爲一個應用創建一套“隔離”的Python運行環境。

1.安裝 pip3 install virtualenv
2.創建虛擬環境 virtualenv —no-site-packages —python=python3 env1
3.激活虛擬環境 sourcce /opt/MyVirtualenv/venvDjango1/bin/activate
4.測試 python3 或者 pip3 list

46.virtulevnwrapper是什麼?簡述使用
virtualenv 的一個最大的缺點就是,每次開啓虛擬環境之前要去虛擬環境所在目錄下的 bin 目錄下 source 一下 activate,這就需要我們記住每個虛擬環境所在的目錄。
Virtaulenvwrapper是virtualenv的擴展包,用於更方便管理虛擬環
1.安裝虛擬環境 pip3 install virtualenvwrapper
2.創建並進入虛擬環境 mkvirtualenv env1
3.切換虛擬環境 workon 虛擬環境名

redis是什麼?
Redis是一個開源的基於內存的,key-value數據結構的緩存數據庫,支持數據持久化,m-s複製,常用數據類型有string set hash list,
最佳應用場景:適用於數據變化快且數據庫大小可遇見(適合內存容量)的應用程序。
例如:股票價格、數據分析、實時數據蒐集、實時通訊。
Redis只能使用單線程,性能受限於CPU性能,故單實例CPU最高才可能達到5-6wQPS每秒(取決於數據結構,數據大小以及服務器硬件性能,日常環境中QPS高峯大約在1-2w左右)

其他nosql數據庫?
Memcached可以利用多核優勢,單實例吞吐量極高,可以達到幾十萬QPS(取決於key、value的字節大小以及服務器硬件性能,日常環境中QPS高峯大約在4-6w左右)。適用於最大程度扛量。
只支持簡單的key/value數據結構,不像Redis可以支持豐富的數據類型。
無法進行持久化,數據不能備份,只能用於緩存使用,且重啓後數據全部丟失。

MongoDB
更高的寫負載,MongoDB擁有更高的插入速度,支持高可用性,支持索引高速查詢,佔用磁盤空間較大,支持持久化

47.redis哨兵是什麼?作用是
Redis-Sentinel是Redis官方推薦的高可用性(HA)解決方案
redis哨兵是監控redis主從服務,不存儲數據的,作用是用於自動切換reidis服務主從關係,即當主庫服務停止後,會將其中一個從庫變爲主庫

48.redis-cluster是什麼?
即使使用哨兵,redis每個實例也是全量數據存儲,每個redis存儲的內容都是完整的數據。
爲了最大化利用內存,可以採用cluster羣集,就是分佈式存儲。即每臺redis存儲不同的內容。
採用redis-cluster架構正是滿足這種分佈式存儲要求的集羣的一種體現。redis-cluster架構中,被設計成共有16384個hash slot。每個master分得一部分slot,其算法爲:hash_slot = crc16(key) mod 16384 ,這就找到對應slot。採用hash slot的算法,實際上是解決了redis-cluster架構下,有多個master節點的時候,數據如何分佈到這些節點上去。key是可用key,如果有{}則取{}內的作爲可用key,否則整個可以是可用key。羣集至少需要3主3從,且每個實例使用不同的配置文件。

49.什麼是靜態資源,什麼是動態資源?
靜態資源指定的是網站的CSS/JS/HTML文件
動態資源一般指的是數據,即後端給前端提供的數據

50.配置linux軟連接的命令?
ln -s 目標文件名 軟連接名

51.如何永久添加/opt/python36/的環境變量?
vim /etc/profile
添加PATH = /opt/python36/bin:
source /etc/profile

52.給如下代碼添加註釋
server{ # 一個虛擬主機
listen 80; # 監聽的端口,訪問的端口80
server_name 192.168.11.11; # 訪問的域名192.168.11.11
location / { # 訪問的路徑 /
root html; # 指定頁面的目錄,訪問/會找到html目錄
index index.html # 指定網頁,訪問/就是訪問index.html
}
}

server{ #虛擬主機
listen 8080; #nginx監聽端口
server_name 192.168.11.11; #nginx訪問域名
location / { #location匹配url
include uwsgi_params; #將uwsgi參數添加進nginx
uwsgi_pass 0.0.0.0:8000; #反向代理轉發請求給uwsgi
}
}

53.supervisor是什麼?如何使用?
使用:
1.安裝 easy_install supervisor
2.生成配置文件 echo_supervisord_conf > /etc/supervisor.conf
3.寫入自定義的配置
[program:crm] ; 項目名稱
command=/root/Envs/knight/bin/uwsgi —ini /opt/knight/uwsgi.ini ;啓動項目的命令
stopasgroup=true ;默認爲false,進程被殺死時,是否向這個進程組發送stop信號,包括子進程
killasgroup=true ;默認爲false,向進程組發送kill信號,包括子進程
4.啓動supervisor服務
supervisord -c /etc/supervisor.conf
5.啓動所有項目
supervisorctl -c /etc/supervisor.conf start all

54.簡述項目部署流程?如何部署路飛,uwsgi+nginx+supervisor+nginx
部署路飛:
1.安裝python3 環境
2.安裝 mysql,redis,nginx
3.部署前端
1.安裝node.js的環境
2.安裝依賴包
3.修改axios的發送的端口接口
4.打包
4.部署後端
1.安裝virtualenv
2.創建虛擬環境
3.安裝django和uwsgi,以及項目的依賴包
4.修改uwsgi的配置文件
5.通過uwsgi -ini 配置文件啓動django項目
5.配置nginx
1.創建兩個虛擬主機,分別監聽80和8000端口
2.訪問80端口是訪問呢vue
3.訪問8000端口是vue發起的8000端口請求,反向代理到9000的uwsgi
6.啓動nginx,mysql,redis
7.通過supervisor來管理
55.docker是什麼?簡述docker優勢
linux容器軟件
docker應用於快速構建應用

56.你常用的docker常用命令有哪些?操作鏡像、容器、倉庫的命令
docker images # 查看本地鏡像
docker serach 鏡像 # 通過docker hub搜索鏡像
docker rmi 鏡像 # 刪除鏡像
docker save 鏡像 > 路徑 # 導出鏡像
docker load < 路徑 # 導入鏡像
docker build -t . # 打包生成鏡像

操作容器命令:
docker run -d 鏡像 解釋器 # 根據鏡像生成容器,後臺允許
docker run -it 鏡像 解釋器 # 根據鏡像生成並進入容器
docker start/stop 容器id # 啓動/停止容器
docker ps # 查看當前運行的容器
docker rm 容器id # 刪除容器
docker exec 容器id # 進入當前正在運行的容器
docker commit 容器id 鏡像名 # 將容器提交爲鏡像
docker contain ls # 查看當前運行的容器
操作倉庫的命令:
docker pull 鏡像 # 下載鏡像
docker push 鏡像 # 推送鏡像

57.哪個命令無法查看linux文件內容? d
A.tac B.more C.head D.man

58.使用rm -i 系統會提示什麼信息? b
A.命令所有參數
B.是否真的刪除
C.是否有寫的權限
D.文件的路徑

59.爲何說rm -rf 慎用? -r遞歸刪除 -f強制刪除

a60.python操作linux的模塊是? os

61.如果端口8080被佔用,如何查看是什麼進程? netstat -tunlp | grep 8080

62.redis是如何做持久化的?
rdb
Redis會定期保存數據快照至一個rbd文件中,並在啓動時自動加載rdb文件,恢復之前保存的數據,通過save指令觸發持久化,redis單獨開啓一個子進程進行數據持久化。
rdb缺點,定期執行,可能會丟失數據,並且數據量特別大時候,如果服務器cpu性能較低,rdb開啓子進程持久化性能影響很大,影響redis對外提供服務的能力。

aof
Redis會把每一個寫請求都記錄在一個日誌文件裏。在Redis重啓時,會把AOF文件中記錄的所有寫操作順序執行一遍,確保數據恢復到最新。
隨着AOF不斷地記錄寫操作日誌,因爲所有的操作都會記錄,所以必定會出現一些無用的日誌。大量無用的日誌會讓AOF文件過大,也會讓數據恢復的時間過長。
優先:數據安全,不怕數據損壞,如斷電燈問題,還可以用redis-check-aof修復數據,AOF文件人爲可讀
缺點:佔磁盤,性能損耗高,數據恢復慢

怎麼用rdb和aof
如果既配置了RDB,又配置了AOF,則在進行數據持久化的時候,都會進行,但是在根據文件恢復數據的時候,以AOF文件爲準,RDB文件作廢

63.簡述mysql主從複製原理?
(1) master將改變記錄到二進制日誌(binary log)中(這些記錄叫做二進制日誌事件,binary log events);
(2) slave將master的binary log events拷貝到它的中繼日誌(relay log);
(3) slave重做中繼日誌中的事件,將改變反映它自己的數據。

64.創建mysql用戶alex,並且授予權限select權限,命令是什麼?
grant select on . to alex@’%’;
65.nginx如何實現負載均衡?
upstream {}

66.nginx的負載均衡調度算法有幾種?是什麼?

調度算法    概述
輪詢     按時間順序逐一分配到不同的後端服務器(默認)
weight    加權輪詢,weight值越大,分配到的訪問機率越高
ip_hash    每個請求按訪問IP的hash結果分配,這樣來自同一IP的固定訪問一個後端服務器
url_hash   按照訪問URL的hash結果來分配請求,是每個URL定向到同一個後端服務器
least_conn 最少鏈接數,那個機器鏈接數少就分發

67.linux下載軟件包的方法有?
wget curl
68.windows和linux常用遠程連接工具有哪些?
xshell
putty
securecrt

69.如何給與一個腳本可執行權限
chmod u+x file

70.過濾出settings.py中所有的空白和註釋行
grep -v “^#” file |grep -v “^$”

71.過濾出file1中以abc結尾的行
grep “abc$” file1
72.容器退出後,通過docker ps查看不到,數據會丟嗎?
不會丟,因爲容器停止了,並沒有被刪除 docker ps -a可以看到
73.如何批量清理後臺停止的容器
docker rm docker ps -aq

74.如何查看容器日誌?
docker logs -f

75.wsgi是什麼?
WSGI是Web服務器網關接口。它是一個協議,描述了Web服務器如何與Web應用程序通信。

76.Django中使用的是?
答:Django中實現wsgi的是:wsgiref和uwsgi,wsgiref是開發測試用的,uwsgi是線上用的。
Flask中實現wsgi的是:werkzurg
Tornado中實現wsgi的是:tornado和gevent

77.消息隊列的作用?
1)程序解耦
2)數據冗餘,例如rabbitmq的ack機制,消息確認機制
3)削峯能力
4)可恢復性,就算系統中部分組件掛掉,消息在隊列也不丟失,待組件恢復後繼續處理消息。
5)異步通信,如發紅包,短信等流程丟入隊列,可以優先級很低的去處理。

git常用命令
1:git init—————————初始化
2:git add .————————-從工作區,添加到版本庫
3:git commit -m”xxx”————從暫存區,添加到分支
4:git status————————查看狀態
5:git log —————————查看版本庫的日誌
6:git reflog————————查看所有日誌
7:git reset —head 版本號—-切換
8:git stash————————-保存
9:git stash————————-將第一個記錄從“某個地方”重新拿到工作區(可能有衝突)
git stash list——————————————————————————查看“某個地方”存儲的所有記錄
git stash clear—————————————————————————-清空“某個地方”
git stash pop——————————————————————————-將第一個記錄從“某個地方”重新拿到工作區(可能有衝突)
git stash apply —————————————————————————編號,將指定編號記錄從“某個地方”重新拿到工作區(可能有衝突)
git stash drop —————————————————————————編號 ,刪除指定編號的記錄
10:git branch dev—————創建分支
11:git branch -d dev———-刪除分支
12:git checkout dev————切換分支
13:git merge dev—————-合併分支
14:git branch———————查看所有分支
15:git clone https:xxx——-克隆
16:git add origin https:xxx-起個別名
17:git push origin dev ——添加到dev分支
18:git pull origin master—拉代碼
19:git fetch origin master-去倉庫獲取
20:git merge origin/master-和網上下的master分支合併
協同開發:
默認是master分支——————————master
開發的分支—————————————dev
做代碼review————————————reciew
程序員自己的分支——————————…….
1:每個員工創建自己的分支
2:將自己的代碼提交的到自己的分支—————xxx,sss,wwww…….
3:由組長或老大做代碼的review,——————-代碼提交的review分支
4:再提交到dev.
5: 再合併到master分支

熟悉 Linux常用操作。
1:man rm———————————————查看命令幫助
2:mkdir———————————————-創建目錄
3:touch———————————————-創建文件
4:cd—————————————————切換。
5:ls—————————————————查看目錄
6:ls -lh————————————————查看目錄詳細
7:pwd————————————————-查看當前目錄
8:vim————————————————-添加內容
9:echo————————————————追加內容
10:cat————————————————查看文件內容
11:mv————————————————-移動
12:cp————————————————-拷貝
13:mv————————————————重命名
15:find———————————————-搜索
16:rm————————————————-刪除數據
17:ping———————————————-查看能不能上網
19:tar cf ————————————————打壓縮
20:tar xf——————————————-解壓縮
安裝:
yum install
rpm包安裝
編譯安裝
快捷鍵:
1:Tab鍵—————————————-自動補全命令或路勁。
2:ctrl+l—————————————清屏
3: ctrl+c—————————————取消當前操作
4:vi/vim 快捷鍵:
複製當前行 ——————————yy
粘貼—————————————-p
剪切—————————————-dd
撤銷—————————————-u
恢復—————————————-ctrl + r

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章