第二周作業:


本周作業內容:

1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。

touch,rm,mv,cp,file,ls,chmod,chown,ln,rename,


touch 修改文件atime,如果文件不存在,那么創建該文件。


rm:刪除文件。

-r:循環刪除,包含文件和目錄

-f:強制刪除,布詢問。

-i:詢問是否刪除。

默認情況下,系統自帶別名,rm=rm -i


mv:移動文件,可以在移動的過程中重命名文件或文件夾。

例如:移動重命名mytest1目錄為mytest2

命令:mv /tmp/mytest1/ /tmp/mytest2/

cp:復制文件或文件夾。

例如:復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。

命令:cp -r /etc/p*[^0-9] /tmp/mytest1/

file:探測文件類型

命令:file readme.txt?

輸出:readme.txt: ASCII text

ls:列出文件,顯示目錄內容,或顯示文件屬性

命令:ll readme.txt

輸出:-rw-r--r-- ?1 lanzh ?staff ? ?12B ?8 14 22:04 readme.txt

chmod:修改文件訪問權限

命令:chmod +x readme.txt

chown:修改文件屬主

命令:chown :root readme.txt


ln:為文件創建鏈接

默認創建硬鏈接,創建軟鏈接需要參數-s

命令:ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

輸出:lrwxrwxrwx 1 root root 33 8月 ?10 10:36 /etc/localtime -> /usr/share/zoneinfo/Asia/Shanghai

rename 批量為文件改名

命令:rename .repo .repo.bak .*



2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。

0

1-255


[root@Tst-V15-101 tmp]# ls -la

總用量 36

drwxrwxrwt. 10 root root 4096 8月 ?14 21:23 .

dr-xr-xr-x. 17 root root 4096 8月 ? 9 22:35 ..

drwxrwxrwt. ?2 root root ? ?6 8月 ? 9 18:31 .font-unix

-rw-r--r-- ? 1 root root ?525 8月 ?12 15:16 how_are_you.txt

drwxrwxrwt. ?2 root root ? ?6 8月 ? 9 18:31 .ICE-unix

-rwx------. ?1 root root ?827 8月 ? 9 18:35 ks-script-9VchMy

-rwx------. ?1 root root 1167 8月 ? 9 18:35 ks-script-K76ivX

drwxr-xr-x ?17 root root 4096 8月 ?14 20:02 mylinux

drwxr-xr-x ?12 root root 4096 8月 ?14 21:25 mytest1

-rw-r--r-- ? 1 root root ?183 8月 ?12 14:56 passwd.out

drwxrwxrwt. ?2 root root ? ?6 8月 ? 9 18:31 .Test-unix

-rw-r--r-- ? 1 root root 3439 8月 ? 9 19:03 vgauthsvclog.txt.0

drwx------ ? 2 root root ?130 8月 ? 9 23:03 vmware-root

drwxrwxrwt. ?2 root root ? ?6 8月 ? 9 18:31 .X11-unix

drwxrwxrwt. ?2 root root ? ?6 8月 ? 9 18:31 .XIM-unix

-rw-------. ?1 root root ? ?0 8月 ? 9 18:30 yum.log

[root@Tst-V15-101 tmp]# echo $?

0

[root@Tst-V15-101 tmp]# ls /varr

ls: 無法訪問/varr: 沒有那個文件或目錄

[root@Tst-V15-101 tmp]# echo $?

2

[root@Tst-V15-101 tmp]#




3、請使用命令行展開功能來完成以下練習:


(1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d

mkdir /tmp/{a,b}_{c,d}


(2)、創建/tmp/mylinux目錄下的:


mkdir -p /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmo,usr/local/{bin,sbin},var,lock,log,run}


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

4、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。

文件的元數據可以通過stat命令查看

[root@cobber7 CentOS-6.8-x86_64]# stat RELEASE-NOTES-en-US.html

? File: "RELEASE-NOTES-en-US.html"

? Size: 1359 ? ? ? ? ? Blocks: 8 ? ? ? ? ?IO Block: 4096 ? 普通文件

Device: fd00h/64768d ? Inode: 3028181 ? ? Links: 1

Access: (0444/-r--r--r--) ?Uid: ( ? ?0/ ? ?root) ? Gid: ( ? ?0/ ? ?root)

Access: 2016-07-15 18:28:42.000000000 +0800

Modify: 2016-05-22 05:04:07.000000000 +0800

Change: 2016-07-15 18:28:42.389633076 +0800


主要信息有:

文件名,

文件大小, 文件塊大小 IO塊大小 文件類型

設備類型 索引信息 鏈接數量

訪問權限 屬主信息 屬組信息

訪問時間

修改時間

變動時間


主要通過touch命令修改時間戳

例如:touch myfile 將訪問時間修改為系統當前時間。

-m 修改文件最后修改時間。


5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?

通過alias定義別名。

alias cls=clear


通過管道符號引用另一個命令的執行結果。

| 上一個命令的標注輸出作為下一個命令的標準輸入。


ls /etc | wc

統計/etc目錄下的文件數量


6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。

ls /var/l*[0-9]?*[a-z]


7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。

ls /etc/[0-9]*[a-z]


8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。

ls /etc/[^a-z][a-z]?*


9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-08-06-09-32-22。

touch /tmp/tfile-`date-%y-%m-%d-%H-%M-%S`


10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。

cp -r /etc/p*[^0-9] /tmp/mytest1/


11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。

cp -r /etc/*.d /tmp/mytest2/


12、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。

cp ?/etc/[l,m,n]*.conf /tmp/test3