用户管理:useradd、userdel、usermod、passwd、chsh、chfn、finger、id、chage

组管理:groupadd、groupdel、groupmod、gpasswd

权限管理:chown、chgrp、chmod、umask


/etc/passwd:

用户名:密码:UID:GID:注释:家目录:默认shell


/etc/group:

组名:密码:GID:以此组为其附加组的用户列表


/etc/shadow:

用户名:密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告时间:非活动时间:过期时间


useradd [options] USERNAME

   -u UID

   -g GID(基本组)

   -G GID...(附加组)

   -c "COMMENT"

   -d /path/to/directory

   -s SHELL

   -m -k

   -M 

   -r 添加系统用户


/etc/login.defs

/etc/shells:指定了当前系统可用的安全shell

SHELL


userdel [options] USERNAME

   -r 同时删除用户的家目录


id:查看用户的账号属性信息

 -u

 -g

 -G

 -n


修改用户账号属性

usermod [options] USERNAME

   -u UID

   -g GID

   -a -G GID:不使用-a选项,会覆盖此前的附加组

   -c 

   -d -m:

   -s 

   -l

   -L 锁定账号

   -U 解锁账号


chsh:修改用户的默认shell


chfn:修改注释信息


密码管理:

passwd [USERNAME]

  --stdin

  -l

  -u

  -d:删除用户密码


pwck:检查用户账号完整性


组管理

创建组:groupadd

groupadd

  -g GID

  -r 添加为系统组


groupmod

  -g GID

  -n GRPNAME


groupdel


gpasswd:为组设定密码


newgrp GRPNAME <--> exit


chage

  -d:最近一次的修改时间

  -E:过期时间

  -I:非活动时间

  -m:最短使用期限

  -M:最长使用期限

  -w:警告时间


三类用户:

u:属主

g:属组

o:其他用户


chown:改变用户属主(只有管理员可以用此命令)

chown USERNAME file,...

  -R:修改目录及其内部文件的属主

  --reference=/path/to/somefile file,...


chown USERNAME:GRPNAME file,...

chown USERNAME.GRRPNAME file,...


chgrp GRPNAME file,...

  -R

  --reference=/path/to/somefile file,...


chmod:修改文件的权限

修改三类用户的权限:

chmod MODE file,...

  -R

  --reference=/path/to/somefile file,...


修改某类用户或某些类用户权限:

u,g,o,a

chmod 用户类型=MODE file,...


修改某类用户的某位或某些位权限:

u,g,o,a

chmod 用户类型+|-MODE file,...


umask:遮罩码

666-umask

777-umask


文件默认不能具有执行权限,如果算得的结果中有执行权限,则将其权限加1;


umask:023

文件:666-023=643 ×

目录:777-023=754


站在用户登录的角度来说:SHELL的类型:

登录式shell

    正常通过某终端登录

    su - USERNAME

    su -l USERNAME

非登录式shell

    su USERNAME

     图形终端下打开命令窗口

    自动执行的shell脚本


bash的配置文件:

全局配置

/etc/profile,/etc/peofile.d/*.sh,/etc/bashrc

个人配置

~/.bash_profile,~./bashrc


profile类的文件:

    设定环境变量

    运行命令或脚本


bashrc类的文件:

    设定本地变量

    定义命令别名


登录式shell如何读取配置文件?

/etc/profile --> /etc/profile.d/*.sh --> ~./bash_profile --> ~./bashrc --> /etc/bashrc

非登录式shell如何配置文件?

~./bashrc --> /etc/bashrc --> /etc/profile.d/*.sh


bash:脚本解释器


管道和重定向:> < >> <<


地址总线:内存寻址

数据总线:传输数据

控制总线:控制指令


寄存器:CPU暂时存储器


INPUT设备:

OUTPUT设备:


系统设定

    默认输出设备:标准输出,STDOUT,1

    默认输入设备:标准输入,STDIN,0

    标准错误输出:STDERR,2


标准输入:键盘

标准输出和错误输出:显示器


I/O重定向:

Linux:

>:覆盖输出

>>:追加输出


set -C:禁止对已经存在文件使用覆盖重定向;强制覆盖输出,则使用 >|

set +C:关闭上述功能


2>:重定向错误输出

2>>:追加方式


&>:重定向标准输出或错误输出至同一个文件


<:输入重定向

<<:Here Document


管道:前一个命令的输出,作为后一个命令的输入

命令1 | 命令2 | 命令3 | ...