Linux試題億點點

1. 在登陸Linux時,一個具備惟一進程ID號的shell將被調用,這個ID是什麼(b)

A.NID B.PID C.UID C.CID 

# process ID 進程id號 

# UID 用戶iD號 ,如何查看?查看的是當前登陸的用戶信息

2. 下面那個用戶存放用戶密碼信息(b)

A./boot B./etc C./var D./dev 

df -h  # 查看linux磁盤空間剩餘量的 

ls -lh  # 顯示文件夾詳細信息和大小的 

du -h  # 顯示當前目錄 全部文件大小信息 

du -sh .  # 顯示當前目錄,總大小 

man du  # 查看du命令的幫助信息 

du -–help  # 顯示幫助信息

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

A.ctrl B.tab C.alt D.esc
# B

4. vim退出不保存的命令是(a)

A.:q B.q C.:wq D.:q!
# C

5. 文件權限讀、寫、執行三種符號的標誌依次是(a)

A.rwx B.xrw C.rdx D.rws

r 4
w 2
x 1

對應的數字權限轉化
- rw- r-- r-- 1 root root 0 Apr 20 17:31 s16.py

- 普通文本的類型
rw- users root用戶讀寫不可執行
r-- 屬組 root組內的成員 只讀

r-- 其餘人 只讀

6. 某文件的組外成員的權限是隻讀、屬主是所有權限、組內權限是可讀可寫、該文件權限爲(d)

A.467 B.674 C.476 D.764
# others  r-- 4  users  u  rwx  4+2+1=7  group  r+w 6

7. 改變文件的屬主的命令是(c)

A.chmod B.touch C.chown D.cat
chmod  # 修改文件權限的
touch  # 建立普通根本
chown change owner  # 更改用戶者,更改屬主
chgrp  # 更改屬組

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

# ------------------------
.gz
.tar

均可以通多tar命令解壓
tar  -x  解壓縮tar後綴的
tar  -z  解壓縮 gz後綴的
tar  -f  必須制定一個壓縮文件名,這個-f參數,必須寫在最後面
tar  -v  顯示壓縮/解壓縮過程

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

A.rpm -ivh nginx
B.rpm -q nginx
C.rpm -U nginx
D.rpm -x nginx

# ------------------
linux的軟件包格式都是rpm的
rpm也是linux提供的一個命令,用於查詢經過yum安裝的軟件
rpm -i  # 是安裝軟件
rpm -q query  # 查詢軟件
rpm -qi  # 詳細信息
rpm -ql  # 詳細安裝路徑

10. Linux配置文件通常放在什麼目錄(a)

A.etc B.bin C.lib D.dev
# bin(可執行文件)

11. linux中查看內存,交換內存的狀況命令是(c) # free -m

A.top B.last c.free D.lastcomm
# top - linux任務管理器,查看系統負載狀態,動態進程信息的
# last - 用戶最後登陸的信息

12. 觀察系統動態進程的命令是(b)

A.free B.top C.lastcomm D.df

13. 若是執行命令,chmod 746 fifile.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
# ssh - 遠程登陸
# netstat - 查看linux端口信息的
# ping D.exit(退出會話)

16. 退出交互式shell,應該輸入什麼? ( d )

A:q!  B.quit  C.;  D.exit
# 建立文件夾,若是父目錄不存在,怎麼辦? 經過小寫的 -p參數,遞歸建立父目錄
mkdir -p

17. 在父目錄不存在的時候,添加的參數是? (d)

A.-P B.-d C.-f D.-p

18. 下列文件中,包含了主機名到IP地址映射關係的文件是? (b)

A./etc/hostname #主機名
B./etc/hosts #強制寫入域名解析記錄
C./etc/resolv.conf 存放dns服務器的文件
D./etc/networks

19. 請問你使用的linux發行版是什麼?如何查看linux發行版信息?

centos7 cat
/etc/os-release

20. 請問你公司的服務器環境是物理機仍是虛擬化?

物理服務器 dell power R720 型號
- 單獨安裝一個操做系統
-經過虛擬化技術,在一臺機器上,安裝N個操做系統
vmware虛擬化技術
我的學習版:vmware workstation
企業版虛擬化 是 vmware vsphere ,安裝處一個esxi虛擬化服務器

雲服務器:一個路飛學城的業務,就是8臺阿里雲,數據庫用的也都是阿里的rds數據庫,提供主從複製,高可用等功能

image.png

image.png

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/*html

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/vue

32.某文件權限是drw-r—rw-,請解讀該權限?

rw- 屬主:可讀可寫 

r— 屬組:可讀 

rw- other:可讀可寫

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

systemctl

34. 如何遠程登陸阿里雲123.206.16.61?

ssh root@123.206.16.61node

35. 備份mariadb的命令是?*

mysqldump -uroot -ppython

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

root用戶的身份提示符 
重啓定向覆蓋寫 
重定向追加寫 
$PATH 取值符 
. 當前目錄 
.. 上級目錄

37. 若是你發如今公司沒法使用rm,使用提示’禁止你使用rm’,是爲何?

別名aliasmysql

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

chgrp alex test.pylinux

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

xftp lrzsz scpios

40. 如何殺死mariad進程?

pkill mariadb ps -ef|grep mysql kill pid killall mariadbnginx

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服務端?

更改端口 port 6380
開啓protomode yes安全模式
設置redis密碼
redis-server redis.conf

redis.conf 內容以下
port 6380
protomode yes

44. 如何保證本地測試環境和線上開發環境一致性?思路?

1.docker打包鏡像
2.手動解決環境問題 pip3 freeze導出依賴
pip3 install -r xxx.txt

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 venv1
3.激活虛擬環境 sourcce /opt/MyVirtualenv/venvDjango1/bin/activate
4.測試 python3 或者 pip3 list
5.如何證實虛擬環境是正常的?

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每秒

其餘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. 什麼是靜態資源,什麼是動態資源?

nginx實現動靜分離,靜態請求nginx直接返回
動態請求
uwsgi_pass 後端uwsgi的地址

靜態資源指定的是網站的CSS/JS/HTML文件
動態資源通常指的是數據,即後端給前端提供的數據

50. 配置linux軟鏈接的命令?

ln -s 目標文件名 軟鏈接名

51. 如何永久添加/opt/python36/的環境變量?

/etc/profile 全局變量配置文件,每次機器開機都會加載這個文件中的變量

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是什麼?如何使用?

supervisor進程管理工具

使用:
1.安裝 easy_install supervisor
2.生成配置文件 echo_supervisord_conf > /etc/supervisor.conf
3.寫入自定義的配置
vim /etc/supervisor.conf

54. 簡述項目部署流程?如何部署路飛,uwsgi+nginx+supervisor+nginx

部署路飛:
1.安裝python3 環境
2.安裝 mysql,redis,nginx

3.部署前端
    1.安裝node.js的環境
    2.安裝依賴包 npm install
    3.修改axios的發送的端口接口 axios.get('後臺接口的地址')
    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來管理

image.png

55. docker是什麼?簡述docker優點

linux容器技術實現軟件
docker應用於快速構建應用,解決環境依賴等問題

容器生命週期

鏡像 容器 倉庫 三大生命週期
1.下載鏡像,運行出容器實例,經過docker hub 或者私有容器倉庫,管理鏡像文件
2.安裝啓動後,使用

獲取docker鏡像 ,這個鏡像就如同那個iso鏡像系統文件
docker pull centos 獲取centos鏡像文件

安裝系統

經過鏡像,生成容器實例
docker run centos

容器中必須有進程在後臺運行,不然就會掛掉
容器就是將應用程序隔離,如同一個集裝箱git

class foo():
def init(self):
self.name="我是郭德綱"

f1=foo()
f2=foo()
f3=foo()

1.掌握dockerfile的編寫
2.掌握經常使用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.文件的路徑

rm -rf -r 遞歸刪除文件夾 -f 強制刪除

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

rm -rf -r 遞歸刪除文件夾 -f 強制刪除

60. python操做linux的模塊是?

os
subpreocess
sys

61. 若是端口8080被佔用,如何查看是什麼進程?

netstat -tunlp | grep 8080

62. redis是如何作持久化的? rdb aof兩種機制

rdb

redis.conf

save
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 url地址

curl 也是發起http請求的命令

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 #查看全部容器記錄

不會丟,由於容器中止了,並無被刪除 docker ps -a能夠看到

73. 如何批量清理後臺中止的容器

docker rm `docker ps -aq`

反引號的做用是 取出命令的結果

74. 如何查看容器日誌?

docker logs -f 容器id #實時刷新容器內的日誌

75. wsgi是什麼?

WSGI是Web服務器網關接口。它是一個協議,描述了Web服務器(nginx)如何與Web應用程序通訊(django)。

python3 manage.py runserver wsgi wsgiref單機模塊 ,性能很低

uwsgi --socket :8000 --chdir crm.wsgi
在線上,走的協議是 nginx 經過 uwsgi_socket找到 web應用程序 uwsgi

76. Django中使用的是?

答:Django中實現wsgi的是:wsgiref和uwsgi,wsgiref是開發測試用的,uwsgi是線上用的支持多進程,多線程的web應用
Flask中實現wsgi的是:werkzurg
Tornado中實現wsgi的是:tornado和gevent

77. 消息隊列的做用?

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

78. 服務器被攻擊,吃光了全部的CPU資源,怎麼辦?禁止重裝系統

1.查看系統負載狀況例如使用 top命令
2.殺死無用的 佔資源的進程
3.系統全局搜索,找到病毒文件, rm -rf 刪掉它
4.還須要檢查定時任務,是否添加了些東西

git經常使用命令

1:git init—————————初始化
2:git add .————————-從工做區,添加到版本庫
3:git commit -m」xxx」————從暫存區,添加到分支
4.git push origin master

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
相關文章
相關標籤/搜索