liunx文件操作命令

对liunx而言 一切皆文件 既然是文件 就免不了各种文件操作    以下就是常用的文件操作命令


ls

      ls 命令 用来查看文件 liunx上长用的ll 实质上是ls -l的的别名

      格式  ls [参数] [文件]

      参数

       ls -a列出目录下的所有文件,包括以.开头的隐含文件(常见的如.htaccess .git .svn文件)

       ls -b 把文件名中不可输出的字符用反斜杠加字符编号的形式列出(友好的显示一些文件名非当前编码下的文件,比如子啊asc下中文名的文件)

       ls -lh(或 ll -h)  显示文件的大小 单位b()

       ls -t 按时间排序(通常查看上传路径文件很好用)

       其它参数不常用 在此不做过多描述 想了解的可以自行搜索


mv

        mv命令是move的缩写,可以用来移动文件或者将文件改名

        格式 mv [参数] 源文件 目标文件

        参数

        -b :若需覆盖文件,则覆盖前先行备份。 

        -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;

        -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

        -u :若目标文件已经存在,且 source 比较新,才会更新(update)

        -t  : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。

   

       例1 把a.conf重命名为b.conf

       mv a.conf  b.conf

       例2 把a文件夹移动到  /home下

        mv a.conf  /home/b.conf

cp

       cp命令用来复制文件或者目录

       格式  cp [参数] 源文件 目标文件

       参数

       -a    为每个已存在的目标文件创建备份

       -b     在递归处理是复制特殊文件内容

       -f, --force        如果目标文件无法打开则将其移除并重试(当 -n 选项存在时则不需再选此项)

       -H                跟随源文件中的命令行符号链接

       -l, --link            链接文件而不复制

       -L, --dereference   总是跟随符号链接

       -n, --no-clobber   不要覆盖已存在的文件(使前面的 -i 选项失效)

       -P, --no-dereference   不跟随源文件中的符号链接

       -p                等于--preserve=模式,所有权,时间戳  --preserve[=属性列表   保持指定的属性(默认:模式,所有权,时间戳),如果可能保持附加属性:环境、链接、xattr 等

       -R, -r, --recursive  复制目录及目录内的所有项目

       例1   备份a.conf文件

       cp a.conf a.conf.bak

       例2   拷贝文件夹a到  /home目录下

       cp -r a/ /home/a



vim

      vim用来文件内容操作

      格式  vim [filename]


      编辑界面操作按键

      gg 返回文件顶部

      shift+g 到文件底部

      i 编辑

      :q 退出

      :wq 保存并退出

      :q!  强制退出  一般用于放弃修改文件

      :wq! 强制保存并退出

      /  查询

      :set nu 显示行号

      :数字 跳转到指定行号


awk

      与sed和grep很相似,awk是一种样式扫描与处理工具

      格式  awk [ -F re] [parameter...] ['prog'] [-f progfile][in_file...]

      awk命令分两部分  {匹配模式操作}  {filename} 基本格式  awk "匹配部分"  "操作部分"  文件 其中匹配模式或者操作有一个即可 匹配模式支持正则 正则此处不介绍 只介绍简单用法

       例1 读取apache服务器access_log 中的独立ip数

       awk ‘{print $1}’  access_log | uniq -c       从access.log中读取第一个字断 并去重复 $1是读取文本文件第一个字断 如果文件分隔符不是空格  可以使用-F指定分隔符 $0读取整行

       例2 取出/etc/password 中的所有用户

       awk -F ':'  '{print $1}' etc/password  -F指定分隔符为:号

       awk的用法还有很多 不仅仅上述  由于篇幅问题  在此不做过多讲解 望见谅

tail

      tail 命令从指定点开始将文件写到标准输出

      格式  tail   [必要参数] [选择参数] [文件]      

      参数

      -f    循环读取

      -n   指定显示的行数

      -q 不显示处理信息

      -v 显示详细的处理信息

      -c<数目> 显示的字节数

      --pid=PID 与-f合用,表示在进程ID,PID死掉之后结束.

      -q, --quiet, --silent 从不输出给出文件名的首部

      -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

    

      例1  读取日志文件最后100行

      tail -n 100 access.log

      例2   监控日志  日志若有内容更新则直接输出

      tail -f  access.log

      例3  从第五行开始显示文件内容

      tail -n +5 log2014.log


sort

      sort命令是帮我们依据不同的数据类型进行排序,其语法及常用参数格式:

   格式    sort [-bcfMnrtk][源文件][-o 输出文件]

      补充说明:sort可针对文本文件的内容,以行为单位来排序。

      参数

      -b   忽略每行前面开始出的空格字符

      -c   检查文件是否已经按照顺序排序

       -f   排序时,忽略大小写字母

      -M   将前面3个字母依照月份的缩写进行排序

      -n   依照数值的大小排序

      -o<输出文件>   将排序后的结果存入指定的文件

      -r   以相反的顺序来排序

      -t<分隔字符>   指定排序时所用的栏位分隔字符

      -k  选择以哪个区间进行排序

      -u 去重

     
      例1 将a.txt 进行排序  sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出

      sort a.txt

      使用-r则倒序

      例2  将b.txt去重

      sort -u b.txt


sed

      与awk类似  sed功能更为强大  可以做 匹配替换  输出  插入 等等  两者都可以基于行来对文本文件进行处理  但sed对列的操作稍微差点  大部分人只学会了个sed -s  讲解sed的全部用法需要大量篇幅   这里向大家推荐一本书  <>

      格式   sed [-nefri] ‘command’ 输入文本

      参数 

       a   新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~

       c   取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!

       d   删除,因为是删除啊,所以 d 后面通常不接任何咚咚;

       i   插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);

       p  列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~

       s  取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!

       n 取消自动打印模式空间

       例子

       替换一行中的某部分

  格式:sed 's/要替换的字符串/新的字符串/g'   (要替换的字符串可以用正则表达式)      

       sed -n '/ruby/p' ab | sed 's/ruby/bird/g'    #替换ruby为bird

    

你可能感兴趣的:(liunx,liunx)