linux 系統執行級別一般為 0-6,請分別寫出每個級別的含義。
0 關機
1 單使用者模式
2 多使用者模式
沒有nfs
3 完全的多使用者
命令列模式
4 沒有使用
5 圖形化介面模式
6 重啟
init 5 臨時修改
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 ''
clsn 31333741
使用-f指定分隔符,這裡指定為逗號和空格,print 需要在
{}中才可以使用
。-f 指定分隔符,表示每一列的結束標記
[root@znix clsn]# awk -f "[, ]" '' clsn.txt
clsn 31333741
先用sed將逗號替換為空格,然後再用cut 切割。
-d 表示用什麼切割,這裡指定為空格,-f3,6表示第三和六列。
[root@znix clsn]# sed 's#,# #g' clsn.txt|cut -d ' ' -f3,6
clsn 31333741
awk在''
裡面寫雙引號裡面寫什麼就顯示什麼
[root@znix clsn]# awk -f "[ ,]" '' 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
過濾出/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
單引號,雙引號,無引號
單引號 所見即所得 雙引號 1 把雙引號的所有內容都輸出出來 2 如果中命令 要反引下 變數 特殊轉義符等,會先把變數 命令 特殊轉義符解析出結果再輸出最終內容。無引號 與雙引號基本相同,連續數字不用加任何引號 建議 指令碼中普通字串盡量雙引號,單純數字可以不用加引號 a 192 a 192 a b...
Golang 單引號 雙引號與反引號
單引號在 golang 表示乙個字元,使用乙個特殊型別 rune 表示字元型。rune 為 int32 的別名,它完全等價於 int32,習慣上用它來區別字元值和整數值。rune 表示字元的 unicode 碼值。package main import fmt func main 編譯執行輸出 c ...
單引號和雙引號
char p1 1 char p2 1 1 的ascii碼值為49 0和49位址處為作業系統使用,故訪問這些位址如printf s,s,s p1,p2,p3 會產生段錯誤。printf n n的ascii碼值為10,同理,段錯誤。a 表示字元常量,在記憶體中佔1個位元組,a 1表示 a 的ascii...