一 用户管理命令

(*)用户信息文件:  /etc/passwd
        aa:x:501:501:空:/home/aa:/bin/bash
        第一列:用户名
        第二列:密码位
        第三列:UID     用户ID            =>500       普通用户
        第四列:GID     初始组ID
        第五列:用户说明
        第六列:家目录
        第七列:用户登录之后的权限

    影子文件:    /etc/shadow //存放密码的文件

    组信息文件:   /etc/group

        zhangsan:x:500:
        组名:组密码位:组ID:组中附加用户


    1   添加用户
        useradd  用户名        

        useradd  选项  用户名
        选项:
            -g  组名  指定初始组       
            -G  组名  指定附加组,把用户加入组,使用附加组
            -c  添加说明
            -d  手工指定家目录,目录不需要事先建立/home/
            -s      /bin/bash(nologin禁止登陆)  手工指定用户登录之后的权限   


        useradd  -g  aa  bb     添加bb用户,同时指定初始组为aa
        useradd  -G  user1  aa  添加用户aa,指定附加组为user1


        初始组:每个用户初始组只能有一个,一般都是和用户名相同的组作为初始组
        附加组:每个用户可以属于多个附加组。要把用户加入组,都是加入附加组

    2   设定密码            
        passwd          用户名
        passwd          改变当前用户密码
        passwd  root        改变root密码

    3   删除用户                
        userdel  -r  用户名
            -r  连带家目录一起删除

    4   添加组             
        groupadd  组名

    5   删除组             
        groupdel  组名        注意:组中没有初始用户。

    6   把已经存在的用户加入组                 

        gpasswd  -a  用户名  组名        用户加入组
        gpasswd  -d  用户名  组名        把用户从组中删除

二   用户相关命令              
    1   id  用户名     显示用户的UID,初始组,和附加组
        [root@localhost home]# id 用户

    2   su  -  用户名      切换用户身份          
            -   连带环境变量一起切换

(*)三 ACL权限
给特殊身份的用户设置权限。

1   getfacl  文件名        查询文件的acl权限

    2   setfacl  选项  文件名        设定acl权限  (set 设置)
                -m          设定权限
                -b          删除权限

        setfacl  -m  u:用户名:权限   文件名
        setfacl  -m  g:组名:权限   文件名

        setfacl  -m u:aa:rwx  /test     给test目录赋予aa是读写执行的acl权限

        setfacl -m  u:cc:rx  -R  soft/      赋予递归acl权限,只能赋予目录
            -R  递归  

        setfacl -b  /test                删除acl权限
        setfacl -x  u:用户名  文件名      删除指定用户的ACL权限

    3   setfacl  -m d:u:aa:rwx -R /test     acl默认权限。d 含义:目录  dir

默认权限只能赋予目录
注意:如果给目录赋予acl权限,两条命令都要输入
-R 递归
-m u:用户名:权限 -R 只对已经存在的文件生效
-m d:u:用户名:权限 -R 只对未来要新建的文件生效

(*)四 输出重定向和多命令顺序执行

1   输出重定向
            把应该输出到屏幕的输出,重定向到文件。

            >   覆盖
            >>  追加

        ls  >  aa       覆盖到aa
        ls  >>  aa      追加到aa

        ls  gdlslga  2>>aa      错误信息输出到aa       强调:错误输出,不能有空格
                    2 错误信息

        lss  >>  aa  2>&1   错误和正确都输入到aa,可以追加
                    2>&1    把标准错误重定向到标准正确输出
                      & 后台运行 
        lss  >>  aa  2>>/tmp/bb     正确信息输入aa,错误信息输入bb

服务和进程管理

进程管理三个主要任务:
    判断服务器健康状态
    查看所有正在运行的进程
    强制终止进程

一   进程查看        

    1   ps  aux     查看当前系统所有运行的进程
        -a  显示前台所有进程
        -u  显示用户名
        -x  显示后台进程

        user: 用户名
        pid:    进程id。PID        1  init  系统启动的第一个进程
        %CPU    cpu占用百分比
        %MEM    内存占用百分比
        VSZ 虚拟内存占用量     KB
        RSS 固定内存占有量
        tty 登录终端                tty1-7  本地终端        1-6 字符  7图形 pts/0-5
                                alt+F1-F7

        stat    状态      S:睡眠        D:不可唤醒  R:运行      T:停止  Z:僵死

W:进入内存交换 X:死掉的进程 <:高优先级 N:低优先级
L:被锁进内存 s:含子进程 +:位于后台 l:多线程
start 进程触发时间
time 占用cpu时间
command 进程本身

2   pstree       查看进程树
    3   top
        第一行:    系统当前时间      系统持续时间      登录用户        1,5,15分钟之前的平均负载
        第二行:进程总数
        第三行:CPU占用率      %id     空闲百分比
        第四行:内存使用:   总共      使用      空闲      缓存
        第五航:swap使用

        操作命令        M   内存排序
                    P   CPU排序
                    q   退出

    4   进程管理        终止进程
         ps aux    组合使用
        kill  PID       结束单个进程  结束进程
        -9  强制

         Pstree  进程树
        killall  -9   进程名       结束一类进程
        pkill    -9   进程名

Killall sshd

W 判断登录用户
        pkill  -9  -t  终端号  把某个终端登录的用户踢出
        pkill  -9  -t tty1  把本地登录终端1登录用户踢出



二   linux服务管理

    1   分类
        1)系统默认安装的服务         
        2)源码包安装的服务 
    (一)系统默认安装的服务
    1   确定服务分类
        chkconfig  --list       查看服务的自启动状态
            运行级别:0-6
                0   关机                       
                1   单用户模式
                2   不完全多用户,不包含N FS服务  无网络登录
                3   完全多用户   字符界面   
                4   未分配
                5   图形界面
                6   重启

                init  0  halt 关机        init 5  startx  init 3
                init  6 重启

                runlevel            查询系统当前运行级别


                vi  /etc/inittab
                id:3:initdefault:       定义系统默认运行级别

    2   独立的服务器管理        

        1)启动            
            ①
            /etc/rc.d/init.d/服务名   start|stop|restart|status
            /etc/rc.d/init.d/httpd  start

            ②
            service   服务名   start|stop|restart|status

        2)自启动       
            ①
            chkconfig  --level  2345  服务名  on|off

            ②           
            vi  /etc/rc.local---->/etc/rc.d/rc.local
            /etc/rc.d/init.d/httpd  start

    3   ntsysv
        所有系统默认安装服务都可以使用ntsysv命令进行自启动管理

    (二)源码包安装的服务
        1源码包安装的服务           

        1)绝对路径启动
        /usr/local/apache2/bin/apachectl  start 

        2)自启动
        vi /etc/rc.local
        /usr/local/apache2/bin/apachectl  start

总结:
服务管理:
RPM包安装服务
独立的服务
启动:
/etc/rc.d/init.d/服务名 start
service 服务名 start

自启动:
                chkconfig  --level  2345  服务名  on|off
                vi  /etc/rc.local       推荐
                    /etc/rc.d/init.d/httpd  start

    源码包服务
        启动
                /usr/local/服务名/bin/服务名二进制执行文件  start

        自启动
                vi  /etc/rc.local
                    /usr/local/apache2/bin/apachectl  start

三   计划任务

        echo  11  >>  /root/aa      在aa文件中追加11.一会定时任务验证用

        循环定时任务                      
        crontab  -e     编辑定时任务
        *  *  *  *  *  命令
        10  *  31  *  *  命令
        10  *  *  *  *  命令
        5  4  *  5,7,10  *  命令
        */10  *  *  *  *  命令

        第一个:一小时中第几分钟        0-59
        第二个:一天中第几个小时        0-23
        第三个:一个月中第几天     1-31
        第四个:一年第几个月          1-12
        第五个:一周中星期几          0-6     

        crontab  -l     查看系统定时任务
        crontab  -r         删除定时任务

注意事项:
选项都不能为空,必须填入,不知道的值使用通配符*表示任何时间
每个时间字段都可以指定多个值,不连续的值用,间隔,连续的值用-间隔
间隔固定时间执行书写为*/n格式
命令应该给出绝对路径
星期几和第几天不能同时出现
最小时间范围是分钟,最大时间范围是月

命令补充:
cat /proc/cpuinfo 文件保存了CPU设备信息
dmesg 查看系统启动信息

cat  /var/log/dmesg     系统启动信息日志

        dmesg | grep eth0       查看eth0信息
        dmesg | grep CPU            查看cpu信息