[toc] vim視圖模式及擴展、用戶的相關配置文件 1.複製系統/etc/services文件到/root目錄,然後使用vim命令打開此文件。 2.顯示該文件的行號 3.顯示該文件的每一行結尾的標識符 4.替換文件中所有的"ssh"字元串替換成"oldboy" 5.跳轉到30行,並刪除此行。 6. ...
目錄
vim視圖模式及擴展、用戶的相關配置文件
1.複製系統/etc/services文件到/root目錄,然後使用vim命令打開此文件。
python cp /etc/services /root/services. vim service. cp /etc/services ./
[[p
2.顯示該文件的行號
:set nu
3.顯示該文件的每一行結尾的標識符
:set list
4.替換文件中所有的"ssh"字元串替換成"oldboy"
:%s#ssh#oldboy#g
5.跳轉到30行,並刪除此行。
:set nu ---->30gg--->dd #註釋行,跳轉到30行,刪除
vim services. +30 --->dd #登陸的時候直接跳轉到30行,刪除
6.撤銷一次你的操作。
u
7.當你執行了撤銷的時候,發現撤銷錯了,回滾,怎麼操作。
ctrl +r
8.給第25行到30行的行首添加一個註釋"#".寫出操作步驟。
:set nu --->25gg---->ctrl+v---->方向鍵到30行--->shift+i---->shift+#--->esc esc
9.刪除第10行到20行的行首的註釋"#".寫出操作步驟。
10gg--->ctrl +v--->按方向鍵選中到20行--->d
10.vim編輯文件時,非正常退出,再從新編輯文件時,出現報錯,怎麼解決,寫出解決步驟。
刪除臨時保存文件,同文件名的.swp文件即可刪除
例如: .filename.swp rm -f .filename.swp
註意:先查看是否有別的用戶在編輯這個文件a
11.vim的環境變數配置文件都有哪些?哪個優先順序高?
~/.vimrc 個人環境變數(優先順序高)
/etc/vimrc 全局環境變數
12.你知道如何使用vim編輯多個文件嗎?
vim -o a.sh zls.txt (水平分割)
vim -O a.sh zls.txt (垂直分割)
13.什麼命令可以比對兩個文件的不同,兩個命令有什麼區別?
diff 文件對比(用的不多)
vimdiff 以vim 方式打開兩個文件對比,高亮標記不同的內容
14.普通模式下的S是什麼作用?
刪除游標所在行,併進入編輯模式
15.什麼是用戶?
用戶指的是能夠正常登陸linux或windows系統
16.Linux與windows系統的用戶有什麼區別?
本質都是登錄系統的,只不過Linux支持多用戶同時登錄,windows預設不支持,但是修改`組策略`的情況下也是可以多用戶登錄的。
17.使用什麼命令可以查看用戶是否存在?
id
18.跟用戶相關的配置文件都有哪些?分別存放的是什麼?
/etc/passwd 存放用戶的信息
/etc/shadow 存放用戶的密碼
19./etc/passwd文件以':' 為分割符, 分為7個欄位,請說明一下每個欄位的具體含義?
第1列 :用戶賬戶名稱
第2列 :密碼占位符,存放賬戶的口令
第3列 :用戶UID,用戶標識號
第4列 :用戶GID,組標識號
第5列 : 用戶註釋,用戶詳細信息
第6列 :用戶家目錄,root家目錄
第7列 :用戶登陸Linux使用的Shell
20./etc/shadow文件以':' 為分割符, 分為9個欄位,請說明一下每個欄位的具體含義?
第1列 :用戶登錄名,也就是用戶的賬戶名稱
第2列 :加密後的密碼
第3列 :最近一次密碼更改時間
第4列 :密碼最少使用幾天
第5列 : 密碼最長使用幾天
第6列 :密碼到期前警告期限
第7列 :密碼到期後保持活動的天數
第8列 : 賬戶到期時間
第9列 : 標誌
21.什麼是用戶的UID?
用戶標識號
22.不同的用戶對應UID號範圍是多少?
0: 超級管理員(擁有最高許可權)
1-200: 系統用戶,有系統分配給系統進程使用
201-999:系統用戶,用來運行服務賬戶,不需要登陸系統(動態分配)
1000+ :常規普通用戶
23.新建用戶user1、user2,用戶user2不允許登陸到系統中。
useradd user1
useradd user2 -M -s /sbin/nologin
或者useradd user1;useradd user -M -s /sbin/nologin
24.創建普通用戶oldboy,其ID號為789.
useradd oldboy -u 789
25.創建虛擬用戶test,其ID號為666
useradd test -M -u 666 -s /sbin/nologin
26.修改oldboy用戶的ID號,修改為777.
usermod oldboy -u 777
27.修改用戶test的命令解釋器,使其可以登錄到系統。
usermod test -s /bin/bash
28.刪除用戶user1.不刪除其家目錄。
userdel user1
29.刪除用戶user2,不保留其家目錄。
userdel -r user2
30.給oldboy用戶創建一個密碼為123,並嘗試登錄。
passwd oldboy
123--->123
[email protected]
su - oldboy #登陸
su - #退出登陸
用戶的相關命令,useradd /usermod 、userdel
1.創建普通用戶test01、test02、test03,要求UID為888,999,998
useradd test01 -u 888
useradd test02 -u 999
useradd test03 -u 998
2.給test01用戶使用互動式設置密碼為123456
passwd test01
123456
123456
3.使用test01用戶進行登錄。
su test01
或者在xhell中更改賬戶密碼鏈接su
ssh [email protected]
4.使用非互動式給test01設置密碼為oldboy123
echo "oldboy123" | passwd --stdin test01
5.使用修改之後的密碼進行登錄。
passwd username
6.有哪些命令可以查看當前用戶的登錄情況?
who
whoami
w
7.刪除用戶test02,要求連家目錄一起刪除。
userdel -r test02
8.請問,我刪除了test02用戶,哪個文件會發生變化?
/etc/passwd
/etc/shadow
9.創建一個虛擬用戶oldboy01,要求UID為555,不創建家目錄。
useradd oldboy01 -u 555 -M -s /sbin/nologin
10.創建用戶時,不指定選項設置參數了,系統創建之後的預設參數是根據什麼文件來定義的?
系統會根據/etc/login.defs、/etc/defaults/useradd兩個文件作為參照物
11.切換普通用戶時,出現這樣的命令行"-bash-4.1$",這是什麼原因造成的,該怎麼解決?
原因:家目錄下的.bash_* 環境變數相關的文件刪除了
解決: cp /etc/skel/.bash* ./ 再重新登錄
環境變數文件預設從/etc/skel目錄中拷貝
12.登錄到test01用戶,給其用戶test03設置密碼,發現報錯,請問是什麼原因?該怎麼解決?
普通用戶沒有修改其他用戶密碼的許可權
只有root用戶管理員才可以修改其他用戶的密碼,
使用非互動式來修改
echo “密碼” |passwd --stdin test03
13.登錄到test01用戶,給其本用戶設置密碼為123,報錯,請問是什麼原因?該怎麼解決?
普通用戶只能更改自己的密碼,但密碼必須滿足8位字元
14.使用root用戶給test01用戶設置一個18位的隨機密碼,併進行登錄。
[root@centos7 ~]# echo $RANDOM|md5sum |cut -c 1-18|tee /tmp/a |passwd --stdin test01
cat /tmp/a #查詢密碼
15.創建10個用戶,首碼是你的姓,尾碼為數字序列,比如qiu1等。
seq '10' |awk '{print "useradd gong"$1}'|bash
16.創建10個用戶,首碼是你的名,尾碼為數字序列,比如zengjia1等,並給其10個用戶設置統一密碼為123456,最後嘗試是否可以登錄。
[root@centos7 ~]# seq '10' |awk '{print " useradd jingyun"$1";""echo123456|passwd --stdin jingyun"$1}'|bash
17.創建10個用戶,首碼是oldboy,尾碼為數字序列,比如oldboy1等,並給其10個用戶設置隨機密碼,最後嘗試是否可以登錄。
[root@centos7 ~]# seq '10' |awk '{print "useradd oldboy"$1";""echo $RANDOM|md5sum|cut -c 1-10 |tee /tmp/old0"$1"|passwd --stdin oldboy"$1}'|bash
cat /tmp/old01
18.創建用戶qiudao,並給其用戶設置一個24位的隨機密碼,要求密碼包含數字,大小寫字母及特殊符號,最後查看是否可以登錄。
[root@centos7 ~]# useradd qiudao ;mkpasswd -l 24 -d 2 -c 2 -C 2 -s 4|tee /tmp/aaa|passwd --stdin qiudao
cat /tmp/aaa
19.嘗試使用sed命令的後向引用取出ip地址,請分別使用ip和ifconfig命令取出,實在取不出,也沒有關係。
[root@centos7 ~]# ip a s ens33|sed -rn '3s#.*t (.*)/.*#\1#p'
10.0.0.100
[root@centos7 ~]# ifconfig ens33|sed -rn '2s#.*t (.*) n.*#\1#gp'
10.0.0.100
20.嘗試使用awk命令取出ip地址,請分別使用ip和ifconfig命令取出,實在取不出,也沒有關係。
[root@centos7 ~]# ifconfig ens33|awk -F ' ' 'NR==2 {print $2}'
10.0.0.100
[root@centos7 ~]# ip a s ens33|awk -F '[ /]+' 'NR==3 {print$3}'
10.0.0.100
組的切換,shell分類,用戶身份提權
1.跟組相關的兩個配置文件是?
/etc/group
/etc/gshadow
2.創建一個用戶基本組,shanghai01.
groupadd shanghai01
3.創建一個用戶基本組,shanghai02,指定GID為1099.
groupadd -g 1099 shanghai02
4.創建一個用戶系統組,shanghai03.
groupadd -r shanghai03
5.修改用戶基本組shanghai02的GID號為1033.
groupmod -g 1033 shanghai02
6.將基本組shanghai01組名修改為linux
groupmod -n linux shanghai01
7.創建一個用戶linux01,指定該用戶的附加組為shanghai02
useradd -G shanghai02 linux01
8.創建用戶linux02.指定用戶基本組為shanghai03
useradd -g shanghai03 linux02
9.創建用戶linux03,指定該用戶的附加組為shanghai02,shanghai03。
useradd -G shanghai02,shanghai03 linux03
10.查看用戶linux02的uid和gid信息
id linux02
11.刪除用戶基本組shanghai02。
groupdel shanghai02
12.刪除用戶基本組shanghai03。發現無法正常刪除,怎樣才能將其刪除掉,不能刪除用戶。
只有將基本組下的用戶變更組才可以刪除
13.打開多個xshell視窗連接登錄同一虛擬機,使用不同的用戶登錄多次,分別使用w和who命令顯示當前系統上的所有已經登錄的用戶,取出用戶名這一列,註意:同一個用戶登錄多次,則只顯示一次即可。
who|awk '{print$1}'|sort|uniq -c
w|awk 'NR>2 {print$1}'|sort|uniq -c
14.創建用戶olddir,其ID號為1005,基本組為old
groupadd old
useradd olddir -u 1005 -g old
15.顯示當前登錄的用戶的UID號,你有幾種方法實現?
id username
grep '^username' /etc/passwd
16.對於用戶來說,組有幾種類別?有什麼區別?
基本組不可以被刪除,只有一個基本組
附加組可以有多個附加組,可以刪除
17./etc/group文件以:為分隔符,分為四列,解釋其每列的含義?
1.組的名稱
2.組的密碼(存在/etc/gshadow)
3.組GID信息
4.僅顯示附加成員,基本成員不顯示
18./etc/gshadow文件以:為分隔符,分為四列,解釋其每列的含義?
1.組名稱
2.組密碼
3.組管理員
4.僅顯示附加成員,基本成員不顯示
19.如果想從root用戶切換到普通用戶,使用什麼命令?
su - username
20.切換到普通用戶後,想返回到root用戶,怎麼做?幾種方法有什麼區別?
su - 要輸入密碼
logout 不用輸入密碼
ctrl +d 不用輸入密碼
exit 不用輸入密碼
21.Shell主要分為哪幾類?
互動式shell //等待用戶輸入執行的命令(終端操作,需要不斷提示)
非互動式shell //執行shell腳本, 腳本執行結束後shell自動退出
登陸shell //需要輸入用戶名和密碼才能進入shell su - zls
非登陸shell //不需要輸入用戶和密碼就能進入,比如執行sh, bash, su username
22.Bash Shell的個人及全局配置文件有哪些?哪個優先順序別高?
個人配置文件: ~/.bash_profile ~/.bashrc
全局配置文件:/etc/profile /etc/profile.d/*.sh /etc/bashrc
23.登錄式Shell配置文件執行順序?
//登錄式shell配置文件執行順序
/etc/profile->/etc/profile.d/*.sh->~/.bash_profile->~/.bashrc->/etc/bashrc
24.非登錄式shell配置文件執行順序?
//非登陸式shell配置文件執行順序
~/.bashrc->/etc/bashrc->/etc/profile.d/*.sh
==25.在root用戶下,以普通用戶身份執行"pwd"命令==。
su - linux01 -c "pwd"
26.什麼是sudo?
普通用戶提權命令。
sudo執行一個僅有root身份才能執行的命令是可以辦到的,但是需要輸入密碼,這個密碼並不是root的密碼而是用戶自己的密碼。
27.可以根據哪個文件對sudo提權?
visudo /etc/sudoers
==28==.登錄到普通用戶,查看/etc/shadow文件的內容,發現查看不了,怎麼辦?
先visudo進去編輯給普通用戶cat許可權
sudo cat /etc/shadow
29.登錄到普通用戶,刪除/opt目錄,若無法刪除,該怎麼解決?
先visudo 進去編輯給用戶rm許可權
sudo rm - fr /pot
30.登錄到普通用戶,使用sudo命令時,不想輸出密碼,怎麼解決?
visudo 修改成NOPASSWD
31.怎樣查看普通用戶的sudo許可權?
sudo -l
32.配置好了sudo授權,怎麼檢查語法是否正確?
visudo -c
/etc/sudoers: parsed OK
33.禁止root用戶遠程登錄,怎麼實現?
vim /etc/ssh/ssh_config PermitRootLogin no
34.修改遠程連接埠號為2222,然後進行登錄?
vim /etc/ssh/ssh_config Port 改為222
35.把對sshd的設置修改成預設。
vim /etc/ssh/ssh_config
把PermitRootLogin yes Port 改為 22
臨時關閉防火牆:
36.使用sed命令列印出/etc/passwd文件的第一行到第三行
sed -n '1,3p' /etc/passwd
37.用一條命令創建/oldboy/test/shl05目錄
mkdir -p /oldboy/test/shl05
38.說出下麵幾個特殊符號的含義 * > >> # .. . ^ $ `` !
* 代表所有
> 標準輸出重定項
>> 標準輸出追加重定向
# 註釋 ,超級用戶標識符
.. 當前目錄的上層目錄
. 當前目錄 ,任意一個字元
^ 以什麼開頭
$ 以什麼結尾,變數,普通用戶標示符
`` 反引號,先執行引號裡面的命令,把結果交給外面
!非,取反
39.把/oldboy/oldboy.txt文件中的oldboy替換為oldgirl,
sed -i ‘s#oldboy#oldgirl#g’ /oldboy/oldboy.txt
40.如何查看/etc/services文件的有多少行?
cat -n /etc/services|tail -1
wc -l /etc/services
awk '{print $0,NR}' /etc/services |tail -1
41.過濾出/etc/services 文件包含3306或1521兩數字所在的行的內容。一條命令實現。
egrep '3306|1521' /etc/services
awk '/3306|1521/' /etc/services
sed -nr '/3306|1521/p' /etc/services
42.test.txt內容如下:
zengdao
qiudao
oldboy
請給出輸出test.txt 文件內容時,不包含oldboy字元串的命令,有幾種方法。
grep -v 'oldboy' test.txt
awk '!/oldboy/' test.txt
sed '/oldboy/d' test.txt
head -2 test.txt
awk 'NR==1,NR==2' test.txt
awk 'NR>=1&& NR<=2' test.txt
sed -n '1,2p' test.txt
43.入職新公司
,老大讓你在伺服器上限制rm 命令,當用戶輸入rm 命令時候提示”rm commandis not allowed to use.” 請問實現的步驟是?
alias rm='echo "rm commandis not allowed to use"'
44. 在linux 系統中,當LAN(區域網)內沒有條件記案例DNS 伺服器,但又想讓區域網內的用戶可以使用電腦名互相訪問時,應配置( )文件(請寫全路徑)
etc/hosts
45.寫出redhat 中,配置網卡及dns 的配置文件是什麼?有什麼區別?
etc/sysconfig/network-scripts/ifconfig-ens33 網卡及DNS
/etc/resolv.conf
書寫方式不一樣,
生效方式不一樣,網卡配置文件需要重啟網路服務才能生效
46.若要將滑鼠從VM中釋放出來,可按()鍵完成
ctrl +alt
47.如果用戶想對一個命令詳細的瞭解,可用()命令?
命令 --help
man
info
help
48.vim中把所有oldboy替換為oldgirl,給出命令?
:%s#oldboy#oldgirl#g
49.如何統計/etc下有多少個目錄,不包括隱藏目錄,只顯示目錄個數。
tree -d /etc |tail -1
50.統計secure.log文件中每個ip地址破解你用戶密碼的次數.文件群里有。
awk '/Failed passwd/{print $(NF-3)}' secure.log|sort|uniq -c|sort -rn |head