1. 程式人生 > >Day11 - 第二關練習題上

Day11 - 第二關練習題上

創建目錄 過濾 要求 ech solid 字符 3.1 messages apache

第1章 linux啟動過程

1、開機自檢bios

2mbr引導

3GRUB 菜單:選擇不同的內核

4、加載內核

5、運行init進程

6、讀取/etc/inittab運行級別配置文件

7、執行 /etc/rc.d/rc.sysinit 腳本 (系統的初始化腳本)配置主機名,IP地址

8、執行 /etc/rc.d/rc(根據運行級別運行相應的軟件)

9、顯示登陸界面

第2章 練習題

2.1 1

如何過濾出已知當前目錄下oldboy中的所有一級目錄(提示:不包含oldboy目錄下面目錄的子目錄及隱藏目錄,即只能是第一級目錄)

2.1.1 環境創建

mkdir /oldboy -p

cd /oldboy

mkdir ext/oldboy test xiaodong xiaofan xingfujie -p

touch jeacen oldboy wodi.gz yingsui.gz

2.1.2 方法一 tree

-d顯示目錄,-L 1找當前目錄

[[email protected] oldboy]# tree -dL 1

.

├── data

└── test

2.1.3 方法二 find

-maxdepth 最大目錄深度 表示非、排除

[[email protected] oldboy]# find . -maxdepth 1 -type d ! -name "."

./data

./test

2.1.4 方法三 ls +grep

^d 表示以d開頭的。

[[email protected] oldboy]# ls -l |grep "^d"

drwxr-xr-x 3 root root 4096 Aug 23 15:51 data

drwxr-xr-x. 3 root root 4096 Aug 23 15:51 test

2.1.5 方法四 ls -F + grep

ls -F 給不同的文件加上不同的標記 文件夾為/

[[email protected] oldboy]# ls -F /oldboy/|grep "/"

tandao/

test/

2.1.6 方法五ls+awk

^d表示以d開頭的。

[[email protected] oldboy]# ls -l |awk ‘/^d/‘

drwxr-xr-x 3 root root 4096 Aug 23 15:51 data

drwxr-xr-x. 3 root root 4096 Aug 23 15:51 test

2.1.7 方法六ls+awk

$2>1 , 表示第二列大於1

[[email protected] oldboy]# ls -l /oldboy/|awk ‘$2>1‘

total 20

drwxr-xr-x 3 root root 4096 Aug 23 15:51 data

drwxr-xr-x. 3 root root 4096 Aug 23 15:51 test

2.2 2

希望快速返回上一次進入的目錄

2.2.1 cd命令

[[email protected] tmp]# cd /oldboy/

[[email protected] oldboy]# pwd

/oldboy

[[email protected] oldboy]# cd /tmp/

[[email protected] tmp]# pwd

/tmp

[[email protected] tmp]# cd -

/oldboy

[[email protected] oldboy]# #cd - ==== cd $OLDPWD(存放著 你上一次所在的位置)

cd .. ###進入到上一級目錄 當前目錄的上一級目錄

. ###當前目錄 cp /etc/hosts .

cd ~ ###當前用戶的家目錄 回老家

cd ###回老家

cd - ###進入到上一次所在的位置

2.2.2 練習

#進入到/etc/sysconfig/network-scripts/目錄,並查看你所在位置

#進入到上一級目錄,並查看你所在位置

#進入到/root目錄下面,並顯示你所在位置

#快速返回到/你上一次的位置

#回到老家

[[email protected] ~]# cd /etc/sysconfig/network-scripts/

[[email protected] network-scripts]# pwd

/etc/sysconfig/network-scripts

[[email protected] network-scripts]# cd ..

[[email protected] sysconfig]# pwd

/etc/sysconfig

[[email protected] sysconfig]# cd /root/

[[email protected] ~]# pwd

/root

[[email protected] ~]# cd -

/etc/sysconfig

[[email protected] sysconfig]# cd

[[email protected] ~]# pwd

/root

2.3 3

一個目錄中有很多文件(ls -l 查看時好多屏),想用一條命令最快速度查看到最近更新的文件。如何看?

-r時逆序顯示 -t按時間順序排序

[[email protected] oldboy]# ls -lrt

total 20

-rw-r--r--. 1 root root 7 Aug 17 17:00 t.sh

-rw-r--r--. 1 root root 0 Aug 17 17:00 oldboy.txt

-rw-r--r--. 1 root root 0 Aug 17 17:00 alex.txt

-rw-r--r--. 1 root root 0 Aug 17 17:28 b

-rw-r--r--. 1 root root 8 Aug 17 19:35 test.sh

drwxr-xr-x 3 root root 4096 Aug 23 15:51 data

drwxr-xr-x. 3 root root 4096 Aug 23 15:51 test

-rw-r--r-- 1 root root 43 Aug 24 12:02 nginx.conf

2.3.1 指定ls命令顯示日期的格式

[[email protected]b etc]# ls -l --time-style=long-iso

2.4 4

在配置apache 執行了./configure --prefix=/application/apache2.2.17 來編譯apche make install 完成後,希望用戶訪問 apache路徑更簡單,需要給/application/apache2.2.17 目錄做一個軟鏈接/application/apache,使得內部開發或管理人員通過/application/apache 就可以訪問到apache 的安裝目錄/application/apache2.2.17 下的內容,請你給出實現的命令。

(提示:apache為一個 web服務)

2.4.1 模擬環境

創建目錄

[[email protected] oldboy]# mkdir -p /application/apache2.2.17

[[email protected] oldboy]# ls -l /application/

total 4

drwxr-xr-x 2 root root 4096 Aug 30 10:10 apache2.2.17

2.4.2 創建軟連接

[[email protected] oldboy]# ln -s /application/apache2.2.17/ /application/apache

[[email protected] oldboy]# cd /application/

[[email protected] application]# ls -l

total 4

lrwxrwxrwx 1 root root 26 Aug 30 10:12 apache -> /application/apache2.2.17/

drwxr-xr-x 2 root root 4096 Aug 30 10:10 apache2.2.17

2.4.3 模擬升級

[[email protected] application]# mkdir -p /application/apache2.4.17

[[email protected] application]# ls -l /application/

total 8

lrwxrwxrwx 1 root root 26 Aug 30 10:12 apache -> /application/apache2.2.17/

drwxr-xr-x 2 root root 4096 Aug 30 10:10 apache2.2.17

drwxr-xr-x 2 root root 4096 Aug 30 10:16 apache2.4.17

2.4.4 修改軟連接

先將舊的軟鏈接刪除,防止出錯。

[[email protected] application]# \rm -f /application/apache

[[email protected] application]# ls -l /application/

total 8

drwxr-xr-x 2 root root 4096 Aug 30 10:10 apache2.2.17

drwxr-xr-x 2 root root 4096 Aug 30 10:16 apache2.4.17

[[email protected] application]# ln -s /application/apache2.4.17/ /application/apache

[[email protected] application]# ls -l /application/

total 8

lrwxrwxrwx 1 root root 26 Aug 30 10:17 apache -> /application/apache2.4.17/

drwxr-xr-x 2 root root 4096 Aug 30 10:10 apache2.2.17

drwxr-xr-x 2 root root 4096 Aug 30 10:16 apache2.4.17

2.5 5

已知 apache 服務的訪問日誌按天記錄在服務器本地目錄/app/logs 下,由於磁盤空間緊張,現在要求只能保留最近 7 天的訪問日誌!

2.5.1 方法一 find |xargs

-mtime +7 表示7天以前 7表示第七天, -7表示最近7

[[email protected] ~]# find /app/logs/ -type f -name "*.log" -mtime +7 |xargs ls -ltr

-rw-r--r-- 1 root root 0 May 1 00:00 /app/logs/access_www_2017-05-01.log

-rw-r--r-- 1 root root 0 May 2 00:00 /app/logs/access_www_2017-05-02.log

-rw-r--r-- 1 root root 0 May 3 00:00 /app/logs/access_www_2017-05-03.log

-rw-r--r-- 1 root root 0 May 4 00:00 /app/logs/access_www_2017-05-04.log

-rw-r--r-- 1 root root 0 May 5 00:00 /app/logs/access_www_2017-05-05.log

-rw-r--r-- 1 root root 0 May 6 00:00 /app/logs/access_www_2017-05-06.log

-rw-r--r-- 1 root root 0 May 7 00:00 /app/logs/access_www_2017-05-07.log

-rw-r--r-- 1 root root 0 May 8 00:00 /app/logs/access_www_2017-05-08.log

-rw-r--r-- 1 root root 0 May 9 00:00 /app/logs/access_www_2017-05-09.log

-rw-r--r-- 1 root root 0 May 10 00:00 /app/logs/access_www_2017-05-10.log

-rw-r--r-- 1 root root 0 May 11 00:00 /app/logs/access_www_2017-05-11.log

-rw-r--r-- 1 root root 0 May 12 00:00 /app/logs/access_www_2017-05-12.log

2.5.2 方法二 $(find )

[[email protected] ~]# ls -l $(find /app/logs/ -type f -name "*.log" -mtime +7)

2.5.3 方法三 find -exec {} \;

[[email protected] ~]# find /app/logs/ -type f -name "*.log" -mtime +7 -exec ls -l {} \;

2.6 6

調試系統服務時,希望能實時查看/var/log/messages系統日誌的更新。

-f 顯示文件的實時更新。

[[email protected] ~]# tail -f /var/log/secure

tailftail -f 大致相同。

[[email protected] ~]# tailf /var/log/secure

2.7 7

打印輕量級 web 服務的配置文件 nginx.conf 內容的行號及內容

2.7.1 文件創建

stu{01..5}生成 stu01stu02···stu05 字符

[[email protected] oldboy]# echo stu{01..5}|xargs -n1 >nginx.conf

[[email protected] oldboy]# cat nginx.conf

stu01

stu02

stu03

stu04

stu05

2.7.2 方法一 cat

-n 顯示文件行號

[[email protected] oldboy]# cat -n nginx.conf

1 stu01

2 stu02

3 stu03

4 stu04

5 stu05

2.7.3 方法二 vim

輸入:再輸入命令

:set nu ##顯示行號

:set nonu ##取消顯示行號

快捷鍵

G 把光標移動到最後一行

gg 把光標移動到第一行

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

2.7.4 方法三 nl

nl 專門用於顯示行號

[[email protected] oldboy]# nl nginx.conf

1 stu01

2 stu02

3 stu03

4 stu04

5 stu05

2.7.5 方法四 grep -n

-n 顯示行號,. 表示所有內容

[[email protected] oldboy]# grep -n "." nginx.conf

1:stu01

2:stu02

3:stu03

4:stu04

5:stu05

2.7.6 方法五 awk

print NR 表示顯示行號,$0 表示行的內容

[[email protected] oldboy]# awk ‘{print NR,$0}‘ nginx.conf

1 stu01

2 stu02

3 stu03

4 stu04

5 stu05

Day11 - 第二關練習題上