2. 文件、目录管理
    2.1 有哪些文件目录
        2.1.1 /bin 
        2.1.2 /boot
        2.1.3 /dev
        2.1.4 /etc
        2.1.5 /home
        2.1.6 /lib  /lib64
        2.1.7 /meida
        2.1.8 /mnt
        2.1.9 /opt
        2.1.10 /proc
        2.1.11 /run
        2.1.12 /sbin
        2.1.13 /srv
        2.1.14 /sys
        2.1.15 /tmp
        2.1.16 /usr
        2.1.17 /var
        
    2.2 常用命令
        2.2.1 tree //以树形结构显示目录结构;  
              yum install -y tree  //安装tree包; 
              tree --hep //查看tree的用法, 或用 man tree; tree -L 2 //指定树的深度为2;
        2.2.2 ls /home/username // 列出用户名;     
              ls /etc/ssh/sshd_config  //列出配置文件
        2.2.3 useradd username //增加用户名字
        2.2.4 ldd /bin/ls  //查看一个文件依赖哪些库
        2.2.5 ls -l /proc/28/   //查看进程pid=28的进程目录
        
    2.3 ls命令详解
        2.3.1 ls -l 列出文件、目录
        2.3.2 ls -i 查看文件、目录的iNode号
            2.3.2.1 ls -i /root
            2.3.2.2 ls -i .
            2.3.2.3 ls -i .ssh/..
        2.3.3 ls -a 显示所有隐藏的文件、目录
        2.3.4 ls -t 按时间time排序
        2.3.4 ls -h 显示单位
        2.3.5 ls -d 只列出目录本身
        2.3.6 ll 是ls -l的别名
        2.3.7 which ll  查看ll文件的路径
        2.3.8 ls -la 
            2.3.8.1 列出的左边第一位d表示directory目录
            2.3.8.2 列出的左边第一位-表示文件
            2.3.8.3 列出的左边第一位c表示字符串设备
            2.3.8.4 列出的左边第一位l表示软链接文件,相当于快捷方式
            2.3.8.5 列出的左边第一位b表示块设备,如光盘、磁盘等
            2.3.8.6 列出的左边第一位s表示socket文件,用于进程间的通信
        2.3.9 cat 查看文本文档
        
    2.4 alias别名的使用
        2.4.1 alias  //查看系统的别名
        2.4.2 echo $PATH //输出PATH环境变量的值
        2.4.3 alias alibaba='ls -al'  //将ls -al命令用alibaba这个别名表示, 注意一般用单引号
        2.4.4 which alibaba //查看alibaba这个别名所在的路径
        2.4.5 unalias alibaba //取消alibaba这个别名
        
    2.5 绝对路径与相对路径
        2.5.1 绝对路径: 从根目录开始的路径
            2.5.1.1 ls /root/.ssh/authorized_keys
        2.5.2 相对路径: 相对当前目录所表示的路径
            2.5.2.1 ls .ssh/authorized_keys
  
    2.6 cd 命令
        2.6.1 cd /etc/sysconfig  //change directory to /etc/sysconfig
        2.6.2 cd - //进入上一次所在目录
        2.6.3 cd  //进入当前用户的家目录
        2.6.4 cd ~ //进入当前用户的家目录
        2.6.5 cd .. //返回上一级目录
   
    2.7 创建和删除目录
        2.7.1 mkdir  make directory 创建一个目录
            2.7.1.1 mkdir /tmp/newDir  
            2.7.1.2 mkdir -p /tmp/newDir1/newDir2  // -p表示创建一串目录
            2.7.1.3 mkdir -pv /tmp/newDir3/newDir4/newDir5 // -v表示可视化
        2.7.2 rmdir remove directory 删除一个空的目录,且只能是目录
            2.7.2.1 touch /tmp/2/3/1.txt  //创建一个空白文件
            2.7.2.2 !tree  //执行最近一次以tree开头的命令
            2.7.2.3 history //查看命令历史
        2.7.3 rm命令  remove 移除
            2.7.3.1 rm /tmp/johnson/2/3/1.txt  //移除1.txt文本文档,此处有询问
            2.7.3.2 rm -f /tmp/johnson/2/3/1.txt  //-f 表示force
            2.7.3.3 rm -r  //-r 表示recursive,指示rm将参数中列出的全部目录和子目录均递归地删除
            2.7.3.4 rm -rf  //-rf 常组合使用
            2.7.3.5 按两下Tab键可以显示目录后面的目录或文件
    
     2.8 PATH环境变量
         2.8.1 是环境变量,这个变量里面有多个绝对路径,用冒号:分割,在这些路径下的命令是可以直接敲出来,省略掉目录路径的;
         2.8.2 设置环境变量(临时的):PATH=$PATH:pathname
         2.8.3 修改环境变量为永久的: vi /etc/profile, 然后增加 PATH=$PATH:/pathname/
   
     2.9 cp 拷贝命令
         2.9.1 拷贝时所有的目录后面加/
         2.9.2 cp /etc/passwd /tmp/1.txt 
         2.9.3 cp -r /etc/passwd /tmp/1.txt //递归处理,将指定目录下的所有文件与子目录一并处理
         2.9.4 !$  //执行上一条命令最后一个参数
         2.9.5 /usr/bin/cp /etc/passwd /tmp/1.txt  //不再有询问语句
         2.9.6 cp -r /tmp/aminglinux /tmp/aming1/  //aming文件夹存在,放在其后
   
     2.10 mv 命令
         2.10.0 mv /etc/new1.txt /etc/2/
         2.10.1 当目标文件不存在时,可以更改文件名
         2.10.2 当目标文件存在时,自动到它的后面
         
     2.11 文件或目录权限
         2.11.1 所有者-所属组-其他用户
         2.11.2 chmod 700 1.txt  //change mod for 700(rwx------)
         2.11.3 --rw-----.  //此处的点表示受制于selinux
             2.11.3.1 setenforce 0 //临时关闭selinux
             2.11.3.2 getenforce  //查询
             2.11.3.3 vi /etc/selinux/config  //可以修改selinux的配置文件得到永久关闭selinux的效果
             2.11.3.4 chmod -R  //处理指定目录以及其子目录下的所有文件 
             2.11.3.5 chmod u=rwx,g=r,o=r newDir  
             2.11.3.6 chmod a+x newDir       
            
         2.11.4 chown //change owner
             2.11.4.1 chown user1:aming /tmp/yum.log
             2.11.4.2 chown :root /tmp/yum.log
             2.11.4.3 chown -R user1:aming /tmp/aming2  //-R:处理指定目录以及其子目录下的所有文件
        2.11.5 chgrp //change group
             2.11.5.1 chgrp user1 /tmp/yum.log
      
     2.12 umask
          2.12.1 file:  666= (rw-rw-rw-) - (-------wx) = rw-rw-r-- =644  即: 666-umask=file
          2.12.2 directory: 777 = (rwxrwxrwx) - (-------wx) = rwxrwxr-- = 744 即:777-umask=directory
     
     2.13 隐藏权限
        2.13.1 chattr  
             2.13.1.1 chattr +a //设置追加权限
             2.13.1.2 chattr -a //
             2.13.1.3 chattr +i //设置不允许修改文件的权限,如果是目录的话,只能修改目录之下的文件,不允许建立和删除文件
             3.10.1.4 chattr -i //   
        2.13.2 lsattr 查看
             2.13.2.1 lsattr -R  //查看子目录及文件
             2.13.2.2 lsattr -d  //查看当前目录
             2.13.2.3 lsattr -a  //查看所有包括隐藏的文件
             
     2.14 set_uid 和 set_gid
         2.14.0 https://wenku.baidu.com/view/cf3baa6a561252d380eb6ed7.html
         2.14.1 set_uid
             2.14.1.1 chmod u=rwxs file_name  //显示s
             2.14.1.2 chmod u=rws file_name //显示S
         2.14.2 set_gid
             2.14.2.1 chmod g=rwxs Directory_name
             2.14.2.2 chmod g=rws Directory_name
         2.14.3 sticky_bit  //t表示防删除位
         2.14.4 扩展
             2.14.3.1 df -h  //以更易读的方式显示目前磁盘空间和使用情况
             2.14.3.2 df -i  //以inode模式来显示磁盘使用情况
    
    2.15 软链接 和 硬链接
        2.15.1 软链接
            2.15.1.1 ln -s /tmp/yum.log /root/111/yum.log  //相当于一个快捷方式
            2.15.1.2 案例:
                     cp /boot/aminglinux.log /aming,log
                     rm /boot/aming.log
                     ln -s /aming.log /boot/aming.log
            2.15.1.3 做软链接尽量使用绝对路径
        2.15.2 硬链接
            2.15.2.1 ln 1.txt 1.head.txt
            2.15.2.2 ls -i 1_head.txt  //查看iNode号
            2.15.2.3 注意事项:
                2.15.2.3.1 文件做硬链接,不能跨分区;
                2.15.2.3.2 创建了一个文件,和另一个文件的iNode号一样
                2.15.2.3.3 不能对目录做硬链接
        
    2.16 find命令
        2.16.1 which ls //
        2.16.2 whereis ls //模糊查询
        2.16.3 locate 123 //yum install -y mlocate ,模糊查询
        2.16.4 一些常用快捷键
            2.16.4.1 ctrl + l //clear screen
            2.16.4.2 ctrl + d //exit/login
            2.16.4.3 ctrl + c //取消本次操作
            2.16.4.4 ctrl + u //往前删一行
            2.16.4.5 ctrl + e //移动光标到结尾处
        2.16.5 find 路径 -type f(文件) -mtime +1(一天以上) -o(或者) -name "*.conf"
            2.16.5.1 -mtime :  Modify, 表示更改文件内容的时间(iNode)
            2.16.5.2 -ctime :  Change, 表示权限、语言的改变
            2.16.5.3 -atime :  Access, 表示访问的时间
            2.16.5.4 -nmin -60(1小时以内)
            2.16.5.5 stat 1.txt //查看文件的具体信息
            2.16.5.6 ln 1_head.txt /tmp/1.txt.bak
                2.16.5.6.1 ls -l 1_head.txt
                2.16.5.6.2 ls -i 1_head.txt
                2.16.5.6.3 find / -inum 33583395 //查找一个文件iNode号为33583395的硬链接
            2.16.5.7 ls -l /root/2.txt
                2.16.5.7.1 date 
                2.16.5.7.2 find /root/ -type -f -nmin -120 -exec ls -l {} \; //-exec 表示显示后面的命令
                2.16.5.7.3 find /root/ -type f -nmin -150 -exec mv {} {}.bak \; //{}.bak为文件的格式名
                2.16.5.7.4 -size 10K/M
                
   2.17 文件后缀名
       2.17.1 语言的修改
           2.17.1.1 zh_CN.utf-8 //中文字符集编码
           2.17.1.2 LANG=en //英文
           2.17.1.3 echo $LANG //打印语言的类型         
    
   2.18 Linux和Windows互传文件
       2.18.1 可通过ftp, samba
       2.18.2 在Xshell、securecrt环境下,安装传输协议包
           2.18.2.1 yum install -y lrzsz
           2.18.2.2 sz 1.txt  //linux -> windows
           2.18.2.3 rz 1.txt  //windows -> linux  r:remote