linux基礎練習題


第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

對不起,密碼不匹配

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM