Linux操作《文件管理》常用命令总结

  • cat(英文全拼:concatenate)命令用于连接文件并打印到标准输出设备上。

  • 语法格式

    cat [-AbeEnstTuv] [--help] [--version] fileName
    参数说明:
    -n 或 --number:由 1 开始对所有输出的行数编号。
    -b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
    -s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
    -v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
    -E 或 --show-ends : 在每行结束处显示 $。
    -T 或 --show-tabs: 将 TAB 字符显示为 ^I。
    -A, --show-all:等价于 -vET。
    -e:等价于"-vE"选项;
    -t:等价于"-vT"选项;
    

    实例:

    把text的文档内容加上行号后输入text1这个文档里

    cat -n text > text1
    

    把text和text1的文档内容加上行号(空白行不加)之后将内容附加到text2文档里

    cat -b text text1 >>text2
    

    清空/etc/text.txt文档内容

    cat /dev/null > /etc/text.txt
    
  • chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令

    Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。

  • 语法格式

    chmod [-cfvR] [--help] [--version] mode file...
    参数说明:
    -c : 若该文件权限确实已经更改,才显示其更改动作
    -f : 若该文件权限无法被更改也不要显示错误讯息
    -v : 显示权限变更的详细资料
    -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
    --help : 显示辅助说明
    --version : 显示版本
    mode:权限设定字符串,格式如下:
    [ugoa...][[+-=][rwxX]...][,...]
    其中:
    u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
    + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
    r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
    
    who用户类型说明
    uuser文件所有者
    ggroup文件所有者所在组
    oothers所有其他用户
    aall所有用户,相当于ugo
    #权限rwx二进制
    7读+写+执行rwx111
    6读+写rw-110
    5读+执行r-x101
    4只读r–100
    3写+执行-wx011
    2只写-w-010
    1只执行–x001
    0000

    实例:

    将文件file.txt设为所有人皆可读取

    chmod ugo+r file.txt
    

    将文件file.txt设为所有人皆可读取

    chmod a+r file.txt
    

    将文件file.txt与file1.txt设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入

    chmod ug+w,o-w file.txt file1.txt
    

    为ex1.py文件拥有者增加可执行权限

    chmod u+x ex1.py
    

    将目前目录下的所有文件与子目录皆设为任何人可读取

    chmod -R a+r *
    

    此外chmod也可以用数字来表示权限如 :

    chmod 777 file
    
    • 若要 rwx 属性则 4+2+1=7;
    • 若要 rw- 属性则 4+2=6;
    • 若要 r-x 属性则 4+1=5。
  • chown(英文全拼:change owner)命令用于设置文件所有者和文件关联组的命令、需要超级用户root的权限才能执行命令。

  • 语法格式:

    chown [-cfhvR] [--help] [--version] user[:group] file...
    参数说明:
    user : 新的文件拥有者的使用者 ID
    group : 新的文件拥有者的使用者组(group)
    -c : 显示更改的部分的信息
    -f : 忽略错误信息
    -h :修复符号链接
    -v : 显示详细的处理信息
    -R : 处理指定目录以及其子目录下的所有文件
    --help : 显示辅助说明
    --version : 显示版本
    

    实例:

    把 /var/run/httpd.pid 的所有者设置 root:

    chown root /var/run/httpd.pid
    

    将文件 file1.txt 的拥有者设为 runoob,群体的使用者 runoobgroup :

    chown runoob:runoobgroup file1.txt
    

    将当前目录下的所有文件与子目录的拥有者皆设为 runoob,群体的使用者 runoobgroup:

    chown -R runoob:runoobgroup *
    

    把 /home/runoob 的关联组设置为 512 (关联组ID),不改变所有者:

    chown :512 /home/runoob
    
  • cksum命令用于检查文件的CRC是否正确。确保文件从一个系统传输到另一个系统的过程中不被损坏

  • 语法格式

    cksum [--help][--version][文件...]
    参数说明:
    --help:在线帮助
    --version:显示版本信息
    文件…:需要进行检查的文件路径
    

    实例:

    使用指令"cksum"计算文件"testfile1"的完整性,输入如下命令:

    cksum testfile1  
    

    以上命令执行后,将输出校验码等相关的信息,具体输出信息如下所示:

    1263453430 78 testfile1         //输出信息 
    

    上面的输出信息中,"1263453430"表示校验码,"78"表示字节数。

  • cmp命令用于比较两个文件是否有差异

  • 语法格式:

    cmp [-clsv][-i <字符数目>][--help][第一个文件][第二个文件]
    参数说明:
    -c或--print-chars  除了标明差异处的十进制字码之外,一并显示该字符所对应字符
    -i<字符数目>或--ignore-initial=<字符数目>  指定一个数目
    -l或--verbose  标示出所有不一样的地方
    -s或--quiet或--silent  不显示错误信息
    -v或--version  显示版本信息
    --help  在线帮助
    

    实例:

    要确定两个文件是否相同,请输入:

    cmp prog.o.bak prog.o
    

    这比较 prog.o.bak 和 prog.o。如果文件相同,则不显示消息。如果文件不同,则显示第一个不同的位置;例如:

    prog.o.bak prog.o differ: char 4, line 1 
    

    如果显示消息 cmp: EOF on prog.o.bak,则 prog.o 的第一部分与 prog.o.bak 相同,但在 prog.o 中还有其他数据。

  • diff命令用于比较文件的差异

  • 语法格式

    diff [-abBcdefHilnNpPqrstTuvwy][-<行数>][-C <行数>][-D <巨集名称>][-I <字符或字符串>][-S <文件>][-W <宽度>][-x <文件或目录>][-X <文件>][--help][--left-column][--suppress-common-line][文件或目录1][文件或目录2]
    

    实例:

    比较两个文件

    diff log2014.log log2013.log 
    

    并排格式输出

    [zt@localhost work]$ diff test1.txt test.txt -y -W 50
         1	123123123     |	123123123
         2	assdasdasdas  |	assdasdasdas
         3	hhahhahahah   |	hhahhahahah
    asdasdasda	      <
    		      <
    asdasdasde1223as      <
    [zt@localhost work]$
    
    • "|"表示前后2个文件内容有不同
    • "<"表示后面文件比前面文件少了1行内容
    • ">"表示后面文件比前面文件多了1行内容
  • file命令用于辨识文件类型

  • 语法格式:

    file [-bcLvz][-f <名称文件>][-m <魔法数字文件>...][文件或目录...]
    参数说明:
    -b  列出辨识结果时,不显示文件名称
    -c  详细显示指令执行过程,便于排错或分析程序执行的情形
    -f<名称文件>  指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称
    -L  直接显示符号连接所指向的文件的类别
    -m<魔法数字文件>  指定魔法数字文件
    -v  显示版本信息
    -z  尝试去解读压缩文件的内容
    [文件或目录...] 要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件
    

    实例:

    显示文件类型

    [zt@localhost work]$ file test1.txt
    test1.txt: ASCII text
    
  • find命令用来在指定目录下查找文件

  • 语法格式:

    find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \;
    

    实例:

    将当前目录及其子目录下所有文件后缀为.c的文件列出来

    find . -name "*.c"
    

    将当前目录及其子目录中所有一般文件列出

    find . -type f
    

    将当前目录及其子目录下所有最近20天内更新过的文件列出

    find . -ctime -20
    

    查找 /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问它们:

    find /var/log -type f -mtime +7 -ok rm {} \;
    

    查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件

    find . -type f -perm 644 -exec ls -l {} \;
    

    查找系统中所有文件长度为 0 的普通文件,并列出它们的完整路径

    find / -type f -size 0 -exec ls -l {} \;
    
  • ln(英文全拼:link files)命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。

  • 当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。

  • 语法格式:

    ln [参数][源文件或目录][目标文件或目录]
    参数:
    -s 软连接
    

    实例:

    给文件创建软链接,为test1.txt文件创建软链接link_test1,如果test1.txt丢失,link_test1将失效。

    [zt@localhost work]$ ln -s test1.txt link_test1
    [zt@localhost work]$ ll
    总用量 8
    lrwxrwxrwx. 1 zt zt  9 5月   7 00:32 link_test1 -> test1.txt
    -rw-rw-r--. 1 zt zt 85 5月   6 23:55 test1.txt
    -rw-rw-r--. 1 zt zt 35 5月   6 22:57 test.txt
    
  • more命令类似cat,不过会以一页一页的形式显示。更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。

  • 语法格式:

    more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
    参数说明:
    -num 一次显示的行数
    -d 提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声
    -l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
    -f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
    -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
    -c 跟 -p 相似,不同的是先显示内容再清除其他旧资料
    -s 当遇到有连续两行以上的空白行,就代换为一行的空白行
    -u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
    +/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
    +num 从第 num 行开始显示
    fileNames 欲显示内容的文档,可为复数个数
    

    实例:

    逐页显示testfile文档内容,如有连续两行以上空白行则以一行空白行显示。

    more -s testfile
    

    从第 20 行开始显示 testfile 之文档内容

    more +20 testfile
    
  • mv(英文全拼:move file)命令用来为文件或目录改名、或将文件或目录移入其它位置。

  • 语法格式:

    mv [options] source dest
    mv [options] source... directory
    参数说明:
    -b 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份
    -i 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作
    -f 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件
    -n 不要覆盖任何已存在的文件或目录
    -u 当源文件比目标文件新或者目标文件不存在时,才执行移动操作
    

    实例:

    将文件aaa改名为bbb

    mv aaa bbb
    

    将 info 目录放入 logs 目录中。注意,如果 logs 目录不存在,则该命令将 info 改名为 logs。

    mv info/ logs 
    

    再如将 /usr/runoob 下的所有文件和目录移到当前目录下,命令行为

    mv /usr/runoob/*  .
    
  • rm命令(英文全拼:remove)命令用于删除一个文件或者目录。

  • 语法格式:

    rm [options] name...
    参数说明:
    -i 删除前逐一询问确认
    -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认
    -r 将目录及以下之档案亦逐一删除
    

    实例:

    删除文件可以直接用rm命令,若删除目录则必须配合选项"-r",例如:

    rm test.txt
    rm -r homework
    

    删除当前目录下所有

    rm -rf ./*
    

    文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令。

  • touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件

    ls -l 可以显示档案的时间记录。

  • 语法格式:

    touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]
    参数说明:
    a 改变档案的读取时间记录
    m 改变档案的修改时间记录
    c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样
    f 不使用,是为了与其他 unix 系统的相容性而保留
    r 使用参考档的时间记录,与 --file 的效果一样
    d 设定时间与日期,可以使用各种不同的格式
    t 设定档案的时间记录,格式与 date 指令相同
    --no-create 不会建立新档案
    --help 列出指令格式
    --version 列出版本讯息
    

    实例:

    使用指令“touch”修改文件“testfile”的时间属性为当前系统时间、输入如下命令:

    touch testfile                #修改文件的时间属性 
    ls -l testfile                #查看文件的时间属性  
    

    使用指令"touch"时,如果指定的文件不存在,则将创建一个新的空白文件。例如,在当前目录下,使用该指令创建一个空白文件"file",输入如下命令。

    touch file            #创建一个名为“file”的新的空白文件
    
  • which 命令用于查找文件。which命令会在环境变量$PATH设置的目录里查找符合条件的文件。

  • 语法格式:

    which [文件...]
    参数说明:
    -n<文件名长度>  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
    -p<文件名长度>  与-n参数相同,但此处的<文件名长度>包括了文件的路径。
    -w  指定输出时栏位的宽度
    -V  显示版本信息
    

    实例:

    使用指令"which"查看指令"bash"的绝对路径,输入如下命令:

    which bash
    上面的指令执行后,输出信息如下所示:
    /bin/bash                   #bash可执行程序的绝对路径
    
  • cp (英文全拼:copy file)命令主要用于复制文件或目录。

  • 语法格式:

    cp [options] source dest
    或
    cp [options] source... directory
    参数说明:
    -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合
    -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式
    -f:覆盖已经存在的目标文件而不给出提示
    -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖
    -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中
    -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件
    -l:不复制文件,只是生成链接文件
    

    实例:

    使用指令 cp 将当前目录 test/ 下的所有文件复制到新目录 newtest 下,输入如下命令:

    cp –r test/ newtest 
    

    注意:用户使用该指令复制目录时,必须使用参数 -r 或者 -R

  • whereis命令用于查找文件。

  • 语法格式:

    whereis [-bfmsu][-B <目录>...][-M <目录>...][-S <目录>...][文件...]
    参数说明:
    -b  只查找二进制文件。
    -B<目录>  只在设置的目录下查找二进制文件。
    -f  不显示文件名前的路径名称。
    -m  只查找说明文件。
    -M<目录>  只在设置的目录下查找说明文件。
    -s  只查找原始代码文件。
    -S<目录>  只在设置的目录下查找原始代码文件。
    -u  查找不包含指定类型的文件。
    

    实例:

    使用指令"whereis"查看指令"bash"的位置,输入如下命令:

    whereis bash
    [zt@localhost work]$ whereis bash
    bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz
    
  • scp命令用于 Linux 之间复制文件和目录

  • 语法格式:

    scp [可选参数] file_source file_target
    参数说明:
    -r: 递归复制整个目录
    

    实例:

    从本地复制到远程

    scp local_file remote_username@remote_ip:remote_folder 
    或者
    scp local_file remote_username@remote_ip:remote_file
    或者
    scp local_file remote_ip:remote_folder 
    或者
    scp local_file remote_ip:remote_file
    第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
    第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名
    

    应用实例:

    scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music 
    scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music/001.mp3 
    scp /home/space/music/1.mp3 www.runoob.com:/home/root/others/music 
    scp /home/space/music/1.mp3 www.runoob.com:/home/root/others/music/001.mp3
    

    复制目录命令格式:

    scp -r local_folder remote_username@remote_ip:remote_folder
    或者
    scp -r local_folder remote_ip:remote_folder
    第1个指定了用户名,命令执行后需要再输入密码
    第2个没有指定用户名,命令执行后需要输入用户名和密码
    

    应用实例:

    scp -r /home/space/music/ root@www.runoob.com:/home/root/others/ 
    scp -r /home/space/music/ www.runoob.com:/home/root/others/
    

    从远程复制到本地

    从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可,如下实例

    应用实例:

    scp root@www.runoob.com:/home/root/others/music /home/space/music/1.mp3 
    scp -r www.runoob.com:/home/root/others/ /home/space/music/
    

    说明:

    如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用 -P 参数来设置命令的端口号,命令格式如下

    #scp 命令使用端口号 4588
    scp -P 4588 remote@www.runoob.com:/usr/local/sin.sh /home/administrator
    

    使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的

参考地址

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西门吹雪吹吹风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值