linux基礎練習題

張恩清發表於2018-08-06

第1章 階段總結

1.1 一、請詳細描述linux系統從開啟主機電源到進入登入介面整個過程的流程。

BIOS開機自檢

mbr引導

grub選單

載入核心

init程式

/etc/inittab

/etc/rc.d/rc.sysinit

/etc/re.d/rc

啟動mingetty程式

登入介面

1.2 二、我想在/data/oldboyedu目錄下面建立 一個oldboy.txt檔案

[root@oldboyedu ~]# cd /data/oldboyedu

-bash: cd: /data/oldboyedu: No such file or directory

1.為何出現這樣的錯誤

這個目錄不存在

2.如何解決這個錯誤呢?

建立目錄

給出命令:mkdir -p /data/oldboyedu

1.3 三、接上題,向oldboy.txt加入內容 “I love studying Linux.” (不少於2種方法)

方法1

vi或vim修改

方法2

echo ` I love studying Linux.` >/data/oldboyedu/oldboy.txt

 1.3.1 說說這些特殊符號含義:   >  >>  2> 2>>   #(井號)  .(點)  ..(兩個點)  ~  *  $  |

   轉義字元 撬棍 脫掉馬甲打回原形(或類似含義)

>   重定向符號 先清空檔案內容,然後追加內容(或類似含義)

>>  追加重定向 追加到檔案結尾(或類似含義)

2>  錯誤輸出重定向

2>> 錯誤輸出追加重定向

#   井號 註釋或root使用者命令提示符或sed分隔符(sed `s###g`)

.   當前目錄 或 正則任何一個字元 或 用於生效

.   /etc/profile === source /etc/profile #這個可以不講解

..  當前目錄的上級目錄

~   當前使用者家目錄或awk中表示匹配(awk `$1~/oldboy/` xxx)#這個可以不講解

*   所有字元或任意字元或正規表示式表示前一個字元連續出現0次或0次以上

$   取變數內容 或 正則以...結尾

|   管道 或 正則表示或者

1.4 test.txt內容為:

trainning

fanbingbing

lidao     

1.4.1 四、請給出輸出test.txt檔案內容時,不包含trainning字串的命令。

方法1

grep -v `trainning` test.txt #不加引號也行

方法2

tail -2 test.txt

方法3

sed `/trainning/d` test.txt

方法4

awk `!/trainning/` test.txt

方法5

grep `^[^t]` test.txt 

1.5 五、入職新公司,老大讓你在伺服器上限制rm命令,當使用者輸入rm 命令時候提示”rm command is not allowed to use.” 請問實現的步驟是?。

1)命令列測試

alias rm=`echo command is not allowd to use`

2)永久生效

寫入/etc/profile

3)生效

source /etc/profile

1.6 六、取出檔案ett.txt 的第30到40行的內容。

注:ett.txt由seq 20 120>ett.txt建立

方法1

sed -n `30,40p` ett.txt

方法2

awk `NR==30,NR==40` ett.txt

方法3

head -40 ett.txt|tail -11

方法4

awk `NR>=30&&NR<=40` ett.txt

1.7 七、

通過修改檔案( /etc/fstab或fstab ),可以設定開機時自動掛載檔案系統。

1.8 八、

在linux系統中,當LAN(區域網)內沒有條件記案例DNS伺服器,但又想讓區域網內的使用者可以使用計算機名互相訪問時,應配置( /etc/hosts)檔案(請寫全路徑)

1.9 九、

linux系統啟動載入完成後,核心將啟動名為(init)的程式,這也是引導過程完成後,核心執行的第一個程式。我們可以修改預設的啟動級別為( 3),使得系統重啟後自動採用命令列模式登入。

1.10 十、說出下面幾個檔案的作用

/var/log/messages            系統預設日誌(系統日誌也行)

/var/log/secure              系統安全日誌或使用者的登入情況

/etc/hosts                   ip地址與主機名(域名)對應關係  或 用於解析主機名

/etc/fstab                   開機自動掛載

/var/spool/cron/root         定時任務配置檔案

/etc/rc.local                開機自啟動配置

1.11 十一、統計/var/log下檔案個數

ls /var/log|wc -l


find /var/log|wc -l

1.12 十二、描述buffer和cache的區別

寫buffer讀cache

1.13 十三、

如何把/data目錄下所有包含oldboy的目錄(可能目錄的目錄的目錄裡還有oldboy目錄) 目錄都打包出來。要求:解壓打包後的目錄結構不能改變 。

方法1

find /data -type d -name "oldboy" |xargs tar zcf  /tmp/oldboy.tar.gz

方法2

find /data -type d -name "oldboy" -exec tar zcf  /tmp/oldboy.tar.gz {} ;

方法3

tar zcf  /tmp/oldboy.tar.gz  `find /data -type d -name "oldboy"`

tar zcf  /tmp/oldboy.tar.gz  $(find /data -type d -name "oldboy")

1.14 十四、請列出linux下面常用的打包工具並寫出相應的壓縮解壓引數。

tar zcf                      建立壓縮包 或zcvf

xf                           解壓  或 zxvf

tf                           檢視  或 ztf

-C                           解壓到指定目錄

--exclude                    排除

--exclude-from或-X           根據檔案內容排除檔案

zip -r                       壓縮目錄

1.15 十五、如何檢視是否開啟22埠,及檢視sshd程式是否存在?

檢視埠22是否開啟

ss -lntup |grep 22

netstat -lntup|grep 22

telnet ip地址 22

nc  ip地址 22

nmap -p22  ip地址

lsof -i:22

檢視程式是否存在

ps -ef |grep sshd

1.16 十六、將/data目錄下的修改時間是7天以前,並且大於100k的檔案複製到/tmp目錄下。

方法1

find /data -type f  -mtime +7 -size +100k  -exec cp {} /tmp  ;

方法2

cp ` find /data -type f  -mtime +7 -size +100k ` /tmp

cp $( find /data -type f  -mtime +7 -size +100k ) /tmp

方法3

find /data -type f  -mtime +7 -size +100k |xargs cp -t /tmp

方法4

find /data -type f  -mtime +7 -size +100k |xargs -i cp {} /tmp

1.17 十七、現將檔案b.txt中的所有123替換成def,請問如何實現?

sed `s#123#def#g` b.txt

1.18 十八、寫出redhat中,配置網路卡及dns的配置檔案是什麼?

網路卡: /etc/sysconfig/network-scripts/ifcfg-eth0

DNS:  /etc/resolv.conf  

1.19 十九、什麼是linux的執行級別,請描述linux的執行級別不同數字的含義?

Linux的執行級別就是linux執行狀態

0 關機

1 單使用者模式

2 多使用者模式沒有NFS

3 命令列模式 文字模式 多使用者模式

4 沒有使用

5 圖形化介面模式  桌面模式

6 重啟

1.20 二十、簡述linux無法上網的排查流程 ;

1.ping baidu.com 檢查是否能上網

2.ping 223.5.5.5  檢查是否DNS問題

3.ping 閘道器     檢查是否配置或其他問題

 

故障原因:

1.檢查配置檔案

2.虛擬網路編輯器

3.vmware服務

4.vmware虛擬網路卡問題

1.21 二十一、軟連線與硬連結區別

【硬連線】
硬連線指通過索引節點來進行連線。在Linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配一個編號,稱為索引節點號(Inode Index)。在Linux中,多個檔名指向同一索引節點是存在的。一般這種連線就是硬連線。硬連線的作用是允許一個檔案擁有多個有效路徑名,這樣使用者就可以建立硬連線到重要檔案,以防止“誤刪”的功能。其原因如上所述,因為對應該目錄的索引節點有一個以上的連線。只刪除一個連線並不影響索引節點本身和其它的連線,只有當最後一個連線被刪除後,檔案的資料塊及目錄的連線才會被釋放。也就是說,檔案真正刪除的條件是與之相關的所有硬連線檔案均被刪除。

【軟連線】
另外一種連線稱之為符號連線(Symbolic Link),也叫軟連線。軟連結檔案有類似於Windows的快捷方式。它實際上是一個特殊的檔案。在符號連線中,檔案實際上是一個文字檔案,其中包含的有另一檔案的位置資訊。

1.22 二十二、刪除/etc/inittab中的空行或以#開頭的行;

方法1

egrep -v `^$|^#`  /etc/inittab 

方法2

sed -r `/^$|^#/d` /etc/inittab

方法3

awk `!/^$|^#/` /etc/inittab

1.23 二十三、顯示/etc/passwd中第1,3,5列

awk -F ":" `{print $1,$3,$5}` /etc/passwd

1.24 二十四、寫出你熟悉的8個VIM的快捷鍵

移動游標

        ↑k

←h    →l

    ↓j

 

把游標移動到檔案的第1行

gg

1G

:1

 

把游標移動到檔案的最後一行

G

:$

 

把游標移動到檔案的第100行

100gg

100G

:100

 

0(數字0)

^

把游標移動到這一行的結尾

$

測試檔案

cat /etc/services  /etc/sysconfig/network-scripts/ifcfg-eth0 >>/tmp/vim.log

編輯(移動並編輯)

在當行下面插入一個空行並進入編輯模式

o(小寫字母o)

 

在當行上面插入一個空行並進入編輯模式

O(大寫字母O)

 

刪除游標所在位置到行尾的內容並進入編輯模式

C(大寫字母C)

 

刪除游標所在位置到行尾的內容

D  d$

 

快速到達行尾並進入編輯模式

A

複製 刪除 貼上

複製游標所在行

yy

 

貼上

p

 

多次貼上

3p

 

刪除/剪下

dd

 

刪除當前行到檔案結尾的內容

dG

 

其他

顯示行號

:set nu

 

取消顯示行號

:set nonu

查詢

/你要找的內容

預設向下搜尋

繼續向下查詢

n

 

繼續向上查詢

N

 

你要找的內容

預設向上搜尋

撤銷當前操作

u

undo

 

恢復剛才的操作

ctrl + r

 

vim查詢幫助

:help  G

:help  :wq

:h G

nu===number
 

1.25 二十五、建立檔案提示no space left on device 但是df -h還有空間這是什麼原因?如何排查和解決。

inode滿了

找出系統中大於1M的目錄,確認後再刪除

1.26 二十六、通過df -h發現磁碟空間不足但是du -sh發現沒有滿,說出原因和排查解決過程。

原因:

檔案沒有徹底刪除導致的(硬連結數為0,程式呼叫數不為零)

排查:

lsof |grep delete

解決:

重啟對應的服務

1.27 二十七、顯示當前系統日期為年月日~周幾~小時

data +%F_%w_%H_%M_%S

1.28 二十八、當前目錄/etc/rc.d目錄 cd ../../../tmp 請問當前所在目錄是哪裡

/tmp

1.29 二十九、查詢出系統中大於50k且小於100k的檔案,把檔案中的oldboy替換為oldgirl。

find -type -size +50k -size -100k |xargssed -i ‘s#oldboy#oldgirl#g‘

1.30 三十、把/etc/hosts 檔案備份為hosts.bak

cp /etc/hosts /etc/hosts.bak

1.31 三十一、把/oldboy 改名為/lidao

mv /oldboy lidao

1.32 三十二、顯示/etc/services 檔案中包含3306或1521的行(三種方法)

1.32.1 方法一:grep -n

grep -n "3306|1521" /etc/services

1.32.2 方法二:egrep -n

egrep -n "3306|1521" /etc/services

grep -E "3306|1521" /etc/services

1.33 三十三、如何設定grep別名,讓grep預設過濾時永久顯示顏色

alias grep=’grep --color’

把這句同時寫進/root/.bashrc裡面,並且執行一下source /root/.bashrc

1.34 三十四、查詢/oldboy 目錄下的所有檔案結尾為*.txt的檔案,並將檔案內容輸出。

方法1:

cat /oldboy/*.txt

方法2:

find /oldboy -type f -name “*.txt” | xargs cat

方法3:

find /oldboy/ -type f -name "*.txt" -exec cat {} ;

1.35 三十六、描述萬用字元與正規表示式的區別

基本上解釋就是萬用字元是系統命令使用,一般用來匹配檔名或者什麼的用在系統命令中。而正規表示式是操作字串,以行尾單位來匹配字串使用的。
還有一點需要注意的是:*在萬用字元和正規表示式中有其不一樣的地方,在萬用字元中*可以匹配任意的0個或多個字元,而在正規表示式中他是重複之前的一個或者多個字元,不能獨立使用的。比如萬用字元可以用*來匹配任意字元,而正規表示式不行,他只匹配任意長度的前面的字元。

1.36 三十七、使用ifconfig  eth0 命令檢視IP地址,請寫出取出IP地址的方法,至少使用兩種方法

方法1:

ifconfig eth0 | grep “10.0.0” | awk -F “:” ‘{print $2}’ | awk -F “ ” ‘{print $1}’

方法2:

ifconfig eth0 |awk `NR==2` |awk -F"addr:|Bcast:"  `{print $2}`

1.37 三十八、使用grep過濾不包含oldboy字串的行

grep -v “oldboy”

1.38 四十、已知/oldboy/test.txt 檔案內容為:

 oldboy

 

 xizi

 xiaochao

請問如何把檔案中的空格過濾掉(要求命令列實現)。

egrep -v “^$” /oldboy/test.txt

第2章 錯誤總結

2.1 No such file or directory

沒有此檔案或目錄

2.2 command not found

找不到此命令

2.3 rm: cannot remove `/oldboy/data/`: Is a directory

要刪除的是個非空目錄

2.4 find: Arguments to -type should contain only one letter

查詢:-type的引數應該只包含一個字母

2.5 Firewall is not running.

防火牆沒啟動

2.6 ping: unknown host baidu.com

網不通

未知主機baidu.com

2.7 Package tree-1.5.3-3.el6.x86_64 already installed and latest version

安裝了這個軟體最新版本的包

2.8 Couldn`t resolve host www.oldboyedu.com

DNS不可達

無法解析主機www.oldboyedu.com

2.9 This account is currently not available

該帳戶目前不可用

2.10 Sorry, passwords do not match

對不起,密碼不匹配

 

相關文章