第二周練習
1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
cp、mv、rm、touch
cp:copy,復制 SYNOPSIS cp [OPTION]... [-T] SOURCE DEST cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY SOURCE... 選項:-a 歸檔,相當于-dR --preserv=all,復制所有; -r -R 遞歸復制目錄及內部的所有內容; -i 交互式; -v 顯示過程; cp SRC DEST SRC是文件: 如果目標不存在:新建DEST,并將SRC中內容填充至DEST中; 如果目錄存在: 如果DEST是文件:將SRC中的內容覆蓋至DEST中; 此時建議為cp命令使用-i選項; 如果DEST是目錄:在DEST下新建與原文件同名的文件,并將SRC中內容填充至新文件中; cp SRC... DEST SRC...:多個文件 DEST必須存在,且為目錄,其它情形均會出錯; cp SRC DEST SRC是目錄: 此時使用選項:-r 如果DEST不存在:則創建指定目錄,復制SRC目錄中所有文件至DEST中; 如果DEST存在: 如果DEST是文件:報錯 如果DEST是目錄:
管理員root默認有-i
mv:move,移動文件
SYNOPSIS mv [OPTION]... [-T] SOURCE DEST mv [OPTION]... SOURCE... DIRECTORY mv [OPTION]... -t DIRECTORY SOURCE...
選項屬性跟cp一樣,只不過cp是復制mv是剪切
rm:remove,刪除
SYNOPSIS rm [OPTION]... FILE...
選項同上cp、mv一樣。rm默認不能刪除文件夾,一般要刪除文件夾時使用
rm -rf DIRECTORY
-r:遞歸
-f:強制
touch:創建文件、修改時間戳
SYNOPSIS touch [OPTION]... FILE... -a: only atime -m: only mtime -t: STAMP: [[CC]YY]MMDDhhmm[.ss] -c: 如果文件不存,則不予創建
2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
命令的執行結果狀態 成功 失敗 bash使用特殊變量$?保存最近一條命令的執行狀態結果: 0:成功 1-255:失敗 程序執行有兩類結果: 程序的返回值; 程序的執行狀態結果;
3、請使用命令行展開功能來完成以下練習:
(1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d
[root@caicai ~]# mkdir -pv /tmp/{a,b}{c,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 [root@caicai ~]# mkdir -pv /tmp/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、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
(1)文件的元素信息有:文件名、文件大小、文件權限、文件屬組、屬主、access time、modify time、change time等
(2)stat /PATH/TO/SOMEFILE:獲取指定文件的元數據
1
2
3
4
5
6
7
8
|
[root@caicai ~]# stat 123.txt File: `123.txt' Size: 3568 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768dInode: 1572878 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-06-18 22:02:11.185993594 +0800 Modify: 2016-06-18 22:02:11.185993594 +0800 Change: 2016-06-18 22:02:11.185993594 +0800 |
(3)touch命令:改變文件的時間戳
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
touch [OPTION]... FILE... -a: only atime -m: only mtime -t STAMP: [[CC]YY]MMDDhhmm[.ss] -c: 如果文件不存,則不予創建 [root@caicai ~]# stat 123.txt File: `123.txt' Size: 3568 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 1572878 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-06-18 22:02:11.185993594 +0800 Modify: 2016-06-18 22:02:11.185993594 +0800 Change: 2016-06-18 22:02:11.185993594 +0800 [root@caicai ~]# touch 123.txt [root@caicai ~]# stat 123.txt File: `123.txt' Size: 3568 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 1572878 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-06-26 22:54:19.238004986 +0800 Modify: 2016-06-26 22:54:19.238004986 +0800 Change: 2016-06-26 22:54:19.238004986 +0800 |
5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
alias:顯示當前shell進程所有可用的命令別名 alias NAME='VALUE'定義別名NAME,其相當于執行命令VALUE; 在命令行中定義的別名,僅對當前shell進程有效;如果想永久有效,要定義在配置文件中; 僅對當前用戶:~/.bashrc 對所有用戶有效:/etc/bashrc [root@caicai ~]# alias NAME='VALUE' [root@caicai ~]# alias alias NAME='VALUE' alias cp='cp -i' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias mv='mv -i' alias rm='rm -i' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
引用另一個命令的執行結果可以用管道符號 COMMAND1 | COMMAND2 | COMMAND3 |... [root@caicai ~]# ls /tmp | tr 'a-z' 'A-Z' A_C A_D B_C B_D MYLINUX WHO.OUT
6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
# ls -d /var/l*[0-9]*[[:lower:]]
7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
# ls -d /etc/[0-9]*[^0-9]
8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
# ls /etc/[^[:alpha:]][[:alpha:]]*
9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
# touch /tmp/tfile-"$(date +%Y-%m-%d-%H-%M-%S)"
10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
# cp -a /etc/p*[^[:digit:]] /tmp/mytest1
11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
# cp -a /etc/*.d /tmp/mytest2
12、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
# cp -a /etc/{1,m,n}*.conf /tmp/mytest3
原創文章,作者:N21_志建,如若轉載,請注明出處:http://www.www58058.com/20958
寫的很好,排版還可以在漂亮一點,有的問題還是有些小瑕疵的,加油