一、Linux文件管理類命令匯總
1、文件的復制命令:cp
復制命令:cp cp [OPTION]... [-T] SOURCE DEST cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY SOURCE... cp SRC DEST // SRC代表源文件,DEST代表目標文件。 SRC是文件: ①如果目標不存在:新建DEST,并將SRC中內容填充至DEST中; ②如果目標存在: 如果DEST是文件:將SRC中的內容覆蓋至DEST中; 此時建議為cp命令使用-i選項;(對于管理員來講,是一個命令別名,默認就有-i選項的。但對普通用戶時不具備) 如果DEST是目錄:在DEST下新建與原文件同名的文件,并將SRC中內容填充至新文件中; cp SRC... DEST SRC...:多個文件 DEST必須存在,且為目錄,其它情形均會出錯; cp SRC DEST SRC是目錄: 此時使用選項:-r ①如果DEST不存在:則創建指定目錄,復制SRC目錄中所有文件至DEST中; ②如果DEST存在: 如果DEST是文件:報錯 如果DEST是目錄: 常用選項: -i:交互式 -r, -R: 遞歸復制目錄及內部的所有內容; -a: 歸檔,用于備份,保留文件原來的所有的元數據屬性,相當于-dR --preserv=all -d:--no-dereference --preserv=links (意思是我們不跟蹤符號鏈接,就復制符號鏈接這個文件本身,而不是復制它指向的那個文件內容) --preserv[=ATTR_LIST] mode: 權限 ownership: 屬主屬組 timestamp: 時間戳 links :鏈接本身的屬性 xattr :擴展屬性 context : 安全上下文 all : 所有屬性 -p(小寫): --preserv=mode,ownership,timestamp -v: --verbose (顯示詳細信息,顯示復制過程) -f: --force (強制)
2、文件的移動命令:mv
移動命令:mv mv [OPTION]... [-T] SOURCE DEST mv [OPTION]... SOURCE... DIRECTORY mv [OPTION]... -t DIRECTORY SOURCE... mv [選項] 源文件 目標文件 mv [選項] 多個源文件 目標目錄 mv -r [選項] 源目錄 目標 常用選項: -i: 交互式 -f: 強制 -r: 遞歸
3、文件的刪除命令:rm
刪除命令:rm rm [OPTION]... FILE... 常用選項: -i: 交互式 -f: 強制刪除 -r: 遞歸
二、練習
1、創建/tmp目錄下的:a_c, a_d, b_c, b_d
[root@localhost ~]# mkdir -pv /tmp/{a,b}_{c,d} mkdir: created directory `/tmp/a_c' mkdir: created directory `/tmp/a_d' mkdir: created directory `/tmp/b_c' mkdir: created directory `/tmp/b_d' [root@localhost ~]# tree /tmp/ /tmp/ ├── a_c ├── a_d ├── b_c └── b_d 4 directories, 0 files
2、創建/tmp/mylinux目錄下的目錄:bin,boot/grub,dev,etc/rc.d/init.d,etc/sysconfig/network-scripts,lib/modules,lib64,proc,sbin,sys,usr/local/bin,usr/local/sbin,var/lock,var/log,var/run,
mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts}, lib/modules,lib64,proc,sbin,sys,usr/{local/{bin,sbin},var/{lock,log,run}}} [root@localhost ~]# tree /tmp/mylinux/ /tmp/mylinux/ ├── bin ├── boot │ └── grub ├── dev ├── etc │ ├── rc.d │ │ └── init.d │ └── sysconfig │ └── network-scripts ├── lib │ └── modules ├── lib64 ├── proc ├── sbin ├── sys └── usr ├── local │ ├── bin │ └── sbin └── var ├── lock ├── log └── run 23 directories, 0 files
三、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
1、Bash命令執行狀態返回值:
Bash 命令執行后,會對執行狀態返回一個值。 如果命令執行成功則返回0,如果執行不成功,就會返回一個1—255的數字。
Bash使用特殊變量$?保存最近一條命令的執行狀態結果:($? 在Bash中是特殊變量)
命令的執行結果狀態(狀態只有2種,要么成功要么失敗)
0:成功
1-255:失敗
[root@localhost ~]# ll /etc/passwd -rw-r--r--. 1 root root 1438 Jul 26 05:35 /etc/passwd [root@localhost ~]# echo $? 0 [root@localhost ~]# ll /etc/passwdd ls: cannot access /etc/passwdd: No such file or directory [root@localhost ~]# echo $? 2
2、命令行展開特性:
1、“~” 展開為用戶的家目錄
使用方法:~username // 展開為指定的用戶的主目錄
例如:
[root@localhost ~]# cd ~gentoo [root@localhost gentoo]# pwd /home/gentoo
2、使用花括號,里面用逗號分隔的列表,并將其展開為多個路徑
例如:/tmp/{a,b} = /tmp/a, /tmp/b
[root@localhost ~]# mkdir -p /tmp/{a,b} [root@localhost ~]# tree /tmp/ /tmp/ ├── a └── b 2 directories, 0 files
四、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
文件的元數據包含文件本身的一些屬性信息,如:文件名、文件的各類權限、各類時間戳、鏈接次數等。
文件包括三個時間戳:atime,mtime,ctime,可以使用touch命令來修改時間戳,用法如下:
文件時間戳管理工具:touch 文件:metadata, data 三個時間戳: access time:訪問時間--->簡寫為atime,讀取文件內容 modify time: 修改時間--->簡寫為mtime,改變文件內容(數據) change time: 改變時間--->簡寫為ctime,元數據發生改變
查看時間戳命令:stat [root@localhost ~]# stat /etc/passwd File: `/etc/passwd' Size: 1438 Blocks: 8 IO Block: 4096 regular file Device: 805h/2053d Inode: 262888 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-07-28 18:40:01.824678351 -0400 Modify: 2016-07-26 05:35:32.110304187 -0400 Change: 2016-07-26 05:35:32.111304187 -0400
手動指定修改時間戳命令:touch touch [OPTION]... FILE... -a: only atime (指定修改訪問時間) -m: only mtime (指定修改修改時間) -t STAMP:(自己指明時間戳) [[CC]YY]MMDDhhmm[.ss] -c: 如果文件不存在,則不予創建
五、如何定義一個命令的別名,如何在命令中引用另一命令的執行結果
命令別名(alias 是一個bash的內建命令)通過alias命令實現: (1) alias 顯示當前shell進程所有可用的命令別名; (2) alias NAME='VALUE' 定義別名NAME,其相當于執行命令VALUE; 注意:在命令行中定義的別名,僅對當前shell進程有效;如果想永久有效,要定義在配置文件中; 僅對當前用戶:~/.bashrc 對所有用戶有效:/etc/bashrc Note: 編輯配置給出的新配置不會立即生效; bash進程重新讀取配置文件: source /path/to/config_file ./path/to/config_file 撤消別名:unalias unalias [-a] name [name ...] Note: 如果別名同原命令的名稱,則如果要執行原命令,可使用"\COMMAND";
六、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
[root@localhost ~]# ls /var/l*[0-9]*[[:lower:]]
七、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄
[root@localhost ~]# ls /etc/[0-9]*[^[:alpha:]]
八、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
[root@localhost ~]# ls /etc/[^[:alpha:]][[:alpha:]]*
九、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
[root@localhost ~]# touch /tmp/tfile-`date +%F-%H-%M-%S` [root@localhost ~]# ll /tmp/ total 0 -rw-r--r--. 1 root root 0 Jul 29 14:23 tfile-2016-07-29-14-23-12
十、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
[root@localhost ~]# cp -rf /etc/p*[^[:lower:]] /tmp/mytest1 [root@localhost ~]# ls /tmp/mytest1/ passwd- passwd.OLD pkcs11 polkit-1
十一、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
[root@localhost ~]# cp -rf /etc/*.d /tmp/mytest2 [root@localhost ~]# ls /tmp/mytest2/ bash_completion.d event.d lsb-release.d popt.d rc2.d rc.d statetab.d chkconfig.d init.d makedev.d prelink.conf.d rc3.d request-key.d sudoers.d cron.d latrace.d modprobe.d profile.d rc4.d rsyslog.d xinetd.d depmod.d ld.so.conf.d oddjobd.conf.d rc0.d rc5.d rwtab.d yum.repos.d dracut.conf.d logrotate.d pam.d rc1.d rc6.d setuptool.d
十二、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
[root@localhost ~]# cp /etc/[lmn]*.conf /tmp/mytest3/ [root@localhost ~]# ls /tmp/mytest3 latrace.conf libaudit.conf logrotate.conf mke2fs.conf nsswitch.conf numad.conf ld.so.conf libuser.conf ltrace.conf nfsmount.conf ntp.conf
原創文章,作者:N21_杭州-Debian,如若轉載,請注明出處:http://www.www58058.com/26559
寫的很好,排版也很棒,加油