linux基礎練習題

第1章 階段總結

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

BIOS開機自檢

mbr引導

grub菜單

加載內核

init進程

/etc/inittab

/etc/rc.d/rc.sysinit

/etc/re.d/rc

啓動mingetty進程

登陸界面

1.2 2、我想在/data/oldboyedu目錄下面建立 一個oldboy.txt文件

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

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

1.爲什麼出現這樣的錯誤正則表達式

這個目錄不存在

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

建立目錄

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

1.3 3、接上題,向oldboy.txt加入內容 "I love studying Linux." (很多於2種方法)

方法1安全

vi或vim修改

方法2bash

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     ssh

1.4.1 4、請給出輸出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 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 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 7、

經過修改文件( /etc/fstab或fstab ),能夠設定開機時自動掛載文件系統。

1.8 8、

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

1.9 9、

linux系統啓動加載完成後,內核將啓動名爲(init)的程序,這也是引導過程完成後,內核運行的第一個程序。咱們能夠修改默認的啓動級別爲( 3),使得系統重啓後自動採用命令行模式登陸。

1.10 10、說出下面幾個文件的做用

/var/log/messages            系統默認日誌(系統日誌也行)

/var/log/secure              系統安全日誌或用戶的登陸狀況

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

/etc/fstab                   開機自動掛載

/var/spool/cron/root         定時任務配置文件

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

1.11 11、統計/var/log下文件個數

ls /var/log|wc -l


find /var/log|wc -l

1.12 12、描述buffer和cache的區別

寫buffer讀cache

1.13 十3、

如何把/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 十4、請列出linux下面經常使用的打包工具並寫出相應的壓縮解壓參數。

tar zcf                      建立壓縮包 或zcvf

xf                           解壓  或 zxvf

tf                           查看  或 ztf

-C                           解壓到指定目錄

--exclude                    排除

--exclude-from或-X           根據文件內容排除文件

zip -r                       壓縮目錄

1.15 十5、如何查看是否開啓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 十6、將/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 十7、現將文件b.txt中的全部123替換成def,請問如何實現?

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

1.18 十8、寫出redhat中,配置網卡及dns的配置文件是什麼?

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

DNS:  /etc/resolv.conf  

1.19 十9、什麼是linux的運行級別,請描述linux的運行級別不一樣數字的含義?

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

0 關機

1 單用戶模式

2 多用戶模式沒有NFS

3 命令行模式 文本模式 多用戶模式

4 沒有使用

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

6 重啓

1.20 二10、簡述linux沒法上網的排查流程 ;

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

2.ping 223.5.5.5  檢查是否DNS問題

3.ping 網關     檢查是否配置或其餘問題

 

故障緣由:

1.檢查配置文件

2.虛擬網絡編輯器

3.vmware服務

4.vmware虛擬網卡問題

1.21 二11、軟鏈接與硬連接區別

【硬鏈接】
硬鏈接指經過索引節點來進行鏈接。在Linux的文件系統中,保存在磁盤分區中的文件不論是什麼類型都給它分配一個編號,稱爲索引節點號(Inode Index)。在Linux中,多個文件名指向同一索引節點是存在的。通常這種鏈接就是硬鏈接。硬鏈接的做用是容許一個文件擁有多個有效路徑名,這樣用戶就能夠創建硬鏈接到重要文件,以防止「誤刪」的功能。其緣由如上所述,由於對應該目錄的索引節點有一個以上的鏈接。只刪除一個鏈接並不影響索引節點自己和其它的鏈接,只有當最後一個鏈接被刪除後,文件的數據塊及目錄的鏈接纔會被釋放。也就是說,文件真正刪除的條件是與之相關的全部硬鏈接文件均被刪除。

【軟鏈接】
另一種鏈接稱之爲符號鏈接(Symbolic Link),也叫軟鏈接。軟連接文件有相似於Windows的快捷方式。它其實是一個特殊的文件。在符號鏈接中,文件其實是一個文本文件,其中包含的有另外一文件的位置信息。

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

方法1

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

方法2

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

方法3

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

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

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

1.24 二十4、寫出你熟悉的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 二十5、建立文件提示no space left on device 可是df -h還有空間這是什麼緣由?如何排查和解決。

inode滿了

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

1.26 二十6、經過df -h發現磁盤空間不足可是du -sh發現沒有滿,說出緣由和排查解決過程。

緣由:

文件沒有完全刪除致使的(硬連接數爲0,進程調用數不爲零)

排查:

lsof |grep delete

解決:

重啓對應的服務

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

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

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

/tmp

1.29 二十9、查找出系統中大於50k且小於100k的文件,把文件中的oldboy替換爲oldgirl。

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

1.30 三10、把/etc/hosts 文件備份爲hosts.bak

cp /etc/hosts /etc/hosts.bak

1.31 三11、把/oldboy 更名爲/lidao

mv /oldboy lidao

1.32 三12、顯示/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 三十3、如何設置grep別名,讓grep默認過濾時永久顯示顏色

alias grep=’grep --color’

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

1.34 三十4、查找/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 三十6、描述通配符與正則表達式的區別

基本上解釋就是通配符是系統命令使用,通常用來匹配文件名或者什麼的用在系統命令中。而正則表達式是操做字符串,以行尾單位來匹配字符串使用的。
還有一點須要注意的是:*在通配符和正則表達式中有其不同的地方,在通配符中*能夠匹配任意的0個或多個字符,而在正則表達式中他是重複以前的一個或者多個字符,不能獨立使用的。好比通配符能夠用*來匹配任意字符,而正則表達式不行,他只匹配任意長度的前面的字符。

1.36 三十7、使用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 三十8、使用grep過濾不包含oldboy字符串的行

grep -v 「oldboy」

1.38 四10、已知/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

對不起,密碼不匹配

相關文章
相關標籤/搜索