zoukankan      html  css  js  c++  java
  • 【转】 Linux常用文件操作命令

    1 改变目录

      要进入相应的目录我们可以使用Linux下的改变目录命令cd (ChangeDirectory)。
    下面我要进入到/tmp目录下,如下操作:


    [root@bestlinux ~]# cd /tmp/

    你会看到有地方变了,是的,就是在PS1那个位置有所改变,由原来的“~”变为了“tmp”。那么 ~ 又是什么意思呢?其实 ~表示的就是家目录的意思,既然表示的是家目录的意思,那如果你用cd ~会出现什么样的结果呢?下面咱们就来看一下。


    [root@bestlinux tmp]# cd ~

    你会看到变了,又变到了原来的位置了,这就是你的家目录。
    在这里再给大家多说一点,你用的是哪个用户你用 cd ~ 就会进入到哪个目录下。因为当前咱们是以root的身份进入的,这时用cd ~进入的目录就是 /root 目录下。还有一个就是这里面的 # ,通常情况下 # 就示的就是超级管理员,如果这个位置是 $符号的话,通常情况下表示的是当前登陆的用户是普通用户。这只是通常情况下,其它情况下就不一定了。
      那么我把目录改来改去的不知道当前目录在什么地方了,怎么办啊?

    2查看当前路径

          当你改变目录后不知道当前所在的路径了,我们可以用pwd命令来查看当前的路径。这个命令就是用来查看当前路径的,没有其它的作用。如下所示:


    [root@bestlinux network-scripts]# pwd

      我知道了当前路径了,那么怎样创建一个文件夹呢?

    3创建目录

      在指定目录下要创建一文件夹的话可以用mkdir 命令。比如我要在 /tmp下创建一个test的文件夹。我可以这样去做。


    [root@bestlinux ~]# mkdir /tmp/test

    这时你用ls /tmp 可以看到在 /tmp目录下创建了一个名为test的文件夹。同样的也可以在当前目录下创建一指定的文件夹,这时直接使用mkdir命令后面加相应的文件名就可以了。
    我可以创建目录了,那么我怎么去创建一个文件呢?

    4创建文件

      创建文件的命令可以说有很多,在这里咱们就先说一下比较简单的命令 touch 。我要在 /tmp/创建一个名为a.txt的文件。如下所示:


    [root@bestlinux ~]# touch /tmp/a.txt

    创建了文件或文件夹后怎样删除呢?下面咱们来一起看一下。

    5删除文件或文件夹

      删除文件或文件夹均可以用同一个命令来操作都可以用 rm命令。如我要删除一文件夹 /tmp/a.txt 文件,我可以这样去做。


    [root@bestlinux ~]# rm /tmp/a.txt

     在删除的过程中,你会看到中间有一段话“rm:是否删除一般空文件‘/tmp/a.txt’?”,这是确认的一句话,这时输入字符“y”回车就可以了。
    同样的删除一个文件夹,咱们来看一下操作,同样的我还是删除 /tmp/test 文件夹。如下操作一起来注意看一下。


    [root@bestlinux ~]# rm /tmp/test/

    你会看到这样的一个信息“rm: 无法删除目录‘/tmp/test/’:是一个目录”,也就是说没有删除掉这个文件,在操作过程中出现了问题,一起来看一下问题所在。咱们一起来 man 一下这个rm命令,查看一下他的操作方式。


    [root@bestlinux ~]# man rm

    从中你可以看到这样一行,“-r, -R, --recursive remove the contents ofdirectories recursively”,它的意思就是说可以删除文件夹的意思吧。好咱们就在后面加上 –r 的参数。


    [root@bestlinux ~]# rm -r /tmp/test/

    这时你会看到“rm:是否删除目录‘/tmp/test/’?”,就是确认的意思,输入y就可以将指定的内容删除掉了。
    那有没有可以不用确认就可以直接将指定的文件和文件夹删除掉呢?有的,下面看一下我下面的操作。


    [root@bestlinux ~]# mkdir/tmp/dir         //在 /tmp 下创建dir目录
    [root@bestlinux ~]# touch/tmp/dir/a.txt     //在 /tmp/dir/ 创建a.txt文件
    [root@bestlinux ~]# rm -fr/tmp/dir/        //删除掉/tmp/dir和里面的内容

    这样你会看到没有任何的提示信息。

    6复制文件

      复制文件信息是我们最常用的操作了,在Linux里面也有一个比较好用的命令cp命令。cp命令的格式和前的咱们所提到的命令格式是类似的,这个操作并不只是简单的指定一个文件就可以了,因为复制要有源文件,也要有目标文件,所以这里要有至少二个param 。格式如下:


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

    之所以前面没有说命令格式,是因为前面命令里面只有一个参数,所以没有什么可以说的,现在咱们看到这个命令至少要有两个参数了。下面我就复制/root/ 目录下的 a.txt 文件到 /tmp 下。如下操作:


    [root@bestlinux ~]# cp /root/a.txt  /tmp/

    您会看到这时没有任何的信息显示出来,重新返回到了命令提示符,这时就证明 cp 命令已经成功完成了。然后你再用 ls –l查看一下 /tm/a.txt 你会看到这个文件已经存在了。
    那么我想要复制文件夹呢?也是一样的,不过你还记不记得 rm 命令啊,在用 rm 命令删除文件夹的时候我们用了一个 –r 的参数,同样的cp 命令也是一样的,不信你可以自己用 man 查看一下。好下面咱们就来复制文件夹来看一下。首先我在 /root 目录下我创建一个名为dir 的文件夹,在文件夹里面创建一个名为 test.txt 的文件。然后我再把 dir 文件夹复制到 /tmp目录中。如下操作:


    [root@bestlinux ~]# mkdirdir                     //在当前目录下创建dir 文件夹
    [root@bestlinux ~]# touchdir/test.txt               //在dir目录下创建test.txt文件
    [root@bestlinux ~]# cp -r dir//tmp/                //复制dir目录到/tmp下
    [root@bestlinux ~]# ls -l/tmp/dir/                 //查看/tmp下的内容是不是有dir目录

    这就是怎样去复制文件夹和文件夹中的内容。那么如果我想复制当前目录下的所有文件到指定目录下呢?这时我们就要用到通配符了。下面我们来看一下通配符。
          * :表示所有文件和文件夹
          ?:表示一个字符
    知道了上面这二个通配符了就可以做相应的一些操作了。下面我要复制刚才咱们创建的 dir 目录下的所有内容到 /tmp下。dir里面是咱们刚才创建的 a.txt 文件,这时复制过去后在 /tmp 下你会看到 a.txt 文件。如下操作:


    [root@bestlinux ~]# cp dir/* /tmp/
    [root@bestlinux ~]# ls /tmp/a.txt  -l

    这样用通配符也可以完成相关的操作。

    7移动和改名

       如果想要移动文件的话可以用 mv命令格式如下:


    mv  [参数]  源文件 目地文件

    这个操作和cp命令的操作是类似的。
       例子:将 /root 下的 dir 移动到 /home下。如下操作:


    [root@bestlinux ~]# mv dir/ /home/
    [root@bestlinux ~]# ls -l /home/

    这样当前目录下的 dir 文件被移动到了 /home 下。
    那么改名的格式也是类似的,下面我就把 /home/ 下的dir目录改名为directory。如下操作:


    [root@bestlinux ~]# cd /home/
    [root@bestlinux home]# mv dir/ directory
    [root@bestlinux home]# ls -l

    这样 dir 目录就改名为 directory名了。

    8查找命令

      在我创建了那么多的文件中一不小心忘记放到哪了,这个时候我们就想着要查找一下了,这时我们有这样一个命令叫find 。可以用于查找工作。格式如下:


    find [路径] [参数]
    参数说明:
    1. 时间:
       -atimen    :在 n*24小时内被 access 即存取过的文件列出来!
       -ctimen    :在 n*24小时内被 changed 即改变、新增的文件或目录印出
       -mtimen    :在 n*24小时内被 modified 即修改过的文件印出
      -newer file :比 file 还要新的文件就列出来!
    1. 使用名称:

       -gidn     :寻找 群组 ID 为 n 的文件
       -group name :寻找群组名称为 name的文件
       -uidn     :寻找拥有者 ID 为 n 的文件
       -user name :寻找使用者名称为 name 的文件
       -name file :寻找档名为 file 的文件名称(可以使用万用字符)
       -type type :寻找档案属性为 type 的档案,type 包含了 b, c, d, p, l, s,这些与前一章的属性相同!例如 l 为 Link而 d 为路径之意!

    如下例:


    [root@bestlinux ~]# find / -nametesting           //查找名为 testing  的文件
    [root@bestlinux ~]# find / -name'test*'         //查找以test开头的文件
    [root@bestlinux ~]# find . -ctime1                //查找当前目录下一天内新增的文件
    [root@bestlinux ~]# find /home -usertest      //查找 /home下拥有者为 test 的文件

      有些同学可能有另外的一个想法,我想查找ls命令在什么地方,可以,你可以用find命令去找,不过用find命令查找起来时间比较长,可以用另外一个命令which命令。如下:


    [root@bestlinux ~]# which ls

    这时你会看到ls命令在/bin/目录里面。用起来很方便吧。

    9查看文件内容

      对于一个文本文件,我们怎么去查看其中的内容呢?我们可以用到查看文本内容的命令cat 命令,除了这一个还有 tail 、head 命令。


    [root@bestlinux ~]# cat /etc/services

    # /etc/services:
    # $Id: services,v 1.40 2004/09/23 05:45:18 notting Exp $
    #
    # Network services, Internet style
    #
    # Note that it is presently the policy of IANA to assign a singlewell-known
    # port number for both TCP and UDP; hence, most entries here havetwo entries
    # even if the protocol doesn't support UDP operations.
    # Updated from RFC 1700, ``Assigned Numbers'' (October1994).  Not all ports
    # are included, only the more common ones.
    ……  //中间省略

    binkp          24554/udp                      # Binkley
    asp            27374/tcp                      # Address Search Protocol
    asp            27374/udp                      # Address Search Protocol
    tfido          60177/tcp                      #Ifmail
    tfido          60177/udp                      # Ifmail
    fido           60179/tcp                      # Ifmail
    fido           60179/udp                      # Ifmail

    # Local services

    同样的还可以用 tail 和 head 这两个命令来查看头和尾一些数据信息。格式如下:


    [root@bestlinux ~]# head /etc/services
    [root@bestlinux ~]# tail /etc/services

    结果会显示 /etc/services 的前十行和后十行内容。

    10 管道

      在用 cat命令显示文件内容的时候你会发现如果内容过多,他把前面的内容直接翻过去了,你这样就看不到上面的内容了,这时咱们可以这样去做,让文件内容一屏一屏的显示。这时就要用到另外一个命令more 命令。


    [root@bestlinux ~]# more /etc/services

    这时你会看到文件内容会一屏一屏的显示出来,你只需用空格键就可以下翻了。还有些时候我们也有时会这样去做,就是将 cat显示出来的内容重新输出给 more 命令。这就是管道了。如下例:


    [root@bestlinux ~]# cat /etc/services | more

    这时你会看到显示出来的内容和单独用more命令是一样的。这就是管道,后面我们会经常用到类似的操作。

    11重定向

      有时候我们需要将一些文件信息不是输出到屏幕上,而是让其输出到指定的文件或其它位置,这时我们就要用到了输出重定向了。 输出重定向只需要加上> 这位一个符号就可以了。下面我要把 /etc/services 文件中的内容输出到当前目录下的a.txt 文件中,如下:


    [root@bestlinux ~]# cat /etc/services > a.txt
    [root@bestlinux ~]# ls -l a.txt /etc/services

    输出完后你再用ls –l 命令查看这二个文件,你会看到二个文件的大小是一样的。同样的你也可以用 cat 命令去查看。

    from:http://blog.csdn.net/zacklin/article/details/7311903

  • 相关阅读:
    [Android Samples视频系列之ApiDemos] AppActivityReceive Result
    【Android每日一讲】2012.11.19 我同意条款 CheckBox的isChecked属性
    Android中得到SharedPreference全面总结
    【Android每日一讲】2012.11.27 向左或向右 RadioGroup组与onCheckedChanged事件
    [Android Samples视频系列之ApiDemos] AppActivityReorder Activities
    Lc.exe已退出,代码为1
    反射和委托的两个例子
    数据库日志太大如何快速删除
    Spring.NET环境搭建之基础篇(收藏、学习)
    软件工程之编程规范
  • 原文地址:https://www.cnblogs.com/c-x-a/p/5648781.html
Copyright © 2011-2022 走看看