================= Ubuntu 命令手册 ================= 文件管理 ===================== cat --------------------- 说明: 把档案串连接后传到基本输出。 参数: * -n 由 1 开始对所有的输出行进行编号 * -b 和 -n 相似,只不过对空白行不编号 * -s 把连续两行以上的空白行替换为一行的空白行 范例: * cat -n file1 > file2 * cat -b file1 file2 >> file3 * cat << EOF > file chattr --------------------- 说明: 改变文件属性 参数: * -R 递归处理 * + <属性> 开启该项属性 * - <属性> 关闭该项属性 * = <属性> 指定属性 chgrp --------------------- 说明: 变更所属群组 参数: * -c 效果类似"-v"参数,但仅回报更改的部分 * --reference=<参考文件或目录> 把指定文件的所属群组设成和参考的相同 范例: * chgrp -c --reference=file1 file2 chmod --------------------- 说明: 更改权限 权限范围表示如下: * u: User * g: Group * o: Other * a: All 权限代号如下: * r: 读,"4" * w: 写,"2" * x: 执行,"1" * -: 不具任何权限,"0" * s: 特殊功能 范例: * chmod -v u+x file * chmod -R 744 doc chown --------------------- 说明: 变更拥有者或所属群组 cksum --------------------- 说明: 检查文件的 CRC 是否正确 cmp --------------------- 说明: 比较两个文件是否有差异。预设会标示出第一个不同之处的字符和列数编号。 cp --------------------- 说明: 复制 参数: * -a 此参数的效果和同时指定"-dpR"参数相同 * -d 复制符号链接 * -f 强制复制 * -i 复制文件之前询问 * -p 保留原属性 cut --------------------- 说明: 显示每行指定的字符 用法: cut -xn1-n2 filename .. note:: n1 从1开始! x 取值为 b,c,f 参数: * -b 只输出这些字节 * -c 只输出这些字母 * -f 只输出这些域 * -d 指定分隔符 范例: * date | cut -d ' ' -f5 | cut -d : -f1 diff --------------------- 说明: 比较文件的差异。以逐行的方式,比较文本文件的异同处。若比较目录,则会比较目录中相同文件名的文件,但不会比较其中的子目录。 参数: * -b 不检查空行字符的不同 * -B 不检查空白行 * -c 显示全部内文,标出不同处 * -i 不检查大小写的不同 * -l 结果交由pr程序来分页 * -r 比较子目录中的文件 file --------------------- 说明: 识别文件类型 参数: * -b 不显示文件名称 * -L 跟踪链接 * -f 从文件 ''file'' 中读取要分析的文件名列表 * -z 探测压缩过的文件类型 find --------------------- 说明: 查找。查找符合条件的文件。任何位于参数之前的字符串都被视为欲查找的目录。 参数: * -a/cmin [+/-]n "+"之前,"-"之后,分钟 * -a/ctime [+/-]n 天 * -a/cnewer<参考文件或目录> a 的意思为“存取”,c 的意思为“更改” * -expty 空文件或空目录 * -exec<执行命令> 假设find指令的返回值为true,就执行该命令 * -size<文件大小> 符合文件大小的文件 * -type<文件类型> 指定的文件类型 范例: * find ~/doc -ctime -1 #在 ~/doc 下查找更改时间小于1天的文件 * find /tmp -name core -type f -print | xargs /bin/rm -f * find /usr/lib -name \*.so * `find . -name "*.c" | xargs cat | grep -v ^$ | wc -l` # 统计当前目录下c代码的行数 ln --------------------- 其它文件 patch --------------------- 说明: 修补文件。利用设置修补文件的方式,修改,更新原始文件。 参数: * -p0 从当前目录查找目的文件(夹) * -p1 忽略掉第一层目录 * -E 如果发现了新文件,就删除它 * -R 在补丁文件中的“新”文件和“旧”文件现在要调换过来(实际上就是给新版本打补丁,让它变成老版本) 示例: * patch -p0 < test.path % 使用test.path 文件在当前目录打补丁 * patch -RE -p0 < test.path % 去掉补丁,恢复旧版本 rm --------------------- 说明: 删除文件或目录。如欲删除目录必须加上参数"-r"。 参数: * -r 递归处理,指定文件目录下的所有文件及子目录一并处理 * -f 强制删除 * -i 删除既有文件或目录之前询问用户 split --------------------- 说明: 切割文件,预设每1000行会切成一个小文件。 参数: * -<行数> 指定小文件的行数 * -b<字节> 指定小文件的字节数 * -C<字节> 与的-b参数类似,当切割尽量维持每行的完整性 * [输出文件名] 设置切割后文件的前置文件名,split会自动在前置文件名后加上编号 示例: * split -b500m myBigFile mySmallFiles tee --------------------- 说明: 读取标准输入的数据,将其内容输出到标准输出和每个文件。 参数: * -a 追加到文件后面 * -i 忽略中断信号 示例: * echo "same words" | tee -a file * prog1 < infile | tee fifo | prpg2 touch --------------------- 说明: 改变文件或目录的时间 参数: * -a 只更改存取时间 * -c 不建立任何文件 * -d<日期> 使用指定的日期,而非现在 * -m 只更改修改时间 * -t<时间> 使用指定的时间 umask --------------------- 说明: 指定在建立文件时预设的权限掩码。权限掩码是由3个八进制的数字所组成,将现有的存储权限减掉权限掩码后,即可产生建立文件时预设的权限。 参数: * -S 以文字方式来表示权限掩码 whereis --------------------- 说明: 在特定目录中查找符合条件的文件。 参数: * -b 只查找二进制文件 * -B<目录> 只在设置的目录下查找二进制文件 * -m 只查找说明文件 * -M<目录> * -s 只查找原始代码文件 * -S<目录> which --------------------- 说明: 在环境变量$PATH设置的目录里查找符合条件的文件。 文件传输 bye --------------------- 说明: 中断FTP连线并结束程序 ftp --------------------- 说明: --(待续)--。。。 ----------------- 文档编辑 ===================== egrep --------------------- 说明: 在文件内查找指定的字符串。egrep执行效果如grep -E,使用的语法及参数可参照 [[#grep|grep]] 指令,与grep不同点在于解读字符串的方法,egrep使用extended regular experssion语法来解读,二grep则是用basic regular expression语法来解读。 fgrep --------------------- 说明: 本指令相当与执行grep -F,详见 [[#grep|grep]] 指令 grep --------------------- 说明: 查找文件里符合条件的字符串。 参数: * -<行数> 显示匹配行的前后行 * -a 不要忽略二进制数据 * -A<显示列数>或--after-context=<显示列数> 除了显示符合范本样式的那一列之外,并显示该列之后的内容 * -B<显示列数>或--before-context=<显示列数> * -c 打印匹配的列数,不显示匹配的内容 * -e<范本样式>或--regexp=<范本样式> 定字符串做为查找文件内容的范本样式。 * -E或--extended-regexp 将范本样式为延伸的普通表示法来使用。 * -f<范本文件>或--file=<范本文件> 指定范本文件,其内容含有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每列一个范本样式。 * -h 当搜索多个文件时,不显示匹配文件名前缀 * -i 忽略大小写的差别 * -n 表示出列编号 * -v 反转检索,只显示不匹配的行 * -w 如果被\<和\>引用,就把表达式作为一个单词搜索 * -o 输出每行匹配的部分,一个匹配一行 * -P 使用Perl正则表达式 示例: * ls -l | grep '^a' 显示以a开头的行 * grep 'test' d* 显示所有以d开头的文件中包含test的行 * grep 'w\(es\)t.*\1' aa 如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着另外一个es(\1),找到就显示该行。如果用egrep或grep -E,就不用"\"号进行转义,直接写成'w(es)t.*\1'就可以了。 * grep '[0-9]\{3\}\.[0-9]\{3\}\.' ipfile * `grep -Po '(?<=\w\[)[a-zA-Z_]\w*(?=\])' r.sql | uniq | wc -l` 在r.sql文件中找出有多少个“与正则表达式匹配” look --------------------- 说明: 用于查询英文单词 参数: * -f 忽略大小写 * -t<字尾字符串> 设置字尾字符串 sed --------------------- 说明: 利用script来处理文本文件 sed 是一种在线编辑器,它一次处理一行内容。 定址 可以通过定址来定位你所希望编辑的行,该地址用数字构成,用逗号分割的两个行数表示起至行的范围。 命令: a \ 在当前行后面加入一行文本 b lable 分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾 c \ 用新的文本改变本行的文本 d 从模板块位置删除行 D 删除模板块的第一行 i \ 在当前行上面插入文本 g 获取内存缓冲区的内容,并替代当前模板块中的文本 p 打印模板块的行 r file 从file中读行 w file 写并追加模板块到file末尾 ! \ 表示后面的命令对所用没有被选定的行发生作用 s/re/string \ 用string替换正则表达式re = \ 打印当前行号码 # \ 把注释扩展到下一个换行符以前 以下是替换标记: * g 表示行内全面替换 * p 表示打印行 * w 表示把行写入一个文件 * x 表示互换模板块中的文本和缓冲区的文本 * y 表示把一个字符翻译为另外的字符 参数: * -e