shell技巧分享(九)

這是一個系列文章,主要分享shell(部分功能僅適用於bash)的使用建議和技巧,每次分享3點,希望你能有所收穫。

1 gzip壓縮和解壓文件

$ ls
demo
$ gzip demo 
$ ls
demo.gz
$ gzip -d demo.gz 
$ ls
demo

通過gzip命令可以壓縮和解壓文件,由示例中可以看到,對文件demo執行gzip命令後,會生成一個demo.gz壓縮文件,對gz格式的壓縮文件執行gzip -d命令即可解壓該文件。另外,gzip命令不能壓縮目錄,只能對單個文件進行壓縮。

2 查看壓縮的文本文件

$ ls
demo
$ cat demo 
line1
line2
line3
$ gzip demo 
$ ls
demo.gz
$ zcat demo.gz 
line1
line2
line3

如果想查看gz格式壓縮文件的內容,直接使用cat命令是無法查看的,會顯示亂碼。藉助zcat命令可以實現該功能,由示例中可以看到,使用zcat命令可以查看gz格式壓縮文件的內容。

3 PATH配置順序

# grep "JAVA" /etc/profile
JAVA_HOME=/opt/java1.8/jdk1.8.0_112
PATH=$JAVA_HOME/bin:$PATH
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL JAVA_HOME
# java -version
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)

修改PATH的配置順序,再打開一個終端執行java -version:

# grep "JAVA" /etc/profile
JAVA_HOME=/opt/java1.8/jdk1.8.0_112
PATH=$PATH:$JAVA_HOME/bin
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL JAVA_HOME
# java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)

linux執行命令時,是按順序從PATH中的路徑依次查找,如果找到相應的可執行文件,就不會繼續查找後面的目錄。由示例中可以看到,當配置的PATH爲$JAVA_HOME/bin:$PATH時,將JAVA_HOME放置在PATH的最前面,此時執行的java版本是1.8.0_112。如果配置的PATH爲$PATH:$JAVA_HOME/bin,將JAVA_HOME附在PATH後面,再打開一個終端執行java -version時,發現java版本是1.8.0_131,不是配置的JAVA_HOME指定的java版本。所以安裝新軟件修改PATH時,一定要注意順序,否則有可能執行的命令不是新安裝的軟件命令,從而導致其他問題。我在公司已經聽說過2個bug是由於這個原因導致,很不容易發現,希望對大家有所幫助。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章