1. 程式人生 > 其它 >21 linux基礎考試

21 linux基礎考試

1、探測伺服器網路的命令

ping

2、儲存命令列提示符的變數

PS1

3、特殊的路徑

.  當前目錄
.. 上一級目錄
~ 當前登入系統的使用者家目錄
- 上一次登入的目錄

4、常見的開關機的方式

    shutdown
reboot
init
poweroff
halt

5、檢視命令詳情的命令

man

6、命令列上常用的快捷鍵

01顯示歷史輸入命令資訊:方向鍵 上 下(前提是同一個命令列視窗)
02清除所有螢幕資訊輸出: ctrl+l 或clear
03取消/中斷命令執行過程 ctrl+c
04快速移動游標到行首/行尾 ctrl+a/ctrl+e
05將游標到行首的資訊剪下 ctrl+u
06將游標到行尾的資訊剪下 ctrl+k
07將剪下的內容進行貼上 ctrl+y
08鎖定系統視窗資訊狀態 ctrl+s
09解鎖系統視窗資訊狀態 ctrl+q
10命令列中快速移動游標 ctrl+方向鍵 左 右
11系統命令資訊補全功能(必須唯一) Tab

7、建立檔案及資料夾的命令

mkdir
touch

8、重定向

     >      : 覆蓋重定向(先將檔案中原有的內容清空,然後寫入內容到檔案)
>> : 追加重定向(將內容寫入到檔案最後邊,原有的內容不變)

9、複製檔案的命令

cp

10、移動檔案

mv

11、vim檔案編輯器的原理

         1、vi xxx.txt(檢查.xxx.txt.swp是否存在)
2、讀取xxx.txt的內容
3、建立一個名為.xxx.txt.swp的隱藏檔案
4、修改檔案(修改.xxx.txt.swp檔案)
5、儲存檔案(.xxx.txt.swp檔案存入xxx.txt中)

6、退出編輯(刪除.xxx.txt.swp檔案)

12、vim檔案編輯器中的命令及快捷鍵

w:儲存
q:退出編輯
wq:儲存退出
x:儲存退出
!:強制退出(不儲存退出,必須跟在指令的後面)
n:直接跳轉到第n行
set nu:顯示行號
set nonu:取消行號

gg:跳轉到行首
G:跳轉到末行
H:移動到螢幕的開頭
I:移動到螢幕的結尾
M:移動到螢幕的中間
u:撤銷上一步(類似於windows中的ctrl+z)
dd:刪除游標當前行
ndd:在游標所在位置向下刪除n行
yy:複製游標所在行
nyy:在游標所在的位置向下複製n行
p(小寫):貼上到游標的下一行
P(大寫):貼上到游標的上一行
x(小寫):刪除游標當前字元,向後刪除

X(大寫):刪除游標當前字元,向前刪除
shift +d:從游標所在位置刪除到行末
0:從游標所在位置跳轉到行首
$:從游標所在位置跳轉到行尾

13、重啟網絡卡的兩種方式

systemctl restart network

ifdown eth0 && ifup eth0

14、增加一塊500GB的磁碟的步驟

	1、關機增加磁碟

2、分割槽

3、格式化檔案系統

4、掛載使用

15、開機自動掛載的兩種方法

vim /etc/fstab

vim /etc/rc.local

16、兩種登入提示符

/etc/motd
/etc/issue

17、怎麼修改網絡卡IP(步驟)

vim /etc/sysconfig/network-scripts/ifcfg-eth0 

systemctl restart network

18、當root密碼忘記,怎麼修改?

    1.關閉Slinux(必須是永久關閉)
2.重啟
3.在啟動介面上,按e鍵,進入單使用者模式
4.在包含linux16 這一行,將ro修改為rw,並且在其後面並且在其後面增加 init=/sysroot/bin/sh (讓單使用者模式預設進入sh命令)
5.按ctrl+X鍵,重新引導系統
6.執行chroot/sysroot/切換到原來的系統中
7.修改root密碼
passwd [指定需要修改密碼的使用者]
8.使密碼生效
touch /.autorelabel
9.重新啟動客戶機

19、su和su - 的區別

su   切換使用者,相當於換一個使用者,切換使用者不切換目錄- [使用者名稱]     
su - 切換使用者,相當於重新登入

20、yum的原理

 第一步:執行yum install nginx安裝命令
第二步:yum去/etc/yum.repos.d這個目錄中(cd /etc/yum.repos.d)
第三步:根據/etc/yum.repos.d中所有的.repo結尾的檔案中儲存的baseurl中的連線,去尋找對應的軟體包
第四步:在尋找到的軟體包中,下載軟體,(/var/cache/yum/x86_64/7/[yum倉庫名稱])

21、搭建私有yum倉庫的步驟

1、建立目錄,充當倉庫
mkdir /yumrepo2
2、在倉庫中建立Packages目錄,用於存放軟體
cd /yumrepo2
mkdir Packages
3、下載測試軟體到Packages目錄中
cd /yumrepo2/Packages
wget https://repo.huaweicloud.com/centos/7/os/x86_64/Packages/zip-3.0-11.el7.x86_64.rpm
4、下載遠端訪問軟體:Nginx
yum install nginx
5、下載倉庫初始化軟體(yum-utils、createrepo)
yum install yum-utils createrepo
6、初始化倉庫
createrepo /yumrepo2
注:會在倉庫目錄中建立repodata目錄,主要用來存放yum依賴關係的。
7、修改Nginx配置檔案,使其代理yum倉庫目錄索引
修改/etc/nginx/nginx.conf
root /yumrepo2;
nginx實現目錄索引
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;

systemctl restart nginx

在瀏覽器測試

8、編輯yum源
1、將/etc/yum.repos.d中所有的檔案備份到backup目錄中
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/
2、建立local.repo檔案
touch local.repo
3、編輯local.repo
vim local.repo
[local]
name="xxx源的簡介"
baseurl=http://192.168.15.201
gpgcheck=0
4、更新源
yum clean all
yum makecache
9、測試
yum remove zip
yum install zip

22、安裝軟體的三種方式

yum安裝
rpm安裝
二進位制編譯安裝

23、編譯安裝Nginx的步驟

1.wget 下載原始碼包 wget https://nginx.org/download/nginx-1.20.1.tar.gz    

2.解壓 tar -xf nginx-1.20.1.tar.gz

3.檢查系統,設定引數
cd nginx-1.20.1
./configure

4.make && make install

24、什麼是系統負載,什麼標準下才算正常

系統負載:單位時間內,系統程序佔用CPU的相對時間

負載 / cpu數量

25、檔案的屬性有哪些

  d:資料夾(directory)
​ -:普通檔案(f/-(file))
l:連結檔案
c:字元裝置檔案,會不斷產生字元資訊(字型)character
b:塊裝置檔案(硬碟)block
s:socket檔案,套接介面檔案,和網路有關的檔案
p:管道檔案(pipe)

26、硬連結與軟連線的區別

硬連結:原始檔與目標檔案的inode號碼相同,都指向同一個inode。硬連結個數為0時,才會刪除原始檔,表示資料真正刪除了
軟連線:相當於快捷方式,用於存放指向原始檔的路徑資訊。 軟連結檔案指向的是原始檔的檔名,而不是inode號,所以原始檔的“連結數”不會增加。

27、建立使用者及使用者組的命令

useradd  groupadd

28、建立使用者需要操作的檔案

/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
建立家目錄
/etc/skel

29、Linux中有幾種許可權?

可讀可寫和可執行

30、例如:建立普通檔案時有一個預設的許可權,為:644,請問這個預設的許可權怎麼修改?

umask 002

建立檔案時,預設的許可權時666,跟umask值計算,用666 減 umask值 如果得到的值為奇數,那麼加一,偶數不變

建立資料夾,預設的許可權時777,跟umask值計算,用777 減 umask值

假設:umask值為 022 ,那麼建立的檔案及資料夾的預設許可權是多少

644

123 644 654

456 220 321

31、請問目錄對於許可權的三個意義


1、讀許可權
當目錄有可執行許可權,檔案有可讀許可權時,檔案可讀。
2、寫許可權
當目錄有可執行許可權,檔案有可寫許可權時,檔案可寫。
3、可執行許可權
檔案可執行許可權的最小許可權是:資料夾有可執行許可權而檔案有可讀可執行許可權。

32、許可權的歸屬有哪些?

u    g   o 

33、絕對路徑與相對路徑

絕對路徑的參照物是根目錄
相對路徑的參照物是當前目錄

34、跟硬體相關的與系統執行狀態相關的兩個目錄分別是什麼?

/dev

/proc

35、上傳與下載的命令,及其引數

rz  上傳

wget -O 下載檔案
curl -o 儲存檔案路徑
sz 下載

36、修改命令列字符集

  臨時修改: LANG=zh_CN.UTF-8
持久化保持字元編碼:/etc/locale.conf (重啟生效)
通過命令的方式修改字元及編碼(同時臨時永久修改字符集)
[root@localhost ~]# localectl set-locale LANG=en_US.UTF-8

37、將/tmp中的普通檔案刪除,許可權為755的目錄打包壓縮

find /tmp -type f -exec rm -rf {} \;
tar -czvf tmp.tar.gz $(find /tmp -perm 755 | xargs )

38、定時清理3個月之前的系統日誌

0 0 * * * find /var/log/ -mtime +90 -name "*.log" -exec rm -rf {} \;

39、在Linux系統中,常用的壓縮(不是打包)命令有哪些?

gzip
bzip2

40、在Linux作業系統中,打包壓縮命令的常用引數

tar 
-f:指定壓縮包的名稱
-c:打包檔案
-z:指定使用gzip壓縮,一般使用gzip壓縮的檔案都以.tar.gz作為副檔名
-j: 指定使用bzip2壓縮,一般使用bzip2壓縮的檔案都以.tar.bz2作為副檔名
-v:顯示壓縮包壓縮的過程
-x:解壓,不需要指定壓縮包的壓縮型別,他會自動匹配壓縮包的型別自行解壓
-P(大寫):當壓縮包中存在根目錄時,自動移除根目錄
-t:檢視壓縮包中的內容
-C:解壓至

41、常用的正則表示式有哪些項?

普通正則:
* 匹配前一個字元(連續出現)0或者1次以上(注意:當重複0次的時候,表示啥也沒有即空,即匹配所有的內容)
. 點號,表示匹配任意一個且只有一個字元(但是不能匹配空行)
.* 組合符,匹配所有的內容
^ 尖角號,用法為^oldboy.表示匹配以oldboy單詞開頭的行
^.* 組合符,匹配以任意多個字元開頭的內容
$ 美元符,用法為oldboy$,表示匹配以oldboy單詞結尾的行
^$ 組合符,表示空行,邏輯解釋就是以^結尾的行,或以$開頭的行
\ 轉義字元,讓有特殊含義的字元脫掉馬甲,現出原形,如\.只表示小數點
.*$ 組合符,以任意多個字元結尾的內容
[] 或者(其中包含的所有的字元的或者)
[^] 取反
[A-Z] 匹配[]內任意一個字元,A-Z中的任意一個
[a-z] 匹配[]內任意一個字元,a-z中的任意一個
[0-9] 匹配[]內任意一個字元,0-9中的任意一個
[^abc] 匹配不包含^後的任意字元,這裡的^表示對[abc]取反

擴充套件正則:
+ 匹配前一個字元1次或1次以上
[:/]+ 匹配括號內的:或/字元1次或1次以上
? 匹配前一個字元0次或1次
| 表示或者,即同時過濾多個字串(豎線兩邊的字元的或者)
() 分組,組成一個整體,另外()的內容可以被後面的\n引用,n為數字,代表引用第幾個括號的內容 \n n代表的是前面第幾個分組 引用前面()裡的內容,ps:(aa)\1,匹配結果aaaa
a{m,n} 匹配前一個字元最少m次,最多n次
a{m} 匹配前一個字元m次
a{m,} 匹配前一個字元最少m次
a{,n} 匹配前一個字元最多n次

42、將指定文字內的所有行前全部加上註釋

sed -r 's/(.*)/#\1/g' 

43、流式編輯器sed中的定位法有幾種?

陣列
數字 + 正則
正則

44、將文字中所有內容變成一行(用空格進行分割)

[root@localhost tmp]# cat 1.txt | tr "\n" " "
[root@localhost tmp]# awk '{printf $0" "}' 1.txt
[root@localhost tmp]# cat 1.txt | xargs
[root@localhost tmp]# sed -i ':a;N;$!ba;s/\n/ /g' 1.txt

45、如果是字母開頭的行則在行前增加:ZB;如果是數字開頭的行則在行前增加:SZ

[root@localhost tmp]# sed -r 's/^([a-zA-Z])/ZB:\1/g;s/^([0-9])/SZ:\1/g' 2.txt 	

46、如何將Hello World 換成 World Hello?

[root@localhost tmp]# echo "Hello World" | sed -r 's/(Hello).*(World)/\2 \1/g'

47、在Linux系統中,有幾種陣列?怎麼遍歷其中的內容?

普通陣列

關聯陣列

for i in arr
do

done
或 for 變數 in 陣列;do for迴圈體1;for迴圈體2;for迴圈體3;done

48、awk包含多少個部分及其作用?其中預設的變數有哪些?

           BEGIN{}    :BEGIN是在awk處理文字之前執行
// :使用的匹配規則
/正則/ # 該行內容匹配成功正則
$1 ~ /正則/ # 第一段內容匹配成功正則
$1 !~ /正則/ # 第一段內容沒有匹配成功正則
{} :迴圈(每次只處理一行資料)
END{} :當所有的處理全部執行完畢之後,執行END中的相關操作

$0:一整行內容
NR:記錄號(行號),每處理完一條記錄,NR值加1
NF:以-F分隔符分隔的段數,$1,$2...$100
FS:輸入欄位分割符,預設空格
OFS:輸出欄位分隔符

49、要求打印出/etc/passwd檔案種的2和3倍數的行

[root@localhost tmp]# awk -F: '{if(NR%2==0 && NR%3==0){print $0}}' /etc/passwd
[root@localhost tmp]# awk -F: '{if(NR%2==0 || NR%3==0){print $0}}' /etc/passwd (2或者3的倍數的行)

50、要求寫入如下的cron表示式:要求每天的21點到凌晨3點,每個5分鐘執行一次

*/5 21-3 * * *