####1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
復制:cp 移動:mv 刪除:rm
cp:copy,復制文件或目錄</br>
cp [OPTION]… SOURCE… DIRECTORY</br>
OPTION -i:交互式
-r,R:遞歸復制目錄及內部的所有內容
–preserve[=ATTR_LIST] (default: mode,ownership,timestamps)
ATTR_LIST mode:權限
ownershi:屬主屬組
timestamps:linux時間戳
links:文件為軟鏈接時,只拷貝軟鏈接文件。
context:安全上下文
xattr:文件擴展屬性
all:包括以上所有
-d:相當于–no-dereference –preserve=links
-p:相當于–preserve=mode,ownership,timeststamps
-a:相當于-dR –preserve=all
-f:強行復制文件或目錄,不論目標文件或目錄是否已存在
-v:顯示復制過程
SOURCE為單個文件時: cp /etc/fstab /tmp/fstabak #1.fstabak不存在時,創建fstabak文件,并且將fstab文件內容填充至fstabak文件內 #2.fstabak為文件且存在,則將fstab文件內容覆蓋填充至fstabak文件內 #3.fstabak為目錄且存在時,在fstabak下創建與fstab文件同名文件,并將fstab文件內容填充至新文件中。 SOURCE為多個文件時: cp /etc/fstab issue /tmp/bak/ #在bak目錄中創建與各個源文件名相同的文件,并把各個源文件內容填充至各個新文件中(bak只能為目錄且必須存在) SOURCE為目錄時: cp -r /etc/yum.d /tmp/yumbak.d #1.yumbak.d不存在,創建yumbak.d目錄,拷貝yum.d目錄中所有文件至yumbak.d目錄中 #2.yumbak.d存在且為目錄,拷貝yum.d目錄中所有文件至yumbak.d目錄中(yumbak.d為文件時報錯)
mv: move,移動文件
mv [OPTION]… SOURCE… DIRECTORY
OPTION -i:交互式
-f:若目標文件或目錄與現有的文件或目錄重復,則直接覆蓋現有的文件或目錄
-v:顯示移動過程
SOURCE為單個文件時: mv /tmp/fstabak /tmp/newfstabak #1.newfstabak不存在時,創建newfstabak文件,并且將fstab文件內容填充至fstabak文件內,并刪除fstabak文件 #2.newfstabak為文件且存在,則將fstabak文件內容覆蓋填充至newfstabak文件內,并刪除fstabak文件 #3.newfstabak為目錄且存在時,在newfstabak下創建與fstabak文件同名文件,并將fstabak文件內容填充至新文件中,并刪除fstabak文件 SOURCE為多個文件時: mv /tmp/bak/fstab issue /tmp/newbak/ #在newbak目錄中創建與各個源文件名相同的文件,并把各個源文件內容填充至各個新文件中,并刪除bak目錄下的fstab,issue文件(bak只能為目錄且必須存在) SOURCE為目錄時: mv /tmp/yumbak.d /tmp/newyumbak.d #1.newyumbak.d不存在,創建newyumbak.d目錄,拷貝yumbak.d目錄中所有文件至newyumbak.d目錄中,并刪除yumbak.d目錄 #2.newyumbak.d存在且為目錄,拷貝yumbak.d目錄中所有文件至newyumbak.d目錄中(yumbak.d為文件時報錯),并刪除yumbak.d目錄
rm: remove,刪除
rm [OPTION]… FILE…
OPTION -i: 交互式
-f: 強制刪除
-r,R: 遞歸目錄及內部的所有內容
-v:顯示詳細過程
####2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
查看bash的工命令執行狀態返回值命令:
echo $? #1.若返回值為數字 0 ,則說明命令執行成功
#2.若返回值為非 0 數字,則說明命令執行失敗
命令行展開
~:代表當前登陸用戶的家目錄
~USERNAME:為指定用戶的家目錄
{}:可承載一個以逗號分隔的列表,并將其展開為多個路徑
在/tmp目錄下創建名為f,s兩個目錄:mkdir /tmp/{f,s}
####3、命令行展開功能來練習
(1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d
mkdir -v /tmp/{a,b}_{c,d} mkdir: 已創建目錄 "/tmp/a_c" mkdir: 已創建目錄 "/tmp/a_d" mkdir: 已創建目錄 "/tmp/b_c" mkdir: 已創建目錄 "/tmp/b_d"
(2)創建/tmp/mylinux目錄下相應目錄
tree /tmp/mylinux /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
執行命令為:
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}\ > } mkdir: 已創建目錄 "/tmp/mylinux" mkdir: 已創建目錄 "/tmp/mylinux/bin" mkdir: 已創建目錄 "/tmp/mylinux/boot" mkdir: 已創建目錄 "/tmp/mylinux/boot/grub" mkdir: 已創建目錄 "/tmp/mylinux/dev" mkdir: 已創建目錄 "/tmp/mylinux/etc" mkdir: 已創建目錄 "/tmp/mylinux/etc/rc.d" mkdir: 已創建目錄 "/tmp/mylinux/etc/rc.d/init.d" mkdir: 已創建目錄 "/tmp/mylinux/etc/sysconfig" mkdir: 已創建目錄 "/tmp/mylinux/etc/sysconfig/network-scripts" mkdir: 已創建目錄 "/tmp/mylinux/lib" mkdir: 已創建目錄 "/tmp/mylinux/lib/modules" mkdir: 已創建目錄 "/tmp/mylinux/lib64" mkdir: 已創建目錄 "/tmp/mylinux/proc" mkdir: 已創建目錄 "/tmp/mylinux/sbin" mkdir: 已創建目錄 "/tmp/mylinux/sys" mkdir: 已創建目錄 "/tmp/mylinux/tmp" mkdir: 已創建目錄 "/tmp/mylinux/usr" mkdir: 已創建目錄 "/tmp/mylinux/usr/local" mkdir: 已創建目錄 "/tmp/mylinux/usr/local/bin" mkdir: 已創建目錄 "/tmp/mylinux/usr/local/sbin" mkdir: 已創建目錄 "/tmp/mylinux/var" mkdir: 已創建目錄 "/tmp/mylinux/var/lock" mkdir: 已創建目錄 "/tmp/mylinux/var/log" mkdir: 已創建目錄 "/tmp/mylinux/var/run"
####4、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
文件元數據包括:文件大小,inode節點號,權限,屬主屬組,時間戳信息 ……
可通過 stat 命令查看
stat /etc/fstab File: '/etc/fstab' Size: 483 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 33554562 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: system_u:object_r:etc_t:s0 Access: 2016-07-18 12:20:01.728182675 +0800 Modify: 2016-06-11 14:03:10.145086826 +0800 Change: 2016-06-11 14:42:27.567188424 +0800 stat /etc/fstab 文件:"/etc/fstab" 大?。?83 塊:8 IO 塊:4096 普通文件 設備:fd00h/64768d Inode:33554562 硬鏈接:1 權限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 安全上下文:system_u:object_r:etc_t:s0 最近訪問:2016-07-18 12:20:01.728182675 +0800 最近更改:2016-06-11 14:03:10.145086826 +0800 最近改動:2016-06-11 14:42:27.567188424 +0800
linux文件有三個時間戳信息:
access time:訪問時間,簡寫為atime,讀取文件內容會改變
modify time: 修改時間, 簡寫為mtime,改變文件內容(數據)時改變,注意僅修改文件內容atime不會改變
change time: 改變時間, 簡寫為ctime,元數據發生改變會改變
使用touch命令修改時間戳信息
touch [OPTION]… FILE…
OPTION -a: 僅修改atime
-m: 僅修改mtime
-t STAMP: 將atime,ctime同時修改為設置為STAMP
STAMP時間格式如下:
[[CC]YY]MMDDhhmm[.ss]
-c: 如果文件不存在,則不予創建
####5.如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
使用alias定義命令別名,unalias取消命令別名
alias: alias [-p] [NAME[=VALUE] … ]
alias [-p]:顯示已定義的命令別名
alias ll='ls -l –color=auto' #執行命令ll相當于執行 ls -l –color=auto
unalias -a 取消所有已定義的命令別名
unalias NAME 取消單個命令別名
注意:在命令行中定義的別名,僅對當前shell進程有效;如果想永久有效,要定義在配置文件中;
僅對當前用戶:~/.bashrc
對所有用戶有效:/etc/bashrc
如果別名同原命令名字相同,執行原命令使用 \COMMAND
引用命令的執行結果可使用反引號 `COMMAND` 或 $(command)
echo `ls /root` Desktop anaconda-ks.cfg initial-setup-ks.cfg echo $(ls /root) Desktop anaconda-ks.cfg initial-setup-ks.cfg
####6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
touch /var/l9c.txt touch /var/log96dc.txt mkdir /var/log9D.d ls -ld /var/l*[0-9]*[[:lower:]] -rw-r--r--. 1 root root 0 Jul 18 16:24 /var/l9c.txt -rw-r--r--. 1 root root 0 Jul 18 16:25 /var/log96dc.txt drwxr-xr-x. 2 root root 6 Jul 18 16:27 /var/log9D.d
####7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
touch /etc/23c.txt touch /etc/2cc.txt mkdir /etc/2D mkdir /etc/2D3 ls -ld /etc/[[:digit:]]*[^[:digit:]] -rw-r--r--. 1 root root 0 7月 18 17:01 /etc/23c.txt -rw-r--r--. 1 root root 0 7月 18 17:02 /etc/2cc.txt drwxr-xr-x. 2 root root 6 7月 18 17:03 /etc/2D
####8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
ls -ld /etc/[^[:alpha:]][[:alpha:]]* -rw-r--r--. 1 root root 0 7月 18 17:02 /etc/2cc.txt drwxr-xr-x. 2 root root 6 7月 18 17:03 /etc/2D drwxr-xr-x. 2 root root 6 7月 18 17:05 /etc/2D3
####9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
touch /tmp/tfile-$(date +%F-%H-%M-%S) ls /tmp mylinux tfile-2016-07-18-17-12-35
####10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
mkdir /tmp/mytest1 cp -a /etc/p*[^[:digit:]] /tmp/mytest1 ls -l /tmp/mytest1/ 總用量 60 drwxr-xr-x. 2 root root 4096 6月 11 15:58 pam.d -rw-r--r--. 1 root root 2311 6月 11 16:17 passwd -rw-r--r--. 1 root root 2261 6月 11 14:56 passwd- -rw-r--r--. 1 root root 1362 6月 10 2014 pbm2ppa.conf -rw-r--r--. 1 root root 2872 6月 10 2014 pinforc drwxr-xr-x. 9 root root 91 6月 11 14:15 pki drwxr-xr-x. 2 root root 27 6月 11 14:18 plymouth drwxr-xr-x. 5 root root 49 6月 11 14:04 pm -rw-r--r--. 1 root root 6300 6月 10 2014 pnm2ppa.conf drwxr-xr-x. 2 root root 6 6月 10 2014 popt.d drwxr-xr-x. 2 root root 4096 6月 11 14:24 postfix drwxr-xr-x. 3 root root 4096 6月 11 14:14 ppp drwxr-xr-x. 2 root root 101 6月 11 14:15 prelink.conf.d -rw-r--r--. 1 root root 233 6月 7 2013 printcap -rw-r--r--. 1 root root 1750 6月 7 2013 profile drwxr-xr-x. 2 root root 4096 6月 11 14:27 profile.d -rw-r--r--. 1 root root 6545 6月 7 2013 protocols drwxr-xr-x. 2 root root 75 6月 11 14:16 pulse drwxr-xr-x. 2 root root 22 6月 11 14:18 purple drwxr-xr-x. 13 root root 4096 7月 18 17:16 python
####11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
mkdir /tmp/mytest2 cp -a /etc/*.d /tmp/mytest2 ls -l /tmp/mytest2/ 總用量 56 drwxr-xr-x. 2 root root 4096 6月 11 14:29 bash_completion.d drwxr-xr-x. 2 root root 6 11月 20 2015 binfmt.d drwxr-xr-x. 2 root root 6 11月 20 2015 chkconfig.d drwxr-xr-x. 2 root root 51 6月 11 14:24 cron.d drwxr-xr-x. 2 root root 22 6月 11 14:12 depmod.d drwxr-xr-x. 2 root root 6 8月 6 2015 dnsmasq.d drwxr-xr-x. 2 root root 6 11月 20 2015 dracut.conf.d drwxr-xr-x. 2 root root 6 11月 20 2015 exports.d drwxr-xr-x. 2 root root 6 9月 11 2015 gdbinit.d drwx------. 2 root root 4096 6月 11 14:39 grub.d lrwxrwxrwx. 1 root root 11 6月 11 14:06 init.d -> rc.d/init.d drwx------. 5 root root 4096 6月 11 14:15 ipsec.d drwxr-xr-x. 2 root root 4096 6月 11 14:14 ld.so.conf.d drwxr-xr-x. 2 root root 6 11月 20 2015 libibverbs.d drwxr-xr-x. 2 root root 4096 6月 11 15:58 logrotate.d drwxr-xr-x. 2 root root 22 6月 11 14:13 modprobe.d drwxr-xr-x. 2 root root 6 11月 20 2015 modules-load.d drwxr-xr-x. 2 root root 30 6月 11 14:09 my.cnf.d drwxr-xr-x. 2 root root 68 6月 11 14:13 oddjobd.conf.d drwxr-xr-x. 2 root root 4096 6月 11 15:58 pam.d drwxr-xr-x. 2 root root 6 6月 10 2014 popt.d drwxr-xr-x. 2 root root 101 6月 11 14:15 prelink.conf.d drwxr-xr-x. 2 root root 4096 6月 11 14:27 profile.d lrwxrwxrwx. 1 root root 10 6月 11 14:06 rc0.d -> rc.d/rc0.d lrwxrwxrwx. 1 root root 10 6月 11 14:06 rc1.d -> rc.d/rc1.d lrwxrwxrwx. 1 root root 10 6月 11 14:06 rc2.d -> rc.d/rc2.d lrwxrwxrwx. 1 root root 10 6月 11 14:06 rc3.d -> rc.d/rc3.d lrwxrwxrwx. 1 root root 10 6月 11 14:06 rc4.d -> rc.d/rc4.d lrwxrwxrwx. 1 root root 10 6月 11 14:06 rc5.d -> rc.d/rc5.d lrwxrwxrwx. 1 root root 10 6月 11 14:06 rc6.d -> rc.d/rc6.d drwxr-xr-x. 10 root root 4096 11月 20 2015 rc.d drwxr-xr-x. 2 root root 29 6月 11 14:14 request-key.d drwxr-xr-x. 2 root root 51 6月 11 14:15 rsyslog.d drwxr-xr-x. 2 root root 6 11月 20 2015 rwtab.d drwxr-xr-x. 3 root root 4096 6月 11 14:20 sane.d drwxr-xr-x. 2 root root 4096 6月 11 14:24 setuptool.d drwxr-xr-x. 2 root root 6 11月 20 2015 statetab.d drwxr-x---. 2 root root 6 11月 21 2015 sudoers.d drwxr-xr-x. 2 root root 27 6月 11 14:14 sysctl.d drwxr-xr-x. 2 root root 24 11月 20 2015 tmpfiles.d drwxr-xr-x. 2 root root 8192 6月 11 14:13 usb_modeswitch.d drwxr-xr-x. 2 root root 6 8月 12 2015 xinetd.d drwxr-xr-x. 2 root root 4096 6月 11 15:49 yum.repos.d
####12、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中
mkdir /tmp/mytest3 cp -a /etc/[l,m,n]*.conf /tmp/mytest3 ls -l /tmp/mytests 總用量 48 -rw-r--r--. 1 root root 28 2月 28 2013 ld.so.conf -rw-r-----. 1 root root 191 10月 29 2014 libaudit.conf -rw-r--r--. 1 root root 2391 10月 13 2013 libuser.conf -rw-r--r--. 1 root root 19 6月 11 14:40 locale.conf -rw-r--r--. 1 root root 662 7月 31 2013 logrotate.conf -rw-r--r--. 1 root root 5171 6月 10 2014 man_db.conf -rw-r--r--. 1 root root 936 3月 6 2015 mke2fs.conf -rw-r--r--. 1 root root 2620 6月 10 2014 mtools.conf -rw-r--r--. 1 root root 3390 11月 20 2015 nfsmount.conf -rw-r--r--. 1 root root 1717 6月 11 14:40 nsswitch.conf -rw-r--r--. 1 root root 91 12月 3 2012 numad.conf
原創文章,作者:風,如若轉載,請注明出處:http://www.www58058.com/24799
寫的很好,排版還可以在漂亮一點,加油