##文件管理

###文件管理类命令

ls,

查看:cat,more,less,tail,head,tac

复制:cp

移动:mv

删除:rm

创建:touch

元数据属性:stat

查看内容类型:file

文本编辑器:nano,vi


###Linux的文件类型

   

       普通文件:-,f

       目录文件:路径映射d

       链接文件(符号链接):软连接l

       设备文件:

           字符设备:c,一次存取一个字符

      块设备:b

       命名管道:p

            fi,fo

  套接字文件:s

   

  

###Linux的时间戳

   

     访问时间:最近一次访问的时间

     修改时间:写数据

     改变时间:元数据改变的时间  


###ls 使用默认选择当前目录

   

    -a:显示所有文件,包含隐藏文件

    -A:不现实.和..常见的通用路径

    --color:显示颜色

    -l:长格式显示

        文件类型  权限 硬链接数 属主 属组 最近一次的修改时间 文件名->原始文件

    -d:显示目录自身的属性,通常与-l同时使用

    -r:实现逆序显示

    -R:递归显示

    -i:inode号,index node

    -h:文件大小以人类易读格式显示

       tree 

          #cd /etc/yum.repos.d/

          #wget http://172.16.0.1/centos6.5.repo

          #rm CenOS-Base.repo

          #yum -y install tree

          I

  

***名称解析 : name resolving***

###bash shell的特性之四:命令别名

   

      clear 清屏

  alias:当前shell中定义的所有别名:

        任何随进程而生的属性,会在进程结束,属性消失

      alias 别名=‘原始命令’

      unalias 别名 取消定义的别名

    在命令前加\使用命令本身,而不是别名


##查看纯文本文件 

  

  file FILE..:查看文件内容的格式

  cat:将文本连接起来显示在标准输出上

      控制符 如换行符

      -E --show-ends 显示结束符$

      -e:等于-vE

      -v:显示非打印符

      -n:显示每行按顺序编号

      -s:将多个连续的空白行合并显示一个空白行

     tac:逆序显示文件


###分屏显示

 

more:只支持向后翻(文件尾部以后)

less:支持前后翻 

head:

  -n #:显示前多少行

  tail 

  -n # 显示后多少行

  -f:

###echo命令的用法:

 

  -e

    \b:删除前面的字符

    \t:制表符

    \v:垂直制表符

    \n:换行符

    \0NNN()

    开始\033[#      #       1

              3前景色  颜色(1-7)

4背景色

      结束\033[0m

    -n:不为显示内容自动换行

###文件操作

 

cp copy 


cp  SRC DEST

  假如SRC是一个文件:

        如果目标是一个文件且目标存在:覆盖

如果目标文件不存在:创建新文件

    如果目标存在,且是个目录:复杂源至目标目录中,并保持原名

     cp SRC ... DEST

    假如SRC有多个文件:

        如果目标存在,且是一个文件:复制无法进行

      如果目标存在,且是一个目录:复制各文件至目标目录中,并保持原名

      如果目标不存在:复制无法进行

    假如SRC只有一个且是目录:-r

      如果目标是一个文件且目标存在:失败

  如果目标文件不存在:创建新目录

  如果目标存在,且是个目录:复制源目录到目标目录中,并保持原名

cp命令的常用选项:

     

    -r:递归

    -i:提示,交互

    -f:强制覆盖

    -a: -dr 保留所有的文件信息

    -d:当源为连接文件时,复制链接文件本身,而非指向的源文件

    -p:保持原有属性


mv: 

     

     移动,剪切,与cp相近

     可以直接移动目录,不需要-r选项


rm:

     

      移除,删除非空目录 rm -rf


 touch:用来修改时间戳,创建空文件

       

       -c:不创建空文件,只修改时间戳

       -t:指定时间戳

       -a:仅修改访问时间

       -m:仅修改修改时间

     

  stat命令:显示文件源数据信息,详细信息

      

          stat FILE 

          -t 指定特定时间

     

  Linux编辑器

  

    行编辑器:sed (使用于脚本)

    全屏编辑器:nano,vi,vim       


###bashshell的特性五:globbing 文件名通配

  通配符:

     

     *:匹配任意长度的任意字符

     ?:匹配任意单个字符

     []:匹配指定字符范围内的任意单个字符,不区分大小写

       [[:upper:]]:大写字母

       [[:lower:]]:小写字母

       [[:alpha:]]:所有字母

       [[:digit:]]:所有数字

       [[:alnum:]]:字母+数字

       [[:space:]]:空格

       [[:punct:]]:标点符号 特殊字符

     [^]:匹配指定字符范围外的任意单个字符 

       例如: 非数字[^0-9] 


###练习

练习一: 复制/var目录下所有1开头,以一个小写字母结尾,且中间出现一位数字的文件或目录至/tmp下

  cp /var/l*?*[[:lower:]] /tmp


练习二: 复制/etc/目录下以P开头,中间跟了任意字符,并以d结尾的文件至/tmp/a目录中

    cp -r /etc/p*d /tmp/a

练习三:复制/etc/目录下以P开头,中间跟了4个任意字符,并以d结尾的文件至/tmp/a目录中,如果a 不存在,先创建出来

 

  cp -r /etc/p????d /tmp/a

   

练习四: 复制/etc/目录下以任意一位数字开头,并以非数字结尾的文件至/tmp/b目录中

    cp -r /etc/[0-9]*[^0-9] /tmp/b

练习五: 复制/etc/目录下以非字母开头,后面跟了一个字母及其他任何长度字符的文件至/tmp/c目中

       cp -r /etc/[^[:alpha:]][[:alpha:]]* /tmp/c/

       

     

##用户和权限管理:

1.用户是什么?

 

用户:资源获取标识符,资源分配,安全权限模型的核心要素之一

密码:来实现用户认证的       

2.没有用户,能否使用

       

        能使用    

         


###/etc/passwd

加密方法:

           

       对称加密:如果加密、解密使用相同的密码称之为对称加密

            DES,3DES,AES

  非对称加密:DSA,RSA

  单向加密:雪崩效应,定长输出,不可逆

            MD5:信息摘要  128bit定长输出16个字符

    SHA1:安全的哈希算法 160bit 

                    CRC32:循环冗余校验码


###密码数据库:/etc/shadow

        6 sha512

  1 MD5

  $加密算法$8位盐$乱码

        加密 : openssl passwd -1 -salt 12345678

        输入密码  然后加密成功

       

###  

组可以理解为一个用户容器,里面装这角色


文件:

 

  /etc/group

      组名:密码占位符:GID:用户列表(附加组)

  /etc/gshadow 密码

      

安全上下文:

    

    运行中的进程有其属主和属组:取决于进程的属组和属主  

***/etc/skel 默认复制文件地址**

***/etc/defauit/useradd 定义默认家目录、环境配置文件目录等***    

##用户管理命令

创建用户:

    

    useradd UserName

    生成的属性信息

    /etc/passwd:

    用户名:x(密码占位符):UID:GUID(基本组ID):用户备注信息(多个以,隔开):家目录:默认shell

    /etc /shells:当前系统的安全shell列表           

    

useradd:adduser

   

  -u UID:指定UID

  -g GID:指定GID,即用户的基本组,但GID要事先存在

  -G GID:指定用户的额外组,但GID要事先存在

  -d 目录: 指定家目录

  -c 备注:备注

  -s:shell:指定默认shell,应该指定使用/etc/shells文件中出现的shell

  -m:创建用户时,强制给用户创建家目录

  -M:创建用户时,但不创建家目录

  -D: 改变其默认shell 

  -r: 创建系统用户 特点:id 1-499 不会为用户创建家目录 默认shell为/sbin/nologin

  id Username :显示用户的id号


userdel:删除用户,默认会保留家目录

     

      userdel UserName

      -r:一并删除家目录 

     

groupadd GrpName 

     

      -g GID:创建组并为其指定GID

  

  用户类别

    

    管理员:0

    普通用户:1-65535

        系统用户:1-499

  登 陆用户:500+


用户组:

 

  管理员组:

  普通组:

 

以用户为视角,组可以分为两类:

   

      基本组:显示在/etc/passwd中GID字

      段组,为用户的基本组

      额外组:附加组:/etc/group


 设定用户密码:passwd


     普通用户:passwd

     管理员:

        改自己密码:passwd

改其他用户密码:passwd UserName

         -l:锁用户 用户密码前加两个!

-u:解锁

密码安全性策略:足够复杂


  够长、交叉应用数字、大写字母、小写字母和特殊字符中的至少三种

  尽量避免使用易猜测的密码:

  定期更换:

 

/etc/shadow文件格式:


  登陆名:加密密码:最近一次的密码修改时间(距离1970-1-1的时间):最短使用期限:最长使用期限:警告区间:非活动区间(登陆就要修改密码):账号的过期期限:预留段

  -l: 锁用户

   

设定组密码:gpasswd GroupName    

  

  

  修改用户的属性定义(chsh):

  

  chsh:修改默认的shell

  chfn:修改用户注释

   

 usermod:跟useradd命令使用方法类似

 

    -u UID:

-g GID:

        -G GID:默认会覆盖原有的附加组,如果要是添加,可以同时使用-a选项

        -c string

-d new home 默认不会迁移用户的家目录,如果要迁移,同时使用-m选项

-s SHELL:

-l New_login_name:修改用户登录名称

-e 过期期限

-f 非活动期限

-L:锁定用户账号

-U:解锁

如何修改组属性定义:


  groupmod:

        -g GID

    -n New Group 修改用户的属组

  groupdel

  gpasswd


修改账号日期属性:


  chage:修改用户的日期属性

  -E:距离1970-1-1号的时间天数,过了这个时间,账号不可访问

  -I: 设置活动天数

  -m:修改密码最小使用时间

  -M:修改密码最长使用时间

  -W:警告时间

查看用户的相关信息:

   

  id

      -n 显示名称

      -u 显示UID

      -g:显示基本组ID

      -G:显示所有组ID

   

  who 显示当前登录用户

         whoami:显示当前终端登录的用户

           su:Swith User

      切换用户

        -l:登陆式切换

    -c:不切换用户,直接执行命令     

       

###练习

   1.创建一个用户mandriva,其中ID号为2002,基本组为distro(组ID为3003) 附加组为linux

      

      useradd -u 2002 -g distro =G linux mandriva

   2.创建一个用户fedora,其全名为Fedora Community,默认为shell为tcsh 

      

      useradd -c "Fedora Community" -s /bin/tcsh fedora 

     

   3.修改mandriva的ID号为4004,基本组为Linux,附加组为distro和fedora

      

      usermod -u 4004 -g linux -G distro,fedora

   4.给fedora加密码,并设定其密码最短使用期限为2天最长为50天

   

       passwd fedora 

       chage -m 2 -M 50 fedora 

   

   5.将mandriva的默认shell改为/bin/bash

          

          usermod -s /bin/bash mandriva 

          chsh 

          

**答案不唯一**