linux開機啟動過程、PATH、過濾一級目錄、cd的參數、ls -lrt、命令切割日誌
第二波命令正向我方來襲 :開機啟動過程、PATH、過濾一級目錄、cd的參數、ls -lrt、命令切割日誌
1.1 linux開機啟動過程
1.1.1 開機自檢(BIOS)-- MBR引導 -- GRUB菜單 -- 加載內核(kernel)-- 運行INIT進程 -- 讀取/etc/inittab配置文件 -- 執行/etc/rc.sysinit腳本(初始化腳本,如設置ip,hostname) -- 執行/etc/rc.d/rc(根據運行級別開機自啟的軟件)腳本 -- 啟動/sbin/mingetty進程(顯示登錄界面)
1.2 什麽是PATH環境變量,它有什麽作用?
1.2.1 查看PATH環境變量
[root@georgekai ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
1.2.2 PATH作用:
1)環境變量
2)存放的是命令的位置
1.2.3 執行一個命令的過程?
1)ls或mkdir
2)系統會去PATH裏面查找命令是否存在
3)存在就運行
4)不存在就報錯:command not found或no sush file or directory
1.3 如何過濾出/oldboy目錄下的第一層目錄?
方法一:[root@georgekai oldboy]# tree -dL 1
.
├── ext
├── test
├── xiaodong
├── xiaofan
└── xingfujie
註:1. -d 目錄 -L 相當於--level,顯示最多幾層目錄
方法二:[root@georgekai oldboy]# find -maxdepth 1 -type d ! -name "."
註:1. maxdepth 最深
2. ! 取反的意思
方法三:[root@georgekai oldboy]# ls -l |grep "^d"
drwxr-xr-x. 3 root root 4096 Dec 12 10:35 ext
drwxr-xr-x. 2 root root 4096 Dec 12 10:35 test
註:找出以d開頭的行 , ^號只有三劍客才能使用,正則表達式 以.....開頭的行
方法四:[root@georgekai oldboy]# ls -l | awk '$2>1'
註:$2 表示第二行
方法五:[root@georgekai oldboy]# ls -F |grep "/"
ext/
test/
註: -F 給不同的文件加上不同的標記(尾巴)
1.4 cd命令及其選項的使用
註:cd 屬於內部命令,可用man cd 或者help cd查看幫助手冊
1.4.1 cd -
[root@georgekai oldboy]# cd -
註:快速的回到上一次所在的位置
1.4.2 cd .
[root@georgekai /]# cd .
註:表示當前目錄
1.4.3 cd ..
[root@georgekai /]# cd ..
註: 返回上一級目錄
1.4.4 cd ~
[root@georgekai /]# cd ~
[root@georgekai /]# cd
註:進入當前用戶的宿主目錄,和cd一個作用
1.5 查看幫助手冊:
1)help cd 查看內部命令
2)ls --help 查看外部命令
3)man cd 查看完整幫助
註:中文版 man 手冊(man.linuxde.net)http://linux.51yip.com/ http://man.linuxde.net/
1.6 ls命令如何按照時間順序顯示
1.6.1 ls顯示的時候按照時間順序
註:默認為a-z顯示
[root@georgekai oldboy]# ls -lt
註:-t 按照文件的修改時間顯示 (最新的文件在最上面)
1.6.2 ls 按時間的逆序顯示
[root@georgekai oldboy]# ls -lrt
註:-r 逆序顯示內容(包括時間、字母),最新的文件在最下面
1.6.3 ls 按照時間的年/月/日/時/分/顯示
[root@georgekai oldboy]# ls -l --time-style=long-iso
-rw-r--r--. 1 root root 0 2017-12-12 12:00 123.txt
1.7 通過命令對日誌來進行切割
註:還可以通過軟件對日誌進行監控,監控磁盤空間的大小等
1.7.1 修改系統時間
[root@georgekai oldboy]# date -s "2017-12-19 11:01:00"
1.7.2 nginx/apache服務的訪問日誌按天記錄在服務器本地目錄/app/logs/下,最要求保留最近7天的訪問日誌,請問如何解決?(先用ls -l代替rm)
1)顯示第7天的日誌(7)
[root@georgekai logs]# find -type f -mtime 7
2)顯示最近7天的日誌(-7)
[root@georgekai logs]# find -type f -mtime -7 |xargs ls -l
3)顯示7天之前的日誌(+7)
[root@georgekai logs]# find -type f -mtime +7 |xargs ls -l
1.7.3 找出/aap/logs下面以.log結尾的並且修改時間是7天之前的文件並刪除(先用ls -l代替)
創建運行環境:
mkdir -p /app/logs
cd /app/logs
for time in {01..20};do date -s "201705$time"; touch access_www_$(date +%F).log ;done
date -s "20170520"
解決方法:
方法一:[root@georgekai logs]# find -type f -mtime +7 -exec ls -l {} \;
方法二:[root@georgekai logs]# find -type f -mtime +7 |xargs ls -l
方法三:[root@georgekai logs]# ls -l $(find -type f -mtime +7)
1.7.4 調試系統服務是,希望通過實時查看/vat/log/secure系統日誌的更新,如何做?
[root@georgekai logs]# tail -f /var/log/secure
註:tail -f 顯示文件結尾實時更新
1.7.5 查找/oldboy 下所有以log結尾的大於1M的文件復制到/tmp下。
方法一:[root@georgekai /]# cp $(find /oldboy -type f -size +1024k -name "*.log") /tmp/
方法二:[root@georgekai /]# find /oldboy -type f -size +1024k -name "*.log" -exec cp {} /tmp/ \;
方法三:[root@georgekai /]# find /oldboy -type f -size +1024k -name "*.log"|xargs cp -t /tmp/
註:cp -t 反向復制,把要復制的文件都放在了最後面(正常情況在前面)
1.7.6 把2個或多個文件大小合並在一起
[root@georgekai logs]# cat /etc/services /etc/services > /123.log
註:cat 全稱是concatenate ,合並聯系在一起的意思
linux開機啟動過程、PATH、過濾一級目錄、cd的參數、ls -lrt、命令切割日誌