第二關練習題-下部
第二關練習題-下部
作者:左婷婷
歸檔:學習筆記
2018/7/24
快捷鍵:
Ctrl + 1 標題1
Ctrl + 2 標題2
Ctrl + 3 標題3
Ctrl + 4 實例
Ctrl + 5 程序代碼
Ctrl + 6 正文
格式說明:
藍色字體:註釋
×××背景:重要
綠色背景:註意
老男孩教育教學核心思想6重:重目標、重思路、重方法、重實踐、重習慣、重總結
學無止境,老男孩教育成就你人生的起點!
聯系方式:
網站運維QQ交流群: | |
Linux 385168604 | 架構師 390642196 |
Python 29215534 | 大數據 421358633 |
官方網站: | |
http://www.oldboyedu.com |
目 錄
1.1 打印配置文件nginx.conf內容的行號及內容,該如何做?
1.1.1 方法1 cat
1.1.2 方法2 vim
1.1.3 方法3 awk 顯示某一列
1.1.4 方法4 grep -n
1.1.5 方法5 nl number of lines
1.2 本地目錄/app/logs下刪除7天之前的日誌
1.2.1 find -mtime +7|xargs ls –l
1.2.2 #找出/app/logs 下面以.log結尾的7天之前的文件 顯示詳細信息(ls -l) (3種方法)
1.3 linux系統運行級別一般為
1.4 讓iptables開機自啟動?
1.5 linux系統中查看中文,但是亂碼了,請問如何解決亂碼問題?
1.6 現在需要從文件中過濾出“oldboy”和“31333741”字符串,請給出命令.
1.6.1 方法1 sed+awk
1.6.2 方法2 tr+awk
1.6.3 方法3 tr+cut
1.6.4 方法4 awk
1.6.5 方法5 sed sed
1.7 如果需要從文件中過濾出“oldboy,31333741”字符串,請再給出命令.
1.8 顯示 /etc/passwd 第1列和第3列內容 要求格式顯示為
1.9 如何查看/etc/services文件的有多少行?
1.9.1 顯示行號 只保留最後一行
1.10 統計出 /etc目錄下面 以.conf結尾的文件的數量
1.11 總結:
1.12 預習:
1.1 打印配置文件nginx.conf內容的行號及內容,該如何做?
[root@oldboyedu50-lnb /oldboy]# echo stu{01..10} |xargs -n1 >nginx.conf
1.1.1 方法1 cat
[root@oldboyedu50-lnb /oldboy]# cat -n nginx.conf //顯示行號
1 stu01
2 stu02
3 stu03
4 stu04
5 stu05
6 stu06
7 stu07
8 stu08
9 stu09
10 stu10
1.1.2 方法2 vim
使用vim nginx.conf
按esc退出後
加入:set nu 回車 #顯示行號
#nu === number
:set nonu #取消顯示行號
1.1.3 方法3 awk 顯示某一列
[root@oldboyedu50-lnb ~]# awk '{print NR,$1}' /oldboy/nginx.conf
1 stu01
2 stu02
3 stu03
4 stu04
5 stu05
6 stu06
7 stu07
8 stu08
9 stu09
10 stu10
NR 行號
$1 第1列
$2 第2列
$0 一整行內容
1.1.3.1 顯示/proc/mounts 文件的行號和第1列和第3列
awk '{print NR,$1,$3}' /proc/mounts
1.1.4 方法4 grep -n
grep -n "." nginx.conf 顯示所有行
. 正則表達式 任意一個字符
-n 顯示行號
1.1.5 方法5 nl number of lines
nl nginx.conf 顯示行號
方法6 sed
Sed = nginx.conf
=顯示行號
小結:
1.cat -n /vim (必會)
2.grep awk (必會)
3.nl sed
/selinux /selinux
1.2 本地目錄/app/logs下刪除7天之前的日誌
mkdir -p /app/logs // 創建環境
cd /app/logs
for time in {01..20};do date -s "201805$time"; touch access_www_$(date +%F).log ;done
date -s "20180520 00:00:00"
date //顯示時間 修改時間
find
-mtime
modify time 修改時間
1.2.1 find -mtime +7|xargs ls –l
[root@oldboyedu50-lnb /app/logs]# find -mtime +7|xargs ls –l // 顯示前七天之前的文件
-rw-r--r-- 1 root root 0 May 1 00:00 ./access_www_2018-05-01.log
-rw-r--r-- 1 root root 0 May 2 00:00 ./access_www_2018-05-02.log
-rw-r--r-- 1 root root 0 May 3 00:00 ./access_www_2018-05-03.log
-rw-r--r-- 1 root root 0 May 4 00:00 ./access_www_2018-05-04.log
-rw-r--r-- 1 root root 0 May 5 00:00 ./access_www_2018-05-05.log
-rw-r--r-- 1 root root 0 May 6 00:00 ./access_www_2018-05-06.log
-rw-r--r-- 1 root root 0 May 7 00:00 ./access_www_2018-05-07.log
-rw-r--r-- 1 root root 0 May 8 00:00 ./access_www_2018-05-08.log
-rw-r--r-- 1 root root 0 May 9 00:00 ./access_www_2018-05-09.log
-rw-r--r-- 1 root root 0 May 10 00:00 ./access_www_2018-05-10.log
-rw-r--r-- 1 root root 0 May 11 00:00 ./access_www_2018-05-11.log
-rw-r--r-- 1 root root 0 May 12 00:00 ./access_www_2018-05-12.log
1.2.2 #找出/app/logs 下面以.log結尾的7天之前的文件 顯示詳細信息(ls -l) (3種方法)
find /app/logs/ -type f -name "*.log" -mtime +7
方法1
find /app/logs/ -type f -name "*.log" -mtime +7|xargs ls -l
方法2
ls -l $(find /app/logs/ -type f -name "*.log" -mtime +7)
ls -l `find /app/logs/ -type f -name "*.log" -mtime +7`
方法3
find /app/logs/ -type f -name "*.log" -mtime +7 -exec ls -l {} \;
1.3 linux系統運行級別一般為0-6,請分別寫出每個級別的含義。
運行級別 1)0-6 含義 0 關機 (不要把運行級別設置為0) 1 單用戶模式 single user mode 2 多用戶模式無法使用 NFS 3 完全多用戶模式 命令行模式 文本模式 (工作默認的環境) 4 待開發 5 X11 桌面(desktop)模式 圖形化界面模式 6 重啟 (不要把運行級別設置為6) |
runlevel 查看
init 修改
1.4 讓iptables開機自啟動?
[root@oldboyedu50-lnb ~]# chkconfig --level 3 iptables on //防火墻開機自啟動
[root@oldboyedu50-lnb ~]# chkconfig |grep ipt 查看
iptables 0:off 1:off 2:off 3:on 4:off 5:off 6:off
1.5 linux系統中查看中文,但是亂碼了,請問如何解決亂碼問題?
已知如下命令及結果:
[oldboy@test ~]$ mkdir /oldboy ; echo "I am oldboy,myqq is 31333741">/oldboy/oldboy.txt
[oldboy@test ~]$ cat oldboy.txt
I am oldboy,myqq is 31333741
1.6 現在需要從文件中過濾出“oldboy”和“31333741”字符串,請給出命令.
b.如果需要從文件中過濾出“oldboy,31333741”字符串,請再給出命令.
1.6.1 方法1 sed+awk
[root@oldboyedu50-lnb /oldboy]# sed 's#,# #g' oldboy.txt 將逗號替換為空格
I am oldboy myqq is 31333741
[root@oldboyedu50-lnb /oldboy]# sed 's#,# #g' oldboy.txt |awk '{print $3,$6}' 顯示第三,六列
oldboy 31333741
1.6.2 方法2 tr+awk
[root@oldboyedu50-lnb /oldboy]# tr "," " " <oldboy.txt 將逗號替換為空格
I am oldboy myqq is 31333741
[root@oldboyedu50-lnb /oldboy]# tr "," " " <oldboy.txt |awk '{print $3,$6}' 顯示第三,六列
oldboy 31333741
tr sed命令閹割版
[root@oldboyedu50-lnb /oldboy]# echo 123123|tr "123" "abc"
abcabc
[root@oldboyedu50-lnb /oldboy]# echo 112233|tr "123" "abc"
aabbcc
[root@oldboyedu50-lnb /oldboy]# #tr 1對1的替換
1.6.3 方法3 tr+cut
[root@oldboyedu50-lnb /oldboy]# tr "," " " <oldboy.txt 將逗號替換為空格
I am oldboy myqq is 31333741
[root@oldboyedu50-lnb /oldboy]# tr "," " " <oldboy.txt |cut -d " " -f3,6 //-d 指定分隔符(菜刀)
-f 某一列
oldboy 31333741
1.6.4 方法4 awk
[root@oldboyedu50-lnb /oldboy]# cat oldboy.txt
I am oldboy,myqq is 31333741
[root@oldboyedu50-lnb /oldboy]# awk -F "," '{print $2}' oldboy.txt //以逗號分割顯示第二列
myqq is 31333741
#-F 指定分隔符(菜刀)
#-F指定多個分隔符
[root@oldboyedu50-lnb /oldboy]# awk -F "[, ]" '{print $3,$6}' oldboy.txt //以逗號空格為分隔符顯示第三,六列
Oldboy 31333741
1.6.5 方法5 sed sed
[root@oldboyedu50-lnb /oldboy]# cat oldboy.txt
I am oldboy,myqq is 31333741
[root@oldboyedu50-lnb /oldboy]# sed 's#I am ##g' oldboy.txt //將I am替換為空
oldboy,myqq is 31333741
[root@oldboyedu50-lnb /oldboy]# sed 's#I am ##g' oldboy.txt |sed 's#,myqq is##g' //將I am替換為空
再將,myqq is替換為空
oldboy 31333741
1.7 如果需要從文件中過濾出“oldboy,31333741”字符串,請再給出命令.
[root@oldboyedu50-lnb /oldboy]# awk -F"[ ,]" '{print $3"*_*"$NF}' oldboy.txt
oldboy*_*31333741
[root@oldboyedu50-lnb /oldboy]# awk -F"[ ,]" '{print $3":)"$NF}' oldboy.txt
oldboy:)31333741
[root@oldboyedu50-lnb /oldboy]# awk -F"[ ,]" '{print $3","$NF}' oldboy.txt 以空格逗號為分隔符,加上“,”顯示第三,最後一列
oldboy,31333741
1.8 顯示 /etc/passwd 第1列和第3列內容 要求格式顯示為:
USER:第1列內容 UID:第3列內容
USER:第1列內容 UID:第3列內容
USER:第1列內容 UID:第3列內容
USER:第1列內容 UID:第3列內容
USER:第1列內容 UID:第3列內容
[root@oldboyedu50-lnb /oldboy]# awk -F":" '{print "USER:"$1,"UID:"$3}' /etc/passwd|column -t
USER:root UID:0
USER:bin UID:1
USER:daemon UID:2
USER:adm UID:3
USER:lp UID:4
1.9 如何查看/etc/services文件的有多少行?
1.9.1 顯示行號 只保留最後一行
[root@oldboy oldboy]# cat -n /etc/services
[root@oldboyedu50-lnb /oldboy]# wc /etc/services //統計文件信息
10774 58108 641020 /etc/services
[root@oldboyedu50-lnb /oldboy]# wc -l /etc/services //-l顯示行號
10774 /etc/services
1.10 統計出 /etc目錄下面 以.conf結尾的文件的數量
|傳遞的是文字
|xargs 傳遞的是文件名
[root@oldboyedu50-lnb /oldboy]# find /etc/ -type f -name "*.conf" | wc –l 統計.conf結尾的文件的數量
195
過濾出/etc/services 文件包含3306或1521兩數字所在的行的內容。
egrep "3306或1521" /etc/services
egrep "3306|1521" /etc/services
mysql 3306/tcp # MySQL
mysql 3306/udp # MySQL
ncube-lm 1521/tcp # nCube License Manager
ncube-lm 1521/udp # nCube License Manager
| 擴展正則表達式 egrep == grep -E
1.11 總結:
1.顯示行號
2.find命令mtime *3 種
3.運行級別 啟動流程
4.linux顯示亂碼排查過程
5.awk取出某一列 指定分隔符
6.其他命令
1.12 預習:
linux文件屬性
軟連接與硬鏈接區別
磁盤空間不足及排查解決過程
第二關練習題-下部