運行級別,壓縮命令,單引號與雙引號運用


1.1 8

linux 系統運行級別一般為 0-6,請分別寫出每個級別的含義。

1.1.1 運行級別的含義

0 關機

1 單用戶模式

2 多用戶模式 沒有NFS

3 完全的多用戶   命令行模式

4 沒有使用

5 圖形化界面模式

6 重啟

1.1.2 臨時切換運行級別 

init 5 臨時修改

1.1.3 查看運行級別

runlevel 顯示運行級別

1.1.4 永久修改運行級別

修改文件 /etc/inittab

1.2 9

希望防火牆,僅在 3 級別上開機自啟動,該如何做?

1.2.1 --level

--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

1.3 13

etc/目錄為 linux 系統的默認的配置文件及服務啟動命令的目錄

   a.請用 tar打包/etc 整個目錄(打包及壓縮)

   b.請用 tar打包/etc 整個目錄(打包及壓縮,但需要排除/etc/services 文件)

   c.請把 a 點命令的壓縮包,解壓到/tmp 指定目錄下(最好只用 tar命令實現)

1.3.1 創建壓縮包

創建壓縮包的時候盡量使用相對路徑

[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----指定壓縮包的位置和名字

1.3.2 查看壓縮包的內容

查看壓縮包的內容時可以不加z參數,系統會自動選擇。

[root@znix tmp]# tar ztf etc.tar.gz

              t----顯示或者列表

1.3.3 解壓縮

解壓不指定路徑的時候會解壓到當前路徑。

[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/

1.3.4 排除指定文件

--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

1.3.5 壓縮時的提示

Removing leading `/' from member names

把壓縮包中的文件最前面的斜線刪除

            壓縮包里的內容 絕對路徑>>>相對路徑

原因:

       解壓的時候會按照壓縮包內的路徑進行解壓,從根目錄打包會覆蓋其他文件

系統解決辦法:

       出於安全的考慮,把絕對路徑前面的'/'去掉,變成相對路徑

1.3.6 相對路徑壓縮

先進入根目錄再進行壓縮。

[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

1.4 13

 

創建環境

[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”字符串,請給出命令。

 

1.4.1 方法一 sed+sed

先用sed命令將前面的部分替換為空,經過管道,sed在將后面的部分替換為空。

[root@znix clsn]# sed 's#I am ##g' clsn.txt |sed 's#,myqq is##g'

clsn 31333741

1.4.2 方法二 sed+awk

sed將逗號換為空格,awk以空格為分隔符,print輸出列的內容,$3表示第三列,$NF 表示最后一列

[root@znix clsn]# sed 's#,# #g' clsn.txt |awk '{print $3,$NF}'

clsn 31333741

1.4.3 方法三 awk

使用-F指定分隔符,這里指定為逗號和空格,print 需要在{}中才可以使用

-F 指定分隔符,表示每一列的結束標記

[root@znix clsn]# awk -F "[, ]" '{print $3,$6}' clsn.txt

clsn 31333741

1.4.4 方法四 sed+cut

先用sed將逗號替換為空格,然后再用cut 切割。

-d 表示用什么切割,這里指定為空格,-f36表示第三和六列。

[root@znix clsn]# sed 's#,# #g' clsn.txt|cut -d ' ' -f3,6

clsn 31333741

1.4.5 顯示為clsn,31333741

awk'{print $3","$NF}'里面寫雙引號里面寫什么就顯示什么

[root@znix clsn]# awk -F "[ ,]"  '{print $3","$NF}' clsn.txt

clsn,31333741

1.5 14

查看/etc/services文件內容有多少行

1.5.1 顯示行數 wc

[root@znix clsn]# wc -l /etc/services

10774 /etc/services

-l 顯示文件有多少行

1.5.2 檢查進程是否運行(wc運用)

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

1.6 15

過濾出/etc/services  文件包含 3306 1521 兩數據庫端口的行的內容。

1.6.1 使用grep命令

[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

       "|" 表示或者,必須加在引號中。屬於正則表達式。

1.6.2 使用egrep

egrepgrep的高級版,與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

1.7 命令行及shell中加單引號和加雙引號的區別

1.7.1 單引號

所見即所得, 單引號里的內容會原封不動的顯示出來

[root@znix ~]# echo '$LANG $(hostname)'

$LANG $(hostname)

 

1.7.2 雙引號

解析里面的特殊符號

[root@znix ~]# echo "$LANG $(hostname)"

en_US.UTF-8 znix


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM