####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" 大小:483 块: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.178linux.com/24799
评论列表(1条)
写的很好,排版还可以在漂亮一点,加油