首页 > 代码库 > 09-文件管理、命令别名和glob
09-文件管理、命令别名和glob
回顾:
文件系统 bash的基础特性。目录管理及文件查看
文件系统:
boot, bin,sbin,lib,lib64,dev,home,root,mnt,media,etc,proc,sys
usr
var
bash基础特性:
命令行展开
~,{}
路径展开
命令补全
命令历史
命令补全
命令的状态结果
成功:0
失败:1-255
目录管理:mkdir rmdir
文件查看: more less tail head
touch
-a -m -t -c
文件管理:
cp mv rm
复制命令 cp
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
cp SRC DEST
如果目标不存在, 新建DEST,并将SRC中内容填充至DEST中:
如果目录存在:
如果DEST是文件:将SEC中的内容覆盖至DESI中:
此时建议为cp命令使用 -i选项:
如果DEST是目录:在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件中:
cp SRC...DEST
SRC。....多个文件
DEST必须存在 且为目录 其他情形均会出错:
cp SRC。 EST
SRC是目录
此时使用选项:-r
如果DEST不存: 则创建指定目录, 复制SRC目录中所有文件至DESI中:
如果DEST存在:
如果DEST是文件:报错
如果DEST是目录:
常用选项:
-i:交互式
-r,-R:递归复制目录及内部的所有内容:
-a: 归档 相当于-dr--preserv-all
-d:--no-dereference --preserve=links
--preserve[=ATTR_LIST]
mode:权限
ownership: 属主属组
timestamp:
links
xttr
context
all
-p:--preserve=mode,ownership,timestamps
-v:--verbose
-f:--force
mv :move, 移动文件
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
如果SRC是单个文件:
如果DEST不存在:
-i:交互式
-f:强制
rm: remowe 删除
rm [OPTION]... FILE...
常用选项:
-i:交互式
-r:递归
-f:强制删除
rm -rf
文本编辑器: nano
全屏编辑器
ctrl+o 是保存
ctrl+r 是插入
Ctrl+w 是查找文件
bash基础特性(2):
命令的别名(alias)
通过alias命令实现
(1)alias
显示当前shell进程所有可用的命令别名:
(2)alias NAME=‘VALUE‘
定义别名NAME 其相当于执行命令VALUE:
注意:在命令行定义的别名, 仅对当前shell进程有效:如果想永久有效 要定义在配置文件中:
仅对当前用户: /.bashrc
对所有用户有效: /etc/.bashrc
bash重新读取配置文件:
source /path/toconfig_file
./pash/to/config_file
撤销别名:unalias
unalias: unalias [-a] name [name ...]
Note: 如果别名同原命令的名称,则如果要执行原命令,可使用"\COMMAND":
2 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:] 任意小写字母,相当于a-z
[:upper:] 任意大写字母
[:alpha:] 任意大小写字母
[:alnum:] 任意数字或字母
[:space:]
[:punct:]标点符号
练习题:
1显示/var目录下所有以l开头以一个小写字母结尾,且中间出现一位数字的文件或目录:
ls -d /tmp/l*[0-9]*[[:lower:]]
/tmp/labc8a
2显示/etc目录下以任意一位数字开头 且以非数字结尾的文件或目录:
、ls -d /etc/[0-9]*[^0-9]
3显示/etc/目录下以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录:
ls /etc[^[:alpha:]][[:alpha:]]*
4复制/etc目录下 所有以m开头以非数字结尾的文件或目录至/tmp/mageedu目录中:
cp -a /etc/m* [^0-9] /tmp/mageedu/
5复制/etc目录下 所有以.d结尾的文件或目录至/tmp/magedu.com目录中:
cp -a /etc/*.d /tmp/mageedu.com/
6复制/etc目录下 所以有.conf结尾,且以m,n,r,p 开头的文件或目录至/tmp/magedu目录中
cp -a /etc/[m,n,r,p]*.conf /tmp/mageedu.com/
本文出自 “linux自动化运维” 博客,请务必保留此出处http://10803682.blog.51cto.com/10793682/1860385
09-文件管理、命令别名和glob