设为首页 收藏本站
查看: 816|回复: 0

[经验分享] linux 文件管理命令

[复制链接]

尚未签到

发表于 2018-5-21 11:38:37 | 显示全部楼层 |阅读模式

  •   cp   (copy)
  格式:
  cp SRC   DEST

  cp命令只能把一个文件复制成另外一个文件,或者把多个文件复制到一个目录下。
  所以当我们使用命令  cp  file1  file2 file3 时,linux会先判断file3是一个目录还是文档,
  如果是目录,则把file1、file2拷贝到file3目录中,如果是文档则会报错提示:cp: target `file3' is not a directory(文件不存在也会报这个错)。
  当我们cp file1  file2  的时候,如果文件不存在,则会拷贝file1这个文件,并改名为file2,如果文件存在且为文档,则会提示‘是否覆盖这个文件’。如果文档存在且为目录,则会拷贝这个文件到这个目录下。

  特殊情况:如果file1是软连接的话,那么cp file1 file2 会把file1所指向的文件拷贝到file2(同样地,要判断下file2是否为目录,规则同上)。如果我们想拷贝file1这个软连接的话,可以在cp前面加上-P参数。

  注意:当我们cp file1 file2 的时候,file2的时间戳属性会跟当前系统时间一样,如果我们不想修改原来文件的时间戳,那么可以在前面加上-p参数。当我们想拷贝一个目录到另一个目录的时候可以用-r或者-R参数,当我们拷贝一个目录到另一个目录且不想修改文件的属性和软连接时可以使用-ap参数..以此类推。

  举例:
  [root@logstach ~]# cp  /etc/passwd   /tmp/123
  [root@logstach ~]# cat  /tmp/123
  root:x:0:0:root:/root:/bin/bash
  bin:x:1:1:bin:/bin:/sbin/nologin
  daemon:x:2:2:daemon:/sbin:/sbin/nologin
  [root@logstach ~]# cp  /etc/{passwd,shadow}  /tmp/123
  cp: target `/tmp/123' is not a directory
  [root@logstach ~]# cp  /etc/{passwd,shadow}  /tmp/
  [root@logstach ~]# ls  /tmp/
  123    shadow    passwd
  

  2.mv   (move)
  格式:
  mv SRC    DEST

  或 mv  -t DEST    SRC (DEST必须为目录)

  mv命令的使用方法与cp差不多,也是一对一,或者多对一的关系(必须为目录)。不同的是,当我们使用mv  file1  file2 的时候,如果文件不存在则会把file1改名为file2.

  如果我们想把目的文件放前面,源文件放后面,那么可以使用-t参数指定文件的目的。但是这个文件必须为目录。

  

  install

  格式:
  install [OPTION]... [-T] SOURCE DEST
  install [OPTION]... SOURCE... DIRECTORY
  install [OPTION]... -t DIRECTORY SOURCE...
  install [OPTION]... -d DIRECTORY...
  这个命令的作用是复制文件并修改属性,用得比较少。
  

  linux发行版三大派系:
  Redhat:红帽里面又有fedora(偏向桌面)和Centos(偏向服务器)
  SUSE:商用版SUSE和开源openSUSE

  debian:炫酷的桌面(Ubuntu和Mint)
  这三个派系中的版本都有各自的特点,比如redhat加入了很多自己的东西(软件程序什么的),所以操作起来更简单而且更容易上手,而debian则相对轻量,所以性能更好,但是也更不易上手。

  

  发行版的linux为了可以向下兼容(比如说酷睿cpu上可以跑的linux到奔腾系列也能跑),所以都是用通用格式编译的,所以发行版并不能完全发挥硬件特性,不过没有关系,我们还有另外两个更自由的linux版本,可以根据自己的需求进行编译,用以发挥硬件的最大性能。这两个就是 Gentoo和LFS(linux from scartch)
  

  

  查看文本命令:
  cat
  这个命令的定义是连接文件并打印在标准屏幕上。

  示例:

  同时显示2个文件

  [root@logstach ~]# cat  /etc/issue  /etc/redhat-release
  CentOS release 6.7 (Final)
  Kernel \r on an \m
  

  CentOS release 6.7 (Final)
  -n参数可以显示行号
  [root@logstach ~]# cat  -n /etc/issue
  1CentOS release 6.7 (Final)
  2Kernel \r on an \m
  3
  -E参数可以显示每行的行结束符$
  [root@logstach ~]# cat  -E  /etc/issue
  CentOS release 6.7 (Final)$
  Kernel \r on an \m$
  $
  关于行结束符的来历和不同操作系统的区别可以参照此文: http://www.tuicool.com/articles/QbuEbe2
  有时候我们想让文件逆序输出,这个时候可以使用cat的相反命令tac

  [root@logstach ~]# tac  /etc/issue
  

  Kernel \r on an \m
  CentOS release 6.7 (Final)
  当cat后面不接任何参数的时候,它会从标准输入中读取信息并输出到标准输出,如果想退出的话可以摁ctrl+c键。

  示例:
  [root@logstach ~]# cat
  456486
  456486
  ssd
  ssd
  ^C
  [root@logstach ~]#
  cat的缺陷: 当一个文件里面的内容很多时,cat显示的话只能显示最后几屏的内容(这是因为我们要显示的内容都在内存的缓存中,而缓存的空间总是有限的。这个时候我们就需要用到其他命令:more和less
  

  more:
  more命令的作用是把一个文件过滤并分屏显示
  more  files
  空格:向下翻屏
  b键:向上翻屏
  enter:向下翻一行
  不支持向上翻一行

  到最底部直接退出,中途退出可以使用q键

  

  less:
  less的作用和more差不多

  区别在于less可以用 ↑和k键向上翻一行,并且到底部不会退出
  

  head:

  显示文件前面部分
  -n参数:可以选择显示前几行

  

  tail:
  与head相对应显示文件的后面部分

  -n参数:可以显示后几行

  -f参数:一个比较有用的参数,不加数字默认显示后十行,但是显示完并没有直接结束进程,而是类似于一种“等待”,当有新的数据写入到当前显示的文件的时候,-f参数会使信息实时显示在屏幕上,这是个对我们linux排错特别有用的功能

  

  cut:
  把文件进行分割显示
  -d:指定字段分隔符,默认是空格
  -f:指定要显示的字段
  -f 1,3  (显示第1和第3行)
  -f 1-3  (显示第1到第3行)

  

  sort
  -n:数值排序

  -r:降序

  -t:字符分隔符

  -k:以哪个字段为关键字进行排序

  -u:排序后只显示一次

  -f:排序时忽略字符大小写

  sort 命令默认是按ascii字符编码顺序对文本进行排序,所以当我们对一串数字进行排序的时候,结果可能不是我们想要的:

  [root@logstach ~]# sort test
  123
  342
  45
  58324
  777
  当我们想让文本按数字大小进行排序时,可以使用-n,参数
  [root@logstach ~]# sort  -n  test
  45
  123
  342
  777
  58324
  利用-k、-n和-t的结合使用功能可以实现按字段并根据数字大小进行排序

  [root@logstach ~]# sort -t: -k3 -n /etc/passwd
  root:x:0:0:root:/root:/bin/bash
  bin:x:1:1:bin:/bin:/sbin/nologin
  daemon:x:2:2:daemon:/sbin:/sbin/nologin
  adm:x:3:4:adm:/var/adm:/sbin/nologin
  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
  sync:x:5:0:sync:/sbin:/bin/sync
  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
  halt:x:7:0:halt:/sbin:/sbin/halt
  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
  uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
  operator:x:11:0:operator:/root:/sbin/nologin
  

  uniq:

  -c:显示文件行中重复的次数

  -d:只显示重复的行

  注:uniq命令执行过程中,它只认为相邻两个行数据相同是重复行,如果不相邻,即使数据一样,它也认为是单行。
  示例:
  [root@logstach ~]# cat test
  123
  58324
  123
  342
  45
  45
  777
  [root@logstach ~]# uniq -d test
  45
  [root@logstach ~]# !sor
  sort  test |uniq -d
  123
  45
  

  文本统计:wc(word count)
  -l:计算一共有几行(line)
  -w:几个词(word)   

  -c:几个字符或者字节(byte)

  -L:最大行长度

  

  字符处理命令:tr--转换或删除字符

  [root@logstach ~]# tr  ab AB
  sdddaf
  sdddAf
  ssawdsad
  ssAwdsAd
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-478617-1-1.html 上篇帖子: linux 目录功能 下篇帖子: linux相关网站
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表