十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
功能说明:复制文件或目录
创新互联公司专注于企业全网营销推广、网站重做改版、阜阳网站定制设计、自适应品牌网站建设、成都h5网站建设、商城网站定制开发、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为阜阳等各大城市提供网站开发制作服务。
用法:
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
补充说明:cp命令用在复制文件或目录,如同时指定两个以上的文件或目录,且最后的目标是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,而最后的目标并非是一个已存在的目录,则会出现错误信息。
常用参数:
-b或--backup 删除,覆盖目标文件之前的备份,备份文件会在字尾加上一个备份字符串。
-f或--force 强行复制文件或目录,不论目标文件或目录是否已存在。
-i或--interactive 覆盖既有文件之前先询问用户。
-l或--link 对源文件建立硬连接,而非复制文件。
-r 递归处理,将指定目录下的文件与子目录一并处理。
-s或--symbolic-link 对源文件建立符号连接,而非复制文件。
-S备份字尾字符串或--suffix=备份字尾字符串 用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,预设的备份字尾字符串是符号"~"。
-v或--verbose 显示指令执行过程。
-t 指定目标文件夹,目标文件夹需存在。
grep命令
grep
1.作用
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。linux使用GNU版本的grep。它功能更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。
2.格式及主要参数
grep [options]
主要参数: grep --help可查看
-c:只输出匹配行的计数。
-i:不区分大小写。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
--color=auto :可以将找到的关键词部分加上颜色的显示。
pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\:从匹配正则表达 式的行开始。
\:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
.:所有的单个字符。
*:所有字符,长度可以为0。
3.grep命令使用简单实例
itcast$ grep ‘test’ d*
显示所有以d开头的文件中包含 test的行
itcast $ grep ‘test’ aa bb cc
显示在aa,bb,cc文件中匹配test的行。
itcast $ grep ‘[a-z]\{5\}’ aa
显示所有包含每个字符串至少有5个连续小写字符的字符串的行。
itcast $ grep ‘wesest.*\1′ aa
如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着 另外一个es(\1),找到就显示该行。如果用egrep或grep -E,就不用”\”号进行转义,直接写成’w(es)t.*\1′就可以了。
4.grep命令使用复杂实例
明确要求搜索子目录:
grep -r
或忽略子目录
grep -d skip
如果有很多输出时,您可以通过管道将其转到’less’上阅读:
itcast$ grep magic /usr/src/Linux/Documentation/* | less
这样,您就可以更方便地阅读。
有一点要注意,您必需提供一个文件过滤方式(搜索全部文件的话用 *)。如果您忘了,’grep’会一直等着,直到该程序被中断。如果您遇到了这样的情况,按 ,然后再试。
下面还有一些有意思的命令行参数:
grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’),
grep -C number pattern files :匹配的上下文分别显示[number]行,
grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,
例如:grep "abc\|xyz" testfile 表示过滤包含abc或xyz的行
grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。
grep -n pattern files 即可显示行号信息
grep -c pattern files 即可查找总行数
还有些用于搜索的特殊符号:\ 和 \ 分别标注单词的开始与结尾。
例如:
grep man * 会匹配 ‘Batman’、’manic’、’man’等,
grep ‘\man’ * 匹配’manic’和’man’,但不是’Batman’,
grep ‘\man\’ 只匹配’man’,而不是’Batman’或’manic’等其他的字符串。
‘^’: 指匹配的字符串在行首,
[root@localhost ~]# ls -l
总用量 44
-rw------. 1 ---- root ---- root --------1207 1 月14 18:18 anaconda-ks.cfg
权限--引用计数 所有者 -- 所属组--- 大小-- 文件修改时间 文件名
ls [选项] [文件名或目录名]
选项:
-a :显示所有文件
--color=when:支持颜色输出
-d :显示目录信息,而不是目录下的文件
-h :人性化显示﹐按照我们习惯的显示文件大小
-i :显示文件的i节点号
-l:长格式显示
pwd 命令是查询当前所在的目录的绝对路径
选项:
-L (默认值)打印环境变量"$PWD"的值,可能为符号链接。
-P 打印当前工作目录的物理位置。
mkdir 是创建目录的命令
选项:
-Z:设置安全上下文,当使用SELinux时有效;
-m或--mode:建立目录的同时设置目录的权限;
-p或--parents:若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;
rmdir 是删除空目录的命令
-p: 递归删除目录
touch 是 创建空文件或修改文件的时间戳
[root@localhost ~]# touch [选项] 文件名
-a:或--time=atime或--time=access或--time=use 只更改存取时间;
-c:或--no-create 不建立任何文件;
-d:时间日期 使用指定的日期时间,而非现在的时间;
-f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题;
-m:或--time=mtime或--time=modify 只更该变动时间;
-r:参考文件或目录 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;
-t:日期时间 使用指定的日期时间,而非现在的时间;
--help:在线帮助;
--version:显示版本信息。
stat 是查看文件详细信息的命令,而且可以看到文件的这三个时间戳
选项:
-L:支持符号连接;
-f:显示文件系统状态而非文件状态;
-t:以简洁方式输出信息;
cat 命令用来查看文件内容
选项:
-A: 相当于-vET 选项的整合,用于列出所有隐藏符号
-E: 列出每行结尾的回车符$
-n: 显示行号
-T: 把 Tab 键用^I显示出来
-v: 列出特殊字符
more 是分屏显示文件的命令
less 是分行显示文件的命令
用less命令显示文件时,用PageUp键向上翻页,用PageDown键向下翻页。要退出less程序,应按Q键。
选项:
-e:文件内容显示完毕后,自动退出;
-f:强制显示文件;
-g:不加亮显示搜索到的所有关键词,仅显示当前显示的关键字,以提高显示速度;
-l:搜索时忽略大小写的差异;
-N:每一行行首显示行号;
-s:将连续多个空行压缩成一行显示;
-S:在单行显示较长的内容,而不换行显示;
-x数字:将TAB字符显示为指定个数的空格字符。
head 是用来显示文件开头的命令
选项:
-c --bytes=[-]NUM 显示前NUM字节;如果NUM前有"-",那么会打印除了文件末尾的NUM字节以外的其他内容。
-n, --lines=[-]NUM 显示前NUM行而不是默认的10行;如果NUM前有"-",那么会打印除了文件末尾的NUM行以外的其他行。
-q, --quiet, --silent 不打印文件名行。
-v, --verbose 总是打印文件名行。
-z, --zero-terminated 行终止符为NUL而不是换行符。
tail 是用来显示文件末尾的命令
选项:
-c, --bytes=NUM 输出文件尾部的NUM(NUM为整数)个字节内容。
-f, --follow[={name|descript}] 显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化。
-F 与 “--follow=name --retry” 功能相同。
-n, --line=NUM 输出文件的尾部NUM(NUM位数字)行内容。
--pid=进程号 与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令。
-q, --quiet, --silent 当有多个文件参数时,不输出各个文件名。
--retry 即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“--follow=name”连用。
-s, --sleep-interal=秒数 与“-f”选项连用,指定监视文件变化时间隔的秒数。
-v, --verbose 当有多个文件参数时,总是输出各个文件名。
ln 是用来为文件创建链接的命令
[root@localhost ~]# ln [选项] 源文件 目标文件
选项:
-s: 建立软链接文件。如果不加“-s”选项,则建立硬链接文件
-f: 强制。如果目标文件已经存在,则删除目标文件后再建立链接文件
-d, -F, --directory 创建指向目录的硬链接(只适用于超级用户)
-f, --force 强行删除任何已存在的目标文件
-i, --interactive 覆盖既有文件之前先询问用户
-L, --logical 取消引用作为软链接的目标
-n, --no-dereference 把软链接的目的目录视为一般文件
-P, --physical 直接将硬链接到软链接
-r, --relative 创建相对于链接位置的软链接
-s, --symbolic 对源文件建立软链接
硬链接特征:
源文件和硬链接文件拥有相同的 Inode 和 Block
修改任意一个文件,另一个都改变
删除任意一个文件,另一个都能使用
硬链接标记不清,很难确认硬链接文件位置,不建议使用
硬链接不能链接目录
硬链接不能跨分区
软链接特征:
软链接和源文件拥有不同的 Inode 和 Block
两个文件修改任意一个,另一个都改变
删除软链接,源文件不受影响;删除源文件,软链接不能使用
软链接没有实际数据,只保存源文件的 Inode,不论源文件多大,软链接大小不变
软链接的权限是最大权限 lrwxrwxrwx.,但是由于没有实际数据,最终访问时需要参考源文
件权限
软链接可以链接目录
软链接可以跨分区
软链接特征明显,建议使用软连接
rm 是强大的删除命令,不仅可以删除文件,也可以删除目录
[root@localhost ~]# rm [选项] 文件或目录
选项:
d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
-f:强制删除文件或目录;
-i:删除已有文件或目录之前先询问用户;
-r:递归处理,将指定目录下的所有文件与子目录一并处理;
--preserve-root:不对根目录进行递归操作;
-v:显示指令的详细执行过程。
cp 是文件或目录用于复制的命令
[root@localhost ~]# cp [选项] 源文件 目标文件
选项:
-a:此参数的效果和同时指定"-dpR"参数相同;
-d:当复制软链接时,把目标文件或目录也建立为软链接,并指向与源文件或目录连接的原始文件或目录;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;
-p:保留源文件或目录的属性;
-r:递归处理,将指定目录下的所有文件与子目录一并处理;
-s:对源文件建立软链接,而非复制文件;
-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b:覆盖已存在的文件目标前将目标文件备份;
-v:详细显示命令执行的操作。
mv 是用来对文件或目录重新命名,或者将文件移动至其他目录
[root@localhost ~]# mv [选项] 源文件 目标文件
选项:
-b:当文件存在时,覆盖前,为其创建一个备份;
-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;
-i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。
--strip-trailing-slashes:删除源文件中的斜杠“ / ”;
-S后缀:为备份文件指定后缀,而不使用默认的后缀;
--target-directory=目录:指定源文件要移动到目标目录;
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
[root@localhost ~]# ls -l install.log
-rw-r--r--. 1 root root 24772 1 月 14 18:17 install.log
第一列的权限位如果不计算最后的“.”,则共有 10 位。
第 2~4 位代表文件所有者的权限。
chmod 用来变更文件或目录的权限
[root@localhost ~]# chmod [选项] 权限模式 文件名
选项:
-c, --changes:当文件的权限更改时输出操作信息。
--no-preserve-root:不将'/'特殊化处理,默认选项。
--preserve-root:不能在根目录下递归操作。
-f, --silent, --quiet:抑制多数错误消息的输出。
-v, --verbose:无论文件是否更改了权限,一律输出操作信息。
--reference=RFILE:使用参考文件或参考目录RFILE的权限来设置目标文件或目录的权限。
-R, --recursive:对目录以及目录下的文件递归执行更改权限操作。
用户身份
首先,读、写、执行权限对文件和目录的作用是不同的。
目录的可用权限其实只有以下几个。
chown 是修改文件和目录的所有者和所属组的命令
[root@localhost ~]# chown [选项] 所有者:所属组 文件或目录
选项:
-c或——changes:效果类似“-v”参数,但仅回报更改的部分;
-f或--quite或——silent:不显示错误信息;
-h或--no-dereference:只对软链接的文件作修改,而不更改其他任何相关文件;
-R或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
-v或——version:显示指令执行过程;
--reference=参考文件或目录:把指定文件或目录的拥有者与所属群组全部设成和参考文件或目录的拥有者与所属群组相同;
普通用户不能修改文件的所有者,哪怕自己是这个文件的所有者也不行
普通用户可以修改所有者是自己的文件的权限
chgrp 是修改文件和目录的所属组的命令
[root@phato ~]# chgrp [选项] 所属组 文件或目录
-R 递归式地改变指定目录及其下的所有子目录和文件的所属的组
-c或——changes:效果类似“-v”参数,但仅回报更改的部分;
-f或--quiet或——silent:不显示错误信息;
-h或--no-dereference:只对符号连接的文件作修改,而不是该其他任何相关文件;
-H如果命令行参数是一个通到目录的软链接,则遍历软链接
-R或——recursive:递归处理,将指令目录下的所有文件及子目录一并处理;
-L:遍历每一个遇到的通到目录的软链接
-P:不遍历任何符号链接(默认)
-v或——verbose:显示指令执行过程;
--reference=参考文件或目录:把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同;
umask 是显示或设置创建文件的权限掩码。我们需要先了解一下新建文件和目录的默认最大权限。
我们在这里按照权限字母来讲解 umask 权限的计算方法。我们就按照默认的 umask 值是 022来分别计算一下新建文件和目录的默认权限吧。
大多数命令加上-V选项或者--version选项,就会返回软件的版本信息。
用法示例:
查看Python软件的版本
$ python -V 或者 python --version
对于Debian 及其衍生系统,可以使用aptitude命令查看软件的详细信息,包含软件的版本号、依赖、项目主页等信息。
用法示例:
$ aptitude python
当控制台( 比如:mac的terminal )输出很多时,有很多是我们不想看到的,就可以用到grep -v命令。
举例:
grep (过滤)
过滤需要的内容,
-v 需要排除的内容,
-i不分辨大小写,
-n匹配的内容在其行首显示行号,
-A (after)显示匹配字符串及其后n行,
-B (before)显示匹配字符串及其前n行,
-C(context)显示匹配字符串
下边是想凑字数的啦啦