馬哥門徒-N26-邢巖
我們接著說今天的分享,接著,我們來看看bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容好了。
1.bash的基礎特性之:命令的執行狀態結果
bash通過狀態返回值來輸出此結果:
成功:0
失?。?-255
命令執行完成之后,其狀態返回值保存于bash的特殊變量$?中;
命令正常執行時,有的還有命令的返回值:根據命令及其功能不同,結果各不相同;
2.bash的基礎特性之:命令行展開
~:自動展開為用戶的家目錄,或指定的用戶的家目錄
{}:可承載一個以逗號分割的路徑列表,并將其展開為多個路徑
例如:/tmp/{a,b}相當于 /tmp/a /tmp/b
不知道文藝青年們的fish是個神馬樣子的。。。別神游了,安心的回來做個練習題吧。
請使用命令行展開功能來完成以下練習:
(1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d
(2)、創建/tmp/mylinux目錄下的:
mylinux/
├── bin
├── boot
│ └── grub
├── dev
├── etc
│ ├── rc.d
│ │ └── init.d
│ └── sysconfig
│ └── network-scripts
├── lib
│ └── modules
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│ └── local
│ ├── bin
│ └── sbin
└── var
├── lock
├── log
└── run
文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
文件可以分成兩類數據:
元數據:metadata 包括文件名稱,文件大小,文件類型,訪問權限,時間戳等等
可以使用stat命令來查看。
數據:data
時間戳: 用touch命令來修改文件的時間戳信息
access time:2017-02-04 15:30:21.454611619 +0800
modify time:2017-02-04 15:29:57.681410179 +0800
change time:2017-02-04 15:29:57.681410179 +0800
如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
1.alias命令可以定義一個命令的別名
alias name=’value’
注意:別名只對當前shell有效,如果想永久生效,需要定義在配置文件中。
2.引用命令的執行結果:
$(COMMAND)
或`COMMAND`
最后,我再來做一些練習題來結束我今天的分享。溫故而知新,那么我就開始了。
顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
[root@localhost ~]# ls -d /var/1*[0-9]*[[:lower:]]
/var/1a2sa
[root@localhost ~]# ls -d /etc/[0-9]*[^0-9]
/etc/1aaa
[root@localhost ~]# ls -d /etc/[^[:alpha:]][a-z]*
/etc/1aaa
[root@localhost ~]# touch /var/tfile-$(date +%F-%H-%M-%S)
[root@localhost ~]# cp -r /etc/p*[^0-9] /tmp/mytest1/
[root@localhost ~]# cp -r /etc/*.d /tmp/mytest2
[root@localhost ~]#cp -r /etc/[1mn]*.conf /tmp/mytest3
Don't be so excited!雖然此刻我已經學完了上百個常用的Linux命令,但是光用命令本身是不能做好工作滴,任重而道遠,還會有什么呢?且聽下次分解吧,bye!
原創文章,作者:jeque,如若轉載,請注明出處:http://www.www58058.com/68061
很棒,繼續加油!