zoukankan      html  css  js  c++  java
  • Linux文件管理命令

    pwd   显示当前所在目录, 查看当前所在目录的完整路径(绝对路径)。
    cd    进入某目录, 显示或改变当前目录。
          cd 回车/cd ~    都是回到自己的主目录。
          cd .            当前目录(空格再加一个点)。
          cd -            去到上一次访问的目录。
          cd ..           回到上一级目录(空格再加两个点)。    cd ../..  上两级目录。
          cd /user/s807  从绝对路径去到某目录。
          cd ~/s807      直接进入主目录下的某目录(“cd ~”相当于主目录的路径的简写)。
    touch 如果文件/目录不存在, 则创建新文件/目录;如果文件存在, 那么就是更新该文件的最后访问时间,
          用法 touch [-acm] [-r ref_file] 文件...
               touch [-acm] [MMDDhhmm[yy]] 文件...
               touch [-acm] [-t [[CC]YY]MMDDhhmm[.SS]] file...
    mkdir 创建目录(必须有创建目录的权限)
          用法 mkdir [-m 模式] [-p] dirname ...
          mkdir dir1/dir2          在dir1下建dir2
          mkdir dir13 dir4 dir5    连建多个
          mkdir ~/games            用户主目录下建(默认在当前目录下创建)
          mkdir -p dir6/dir7/dir8  强制创建dir8;若没有前面的目录, 会自动创建dir6和dir7。
                                   不用-p时, 若没有dir6/dir7, 则创建失败。
    cp   复制文件/目录
         cp  源文件   目标文件      复制文件;若已有文件则覆盖
         cp -r 源目录 目标目录      复制目录;若已有目录则把源目录复制到目标目录下,
                                   没有目标目录时, 相当于完全复制源目录, 只是文件名不同。
         如:
         cp file1 file2 dir2       把file1、file2文件复制到dir2目录下
         cp 1.py netseek/2.py      将1.py拷到netseek目录下并命名为2.py
         cp -i file1 file2         增加是否覆盖的提示
         cp filename{,.bak}        快速备份或复制文件。
    mv  移动或重命名文件/目录
        用法 mv [-f] [-i] f1 f2
            mv [-f] [-i] f1 ... fn d1
            mv [-f] [-i] d1 d2
        mv 源文件名 目标文件名   若目标文件名还没有,则是源文件重命名为目标文件;若目标文件已存在, 则源文件覆盖目标文件。
        mv 源文件名 目标目录     移动文件
        mv 源目录 目标目录       若目标目录不存在, 则源目录重命名;若目标目录已存在, 则源目录移动到目标目录下。
        如: mv qib.tgz ../qib.tgz   移到上一级目录
    rm  删除文件/目录
        用法 rm [-fiRr] 文件/目录,参数说明如下:
              -f, --force   强制删除。忽略不存在的文件, 不提示确认
              -i            在删除前需要确认
              -I            在删除超过三个文件或者递归删除前要求确认。此选项比-i 提示内容更少, 但同样可以阻止大多数错误发生
                  --interactive[=WHEN]    根据指定的WHEN 进行确认提示:never, once (-I),或者always (-i)。如果此参数不加WHEN 则总是提示
                  --one-file-system      递归删除一个层级时, 跳过所有不符合命令行参数的文件系统上的文件
                  --no-preserve-roo       不特殊对待"/"
                  --preserve-root         不允许删除"/"(默认)
              -r, -R, --recursive         递归删除目录及其内容
              -v, --verbose           详细显示进行的步骤
                  --help                 显示此帮助信息并退出
                  --version                  显示版本信息并退出
       

            用例:
            rm -rf 文件名 删除文件。
            rm -rf 目录名 删除目录。
            rm -f 文件 强制删除文件或者目录,无论是否有权限都可以
            rm -rf * 删除所有文件及目录

            要删除第一个字符为"-"的文件 (例如"-foo"), 请使用以下方法之一:
            rm -- -foo
            rm ./-foo

    rmdir 删除空目录。只可以删除空目录。
    ln  创建硬链接或软链接, 硬链接=同一文件的多个名字;软链接=快捷方式
        用法   ln [-f] [-n] [-s] f1 [f2]
              ln [-f] [-n] [-s] f1 ... fn d1
              ln [-f] [-n] -s d1 d2
        ln file1 file1.ln      创建硬链接。感觉是同一文件, 删除一个, 对另一个没有影响;须两个都删除才算删除。
        ln -s ../m/file1 file1.sln  创建软链接。可跨系统操作, 冲破操作权限;也是快捷方式。
    ls    查看目录或者文件的属性, 列举出任一目录下面的文件
          用法  ls [-aAbcCdeEfFghHilLmnopqrRstux1@] [file...]
          语法:ls [-1aAbBcCdDfFgGhHiklLmnNopqQrRsStuUvxX][-I <范本样式>][-T <跳格字数>][-w <每列字符数>][--block-size=<区块大小>][--color=<使用时机>][--format=<列表格式>][--full-time][--help][--indicator-style=<标注样式>][--quoting-style=<引号样式>][--show-control-chars][--sort=<排序方式>][--time=<时间戳记>][--version][文件或目录...]
    
          补充说明:执行ls指令可列出目录的内容,包括文件和子目录的名称。
          参数:
          -1   每列仅显示一个文件或目录名称。
          -a或--all   下所有文件和目录。
          -A或--almost-all   显示所有文件和目录,但不显示现行目录和上层目录。
          -b或--escape   显示脱离字符。
          -B或--ignore-backups   忽略备份文件和目录。
          -c   以更改时间排序,显示文件和目录。
          -C   以又上至下,从左到右的直行方式显示文件和目录名称。
          -d或--directory   显示目录名称而非其内容。
          -D或--dired   用Emacs的模式产生文件和目录列表。
          -f   此参数的效果和同时指定"aU"参数相同,并关闭"lst"参数的效果。
          -F或--classify   在执行文件,目录,Socket,符号连接,管道名称后面,各自加上"*","/","=","@","|"号。
          -g   次参数将忽略不予处理。
          -G或--no-group   不显示群组名称。
          -h或--human-readable   用"K","M","G"来显示文件和目录的大小。
          -H或--si   此参数的效果和指定"-h"参数类似,但计算单位是1000Bytes而非1024Bytes。
          -i或--inode   显示文件和目录的inode编号。
          -I<范本样式>或--ignore=<范本样式>   不显示符合范本样式的文件或目录名称。
          -k或--kilobytes   此参数的效果和指定"block-size=1024"参数相同。
          -l   使用详细格式列表。
          -L或--dereference   如遇到性质为符号连接的文件或目录,直接列出该连接所指向的原始文件或目录。
          -m   用","号区隔每个文件和目录的名称。
          -n或--numeric-uid-gid   以用户识别码和群组识别码替代其名称。
          -N或--literal   直接列出文件和目录名称,包括控制字符。
          -o   此参数的效果和指定"-l" 参数类似,但不列出群组名称或识别码。
          -p或--file-type   此参数的效果和指定"-F"参数类似,但不会在执行文件名称后面加上"*"号。
          -q或--hide-control-chars   用"?"号取代控制字符,列出文件和目录名称。
          -Q或--quote-name   把文件和目录名称以""号标示起来。
          -r或--reverse   反向排序。
          -R或--recursive   递归处理,将指定目录下的所有文件及子目录一并处理。
          -s或--size   显示文件和目录的大小,以区块为单位。
          -S   用文件和目录的大小排序。
          -t   用文件和目录的更改时间排序。
          -T<跳格字符>或--tabsize=<跳格字数>   设置跳格字符所对应的空白字符数。
          -u   以最后存取时间排序,显示文件和目录。
          -U   列出文件和目录名称时不予排序。
          -v   文件和目录的名称列表以版本进行排序。
          -w<每列字符数>或--width=<每列字符数>   设置每列的最大字符数。
          -x   以从左到右,由上至下的横列方式显示文件和目录名称。
          -X   以文件和目录的最后一个扩展名排序。
          --block-size=<区块大小>   指定存放文件的区块大小。
          --color=<列表格式>   培植文件和目录的列表格式。
          --full-time   列出完整的日期与时间。
          --help   在线帮助。
          --indicator-style=<标注样式>   在文件和目录等名称后面加上标注,易于辨识该名称所属的类型。
          --quoting-syte=<引号样式>   把文件和目录名称以指定的引号样式标示起来。
          --show-control-chars   在文件和目录列表时,使用控制字符。
          --sort=<排序方式>   配置文件和目录列表的排序方式。
          --time=<时间戳记>   用指定的时间戳记取代更改时间。
          --version   显示版本信息。
    
          ls /etc/   显示某目录下的所有文件和目录, 如etc目录下的。
          ls -l      (list)列表显示文件(默认按文件名排序),
                     显示文件的权限、硬链接数(即包含文件数,普通文件是1, 目录1+)、用户、组名、大小、修改日期、文件名。
          ls -t      (time)按修改时间排序, 显示目录和文件。
          ls -lt     是“-l”和“-t”的组合, 按时间顺序显示列表。
          ls -F      显示文件类型, 目录“/ ”结尾;可执行文件“*”结尾;文本文件(none), 没有结尾。
          ls -R      递归显示目录结构。即该目录下的文件和各个子目录下的文件都一一显示。
          ls -a      显示所有文件, 包括隐藏文件。
    
        文件权限
            r    读权限。对普通文件来说, 是读取该文件的权限;对目录来说, 是获得该目录下的文件信息。
            w    写权限。对文件, 是修改;对目录, 是增删文件与子目录。
                (注 删除没有写权限的文件可以用 rm -f , 这是为了操作方便, 是人性化的设计)。
            x    执行权限;对目录, 是进入该目录
            -    表示没有权限
           形式 - rw- r-- r--
        其中 第一个是文件类型(-表普通文件, d表目录(directory), l表软链接文件(link))
        第2~4个是属主, 生成文件时登录的人, 权限最高, 用u表示(user)
        第5~7个是属组, 系统管理员分配的同组的一个或几个人, 用g表示(group)
        第8~10个是其他人, 除属组外的人, 用o表示(other)
        所有人, 包括属主、属组及其他人, 用a表示(all)
    chmod  更改权限;
        用法  chmod [-fR] <绝对模式> 文件 ...
            chmod [-fR] <符号模式列表> 文件 ...
          其中  <符号模式列表> 是一个用逗号分隔的表     [ugoa]{+|-|=}[rwxXlstugo]
        chmod u+rw  给用户加权限。同理, u-rw也可以减权限。
        chmod u=rw  给用户赋权限。与加权限不一样, 赋权限有覆盖的效果。
        主要形式有如下几种
        chmod u+rw       chmod u=rw
        chmod u+r, u+w   chmod u+rw,g+w, o+r
        chmod u+x filenmame   # 只想给自己运行, 别人只能读
        chmod 777 (用数字的方式设置权限是最常用的)
        数字表示权限时, 各数位分别表示属主(user)、属组(group)及其他人(other);
          其中, 1是执行权(Execute), 2是写权限(Write), 4是读权限(Read),
          具体权限相当于三种权限的数相加, 如7=1+2+4, 即拥有读写和执行权。
        另外,临时文件/目录的权限为rwt, 可写却不可删,关机后自动删除;建临时目录:chmod 777 目录名, 再chmod +t 目录名。
    df 查看文件系统, 查看数据区
       用法 df [-F FSType] [-abeghklntVvZ] [-o FSType 特定选项] [目录 | 块设备 | 资源]
       df -k   以kbytes显示文件大小的查看文件系统方式
    echo  显示一行内容。
    more  分屏显示文件的内容。适合于看大文件。
          用法   more [-cdflrsuw] [-行] [+行号] [+/模式] [文件名 ...]。
          显示7个信息:用户名 密码 用户id(uid) 组id(gid) 描述信息(一般为空) 用户主目录  login shell(登录shell)
    cat   显示文件内容, 不分屏(一般用在小文件, 大文件显示不下);合并文件, 仅在屏幕上合并, 并不改变原文件。
          用法 cat [ -usvtebn ] [-|文件] ...
          如:cat>1.py    //就可以把代码粘帖到1.py文件里, 按ctrl+d 保存代码。
          cat 1.py 或more 1.py     //都可以查看里面的内容。
          一般用作将很多小文件连成一个大文件: cat file* >newFile
    head  输出文件的开头部分的内容
          如: head -3 a.txt # 显示最上面的3行。缺省是10行
          参数:
           -c, --bytes=[-]K  显示每个文件的前多少字节; 以“-”开头, 则显示到后多少字节; 数字后面可带k等参数表示大小,则显示多少个(一个中文算2~3个字节)。
                             如: head -c 10 test.txt # 显示文件的前10字节
                             head -c -1k test.txt # 显示到文件的后1K的内容
           -n, --lines=[-]K  显示每个文件的多少行;以“-”开头, 则显示到后多少行。
           -q, --quiet, --silent  不显示文件名(默认)。
           -v, --verbose     总是显示文件名。即在显示文件内容前多显示一行内容: ==> 文件名 <==
           --help 显示帮助信息
           --version   显示版本信息
    tail  实时监控文件, 一般用在日志文件, 可以只看其中的几行。
          用法 tail [+/-[n][lbc][f]] [文件]
              tail [+/-[n][l][r|f]] [文件]
          如: tail -3 a.txt # 显示最下面的3行, 一般用作查看日志信息
          tail -f run.log  # 实时监控查看此文件
    
          长选项必须使用的参数对于短选项时也是必需使用的。
          -c, --bytes=K        输出最后K 字节;另外,使用-c +K 从每个文件的第K 字节输出
          -f, --follow[={name|descriptor}]      
              即时输出文件变化后追加的数据。
    -f, --follow 等于--follow=descriptor -F 即--follow=name --retry -n, --lines=K 输出最后K行,代替最后10行;使用-n +K 从每个文件的第K 字节输出 --max-unchanged-stats=N 使用--follow=name, 重新打开一个在N(默认为5) 次迭代后没有改变大小的文件来看它是否被解除连 接或重命名(这是循环日志文件的通常情况) --pid=PID 同 -f 一起使用,当 PID 所对应的进程死去后终止 -q, --quiet, --silent 不输出给出文件名的头 --retry 即使目标文件不可访问依然试图打开;在与参数 --follow=name 同时使用时常常有用。 -s, --sleep-interval=秒数 同-f 一起使用,在迭代间暂停约指定秒数的时间(默认1.0 秒) -v, --verbose 总是输出给出文件名的头 --help 显示此帮助信息并退出 --version 显示版本信息并退出
    find   查找文件(文件或者目录名以及权限属主等匹配搜索)
        用法 find  [-H | -L] 路径列表 谓词列表
        精确匹配: find . -name file1
        模糊匹配: find . -name "file*"  # 使用通配符要用双引号
        -name     按文件名查找
        -mtime 10 修改时间距今10天那天的文件, -10表10天以内, +10表超过10天的(10天前的)
        -user 0   表userid=0的文件, 即root的文件 (按用户查找)。如: find / -user 0 # 显示所有root用户的文件
        -size +400 表文件大小超过400个blok, 一个blok是512字节的文件, 即200K
        -print    打印
        -perm 777 权限是777的文件 (按文件权限查找)
        -type f   只查普通文件, (按文件类型查找)
        -atime +365 访问时间超过一年的 (按访问时间查找)
        -exec rm {} 执行删除操作, {}表示将前面的结果作为rm的参数
        如:
        find / -name perl 从根目录开始查找名为perl的文件。
        find . -mtime 10 -print 从当前目录查找距离现在10天时修改的文件, 显示在屏幕上。
               (注 “10”表示第10天的时候;如果是“+10”表示10天以外的范围;“-10”表示10天以内的范围。)
    grep 文件中查找字符;有过滤功能, 只列出想要的内容
        用法  grep -hblcnsviw 模式 文件 . . .
        -?   同时显示匹配行上下的?行, 如:grep -2 pattern filename # 同时显示匹配行的上下2行。
        -b, --byte-offset            打印匹配行前面打印该行所在的块号码。
        -c, --count                  只打印匹配的行数, 不显示匹配的内容。
        -f File, --file=File         从文件中提取模板。空文件中包含0个模板, 所以什么都不匹配。
        -h, --no-filename            当搜索多个文件时, 不显示匹配文件名前缀。
        -i, --ignore-case            忽略大小写差别。
        -q, --quiet                  取消显示, 只返回退出状态。0则表示找到了匹配的行。
        -l, --files-with-matches     打印匹配模板的文件清单。
        -L, --files-without-match    打印不匹配模板的文件清单。
        -n, --line-number            在匹配的行前面打印行号。
        -s, --silent                 不显示关于不存在或者无法读取文件的错误信息。
        -v, --revert-match           反检索, 只显示不匹配的行。
        -w, --word-regexp            如果被<和>引用, 就把表达式做为一个单词搜索。
        -V, --version                显示软件版本信息。
        -r,                          显示文件名
    
        如:
        grep abc /etc/passwd    # 在passwd文件下找abc字符
        grep success *           # 查找当前目录下面所有文件里面含有success字符的文件
        grep -ins -r "文件内容" *   # 查找文件(进入到文件里面, 查询包含此内容的文件)
        grep -l 'boss' *        # 显示所有包含boss的文件名。
        grep -n 'boss' file     # 在匹配行之前加行号。
        grep -i 'boss' file     # 显示匹配行,boss不区分大小写。
        grep -v 'boss' file     # 显示所有不匹配行。
        grep -q 'boss' file     # 找到匹配行,但不显示,但可以检查grep的退出状态。(0为匹配成功)
        grep -c 'boss' file     # 只显示匹配行数(包括0)。
        grep   "$boss" file     # 扩展变量boss的值再执行命令。
        ps -ef|grep "^*user1"   # 搜索user1的命令,即使它前面有零个或多个空格。
        ps -e|grep -E 'grant_server|commsvr|tcpsvr|dainfo' # 查找多个字符串的匹配(grep -E相当于egrep)
    
        # 输出匹配前后多行
        grep的A(after,后)和B(before,前)、C(center,前后)选项可以同时输出其匹配行的前后几行。
        grep -B1 -A2 "DMA" message.txt
        grep -C 5 foo file  显示file文件中匹配foo字串那行以及上下5行
    wc  对单词进行统计
        -l 统计行数
        -w 统计单词数
        -c 统计字符数
        如  grep wang /etc/passwd|wc -l   # 统计passwd文件含“wang”的行数
        who | wc -l  # 当前登陆的用户数
        wc -l /etc/passwd # 当前注册的用户数
    du  统计磁盘容量
        用法 du [-a] [-d] [-h|-k] [-r] [-o|-s] [-H|-L] [文件...]
        df -k 是对文件系统进行统计
        du 单位是512字节
        du -k 单位是K, 即1024字节
        du -s blog
        如: du -sk *   # 不加-s会显示子目录, -k按千字节排序
    if 判断目录、文件是否存在
        myPath="/var/log/httpd/"
        myFile="/var/log/httpd/access.log"
    
        #这里的-x 参数判断$myPath是否存在并且是否具有可执行权限
        if [ ! -x "$myPath"]; then
        mkdir "$myPath"
        fi
    
        #这里的-d 参数判断$myPath是否存在
        if [ ! -d "$myPath"]; then
        mkdir "$myPath"
        fi
        # 判断当前目录下,是否有“logs”目录,没有则创建这目录
        if [ ! -d "logs" ]; then mkdir "logs"; fi;
    
        #这里的-f参数判断$myFile是否存在
        if [ ! -f "$myFile" ]; then
        touch "$myFile"
        fi
    
        #其他参数还有-n,-n是判断一个变量是否是否有值
        if [ ! -n "$myVar" ]; then
        echo "$myVar is empty"
        exit 0
        fi
    
        #两个变量判断是否相等
        if [ "$var1" = "$var2" ]; then
        echo '$var1 eq $var2'
        else
        echo '$var1 not eq $var2'
        fi
  • 相关阅读:
    Final TFS 2008 Feature List
    来看看微软对测试是什么要求
    淘宝设计流程
    Disable try catch
    jQuery validate API
    iPhone手机开发平台入门介绍和教程
    VSSpeedster Speed up your VS 2010
    Where are the SDK tools? Where is ildasm?
    效率高的删除语句truncate table [tablename]
    修改Hosts去除各站广告
  • 原文地址:https://www.cnblogs.com/delav/p/9348430.html
Copyright © 2011-2022 走看看