第1章 Linux啟動過程 開機自檢(BIOS)##硬體檢查 MBR引導 GRUB菜單(選擇不同的內核) 載入內核 運行init進程(Linux系統裡面第一個進程) 讀取/etc/inittab配置文件(讀取運行級別) 執行/etc/rc.d/sysinit腳本(系統的初始化腳本 設置IP地址) 執 ...
第1章 Linux啟動過程
開機自檢(BIOS)##硬體檢查
MBR引導
GRUB菜單(選擇不同的內核)
載入內核
運行init進程(Linux系統裡面第一個進程)
讀取/etc/inittab配置文件(讀取運行級別)
執行/etc/rc.d/sysinit腳本(系統的初始化腳本 設置IP地址)
執行/etc/rc.d/rc腳本(根據系統的運行級別 在開機的時候啟動不同的軟體)
啟動mingetty進程
顯示界面
第2章 PATH 變數
PATH 存放的是Linux下命令的位置
[root@oldboyedu-50 ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin 規律 /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin
Linux執行命令的過程
是否是別名
在PATH中找命令是否存在
沒有的話提示command not fonund
有就執行
第3章 顯示一級目錄
問題:
如何過濾出已知當前目錄下oldboy中的所有一級目錄
(提示:不包含oldboy目錄下麵目錄的子目錄及隱藏目錄,即只能是一級目錄)?
創建環境 mkdir /oldboy -p cd /oldboy mkdir ext/oldboy test xiaodong xiaofan xingfujie -p touch jeacen oldboy wodi.gz yingsui.gz
3.1 方法一 tree
-d 只顯示目錄
-L level 最多顯示多少層 -L 1 最多顯示一層
[root@oldboyedu-50 oldboy]# tree -dL 1 . ├── ext ├── test ├── xiaodong ├── xiaofan └── xingfujie 5 directories
3.2 方法二 find
-maxdepth 最大的深度
-maxdepth 最大的深度 [root@oldboyedu-50 oldboy]# find -maxdepth 1 -type d . 顯示出了目錄 但是多了一個. ./xingfujie ./test ./xiaofan ./xiaodong ./ext
!排除取反 非
排除. 只顯示目錄 [root@oldboyedu-50 oldboy]# find -maxdepth 1 -type d ! -name "." ./xingfujie ./test ./xiaofan ./xiaodong ./ext
3.3 方法三grep
^以xxx/開頭的行 三劍客使用 正則表達式
[root@oldboyedu-50 oldboy]# ls -l |grep "^d" drwxr-xr-x. 3 root root 4096 Jul 10 19:45 ext drwxr-xr-x. 2 root root 4096 Jul 10 19:45 test drwxr-xr-x. 2 root root 4096 Jul 10 19:45 xiaodong drwxr-xr-x. 2 root root 4096 Jul 10 19:45 xiaofan drwxr-xr-x. 2 root root 4096 Jul 10 19:45 xingfujie ^以xxx/開頭的行 三劍客使用 正則表達式
3.4 方法四awk
$2表示第二列
[root@oldboyedu-50 oldboy]# ls -l |awk '$2>1' 第二列大於一的 total 20 drwxr-xr-x. 3 root root 4096 Jul 10 19:45 ext drwxr-xr-x. 2 root root 4096 Jul 10 19:45 test drwxr-xr-x. 2 root root 4096 Jul 10 19:45 xiaodong drwxr-xr-x. 2 root root 4096 Jul 10 19:45 xiaofan drwxr-xr-x. 2 root root 4096 Jul 10 19:45 xingfujie
3.5 拓展方法兩種
[root@oldboyedu-50 oldboy]# ls -F |grep "/" -F 不同的類型文件 加上不同的標記 目錄加上/
[root@oldboyedu-50 oldboy]# ls -ld */ ##看以/結尾的
第4章 壓縮
問題:
/etc/目錄為linux系統的預設的配置文件及服務啟動命令的目錄
a.請用tar打包/etc整個目錄(打包及壓縮)
b.請用tar打包/etc整個目錄(打包及壓縮,但需要排除/etc/services文件)
c.請把a點命令的壓縮包,解壓到/tmp指定目錄下(最好只用tar命令實現)
4.1 tar下的參數
tar zcvf /tmp/etc.tar.gz /etc/
壓縮之後放在哪 要壓縮的
z gzip 通過gzip軟體壓縮
c create 創建包
v verbose 顯示過程
f file 指定文件 (在tar中 f 必須要在最後邊)
t list 顯示壓縮包內容
x extaact 解壓
壓縮 zcvf zcf
查看 ztf tf
解壓 zxf xf
4.2 創建壓縮包
一般壓縮不用參數v 不用顯示壓縮過程 所以直接用zcf即可
[root@oldboyedu-50 tmp]# tar ztf /tmp/etc.tar.gz 打包及壓縮
4.3 解壓
解壓前先進入要解壓到的目錄
[root@oldboyedu-50 tmp]# tar zxf etc.tar.gz ##先進入tmp目錄
4.4 解壓到指定目錄
解壓使用參數zxf z可以省略 xf即可
[root@oldboyedu-50 tmp]# tar xf /tmp/etc.tar.gz -C /opt/ 解壓到opt目錄 [root@oldboyedu-50 tmp]# ll /opt/ 解壓後檢查 total 8 drwxr-xr-x. 78 root root 4096 Jul 10 19:41 etc drwxr-xr-x. 2 root root 4096 Mar 26 2015 rh
4.5 排除某個文件或目錄
要求:排除services
排除多個
--exclude-from 加個名單 .txt
.txt里寫上路徑內容
[root@oldboyedu-50 ~]# tar zcf /tmp/etc.tar.gz /etc/ --exclude /etc/services [root@oldboyedu-50 ~]# tar tf /tmp/etc.tar.gz |grep "services" 檢查是否排除 etc/init/readahead-disable-services.conf
4.6 tar經典故障
tar: Removing leading `/' from member names 安全警告 刪除 開始 / 把壓縮包的 開頭的/ 刪除掉 由絕對路徑 變為了相對路徑 防止解壓的時候覆蓋源文件
第5章 顯示行號
列印配置文件nginx.conf內容的行號及內容 如何做?
創建環境
[root@oldboyedu-50 ~]# mkdir /oldboy && echo stu{01..10} |xargs -n1 > /oldboy/ngingx.conf
5.1 方法一 cat
-n 顯示行號
[root@oldboyedu-50 oldboy]# cat -n ngingx.conf 1 stu01 2 stu02 3 stu03 4 stu04 5 stu05 6 stu06 7 stu07 8 stu08 9 stu09 10 stu10
5.2 方法二 vim
vim /oldboy/nginx.conf
進入後
:set nu 顯示行號
:set nonu 取消顯示行號
5.3 方法三 awk
NR 行號
$1 表示第一列
$0 表示一整行的內容
[root@oldboyedu-50 ~]# awk '{print NR,$1}' /oldboy/ngingx.conf 1 stu01 2 stu02 3 stu03 4 stu04 5 stu05 6 stu06 7 stu07 8 stu08 9 stu09 10 stu10View Code
5.4 方法四 nl
nl number of lines 專門用於顯示行號的
[root@oldboyedu-50 oldboy]# nl ngingx.conf 1 stu01 2 stu02 3 stu03 4 stu04 5 stu05 6 stu06 7 stu07 8 stu08 9 stu09 10 stu10View Code
5.5 第五種方法 grep
-n /顯示行號
. 正則表達式 表示任意一個字元
[root@oldboyedu-50 oldboy]# grep -n "." ngingx.conf 1:stu01 2:stu02 3:stu03 4:stu04 5:stu05 6:stu06 7:stu07 8:stu08 9:stu09 10:stu10View Code
5.6 第六種方法 sed
= 表示顯示行號
[root@oldboyedu-50 oldboy]# sed '=' ngingx.conf |xargs -n2 1 stu01 2 stu02 3 stu03 4 stu04 5 stu05 6 stu06 7 stu07 8 stu08 9 stu09 10 stu10View Code
5.7 第七種方法 less (瞭解)
[root@oldboyedu-50 logs]# less -N /oldboy/ngingx.conf
第6章 運行級別及iptables補充
6.1 運行級別補充
查看運行級別 runlevel
切換 init
6.2 關閉iptable
裝完Centos系統後,希望iptables,僅關閉3運行級別 怎麼做
[root@oldboyedu-50 logs]# chkconfig |grep "ipt" ##查看 iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@oldboyedu-50 logs]# chkconfig --level 3 iptables off ##關閉3 [root@oldboyedu-50 logs]# chkconfig |grep "ipt" ##關閉後檢查 iptables 0:off 1:off 2:on 3:off 4:on 5:on 6:off
第7章 單獨取一列命令補充
已知如下命令及結果:
[oldboy@test ~]$ echo "I am oldboy,myqq is 31333741">>oldboy.txt
[oldboy@test ~]$ cat oldboy.txt
I am oldboy,myqq is 31333741
創建環境
mkdir /oldboy echo "I am oldboy,myqq is 31333741">/oldboy/oldboy.txt
7.1 方法一 sed |awk
[root@oldboyedu-50 oldboy]# sed 's#,# #g' oldboy.txt |awk '{print $3,$6}' oldboy 31333741
7.2 方法二 tr | awk
tr sed命令的閹割版
tr 一對一的替換
[root@oldboyedu-50 oldboy]# tr "," " " <oldboy.txt |awk '{print $3,$6}' oldboy 31333741
7.3 方法三 tr | cut
-d 指定分隔符
-f 某一列
[root@oldboyedu-50 oldboy]# tr "," " " < oldboy.txt |cut -d " " -f3,6 oldboy 31333741
7.4 方法四 sed | cut
[root@oldboyedu-50 oldboy]# sed 's#,# #g' oldboy.txt |cut -d " " -f3,6 oldboy 31333741
7.5 方法五 awk
-F 指定新的分隔符
$NF 表示最後一列
[root@oldboyedu-50 oldboy]# awk -F "[, ]" '{print $3,$6}' oldboy.txt oldboy 31333741
7.6 方法六 sed
[root@oldboyedu-50 oldboy]# sed 's#I am ##g' oldboy.txt |sed 's#,myqq is # #g' oldboy 31333741
第8章 認識wc命令
8.1 統計信息
wc 統計文件的信息
[root@oldboyedu-50 oldboy]# wc /etc/services 統計文件的信息 10774 58108 641020 /etc/services [root@oldboyedu-50 oldboy]# wc -l /etc/services 只看有多少行 10774 /etc/services
8.2 統計總數
統計出/etc目錄下 以.conf 結尾的文件的數量
[root@oldboyedu-50 oldboy]# find /etc/ -type f -name "*.conf" |wc -l 195
第9章 egrep
過濾出/etc/services 文件包含3306或1521兩資料庫埠的行的內容。
| 擴展正則表達式 egrep ==grep -E
[root@oldboyedu-50 oldboy]# grep -E "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 [root@oldboyedu-50 oldboy]# 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