21 linux基礎考試
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 * * *