linux文件管理类命令汇总及几个通配的查找事例

linux文件管理类命令汇总

1.文本文件查看类命令:cat,tac,more,less,tail,head

cat(tac): 正向(反向)显示

cat [OPTION]... [FILE]...

               -E:显示行结束符$
-n:对显示出的每一行进行编号

more [OPTIONS…] FILE…

特点:翻屏至文件尾部后自动退出;

-d:显示翻页及退出提示
space:向下翻页
                       Enter:向下翻一行
b,ctrl+b:向回翻页
/STRING:向下查询该字符串
q:离开

less:一页一页翻屏

less[OPTIONS...] FILE...

用法:

Space,ctrl+V  向下翻页
                       b ctrl+B 向文件首部翻屏
d ctrl+D 向文件尾部翻半屏
u ctrl+U 向文件首部翻半屏
         
           Enter :向文件首部翻一行
                   
ctrl+K :向文件首部翻一行
q: 退出
#;跳转至第#行
                      1G:回到文件首部
      G:回到文件尾部

head:查看前面#行 (默认10行)

head [OPTIONS...] [FILE...]

        -n #:指定获取前#行
-#:指定获取前#行

tail:查看后面#行(默认10行)

tail[OPTIONS...] [FILE...]

      -n #:指定获取后#行
-#:指定获取后#行
 -f:查看文件到尾部不退出,继续观察文件后续内容.

文件管理工具:cp, mv, rm

cp NAME

cp - copy files and directories

cp命令:copy 源文件;目标文件;

        单源复制:cp [OPTION]... [-T] SOURCE DEST
       多源复制:cp [OPTION]... SOURCE... DIRECTORY
      cp [OPTION]... -t DIRECTORY SOURCE...

      单源复制:cp [OPTION]... [-T] SOURCE DEST
      如果DEST不存在:则事先创建此文件,并复制源文件的数据流至DEST中;
      如果DEST存在:
      如果DEST是非目录文件:则覆盖目标文件;
      如果DEST是目录文件:则先在DEST目录下创建一个与源文件同名的文件,并复制其数据流;

      多源复制:cp [OPTION]... SOURCE... DIRECTORY
       cp [OPTION]... -t DIRECTORY SOURCE...

      如果DEST不存在:错误;
      如果DEST存在:
      如果DEST是非目录文件:错误;
      如果DEST是目录文件:分别复制每个文件至目标目录中,并保持原名;

      常用选项:
      -i:交互式复制,即覆盖之前提醒用户确认;      
      -f:强制覆盖目标文件;      
      -r, -R:递归复制目录;      
      -d:复制符号链接文件本身,而非其指向的源文件;      
      -a:-dR --preserve=all, archive,用于实现归档;      
      --preserv=mode:权限
      ownership:属主和属组
      timestamps: 时间戳
      context:安全标签
      xattr:扩展属性
      links:符号链接
      all:上述所有属性

mv命令:move

mv [OPTION]... [-T] SOURCE DEST
      mv [OPTION]... SOURCE... DIRECTORY
      mv [OPTION]... -t DIRECTORY SOURCE..    

      常用选项:
      -i:交互式;      
      -f:force
   rm命令:remove
    rm [OPTION]... FILE...

    常用选项:
    -i:interactive    
    -f:force    
    -r: recursive
    删除目录:rm -rf /PATH/TO/DIR
    危险操作:rm -rf /*

    注意:所有不用的文件建议不要直接删除,而是移动至某个专用目录;(模拟回收站)

文件权限管理类命令 chown,chgrp,umask

chown命令:

chown [OPTION]... [OWNER][:[GROUP]] FILE...    		
chown [OPTION]... --reference=RFILE FILE...    
选项:    
-R:递归修改

chgrp命令:

chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...
     注意:仅管理员可修改文件的属主和属组;

umask:

文件的权限反向掩码,遮罩码; 文件: 666-umask    目录: 777-umask

注意:之所以文件用666去减,表示文件默认不能拥有执行权限;如果减得的结果中有执行权限,则需要将其加1;
  umask: 023
  666-023=644
  777-023=754

  umask命令:
  umask:查看当前umask
  umask MASK: 设置umask

  注意:此类设定仅对当前shell进程有效;

文本处理工具 wc,sort,uniq,diff,path

wc:word count wc [OPTION]… [FILE]…

                    -l: lines

                  -w:words

                   -c: bytes

cut: cut OPTION… [FILE]…

            -d   CHAR:以指定的字符为分隔符;			
           -f FIELDS:挑选出的字段;
           #:指定的单个字段
           #-#:连续的多个字段;
   #,#:离散的多个字段;

sort: sort [OPTION]… [FILE]…

                  -n:基于数值大小而非字符进行排序;		
                 -t CHAR:指定分隔符;
                 -k #:用于排序比较的字段; -
                 -r:逆序排序;
                 -f:忽略字符大小写
                 -u:重复的行只保留一份;
             

uniq:报告或移除重复的行

uniq [OPTION]... [INPUT [OUTPUT]]
-c:显示每行的重复次数;
-u:仅显示未曾重复过的行;
-d:仅显示重复过的的行;

diff:compare files line by line

diff [OPTION]... FILES

diff  /PATH/TO/OLDFILE  /PATH/TO/NEWFILE > /PATH/TO/PATCH_FILE
-u:使用unfied机制,即显示要修改的行的上下文,默认为3行;

patch:向文件打补丁

patch [OPTIONS] -i /PATH/TO/PATCH_FILE /PATH/TO/OLDFILE

patch /PATH/TO/OLDFILE < /PATH/TO/PATCH_FILE

文件内容类型查看命令:file  — determine file type

                    f: 普通文件 d: 目录文件
                   l:符号链接文件
                   b:块设备 文件
                   c:字符设备文件
                   p:管道文件
                   s:套接字文件

文件的时间戳管理工具:touch,stat

stat命令: stat – display file or file system status

stat FILE...

文件:两类数据
元数据:metadata
数据: data

时间戳:
access time:2015-12-10 16:12:22.776423693 +0800
modify time:2015-12-10 16:12:22.776423693 +0800
change time:2015-12-10 16:12:22.776423693 +0800

touch命令:
touch - change file timestamps

touch [OPTION]... FILE...
-c: 指定的文件路径不存在时不予创建; c, --no-create
                             do not create any files

-a: 仅修改access time;  无论是修改access time还是modify time,change time总会改变
-m:仅修改modify time;
-t STAMP
[[CC]YY]MMDDhhmm[.ss]      
date 设置时间时格式:date [MMDDhhmm[[CC]YY][.ss]]

2.bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示 bash的基础特性:命令的执行状态结果

命令执行的状态结果:
bash通过状态返回值来输出此结果:
成功:0
失败:1-255

命令执行完成之后,其状态返回值保存于bash的特殊变量$?中;

bash的基础特性之:命令行展开 ~:自动展开为用户的家目录,或指定的用户的家目录;

{}:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径;
例如:/tmp/{a,b} 相当于 /tmp/a /tmp/b

请使用命令行展开功能来完成以下练习:

  1. (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d mkdir /tmp/{a,b}_{c,d} (2)、创建/tmp/mylinux目录下的: mylinux/ ├── bin ├── boot │   └── grub ├── dev ├── etc │   ├── rc.d │   │   └── init.d │   └── sysconfig │   └── network-scripts ├── lib │   └── modules ├── lib64 ├── proc ├── sbin ├── sys ├── tmp ├── usr │   └── local │   ├── bin │   └── sbin └── var ├── lock ├── log └── run

[root@localhost ~]# mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scirpts},lib/modules,lib64,proc,sbin,sys,tmp,usr/{local,bin,sbin},var/{lock,log,run}}

4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

文件:两类数据
元数据:metadata
数据: data

a.文件的元数据是指文件的属性、大小、创建时间、访问时间、属主属组等信息。

b.三个时间戳:

access time:访问时间,简写atime,读写文件内容

           modify time: 修改时间,mtime,改变文件内容(数据)          
           change time:改变时间,ctime,元数据发生改变    
           
c.修改文件的时间戳:touch    

       touch [OPTION]...FILE...

           -a:only atime

           -m:only mtime

不能单独修改ctime, 无论是修改access time还是modify time,change time总会改变

-s STAMP                           [[CC]YY]MMDDhhmm[.ss]

-c:如果文件不存在,则不予创建

5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果? 1.命令别名:alias

alias:显示当前shell进程所有可用的命令别名    alias NAME="VALUE":命名别名

   注意:在命令行中定义的别名,仅对当前shell进程有效,如果想永久有效,要定义配置文件

   仅对当前用户:~/.bashrc

   对所有有效:/etc/bashrc

在命令中引用另一个命令的执行结果: 通常借助管道,前一个命令的输出作为另一 个命令的输入.

[root@localhost ~]# cat /etc/passwd | wc -l

 [root@localhost ~]# 43

6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。

[root@localhost ~]# ls -d /var/l*[[:lower:]]

7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。

[root@localhost ~]# ls -d /etc/[[:digit:]]*[^0-9]

8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。

[root@localhost ~]# ls -d /etc/[^a-z][a-z]*

9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。

~]#touch "tfile-date +%F-%H-%M-%S"

10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。 [root@localhost ~]# mkdir /tmp/mytest1 [root@localhost ~]# cp -r /etc/p*[^0-9] /tmp/mytest1/

11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。

[root@localhost ~]# mkdir /tmp/mytest2 [root@localhost ~]# cp -r /etc/*.d /tmp/mytest2

12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

[root@localhost ~]# mkdir /tmp/mytest3 [root@localhost ~]# cp -r /etc/[1,m,n]*.conf /tmp/mytest3

原创文章,作者:big_dream,如若转载,请注明出处:http://www.178linux.com/48925