目录管理类命令:
mkdir, rmdir, tree
mkdir
mkdir [options] /path/to/somewhere
-p: 存在于不报错,且可自动创建所需的各目录;
-v: 显示详细信息
-m MODE: 创建目录时直接指定权限;
tree
tree: 需要安装 yum -y install tree
-d: 只显示目录
-L level:指定显示的层级数目
-P pattern: 只显示由指定pattern匹配到的路径;
rmdir
rmdir:删除空目录
rmdir [OPTION]… DIRECTORY…
-v: 显示过程;
-p:递归删除目录一级一级删除
命令行展开
~: 展开为用户的主目录
~USERNAME:展开为指定用户的主目录
{}:可承载一个以逗号分隔的列表,并将其展开为多个路径
/tmp/{a,b} = /tmp/a, /tmp/b
/tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi
1、创建/tmp目录下的:a_c, a_d, b_c, b_d
2、创建/tmp/x/y1, /tmp/x/y2, /tmp/x/y1/a, /tmp/x/y1/b, /tmp/x/y2/a, /tmp/x/y2/b
3、如何创建/tmp/bin, /tmp/sbin, /tmp/usr, /tmp/usr/bin, /tmp/usr/sbin
创建/tmp/mylinux目录下的
创建/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
命令的执行结果状态
成功
失败
bash使用特殊变量$?保存最近一条命令的执行状态结果:
0:成功
1-255:失败
程序执行有两类结果:
程序的返回值;
程序的执行状态结果;
文件的元数据信息
ls -l :查看文件元数据
最左侧的第一位:文件类型
Linux下文件类型:
– (f):普通文件;
d: 目录文件;
b: 块设备;
c: 字符设备;
l: 符号链接文件;(软连接)
p: 管道文件;
s: 套接字文件;
后面九位:u,g,o的权限
数字:代表硬链接次数
两个root代表:所有者,所属组
1777:文件的size
5月22 17:39:最后一次的修改时间
anaconda-ks.cfg:文件名
stat
查看文件的时间戳
Access: 访问时间
Modify: 修改时间
Change:改变时间
touch
创建文件
三个时间戳:
access time:访问时间,简写为atime,读取文件内容
modify time: 修改时间, mtime,改变文件内容(数据)
change time: 改变时间, ctime,元数据发生改变
touch
-a: only atime
-m: only mtime 改变时间戳
命令别名(alias)
通过alias命令实现:
(1) alias
显示当前shell进程所有可用的命令别名;
(2) alias NAME='VALUE'
定义别名NAME,其相当于执行命令VALUE;
变量引用:
echo "$VAR_NAME": 变量会替换,双引号表弱引用
echo '$VAR_NAME': 变量不会替换,强引用
echo `$VAR_NAME`:调用命令结果
glob (globbing)
bash中用于实现文件名“通配”
通配符:*, ?, []
(1) *
任意长度的任意字符
a*b:
aab, ab, a123b,
abc
(2) ?
任意单个字符
a?b:
aab
ab, a12b, abc
(3) []
匹配指定范围内的任意单个字符
[0-9]
[a-z]:不区分字符大小写
[A-Z]:大写字符
(4) [^]
匹配指定范围外的任意单个字符
[^0-9]
专用字符集合:
[:digit:]:任意数字,相当于0-9
[:lower:]:任意小写字母
[:upper:]: 任意大写字母
[:alpha:]: 任意大小写字母
[:alnum:]:任意数字或字母
[:space:]:空格字符
[:punct:]:标点符号
显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
ls -l /var l*[0-9]*[[:lower:]]
显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
ls -l /etc [0-9]*[[:alpha:]]
显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
ls -l /etc [^[0-9]][[:alpha:]]*
在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22
touch "tfile-`date +%F`-`date +%H`-`date +%M`-`date +%S`"
文件管理:
cp, mv, rm
复制命令:cp
cp [OPTION]… [-T] SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
cp 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 :强制
mv: move,移动文件
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
常用选项:
-i: 交互式
-f: 强制
rm: remove,删除
rm [OPTION]… FILE…
常用选项:
-i: 交互式
-f: 强制删除
-r: 递归
复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
cp -rf /etc p*[^[0-9]] /tmp/mystest1
复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
cp -rf /etc *.d /tmp/mytest2
复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
cp -rf /etc [m,n].conf /tmp/mytest3
cp -rf /etc {m,n}.conf /tmp/mytest3
原创文章,作者:N21_ Dominic,如若转载,请注明出处:http://www.178linux.com/20667
评论列表(1条)
写的很好,可以多注意一下排版问题,加油