2018/10/18 Linux 第2周笔记

一. Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。

    主要命令有:ls , cp , pwd  , rm , mv 
       ls   查看
         语法:
           ls(选项)(参数)
            -a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出);
            -A:显示除影藏文件“.”和“..”以外的所有文件列表;
            -C:多列显示输出结果。这是默认选项;
            -l:与“-C”选项功能相反,所有输出信息用单列格式输出,不输出为多列;
            -d:仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向
                  的目录列表;
            -r: 逆序显示文件; 
            -R:递归处理,将指定目录下的所有文件及子目录一并处理;
            -h:对文件大小进行单位换算,可能影响精度
                  示例:
                       ls -la  ---显示详细的所有文件,包括隐藏文件; 
                       ls -lh  ---查看文件大小,用人类的方法查看。

              cp    拷贝
                    语法:
                        cp [OPTION]... [-T] SOURCE DEST ------单源复制
                        cp [OPTION]... SOURCE... DIRECTORY ----多源复制
                        cp [OPTION]... -t DIRECTORY SOURCE..
                    参数:
                           -a :相当于 -pdr 的意思; 
                           -d: 若源文件为连接文件的属性(link file),则复制 连接文件属性而非文件本身。
                           -f: 强制的意思,若有重复或其它疑问时,不会询问用户,而强制复制; 
                           -i: 若目标文件已存在,在覆盖时会先询问是否真的操作。
                           -l: 建立硬连接的连接文件,而非复制文件本身。
                           -p:与文件的属性一起复制,而非使用默认属性。
                           -r: 递归持续复制,用于目录的复制操作。
                           -s: 复制成符号连接文件,即“快捷方式”文件。
                           -u:若目标文件比源文件旧,更新目标文件
                     示例:
                               cp abcfile.txt rootfile.txt  ---将源文件复制到当前路径并且改名; 
                               cp -p abcfile.txt rootfile2.txt  ---将源文件复制到当前路径并且改名,并且连属性也一起复制; 
                               cp -i abcfile.txt rootfile3.txt    ---当目的文件已存在,将会有提示是否盖;    
                               cp -r /tmp/ /root/test/ --- 复制目录
                               cp -s abcfile.txt abcfile_s.txt  ---软链接文件
                               cp -l  abcfile.txt abcfile_l.txt ---硬链接文件

                 mv
                      语法:
                            mv [OPTION]... [-T] SOURCE DEST
                            mv [OPTION]... SOURCE... DIRECTORY
                            mv [OPTION]... -t DIRECTORY SOURCE...
                      参数:

                           --backup=<备份模式>:若需覆盖文件,则覆盖前先行备份; 
                           -b:当文件存在时,覆盖前,为其创建一个备份;
                           -f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;
                           -i:交互式操作,覆盖前先行询问用。
                                      如果源文件与目标文件或目标 目录中的文件同名,则询问用户是否覆盖目标文件。
                                      用户输入”y”,表示将覆盖目标文件;
                                      输入”n”,表示取消对源文件的移动。
                                      这样可以避免误将文件覆盖。 --strip-trailing-slashes:删除源文件中的斜杠“/”; 
                           -S<后缀>:为备份文件指定后缀,而不使用默认的后缀; --target-directory=<目录>:指定源文
                                             件要移动到目标目录;
                           -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
                      示例:
                              mv abcfile.txt /root/ 

                pwd     显示工作目录路径
                       语法:
                               pwd [OPTION]...
                      参数
                           --help:显示帮助信息;
                           --version:显示版本信息。

                  rm
                       语法:
                           rm [OPTION]... FILE...

                      参数:

                          -f:就是force的意思,强制删除。
                          -i :交互模式,在删除前咨询用户;
                          -r: 递归删除。常用在目录的删除
                     示例:
                             rm -f rootfile2.txt ---强制删除文件
                             rm -fr test ---强制删除目录

二. bashr的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。

             命令或程序的执行状态结果。状态结果分两类:成功或失败,可通过bash的特殊变量$?来查看;
             命令或程序执行成功时返回:0;
             命令或程序执行失败时返回:1-255。
   例: 
          命令正常:

                 [root@Cenots7-1 ~]# pwd
                 /root
                 [root@Cenots7-1 ~]# echo $?
                  0         
          命令失败:
                 [root@Cenots7-1 ~]# f
                 bash: f: command not found
                 [root@Cenots7-1 ~]# echo $?
                 127
          命令行展:
                  ~:展开为用户的主目录;
                      [root@Cenots7-1 ~]# cd ~
                      [root@Cenots7-1 ~]# pwd
                       /root              
                 ~USERNAME:展开为指定用户的主目录;
                       [root@Cenots7-1 ~]# cd ~abc
                       [root@Cenots7-1 abc]# 
                 {}:可承载一个以逗号分隔的列表,并将其展开为多个路径;
                       [root@Cenots7-1 bashtest]# touch {a,b}
                       [root@Cenots7-1 bashtest]# ls
                          a  b

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

       (1)、创建 /tmp 目录下的:a_c, a_d, b_c, b_d
                    [root@Cenots7-1 tmp]# touch {a_{c,d},b_{c,d}}
       (2)、创建/tmp/mylinux目录下的:

2018/10/18 Linux 第2周笔记

             [root@Cenots7-1 mylinux]# mkdir -pv {bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-      scripts},lib/modules,lib64,proc,sbin,sys}

2018/10/18 Linux 第2周笔记

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

                 文件的元数据包括:
                           文件名(File);
                            大小(Size);
                            数据块(Blocks);
                            IO块(IO Block);
                            设备(Device);
                            节点号(Inode);
                            硬链接(Links);
                            权限(Access);
                            文件所属主(Uid);
                            文件所属组(Gid);
                            最近访问时间  (Access  Time);
                            最近文件修改时间(Modify Time);
                            最近文件属性更改时间(Change   Time);

            可通过stat 命令查看
    **stat**
         语法:
              stat [OPTION]... FILE...  
                  时间戳:
                      Access: 2018-09-26 20:45:20.551079349 +0800
                      Modify: 2018-09-26 20:45:06.798078129 +0800
                      Change: 2018-09-26 20:45:06.798078129 +0800
        示例:
           [root@Cenots7-1 ~]# stat ag.txt
           File: 'ag.txt'
               Size: 7               Blocks: 8          IO Block: 4096   regular file
               Device: 803h/2051d      Inode: 33582155    Links: 1
               Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
               Context: unconfined_u:object_r:admin_home_t:s0
               Access: 2018-09-26 20:45:20.551079349 +0800
               Modify: 2018-09-26 20:45:06.798078129 +0800
               Change: 2018-09-26 20:45:06.798078129 +0800
                Birth: -
可通过touch 命令修改时间戳信息。
      ** touch**
           touch [OPTION]... FILE...
              -c: 指定的文件路径不存在时不予创建;
              -a: 仅修改access time;
              -m: 仅修改modify time;
               -t: STAMP
                    [[CC]YY]MMDDhhmm[.ss]
           例:
              [root@Cenots7-1 ~]# touch -c ag.txt ----access,modify,change 的时间全部改变;
              [root@Cenots7-1 ~]# touch -a ag.txt ----只改变access 时间; 
              [root@Cenots7-1 ~]# touch -m ag.txt ----modify与change 的时间都改变;

五.如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果。

      ** alias **  --命令别名
              ~]#alias NAME='COMMAND'
   撤销别名:
              ~]#unalias NAME
        注意:如用aiais 命令设置别名,只对该进程有效。
    例:
        [root@Cenots7-1 lib64]# alias pw='pwd' ----对pwd 设置别名为pw
        [root@Cenots7-1 lib64]# unalias pw  ---取消pwd 别名设置

     在命令中引用另一个命令的执行结果。
         $(COMMAND)
            例:
                 [root@Cenots7-1 ~]# mkdir $(date +%H-%M-%S)
                 ---在执行mkdir 之前先执行()里的 命令并将其输出的结果作为mkdir 的参数。

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

            [root@Cenots7-1 var]# ls -d ./1?[[:lower:]]
            ./13a

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

           [root@Cenots7-1 etc]# ls -d ./[[0-9]*[^0-9]     
           ./2abc

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

           [root@Cenots7-1 etc]# ls -d [^[:lower:]][a-z]*
           2a  2abc

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

扫描二维码关注公众号,回复: 3648909 查看本文章
           [root@Cenots7-1 tmp]# mkdir tfile-$(date +%F-%H-%M-%S)

十. 复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。

          [root@Cenots7-1 etc]# mkdir -p /tmp/mytest1
          [root@Cenots7-1 etc]# cp -R p*[^[:digit:]] /tmp/mytest1

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

          [root@Cenots7-1 etc]# mkdir -p /tmp/mytest2
          [root@Cenots7-1 etc]# cp -a *.d /tmp/mytest2

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

          [root@Cenots7-1 mytest2]# mkdir -p /tmp/mytest3
          [root@Cenots7-1 etc]# cp [1mn]*.conf /tmp/mytest3/

猜你喜欢

转载自blog.51cto.com/wuliaoren/2306922