1. 程式人生 > >linux基礎命令之企業面試題

linux基礎命令之企業面試題

con test 不包含 模擬 cto for oca 顏色 mtime

1.如何過濾出已知當前目錄下linzhongniao中的所有一級目錄(提示:不包含linzhongniao目錄下面目錄的子目錄及隱藏目錄,即只能是一級目錄)
創建模擬數據:

[root@linzhongniao ~]# mkdir linzhongniao
[root@linzhongniao ~]# cd linzhongniao
[root@linzhongniao linzhongniao]# ls
[root@linzhongniao linzhongniao]# mkdir ext/linzhongniao test zhangsan lisi wanger -p 
[root@linzhongniao linzhongniao]# touch nishishei linzhongniao wodi.gz nimei.gz

分析過程:要完成此題,要先想如何區分目錄和文件?

方法:

(1)根據顏色區分文件和目錄

(2)ls –l輸出結果中以d(全拼directory)開頭的就是目錄。

(3)通過給目錄加標識,然後過濾帶標識的,就過濾出目錄(ls –F或ls -p)-F表示不同的文件加不同的標識,-p表示只給目錄加斜線。

linux基礎命令

(4) 通過find查找指定類型的文件(-d 就是目錄)

實戰:方法一:

[root@linzhongniao linzhongniao]# ls -l
total 20
drwxr-xr-x. 3 root root 4096 Jul  3 15:29 ext
 -rw-r--r--. 1 root root0 Jul  3 15:31 linzhongniao
drwxr-xr-x. 2 root root 4096 Jul  3 15:29 lisi
 -rw-r--r--. 1 root root0 Jul  3 15:31 nimei.gz
 -rw-r--r--. 1 root root0 Jul  3 15:31 nishishei
drwxr-xr-x. 2 root root 4096 Jul  3 15:29 test
drwxr-xr-x. 2 root root 4096 Jul  3 15:29 wanger
 -rw-r--r--. 1 root root0 Jul  3 15:31 wodi.gz
drwxr-xr-x. 2 root root 4096 Jul  3 15:29 zhangsan
[root@linzhongniao linzhongniao]# ls -l|grep "^d" 《==尖括號表示以什麽開頭
drwxr-xr-x. 3 root root 4096 Jul  3 15:29 ext
drwxr-xr-x. 2 root root 4096 Jul  3 15:29 lisi
drwxr-xr-x. 2 root root 4096 Jul  3 15:29 test
drwxr-xr-x. 2 root root 4096 Jul  3 15:29 wanger
drwxr-xr-x. 2 root root 4096 Jul  3 15:29 zhangsan

方法二:

[root@linzhongniao linzhongniao]# ls -F
ext/  lisi/ nishishei  wanger/  zhangsan/
linzhongniao  nimei.gz  test/  wodi.gz
[root@linzhongniao linzhongniao]# ls -F|grep "/$"   《== “/$”以斜杠結尾
ext/
lisi/
test/
wanger/
zhangsan/

方法三:

-maxdepth 1深度為1,最底層目錄,因為第二層也會有目錄那麽不用這個參數有可能不準確,查找文件也是可以用的。

[root@linzhongniao linzhongniao]# find ./ -maxdepth 1 -type d  ! -name "." 
./ext
./wanger
./test
./zhangsan
./lisi

方法四:awk的過濾功能

[root@linzhongniao linzhongniao]# ls -l|awk ‘/^d/‘
drwxr-xr-x. 3 root root 4096 Jul  3 15:29 ext
drwxr-xr-x. 2 root root 4096 Jul  3 15:29 lisi
drwxr-xr-x. 2 root root 4096 Jul  3 15:29 test
drwxr-xr-x. 2 root root 4096 Jul  3 15:29 wanger
drwxr-xr-x. 2 root root 4096 Jul  3 15:29 zhangsan

方法五:

[root@linzhongniao linzhongniao]# ls -F|sed -n ‘/\/$/p‘
ext/
lisi/
test/
wanger/
zhangsan/

2.刪除apache日誌

已知apache服務的訪問日誌文件按天記錄在服務器本地目錄/app/logs下,由於磁盤緊張,現在要求只能保留最近7天的訪問日誌。請問如何解決?

模擬數據

[root@linzhongniao ~]# cat chuangjianrizhi.sh 
for n in `seq 15`
do
date -s "2018/07/$n"
touch /app/logs/access_www_$(date +%F).log
done
date -s ‘2018/07/16‘
[root@linzhongniao ~]# ls -lrt /app/logs/
total 0
 -rw-r--r--. 1 root root 0 Jul  1 00:00 access_www_2018-07-01.log
 -rw-r--r--. 1 root root 0 Jul  2 00:00 access_www_2018-07-02.log
 -rw-r--r--. 1 root root 0 Jul  3 00:00 access_www_2018-07-03.log
 -rw-r--r--. 1 root root 0 Jul  4 00:00 access_www_2018-07-04.log
 -rw-r--r--. 1 root root 0 Jul  5 00:00 access_www_2018-07-05.log
 -rw-r--r--. 1 root root 0 Jul  6 00:00 access_www_2018-07-06.log
 -rw-r--r--. 1 root root 0 Jul  7 00:00 access_www_2018-07-07.log
 -rw-r--r--. 1 root root 0 Jul  8 00:00 access_www_2018-07-08.log
 -rw-r--r--. 1 root root 0 Jul  9 00:00 access_www_2018-07-09.log
 -rw-r--r--. 1 root root 0 Jul 10 00:00 access_www_2018-07-10.log
 -rw-r--r--. 1 root root 0 Jul 11 00:00 access_www_2018-07-11.log
 -rw-r--r--. 1 root root 0 Jul 12 00:00 access_www_2018-07-12.log
 -rw-r--r--. 1 root root 0 Jul 13 00:00 access_www_2018-07-13.log
 -rw-r--r--. 1 root root 0 Jul 14 00:00 access_www_2018-07-14.log
 -rw-r--r--. 1 root root 0 Jul 15 00:00 access_www_2018-07-15.log

解答:刪除七天前的

先查看一下七天前的日誌文件

[root@linzhongniao ~]# find /app/logs/ -type f -mtime +7
/app/logs/access_www_2018-07-07.log
/app/logs/access_www_2018-07-05.log
/app/logs/access_www_2018-07-08.log
/app/logs/access_www_2018-07-02.log
/app/logs/access_www_2018-07-03.log
/app/logs/access_www_2018-07-01.log
/app/logs/access_www_2018-07-04.log
/app/logs/access_www_2018-07-06.log

刪除七天前的日誌文件

方法一:fine結合xargs

[root@linzhongniao ~]# find /app/logs/ -type f -mtime +7|xargs rm -f
[root@linzhongniao ~]# ls -lrt /app/logs/ 
total 0
 -rw-r--r--. 1 root root 0 Jul  9 00:00 access_www_2018-07-09.log
 -rw-r--r--. 1 root root 0 Jul 10 00:00 access_www_2018-07-10.log
 -rw-r--r--. 1 root root 0 Jul 11 00:00 access_www_2018-07-11.log
 -rw-r--r--. 1 root root 0 Jul 12 00:00 access_www_2018-07-12.log
 -rw-r--r--. 1 root root 0 Jul 13 00:00 access_www_2018-07-13.log
 -rw-r--r--. 1 root root 0 Jul 14 00:00 access_www_2018-07-14.log
 -rw-r--r--. 1 root root 0 Jul 15 00:00 access_www_2018-07-15.log

方法二:find結合-exec

[root@linzhongniao ~]# find /app/logs/ -type f -mtime +7 -exec rm -f {} \;
[root@linzhongniao ~]# ls -lrt /app/logs/
total 0
 -rw-r--r--. 1 root root 0 Jul  9 00:00 access_www_2018-07-09.log
 -rw-r--r--. 1 root root 0 Jul 10 00:00 access_www_2018-07-10.log
 -rw-r--r--. 1 root root 0 Jul 11 00:00 access_www_2018-07-11.log
 -rw-r--r--. 1 root root 0 Jul 12 00:00 access_www_2018-07-12.log
 -rw-r--r--. 1 root root 0 Jul 13 00:00 access_www_2018-07-13.log
 -rw-r--r--. 1 root root 0 Jul 14 00:00 access_www_2018-07-14.log
 -rw-r--r--. 1 root root 0 Jul 15 00:00 access_www_2018-07-15.log

方法三:先用find查找出來在用rm刪除

[root@linzhongniao ~]# rm -f `find /app/logs/ -type f -mtime +7`
[root@linzhongniao ~]# ls -lrt /app/logs/
total 0
 -rw-r--r--. 1 root root 0 Jul  9 00:00 access_www_2018-07-09.log
 -rw-r--r--. 1 root root 0 Jul 10 00:00 access_www_2018-07-10.log
 -rw-r--r--. 1 root root 0 Jul 11 00:00 access_www_2018-07-11.log
 -rw-r--r--. 1 root root 0 Jul 12 00:00 access_www_2018-07-12.log
 -rw-r--r--. 1 root root 0 Jul 13 00:00 access_www_2018-07-13.log
 -rw-r--r--. 1 root root 0 Jul 14 00:00 access_www_2018-07-14.log
 -rw-r--r--. 1 root root 0 Jul 15 00:00 access_www_2018-07-15.log

3.裝完系統後,希望讓網絡文件NFS,僅在3級別上開機自啟動,該如何做?
第一種文件配置方法,可以把要重啟的服務器的命令放在/etc/rc.local裏。

解答:全部關掉然後開啟需要的級別的服務。

[root@linzhongniao ~]# chkconfig nfs on
[root@linzhongniao ~]# chkconfig --list nfs
nfs 0:off   1:off   2:on3:on4:on5:on6:off
[root@linzhongniao ~]# chkconfig nfs off
[root@linzhongniao ~]# chkconfig --list nfs
nfs 0:off   1:off   2:off   3:off   4:off   5:off   6:off
[root@linzhongniao ~]# chkconfig --level 3 nfs on
[root@linzhongniao ~]# chkconfig --list nfs
nfs 0:off   1:off   2:off   3:on4:off   5:off   6:off

也可以將2345都開啟

[root@linzhongniao ~]# chkconfig --level 2345 nfs on
[root@linzhongniao ~]# chkconfig --list nfs
nfs 0:off   1:off   2:on3:on4:on5:on6:off

linux基礎命令之企業面試題