林炳文Evankaka原创做品。转载请注明出处http://blog.csdn.net/evankakahtml
摘要:本文主要讲了Linux命令大全----经常使用文件操做命令,并附有实例linux
lsless
这个命令是常常用到的,用来显示当前目录下有哪些文件 ,ls最经常使用的参数有三个: -a -l -F。
ls -a
说明:Linux上的文件以“.”开头的文件被系统视为隐藏文件,仅用ls命令是看不到他们的,而用ls -a除了显示 通常文件名外,连隐藏文件也会显示出来。工具
ls –F(注意,是大写的F)
说明:使用这个参数表示在文件的后面多添加表示文件类型的符号,例如*表示可执行,/表示目录,@表示连结文件,这都是由于使用了-F这个参数。可是如今基本上全部的Linux发行版本的ls都已经内建了-F参数,也就是说,不用输入这个参数,咱们也能看到各类分辨符号。
ui
cd
Linux cd 命令能够说是Linux中最基本的命令语句,其余的命令语句要进行操做,都是创建在使用 cd 命令上的。切换当前目录至dirName
cd / spa
说明:进入系统根目录,上面命令执行完后拿ls命令看一下,当前目录已经到系统根目录了 .net
说明:进入系统根目录可使用“ cd .. ”一直退,就能够到达根目录 3d
cd ../.. //
说明:使用cd 命令实现进入当前目录的父目录的父目录。
日志
mkdir、rmdir
mkdir命令用来创建新的目录,rmdir用来删除已创建的目录code
mkdir建立目录,若是目录存在会报错
注意,若是linlin内容非空
rmdir 命令只能删除空的文件夹,若是文件夹非空,将不能删除,它也没有-f选项,因此你的命令都是错的。
要删除非空的文件夹,可使用rm命令,加rf两个选项,如:
cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它能够将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,不然将出现错误。
-a:此参数的效果和同时指定"-dpR"参数相同; -d:当复制符号链接时,把目标文件或目录也创建为符号链接,并指向与源文件或目录链接的原始文件或目录; -f:强行复制文件或目录,不论目标文件或目录是否已存在; -i:覆盖既有文件以前先询问用户; -l:对源文件创建硬链接,而非复制文件; -p:保留源文件或目录的属性; -R/r:递归处理,将指定目录下的全部文件与子目录一并处理; -s:对源文件创建符号链接,而非复制文件; -u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件; -S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀; -b:覆盖已存在的文件目标前将目标文件备份; -v:详细显示命令执行的操做
以下,将/home/linlin1下的linlin.c复制到/home/linlin2下
以下,将/home/linlin1下的linlin.c复制到/home/linlin2下并更名为hello.c
咱们在Linux下使用cp命令复制文件时候,有时候会须要覆盖一些同名文件,覆盖文件的时候都会有提示:须要不停的按Y来肯定执行覆盖。文件数量很少还好,可是要是几百个估计按Y都要吐血了,因而折腾来半天总结了一个方法:
cp aaa/* /bbb 复制目录aaa下全部到/bbb目录下,这时若是/bbb目录下有和aaa同名的文件,须要按Y来确认而且会略过aaa目录下的子目录。 cp -r aaa/* /bbb 此次依然须要按Y来确认操做,可是没有忽略子目录。 cp -r -a aaa/* /bbb 依然须要按Y来确认操做,而且把aaa目录以及子目录和文件属性也传递到了/bbb。 cp -r -a aaa/* /bbb 成功,没有提示按Y、传递了目录属性、没有略过目录。
rm
这个命令是用来删除文件的,和dos下面的rm(删除一个空目录)是有区别的,你们千万要注意。rm命令经常使用的参数有三个: -i,-r,-f。
-f, --force 忽略不存在的文件,从不给出提示。 -i, --interactive 进行交互式删除 -r, -R, --recursive 指示rm将参数中列出的所有目录和子目录均递归地删除。 -v, --verbose 详细显示进行的步骤 --help 显示此帮助信息并退出 --version 输出版本信息并退出rm –r 目录名:这个操做能够连同这个目录下面的子目录都删除,功能上和rmdir类似。
以下,交互删除
所有强制删除
mv
这个命令的功能是移动目录或文件,引伸的功能是给目录或文件重命名。当使用该命令来移动目录时,他会连同该目录下面的子目录也一同移走。
-b :若需覆盖文件,则覆盖前先行备份。 -f :force 强制的意思,若是目标文件已经存在,不会询问而直接覆盖; -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖! -u :若目标文件已经存在,且 source 比较新,才会更新(update) -t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的状况,此时目标目录在前,源文件在后。文件更名
mv 原文件(目录)名 新的文件(目录)名。
文件 移动
du,df
du命令能够显示目前的目录所占的磁盘空间,df命令能够显示目前磁盘剩余的磁盘空间。若是du命令不加任何参数,那么返回的是整个磁盘的使用状况,若是后面加了目录的话,就是这个目录在磁盘上的使用状况
查看当前目录以及子目录的大小:
查看整个磁盘大小
cat主要有三大功能:
1.一次显示整个文件。$ cat filename
2.从键盘建立一个文件。$ cat > filename
只能建立新文件,不能编辑已有文件.
3.将几个文件合并为一个文件: $cat file1 file2 > file
参数:
-n 或 --number 由 1 开始对全部输出的行数编号 -b 或 --number-nonblank 和 -n 类似,只不过对于空白行不编号 -s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行 -v 或 --show-nonprinting
它的用法以下:
cat text 显示text这个文件;
cat file1 file2 依顺序显示file1,file2的内容;
把 text.c和 text1.c的档案内容加上行号(空白行不加)以后将内容附加到 text2.c 里。
more,less
这是两个显示通常文本文件的指令。若是一个文本文件太长了超过一个屏幕的画面,用cat来看实在是不理想,就能够试试more和less两个指令。More指令可使超过一页的文件临时停留在屏幕,等你按任何的一个键之后,才继续显示。而less除了有more的功能之外,还能够用方向键往上或往下的滚动文件,因此你随意浏览,阅读文章时,less是个很是好的选择。
more:选项 文件名
+n 从笫n行开始显示
-n 定义屏幕大小为n行
+/pattern 在每一个档案显示前搜寻该字串(pattern),而后从该字串前两行以后开始显示
-c 从顶部清屏,而后显示
-d 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
-l 忽略Ctrl+l(换页)字符
-p 经过清除窗口而不是滚屏来对文件进行换页,与-c选项类似
-s 把连续的多个空行显示为一行
-u 把文件内容中的下画线去掉
在每一个档案显示前搜寻该字串lin,而后从该字串前两行以后开始显示
less
less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性。在 more 的时候,咱们并无办法向前面翻, 只能日后面看,但若使用了 less 时,就可使用 [pageup] [pagedown] 等按键的功能来往前日后翻看文件,更容易用来查看一个文件的内容!除此以外,在 less 里头能够拥有更多的搜索功能,不止能够向下搜,也能够向上搜。
less 选项 文件名
选项
-b <缓冲区大小> 设置缓冲区的大小 -e 当文件显示结束后,自动离开 -f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件 -g 只标志最后搜索的关键词 -i 忽略搜索时的大小写 -m 显示相似more命令的百分比 -N 显示每行的行号 -o <文件名> 将less 输出的内容在指定文件中保存起来 -Q 不使用警告音 -s 显示连续空行为一行 -S 行过长时间将超出部分舍弃 -x <数字> 将“tab”键显示为规定的数字空格 /字符串:向下搜索“字符串”的功能 ?字符串:向上搜索“字符串”的功能 n:重复前一个搜索(与 / 或 ? 有关) N:反向重复前一个搜索(与 / 或 ? 有关) b 向后翻一页 d 向后翻半页 h 显示帮助界面 Q 退出less 命令 u 向前滚动半页 y 向前滚动一行 空格键 滚动一行 回车键 滚动一页 [pagedown]: 向下翻动一页 [pageup]: 向上翻动一页
退出按Q
向下搜索含lin的字符串
tail
也是用于用于查看文件内容
tail语法格式:
tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]
或者
tail [ -r ] [ -n Number ] [ File ]
使用说明:
tail 命令从指定点开始将 File 参数指定的文件写到标准输出。若是没有指定文件,则会使用标准输入。 Number 变量指定将多少单元写入标准输出。 Number 变量的值能够是正的或负的整数。若是值的前面有 +(加号),从文件开头指定的单元数开始将文件写到标准输出。若是值的前面有 -(减号),则从文件末尾指定的单元数开始将文件写到标准输出。若是值前面没有 +(加号)或 -(减号),那么从文件末尾指定的单元号开始读取文件。
主要参数:
-b Number 从 Number 变量表示的 512 字节块位置开始读取指定文件。
-c Number 从 Number 变量表示的字节位置开始读取指定文件。
-f 若是输入文件是常规文件或若是 File 参数指定 FIFO(先进先出),那么 tail 命令不会在复制了输入文件的最后的指定单元后终止,而是继续从输入文件读取和复制额外的单元(当这些单元可用时)。若是没有指定 File 参数,而且标准输入是管道,则会忽略 -f 标志。tail -f 命令可用于监视另外一个进程正在写入的文件的增加。
-k Number 从 Number 变量表示的1KB 块位置开始读取指定文件。
-m Number 从 Number 变量表示的多字节字符位置开始读取指定文件。使用该标志提供在单字节和双字节字符代码集环境中的一致结果。
-n Number 从首行或末行位置来读取指定文件,位置由 Number 变量的符号(+ 或 - 或无)表示,并经过行号 Number 进行位移。
-r 从文件末尾以逆序方式显示输出。-r 标志的缺省值是以逆序方式显示整个文件。
若是文件大于 20,480 字节,那么-r标志只显示最后的 20,480 字节。 -r 标志只有 与 -n 标志一块儿时才有效。不然,就会将其忽略。
tail -f 命令可用于监视另外一个进程正在写入的文件的增加。 特别是在看日志时很是有用,你实时更新了日志,它就实时显示出来
pwd
pwd [--help][--version]
说明:执行pwd指令可马上得知您目前所在的工做目录的绝对路径名称。
grep
用于查找文件中符合字符串的哪行。
参数说明:
-a :将 binary 文件以 text 文件的方式搜寻数据 -c :计算找到 '搜寻字符串' 的次数 -i :忽略大小写的不一样,因此大小写视为相同 -n :顺便输出行号 -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!如。显示包含st的行,及其行号
根据文件内容递归查找目录
# grep ‘energywise’ * #在当前目录搜索带'energywise'行的文件 # grep -r ‘energywise’ * #在当前目录及其子目录下搜索'energywise'行的文件 # grep -l -r ‘energywise’ * #在当前目录及其子目录下搜索'energywise'行的文件,可是不显示匹配的行,只显示匹配的文件
grep功能是很强大的,这里只简单说明了一下,有兴趣的同窗本身下来研究下吧!
find
$ find -name "*.txt" -print 用于查找全部的‘ *.txt’文件在当前目录及子目录中 $ find -name "[A-Z]*" -print 用于当前目录及子目录中查找文件名以一个大写字母开头的文件 $ find /etc -name "host*" -print 在/etc目录中查找文件名以host开头的文件 $find -name "[a-z][a-z][0--9][0--9].txt" -print 在当前目录查找文件名以两个小写字母开头,跟着是两个数字,最后是.txt的文件如,当前目录中查找以.c结尾的文件
1.在某目录下查找名为“elm.cc”的文件 find /home/lijiajia/ -name elm.cc 2.查找文件名中包含某字符(如"elm")的文件 find /home/lijiajia/ -name '*elm*' find /home/lijiajia/ -name 'elm*' find /home/lijiajia/ -name '*elm' 3.根据文件的特征进行查询 find /home/lijiajia/ -amin -10 #查找在系统中最后10分钟访问的文件 find /home/lijiajia/ -atime -2 #查找在系统中最后48小时访问的文件 find /home/lijiajia/ -empty #查找在系统中为空的文件或者文件夹 find /home/lijiajia/ -group cat # 查找在系统中属于groupcat 的文件(试了,命令不对。) find /home/lijiajia/ -mmin -5 # 查找在系统中最后5 分钟里修改过的文件 find /home/lijiajia/ -mtime -1 #查找在系统中最后24 小时里修改过的文件 find /home/lijiajia/ -nouser #查找在系统中属于做废用户的文件(不明白是什么意思) find /home/lijiajia/ -amin 10 #查找在系统中最后10分钟访问的文件 find /home/ftp/pub -user lijiajia #查找在系统中属于lijiajia这个用户的文件 (PS:以上都是在 /home/lijiajia/文件夹下进行的操做) 4.使用混合查找方式查找文件 find /tmp -size +10000000c -and -mtime +2 #查找/tmp目录中大于10000000字节而且在48小时内修改的某个文件 find /tmp -user tom -or -user george #查找/tmp目录中属于tom或者george这两个用户的文件 find /tmp ! -usr fred #查找/tmp目录中不属于fred的文件 5.查找并显示文件 find /home/lijiajia/ -name 'elm.cc' -ls #在目录下查找名为“elm.cc”的文件,并显示这些文件的信息