linux 系統運行級別通常爲 0-6,請分別寫出每一個級別的含義。mysql
0 關機linux
1 單用戶模式正則表達式
2 多用戶模式 沒有NFSsql
3 徹底的多用戶 命令行模式shell
4 沒有使用數據庫
5 圖形化界面模式安全
6 重啓ssh
init 5 臨時修改tcp
runlevel 顯示運行級別工具
修改文件 /etc/inittab
但願防火牆,僅在 3 級別上開機自啓動,該如何作?
在--level後加數字指定運行級別 on 開 off 關
[root@znix ~]# chkconfig --level 3 iptables on
[root@znix ~]# chkconfig |grep ipt
iptables 0:off 1:off 2:off 3:on 4:off 5:off 6:off
[root@znix ~]# chkconfig --level 3 iptables off
[root@znix ~]# chkconfig |grep ipt
iptables 0:off 1:off 2:off 3:off 4:of
etc/目錄爲 linux 系統的默認的配置文件及服務啓動命令的目錄
a.請用 tar打包/etc 整個目錄(打包及壓縮)
b.請用 tar打包/etc 整個目錄(打包及壓縮,但須要排除/etc/services 文件)
c.請把 a 點命令的壓縮包,解壓到/tmp 指定目錄下(最好只用 tar命令實現)
建立壓縮包的時候儘可能使用相對路徑
[root@znix ~]# tar zcvf /tmp/etc.tar.gz /etc/
筐(壓縮包的名字) 要壓縮的文件
[root@znix ~]# ls -lh /tmp/etc.tar.gz
-rw-r--r-- 1 root root 9.3M Aug 25 09:34 /tmp/etc.tar.gz
z----壓縮工具 gzip 經過gzip軟件進行壓縮
c----create 建立壓縮包
v----顯示 建立/解壓 的過程
f----指定壓縮包的位置和名字
查看壓縮包的內容時能夠不加z參數,系統會自動選擇。
[root@znix tmp]# tar ztf etc.tar.gz
t----顯示或者列表
解壓不指定路徑的時候會解壓到當前路徑。
[root@znix tmp]# tar zxf etc.tar.gz
x----extract 解壓
指定解壓路徑
-C (大寫c) 指定解壓路徑
[root@znix ~]# tar xf /tmp/etc.tar.gz -C /tmp/
[root@znix ~]# ls -ld /etc/
drwxr-xr-x. 78 root root 4096 Aug 25 09:42 /etc/
--exclude 後面加上等號填上要排除的文件
[root@znix /]# tar zcf /tmp/etc-paichu.tar.gz /etc/ --exclude=etc/services
[root@znix /]# tar tf /tmp/etc-paichu.tar.gz |grep "services"
etc/init/readahead-disable-services.conf
Removing leading `/' from member names
把壓縮包中的文件最前面的斜線刪除
壓縮包裏的內容 絕對路徑>>>相對路徑
緣由:
解壓的時候會按照壓縮包內的路徑進行解壓,從根目錄打包會覆蓋其餘文件
系統解決辦法:
出於安全的考慮,把絕對路徑前面的'/'去掉,變成相對路徑
先進入根目錄再進行壓縮。
[root@znix /]# tar zcf /tmp/etc.tar.gz etc/
一條命令,進入根目錄而且壓縮。
[root@znix ~]# cd / && tar zcf /tmp/data.tar.gz etc/
&& 表示前面的執行好了,再執行後面的
[root@znix ~]# cd / && tar zcf /tmp/etcbak.tar.gz etc/
[root@znix /]# ll /tmp/etcbak.tar.gz
-rw-r--r-- 1 root root 9733401 Aug 25 10:54 /tmp/etcbak.tar.gz
建立環境
[root@znix /]# mkdir /clsn ; echo "I am clsn,myqq is 31333741">/clsn/clsn.txt
[root@znix clsn]# cat clsn.txt
I am clsn,myqq is 31333741
如今須要從文件中過濾出「clsn」和「31333741」字符串,請給出命令。
先用sed命令將前面的部分替換爲空,通過管道,sed在將後面的部分替換爲空。
[root@znix clsn]# sed 's#I am ##g' clsn.txt |sed 's#,myqq is##g'
clsn 31333741
sed將逗號換爲空格,awk以空格爲分隔符,print輸出列的內容,$3表示第三列,$NF 表示最後一列
[root@znix clsn]# sed 's#,# #g' clsn.txt |awk '{print $3,$NF}'
clsn 31333741
使用-F指定分隔符,這裏指定爲逗號和空格,print 須要在{}中才能夠使用。
-F 指定分隔符,表示每一列的結束標記
[root@znix clsn]# awk -F "[, ]" '{print $3,$6}' clsn.txt
clsn 31333741
先用sed將逗號替換爲空格,而後再用cut 切割。
-d 表示用什麼切割,這裏指定爲空格,-f3,6表示第三和六列。
[root@znix clsn]# sed 's#,# #g' clsn.txt|cut -d ' ' -f3,6
clsn 31333741
awk在'{print $3","$NF}'裏面寫雙引號裏面寫什麼就顯示什麼
[root@znix clsn]# awk -F "[ ,]" '{print $3","$NF}' clsn.txt
clsn,31333741
查看/etc/services文件內容有多少行
[root@znix clsn]# wc -l /etc/services
10774 /etc/services
-l 顯示文件有多少行
ps命令,查看正在運行的進程,-ef 顯示系統中正在運行的進程
[root@znix ~]# ps -ef
[root@znix ~]# ps -ef|grep "/sshd"
root 1450 1 0 Aug24 ? 00:00:00 /usr/sbin/sshd
root 4965 4846 0 12:32 pts/0 00:00:00 grep /sshd
使用wc命令查看行數
數字大於2時表示程序運行。
[root@znix ~]# ps -ef|grep "/sshd"|wc -l
2
過濾出/etc/services 文件包含 3306或 1521 兩數據庫端口的行的內容。
[root@znix ~]# 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
"|" 表示或者,必須加在引號中。屬於正則表達式。
egrep時grep的高級版,與grep -E 相同。
[root@znix ~]# 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
所見即所得, 單引號裏的內容會原封不動的顯示出來
[root@znix ~]# echo '$LANG $(hostname)'
$LANG $(hostname)
會解析裏面的特殊符號
[root@znix ~]# echo "$LANG $(hostname)"
en_US.UTF-8 znix