Linux学习笔记,总第八篇,实第四篇


一、杂项知识整理:

1、cd - 切换至前一个目录;~- 用作指定前一个目录,~+ 当前目录:当程序调用时使用。例如:

    [root@localhost ~]# cd ~-
    [root@localhost testdir]# cd -
    /root
    [root@localhost ~]# cp iotop.txt ~-
    cp:是否覆盖"/root/shelltest/iotop.txt"? y
    "iotop.txt" -> "/root/shelltest/iotop.txt"
    [root@localhost ~]# cp iotop.txt -
    "iotop.txt" -> "-"
    [root@localhost ~]# ls
    -  anaconda-ks.cfg  iotop.txt  shelltest  vimrc

2、搜索大小写时大小写搜索顺序为a A b B c C d D...z Z。例如:

    [root@localhost project]# touch {a,A,b,B,c,C,d,D}.{txt,log}    
    [root@localhost project]# ls
    [aAbBcCdD].log  {aAbBcCdD}.txt  a.txt  B.log  c.log  C.txt  d.txt   test.b
    {aAbBcCdD}.log  a.log           A.txt  b.txt  C.log  d.log  D.txt   test.c
    [aAbBcCdD].txt  A.log           b.log  B.txt  c.txt  D.log  test.a  test.d
    [root@localhost project]# ls [a-c].txt
    a.txt  A.txt  b.txt  B.txt  c.txt
    [root@localhost project]# ls [a-C].txt
    a.txt  A.txt  b.txt  B.txt  c.txt  C.txt
    [root@localhost project]# ls [A-c].txt
    A.txt  b.txt  B.txt  c.txt

3、文件命名最长4095个字节,用/分割的路径不能超过255个字节。查看时不同颜色不同的类型,

    蓝色为目录,绿色为可执行文件,红色为压缩文件,浅蓝色为链接文件,灰色为其它文件。

4、文件通配符:[[:digit:]]任意数字,相当于0-9;[[:lower:]]任意小写字母;

    [[:upper:]]任意大写字母;[[:alpha:]]任意大小写字母;[[:alnum:]]任意数字或字母;    

    [[:space:]]空格;[[:punct:]]标点符号。

5、关于复制:

    当复制单个文件时:文件不存在则直接复制文件过去。文件存在则覆盖原有文件(危险操作)。

        当存在且为文件夹时提示无法覆盖文件夹,复制至同名文件夹下时会新建文件在目录下。

    当复制多个文件时:文件夹不存在则报错。存在且为文件时报错提示不是目录。

        当存在且为目录时,在目录下存放。

    当复制文件夹时,用-r选项:当目标不存在时创建同名目录并复制所有文件。当存在且为文件时,

        报错。当存在且为目录时,在目录下新建同名目录并复制所有文件,若在其父目录复制,

        则提示是否覆盖。

6、alias -a 暂时全部取消别名


二、详细命令及事例

1、stat命令

    查看文件状态,包括atime,mtime,ctime,例如:

    [root@localhost project]# stat a.log     
      文件:"a.log"
      大小:0         块:0          IO 块:4096   普通空文件
    设备:803h/2051dInode:344074      硬链接:1
    权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
    环境:unconfined_u:object_r:unlabeled_t:s0
    最近访问:2016-07-28 14:43:55.199650268 +0800
    最近更改:2016-07-28 14:43:55.199650268 +0800
    最近改动:2016-07-28 14:43:55.199650268 +0800
    创建时间:-

2、cp命令

    -i 交互式

    -r或R 递归复制,复制目录

    -d 复制软链接时,只复制链接文件,但复制之后一般都无法使用

    -a 归档,与-dpR参数相同,保留目录,保留属性,递归处理

    -f force

    -v 显示过程

    -b 删除、覆盖目的文件先备份,备份的文件或目录亦建立为符号链接并指向原文件或者目录,

        如果没有这个参数,复制过程中若遇到符号链接,则会直接复制原文件或目录,

        备份在复制后的目录中,例如:

[root@localhost tmp]# ls
inittab                                    yum_save_tx.2016-07-23.17-35.u84Y8w.yumtx
ks-script-Zx8_N3                           yum_save_tx.2016-07-23.17-37.gWPW8r.yumtx
md0                                        yum_save_tx.2016-07-23.17-37.iPdlJd.yumtx
md1                                        yum_save_tx.2016-07-23.17-43.vAIAgh.yumtx
md3                                        yum_save_tx.2016-07-24.17-47.irgS7X.yumtx
yum.log                                    yum_save_tx.2016-07-26.16-57.W9xyGR.yumtx
yum_save_tx.2016-07-23.17-35.BQeZtd.yumtx  yum_save_tx.2016-07-26.21-07.12PgzA.yumtx
[root@localhost tmp]# cd /testdir/tmp/
[root@localhost tmp]# ls
inittab                                     yum_save_tx.2016-07-23.17-35.u84Y8w.yumtx
inittab~                                    yum_save_tx.2016-07-23.17-35.u84Y8w.yumtx~
ks-script-Zx8_N3                            yum_save_tx.2016-07-23.17-37.gWPW8r.yumtx
ks-script-Zx8_N3~                           yum_save_tx.2016-07-23.17-37.gWPW8r.yumtx~
md0                                         yum_save_tx.2016-07-23.17-37.iPdlJd.yumtx
md0~                                        yum_save_tx.2016-07-23.17-37.iPdlJd.yumtx~
md1                                         yum_save_tx.2016-07-23.17-43.vAIAgh.yumtx
md1~                                        yum_save_tx.2016-07-23.17-43.vAIAgh.yumtx~
md3                                         yum_save_tx.2016-07-24.17-47.irgS7X.yumtx
md3~                                        yum_save_tx.2016-07-24.17-47.irgS7X.yumtx~
tmp                                         yum_save_tx.2016-07-26.16-57.W9xyGR.yumtx
yum.log                                     yum_save_tx.2016-07-26.16-57.W9xyGR.yumtx~
yum.log~                                    yum_save_tx.2016-07-26.21-07.12PgzA.yumtx
yum_save_tx.2016-07-23.17-35.BQeZtd.yumtx   yum_save_tx.2016-07-26.21-07.12PgzA.yumtx~
yum_save_tx.2016-07-23.17-35.BQeZtd.yumtx~

三、课后作业及练习

1、只显示隐藏文件 

    [root@localhost tmp]# ls -ad .*    
    .  ..  .font-unix  .ICE-unix  .Test-unix  .X11-unix  .XIM-unix

2、只显示目录;三种方法:

    [root@localhost testdir]# ls -aF | grep -n /    
    1:./
    2:../
    7:copytest/
    9:lost+found/
    10:shelltest/
    11:test.bak/
    12:tmp/
   
    [root@localhost testdir]# ls -ad */
    copytest/  lost+found/  shelltest/  test.bak/  tmp/
    
    [root@localhost testdir]# ls -ap | grep  /
    ./
    ../
    copytest/
    lost+found/
    shelltest/
    test.bak/
    tmp/

3、显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录:

   [root@localhost project]# ls 1*[[:digit:]]*[[:lower:]]
   1a2a.log

4、显示/etc目录下任意一位数字开头且以非数字结尾的文件或目录:

    [root@localhost project]# ls [[:digit:]]*[^[:digit:]]    
    11455455ggg.c  1a2a.log

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

    [root@localhost project]# ls [^[:alpha:]][[:alpha:]]*
    1a2a.log  ;aa557.log  [aAbBcCdD].log  {aAbBcCdD}.log  [aAbBcCdD].txt  {aAbBcCdD}.txt

6、显示/etc目录下所有.conf结尾且以m,n,r,p开头的文件或目录:两种方法:

    [root@localhost project]# ls /etc/[mnrp]*.conf    
    /etc/man_db.conf  /etc/nsswitch.conf  /etc/resolv.conf  /etc/rsyslog.conf
    /etc/mke2fs.conf  /etc/pcp.conf       /etc/rsyncd.conf
    [root@localhost project]# ls /etc/{m,n,r,p}*.conf
    /etc/man_db.conf  /etc/nsswitch.conf  /etc/resolv.conf  /etc/rsyslog.conf
    /etc/mke2fs.conf  /etc/pcp.conf       /etc/rsyncd.conf