zoukankan      html  css  js  c++  java
  • Linux系统管理命令

      概括地讲,系统管理就是计划、安装和维护计算机系统。
      UNIX、Linux是多用户多任务操作系统;Windows操作系统是单用户多任务操作系统。Linux下,我们可能使用虚拟终端来使得多个用户同时工作,而windows下,每次只允许一个用户登陆系统。但这并不是说linux就比windows好,从方便性来说,windows是很适合使用的,尤其是对计算机小白来说,给他个linux系统,如果不是带UI,那他都不知道是干嘛用的。

    显示用户在线时间的统计信息————ac

    ac命令根据系统中wtmp文件里用户的登入/登出时间计算用户总的在线时间
    示例1:显示所有用户的登录时间
    ac -p
    -p 指定用户,如果没有指定用户则表示所有的用户
    ac -p root
    root 3726.94
    total 3726.94

    示例2:按日期显示当前用户的登录时间
    ac -d
    Jun 13 total 59.63
    Jun 14 total 110.13
    Jun 15 total 193.16
    Jun 16 total 131.41
    Jun 17 total 186.54

    新建用户帐户————adduser

    adduser这个命令并不是所有系统都支持的,它实际上是useradd命令的符号链接,指向/usr/sbin/useradd,如果adduser没法使用的话,就直接使用useradd。新建完帐户后,需要使用passwd设置密码后才能使用
    示例1:创建一个账号为jack用户
    useradd jack
    示例2:创建一个指定目录、有效期和归属组的帐户
    useradd -d /home/jack -e 2013-07-08 -g jack jack
    注意:-d是指定用户登录后的初始目录,可以不存在,但是登录后会报提示,用户目录不存在
    -e:是指定用户有效期,早于当前时间创建时候不会报错,但会登录不进去,因为已经失效了
    -g:指定用户组,用户组必须是存在的
    示例3:建立一个系统账户
    useradd -d -r /home/admin/ -g admin admin

    查找用户信息————finger

    finger命令用于查找、显示指定账户用户的有关信息,包括本地与远端主机的用户,账户名不分大小写。包括账户名、真实姓名、登录终端机、闲置时间、登录时间以及地址及电话信息。
    示例1:显示用户root的一般信息
    finger root
    Login: root Name: root
    Directory: /root Shell: /bin/bash
    On since Sat Jul 13 18:47 (CST) on pts/4, idle 1 day 21:48, from 192.168.1.11
    On since Sat Jul 13 18:44 (CST) on pts/5 from 192.168.1.11
    On since Sat Jul 13 18:48 (CST) on pts/6, idle 1 day 21:20, from 192.168.1.11
    On since Mon Jul 15 11:04 (CST) on pts/7, idle 0:01, from 192.168.192.56
    On since Sat Jul 13 18:50 (CST) on pts/8 from 192.168.1.11
    On since Mon Jul 15 09:39 (CST) on pts/9, idle 2:51, from 192.168.192.21
    On since Mon Jul 15 11:43 (CST) on pts/10, idle 1:57, from 192.168.192.56
    On since Mon Jul 15 14:06 (CST) on pts/11, idle 2:51, from 192.168.192.21
    On since Mon Jul 15 16:49 (CST) on pts/15 from 192.168.166.69
    No Mail.
    No Plan.

    示例2:显示用户root的详细信息

    finger -s root

    finger -s root
    Login Name Tty Idle Login Time Where
    root root pts/4 1d Sat 18:47 192.168.192.124
    root root pts/5 - Sat 18:44 192.168.192.124
    root root pts/6 1d Sat 18:48 192.168.192.124
    root root pts/7 1 Mon 11:04 192.168.192.56
    root root pts/8 2 Sat 18:50 192.168.192.124
    root root pts/9 2:57 Mon 09:39 192.168.192.21
    root root pts/10 2:03 Mon 11:43 192.168.192.56
    root root pts/11 2:57 Mon 14:06 192.168.192.21
    root root pts/13 48 Mon 16:03 192.168.189.36
    root root pts/15 2 Mon 16:49 192.168.166.69

    管理组信息————gpasswd

    gpasswd命令用于对系统中/etc/group文件的管理
    示例1:将用户jack添加到guest组中
    gpasswd -a jack guest
    groups jack
    就可以显示当前用户所属的群组

    示例2:将用户jack从guest组中移除
    gpasswd -d jack guest

    增加一个新组————groupadd

    示例1:新建一个名为test的组
    groupadd test
    示例2:新建一个指定组ID的名为test888的组
    groupadd -g 888 test888

    删除组————groupdel

    groupdel命令用于修改系统档案,删除不再需要的组。如果指定的组中包含用户,则必须先删除组里面的用户以后,才能删除组。
    groupdel test888

    修改组的相关信息————groupmod

    groupmod命令用来修改指定组的相关信息,包括组识别码和组名
    示例1:修改指定组的组名以及组ID
    groupmod -g 999 -n test99 test888
    将test888的组名及组ID都修改了
    示例2:强制系统使用已经存在的组ID
    groupmod -g 999 test999
    因为已经存在一个组ID为999的组,所以系统会提示错误信息,这时可以加上-o参数,输入命令
    groupmod -g 999 -o test999再回车就不会返回错误信息

    显示用户所在的组————groups

    groups命令在标准输入输出上输出指定用户所在组。每个用户属于/etc/passwd中指定的一个组合在/etc/group中指定的其他组
    示例1:显示jack 所在的组
    groups jack
    输出:groups jack
    jack : jack dialout video
    表示jack是上面三个组的成员

    启动组的影子密码————grpconv

    linux系统的用户和组密码分别放在/etc/目录下的passwd和group文件中。任何用户都可以读取,因此很不安全。影子密码将上述两个文件中的密码放在/etc/shadow和gshadow文件中,只允许系统管理员读取,同时把原密码置换为x字符,有效地强化了系统的安全性。grpconv命令将开启组的影子密码功能。
    输入这个命令后原本的加密密码都会变成x

    关闭组的影子密码————grpunconv

    gruunconv命令关闭组的影子密码,把密码从gshadow文件反存到group文件,同时/etc/gshadow文件消失。

    显示用户及其所属组的ID号————id

    id命令会显示用户以及所属组的实际ID与有效ID(RUID/RGID、EUID/EGID)。如果两个ID相同,则仅显示实际的ID(RUID/RGID)。若仅指定用户名,则显示用户及其所属组的ID,若不指定用户名,则显示当前用户的ID
    示例1:显示当前用户的信息
    id
    uid=30002(hadoop) gid=3001(hadoop) groups=16(dialout),33(video),3001(hadoop)

    示例2:只显示指定用户的ID值
    id hadoop
    uid=30002(hadoop) gid=3001(hadoop) groups=16(dialout),33(video),3001(hadoop)

    显示当前和过去登录用户的相关信息————last

    last命令可以显示指定账户或终端登录用户的相关信息。不带参数的last命令显示/var/log/wtmp文件中记录的登录用户的清单
    示例1:查询过去登录用户的相关信息
    last
    root pts/0 192.168.1.111 Thu Jun 13 12:06 - 12:06 (00:00)
    root pts/0 192.168.1.111 Thu Jun 13 12:06 - 12:06 (00:00)
    root pts/0 192.168.1.111 Thu Jun 13 12:06 - 12:06 (00:00)
    root pts/0 192.168.1.111 Thu Jun 13 12:06 - 12:06 (00:00)
    root pts/0 192.168.1.111 Thu Jun 13 12:03 - 12:03 (00:00)

    示例2:查询最近登录系统的3名用户
    last -n 3
    last -n 3
    root pts/17 192.138.192.56 Tue Jul 16 09:42 still logged in
    root pts/10 192.138.192.90 Tue Jul 16 09:13 still logged in
    root pts/7 192.138.192.56 Tue Jul 16 08:59 still logged in

    wtmp begins Thu Jun 13 11:56:05 2013

    示例3:显示截止到指定日期指定时刻之前的所有最近登录信息
    last -t 20130701000000
    root pts/0 192.168.1.111 Thu Jun 13 12:06 - 12:06 (00:00)
    root pts/0 192.168.1.111 Thu Jun 13 12:06 - 12:06 (00:00)
    root pts/0 192.168.1.111 Thu Jun 13 12:06 - 12:06 (00:00)
    root pts/0 192.168.1.111 Thu Jun 13 12:06 - 12:06 (00:00)
    root pts/0 192.168.1.111 Thu Jun 13 12:03 - 12:03 (00:00)
    注意:如果wtmp文件找不到,那么系统就无法记录日志信息,要想这些文件起作用,就需要手动创建wtmp文件即可。

    显示登录系统失败用户的相关信息————lastb

    lastb命令可以用来显示指定账户或者终端登录系统失败用户的相关信息。不带参数的lastb命令显示/var/log/btmp文件中记录的登录失败的用户清单。
    示例1:显示最近10条登录失败信息
    lastb -n 10

    显示最近登录用户的用户名、登录端口和登录时间————lastlog
    lastlog命令显示/var/log/lastlog文件中的内容
    示例1:显示用户root最近的登录信息
    lastlog -u root
    Username Port Latest
    root pts/17 Tue Jul 16 09:42:21 +0800 2013
    示例2:显示系统所有用户最近3天内的登录信息
    lastlog -t 3
    示例3:显示所有用户最近的登录信息
    last

    mail **Never logged in**
    man **Never logged in**
    messagebus **Never logged in**
    mysql **Never logged in**
    named **Never logged in**
    news **Never logged in**
    ntp **Never logged in**

    显示当前用户的名称————logname

    >>logname
    root
    注意:logname和whoami是不同的,一个是启动计算机时,登入计算机的账户名,一个是进入系统后,启动终端,终端用户名
    hadoop@ubuntu:~> whoami
    hadoop

    管理日志文件————logrotate

    logrotate命令可以自动替换、压缩、删除和邮寄日志文件
    示例1:所谓logrotate,就是将旧的log档案更改名称,然后建立一个空的log档案,如此一来,新的log档案将从零开始记录,而旧的log档案也将存在一段时间,从而达到轮替的目的。可以在/etc/logrotate.conf下设置log的轮替属性
    示例2:执行日志档案轮替
    logrotate -v /etc/logrotate.conf

    更改用户所属的组————newgrp

    示例1:将当前用户加入到指定组中
    newgrp test
    比如当前登录的用户是hadoop,执行此命令后,需要超级管理员授权,当前用户就更改属于test组了

    设置密码————passwd

    示例1:设置当前用户的密码
    passwd
    示例2:设置指定用户的密码(此功能仅适用于超级用户)
    passwd hadoop
    示例3:查看用户hadoop的密码状态
    passwd -S hadoop
    示例4:锁定指定账户
    passwd -l hadoop
    示例5:给指定用户账户解锁
    passwd -u hadoop

    将用户密码转成影子密码————pwconv

    pwconv命令从passwd文件和当前影子中产生影子文件,将密码从passwd文件中分离出来,从而可以大大提高密码的安全性
    示例1:pwconv
    组的影子密码功能就被启动,在etc目录下产生一个名为shadow的文件
    ps:etc是什么
      etc不是什么缩写,是and so on的意思 来源于 法语的 et cetera 翻译成中文就是 等等 的意思. 至于为什么在/etc下面存放配置文件, 按照原始的UNIX的说法(linux文件结构参考UNIX的教学实现MINIX) 这下面放的都是一堆零零碎碎的东西, 就叫etc, 这其实是个历史遗留.

    关闭影子密码功能————pwunconv

      使用pwconv命令把用户密码和组密码从/etc/passwd和/etc/group中提取出来后,以x的形式存放在只有超级用户才可以读取的/etc/shadow和/etc/gshadow文件中。而pwunconv命令则执行相反的动作,将上述文件中的影子密码重新存放到/etc/passwd和/etc/group文件中

    变更用户身份————su

      通过su命令进行用户登录身份变更。su改变身份后,默认时并不改变当前作业目录,但会变更HOME、SHELL、USER、LOGNAME等环境变量
    示例1:变更用户身份
    su root
      系统会提示输入root用户的密码,更改成功后,不会变更USER与LOGNAME变量。如果从root用户变为普通用户,则不需要输入密码,更改成功后,会变更HOME、SHELL、USER、LOGNAME等环境变量
    示例2:更改当前用户的同时也更改工作目录
    su - hadoop
    注意:-或-l或--login表示改变身份同时改变工作目录(工作目录就是当前终端的目录路径,注意不是用户目录)、HOME(用户目录)、USER、SHELL、LOGNAME和PATH变量

    删除指定的用户帐户————userdel

      不带参数的userdel命令只删除用户账号,不删除相关文件;使用带r参数的userdel命令可以删除用户登录目录以及登录目录中的所有文件和子目录。若要删除由该用户在其他位置建立的文件,则需要手动删除。
    示例:删除用户及该用户目录下所有文件和子目录
    userdel -r hadoop

    修改用户账户信息————usermod

    usermod -g hadoop jack

    显示当前登录到系统的用户————users

    users命令根据指定的文件显示当前的登录情况
    root root root root root root root root root sagcm

    显示当前登录系统用户的信息————w

    示例1:显示当前登录用户信息
    w
    root pts/6 Sat18 2days 10:06 5:09 bash ./stop-hbase.sh
    root pts/7 08:59 1:29m 0.20s 0.00s tailf order_interface.log
    root pts/8 Sat18 0.00s 0.43s 0.00s w

    显示当前登录系统的用户信息————who

    who命令显示当前有哪些用户登录系统
    示例1:显示用户的发呆时间
    who -u
      系统将显示当前在线用户的用户名、登录终端、登录时间、发呆时间和登录进程ID,其中"."表示发呆时间小于1分钟
    发呆时间就是闲置时间
    ptlportal pts/3 2013-07-03 12:25 old 3878 (192.168.171.127)
    root pts/4 2013-07-13 18:47 old 8756 (192.168.192.124)
    root pts/6 2013-07-13 18:48 old 9889 (192.168.192.124)
    root pts/7 2013-07-16 08:59 01:36 27237 (192.168.192.56)
    root pts/8 2013-07-13 18:50 . 13376 (192.168.192.124)
    root pts/9 2013-07-15 09:39 21:10 8417 (192.168.192.21)
    -H表示将显示出的信息,加上说明的标题
    NAME LINE TIME IDLE PID COMMENT
    ptlportal pts/3 2013-07-03 12:25 old 3878 (192.168.171.127)
    root pts/4 2013-07-13 18:47 old 8756 (192.168.192.124)
    root pts/6 2013-07-13 18:48 old 9889 (192.168.192.124)
    root pts/7 2013-07-16 08:59 01:36 27237 (192.168.192.56)
    root pts/8 2013-07-13 18:50 . 13376 (192.168.192.124)
    root pts/9 2013-07-15 09:39 21:10 8417 (192.168.192.21)

  • 相关阅读:
    【原创】2013个人年终总结
    【原创】关于部门月会(二)
    【原创】关于部门月会(一)
    [转载]使用RoboCopy 命令
    ubuntu 16.04.3 安装完成后的一些初始化工作
    umbraco v7.6.4 surface controller not found 大深坑!
    ubuntu 及 postgredql 安装配置小坑摘录
    flex hack 记录
    C# 中的委托和事件
    OVER(PARTITION BY)函数介绍
  • 原文地址:https://www.cnblogs.com/people/p/3193011.html
Copyright © 2011-2022 走看看