Linux】【Linux基础】linux用户管理相关命令有哪些

2020-12-14 11:22发布

5条回答
小猪仔
2楼 · 2020-12-14 13:46

1、Linux里查看所有用户

  (1)在终端里.其实只需要查看 /etc/passwd文件就行了.

  (2)看第三个参数:500以上的,就是后面建的用户了.其它则为系统的用户.

  或者用cat /etc/passwd |cut -f 1 -d :

2、用户管理命令

  useradd 注:添加用户

  adduser 注:添加用户

  passwd 注:为用户设置密码

  usermod 注:修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等;

  pwcov 注:同步用户从/etc/passwd 到/etc/shadow

  pwck 注:pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整;

  pwunconv 注:是pwcov 的立逆向操作,是从/etc/shadow和 /etc/passwd 创建/etc/passwd ,然后会删除 /etc/shadow 文件;

  finger 注:查看用户信息工具

  id 注:查看用户的UID、GID及所归属的用户组

  chfn 注:更改用户信息工具

  su 注:用户切换工具

  sudo 注:sudo 是通过另一个用户来执行命令(execute a command as another user),su 是用来切换用户,然后通过切换到的用户来完成相应的任务,但sudo 能后面直接执行命令,比如sudo 不需要root 密码就可以执行root 赋与的执行只有root才能执行相应的命令;但得通过visudo 来编辑/etc/sudoers来实现;

  visudo 注:visodo 是编辑 /etc/sudoers 的命令;也可以不用这个命令,直接用vi 来编辑 /etc/sudoers 的效果是一样的;

  sudoedit 注:和sudo 功能差不多;

  3、管理用户组(group)的工具或命令;

  groupadd 注:添加用户组;

  groupdel 注:删除用户组;

  groupmod 注:修改用户组信息

  groups 注:显示用户所属的用户组

  grpck

  grpconv 注:通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow ,如果/etc/gshadow 不存在则创建;

  grpunconv 注:通过/etc/group 和/etc/gshadow 文件内容来同步或创建/etc/group ,然后删除gshadow文件


那些年很冒险的梦。
3楼 · 2020-12-14 14:12

查看用户以及用户组:

cat /etc/group

 

[root@izuf60kjjii4iwkhdsly3bz html]# cat /etc/group

 

内容具体分析

/etc/group 的内容包括用户组(Group)、用户组口令、GID及该用户组所包含的用户(User),每个用户组一条记录;格式如下:

group_name:passwd:GID:user_list

在/etc/group 中的每条记录分四个字段:

第一字段:用户组名称;

第二字段:用户组密码;

第三字段:GID

第四字段:用户列表,每个用户之间用,号分割;本字段可以为空;如果字段为空表示用户组为GID的用户名

 

 

root:x:0:

bin:x:1:

daemon:x:2:

sys:x:3:

adm:x:4:

tty:x:5:

disk:x:6:

lp:x:7:

mem:x:8:

kmem:x:9:

wheel:x:10:

cdrom:x:11:

mail:x:12:postfix

man:x:15:

dialout:x:18:

floppy:x:19:

games:x:20:

tape:x:30:

video:x:39:

ftp:x:50:

lock:x:54:

audio:x:63:

nobody:x:99:

users:x:100:

utmp:x:22:

utempter:x:35:

ssh_keys:x:999:

input:x:998:

systemd-journal:x:190:

systemd-network:x:192:

dbus:x:81:

polkitd:x:997:

postdrop:x:90:

postfix:x:89:

chrony:x:996:

sshd:x:74:

ntp:x:38:

tcpdump:x:72:

nscd:x:28:

screen:x:84:

mysql:x:1000:

www:x:1001:

saslauth:x:76:

dingheng:x:1002:

phpers:x:1003:

ykd:x:1008:

apache:x:48:

 

 

/etc/shadow和/etc/passwd系统存在的所有用户名

 

将用户添加到某一个用户组:

 

usermod -G groupA

 

 

这样做会使你离开其他用户组,仅仅做为用户组 groupA 的成员。

应该加上 -a 选项:

usermod -a -G groupA user

 

 

(FC4: usermod -G groupA,groupB,groupC user)

-a 代表 append, 也就是将自己添加到用户组 groupA, 而不必离开原来到用户组。

 

 

命令的所有的选项,及其含义:

Options:

-g, --gid GROUP               force use GROUP as new primary group

-G, --groups GROUPS           new list of supplementary GROUPS

-a, --append          append the user to the supplemental GROUPS

                                mentioned by the -G option without removing

                                him/her from other groups

 

 

-c, --comment COMMENT         new value of the GECOS field

-d, --home HOME_DIR           new home directory for the user account

-e, --expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE

-f, --inactive INACTIVE       set password inactive after expiration

                                to INACTIVE

-h, --help                    display this help message and exit

-l, --login NEW_LOGIN         new value of the login name

-L, --lock                    lock the user account

-m, --move-home               move contents of the home directory to the new

                                location (use only with -d)

-o, --non-unique              allow using duplicate (non-unique) UID

-p, --password PASSWORD       use encrypted password for the new password

-s, --shell SHELL             new login shell for the user account

-u, --uid UID                 new UID for the user account

-U, --unlock                  unlock the user account

 

查看用户所属用户组

查看用户所属的组使用命令:groups user

或者查看文件:cat /etc/group 


布啦啦
4楼 · 2020-12-14 15:29

  useradd 注:添加用户

  adduser 注:添加用户


我是大脸猫
5楼 · 2020-12-14 16:40

linux用户管理命令

用户管理----用户信息与密码的配置文件                                                                                                      

      

     用户管理要学的内容很多,当然了,不会简单的放两个创建用户的命令,这样的文章太多了。我们来看两个用户管理中非常重要的配置文件吧!     我们来看看用户的相关配置文件都存放在什么地方。用户信息文件:      /etc/passwd密码文件:            /etc/shadow用户组文件:        /etc/group用户组密码文件: /etc/gshadow用户配置文件:   /etc/login.defs   /etc/default/useradd新用户信息文件:/etc/skel登录信息:          /etc/motd ========================用户信息文件详解============================================我们先看一下用户信息文件里都放的什么 [root@localhost ~]#  vi   /etc/passwdroot:x:0:0:root:/root:/bin/bashdaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halt:/sbin:/sbin/haltmail:x:8:12:mail:/var/spool/mail:/sbin/nologinnews:x:9:13:news:/etc/news:/sbin/nologin........每一行内容存放一个用户的信息,每个用户信息有7部分组成root:x:0:0:root:/root:/bin/bashroot        用户名         用户登录系统时使用的用户名x             密码            密码位2             UID            用户标识号2             GID            缺省组标识root     注释性描述      例如存放用户全名等信息/root         宿主目录       用户登录系统后的缺省目录/bin/bash   命令解释器    用户使用的Shell ,默认为bash UID ?     关于上面的UID这里细说一下,其实决定用户是什么权限,是由UID号决定的。     linux用户分为三种:超级用户:(root   UID=0)普通用户: (UID 500~60000)伪用户:  (UID  1~499)    所以,我们可以修改用户的UID号来修改用户的类型,如果把root的UID号为500,那么root就变成了普通用户,如果把fnngj用户的UID改为0,那么它就拥有了root用户的超能力。[root@localhost ~]#  vi   /etc/passwd   进入之后修改,完了保存退出就OK了。 伪用户?     说到用户种类,又牵扯到一个伪用户,那么伪用户是干什么用的?1.伪用户与系统和程序服务相关    bin、daemon、shutdown、halt等,任何Linux系统默认都有这些伪用户。    mail、news、games、apache、ftp、mysql及sshd等,与linux系统的进程相关。2. 伪用户通常不需要或无法登录系统3. 可以没有宿主目录 ==========================密码文件详解========================================       用户密码文件,用户信息文件中留有密码位,为什么没密码了呢? 其实,最早的linux这个位置真的是放密码的,因为不全安,所以,就将密码单独存放了,现在只是用x表示这里有存放密码的位置。    为什么要把密码放在/etc/shadow中 [root@bogon /]# ls -l /etc/shadow    -r--------  1 root root 1021  2月 27 21:31 /etc/shadow          我可以看到这个文件只有管理员root有权限查看修改 现在我们来看密码文件都放了什么?[root@bogon /]# more /etc/shadowroot:$1$5DlBd7m8$tF.az6hWi27oaaFw7OpFs.:15391:0:99999:7:::bin:*:15391:0:99999:7:::daemon:*:15391:0:99999:7:::adm:*:15391:0:99999:7:::lp:*:15391:0:99999:7:::sync:*:15391:0:99999:7:::shutdown:*:15391:0:99999:7:::halt:*:15391:0:99999:7:::mail:*:15391:0:99999:7:::news:*:15391:0:99999:7:::uucp:*:15391:0:99999:7:::operator:*:15391:0:99999:7:::games:*:15391:0:99999:7:::.......................... 我们还以第一行为例进行分解。root:$1$5DlBd7m8$tF.az6hWi27oaaFw7OpFs.:15391:0:99999:7:::root              用户名       用户登录系统时使用的用户名$1$5DlBd7m8$tF.az6hWi27oaaFw7OpFs.    密码     加密密码   MD515391     最后一次修改时间    linux这里以197011日作为1197111日就是366,依次类推到我修改密码的日期表示为15391了。0         最小时间间隔           这个字段代表要经过多久才可以更改密码。如果是“0”表密码可以随时更改。99999         最大时间间隔           于害怕密码被人盗取而危害到整个系统的安全,所以安排了这个字段,你必须在这个时间内重新修改密码,否则这个帐号将暂时失效。上面的99999,表示密码不需要重新输入,最好设定一段时间修改密码。确保系统安全7         密码变更期期限快到前的警告期:当帐号的密码失效期限快到时,系统依据这个字段的设定发出警告,提醒用户“再过n天您的密码将过期,请尽快重新设定密码。默认的是七天。帐号失效期:     如果用户过了警告期没有重新输入密码,使得密码失效,而该用户在这个字段限定的时间内又没有向管理员反映,让帐号重新启用,那么这个帐号将暂时失效。帐号取消日期:  这个日期跟第三个字段一样,都是使用1970年以来的日期设定方法。这个字段表示:这个帐号在此字段规定的日期之后将无法再使用。这个字段通常用于收费服务系统中,可以规定一个日期让该帐号不能再使用。保留:     最后一个字段是保留的,看以后有没有新功能加入。 疑问既然shadow文件保存了密码,而passwd文件中没有保存密码,为什么不把passwd文件中的密码位取消掉呢?    其实,密码在存放之前,是先放在passwd文件中的,然后再转换到shadow文件中的。下面来验证下[root@bogon /]# grep root /etc/passwd  /etc/shadow/etc/passwd:root:x:0:0:root:/root:/bin/bash/etc/passwd:operator:x:11:0:operator:/root:/sbin/nologin/etc/shadow:root:$1$5DlBd7m8$tF.az6hWi27oaaFw7OpFs.:15391:0:99999:7::: [root@bogon /]# pwunconv      将密码回写[root@bogon /]# grep root /etc/passwd  /etc/shadow/etc/passwd:root:$1$5DlBd7m8$tF.az6hWi27oaaFw7OpFs.:0:0:root:/root:/bin/bash/etc/passwd:operator:*:11:0:operator:/root:/sbin/nologingrep: /etc/shadow: 没有那个文件或目录 [root@bogon /]# pwconv     转换到shdow文件中,只不过平时这个动作平时由linux自动完成。[root@bogon /]# grep root /etc/passwd  /etc/shadow/etc/passwd:root:x:0:0:root:/root:/bin/bash/etc/passwd:operator:x:11:0:operator:/root:/sbin/nologin/etc/shadow:root:$1$5DlBd7m8$tF.az6hWi27oaaFw7OpFs.:15456:0:99999:7:::        linux对用户登录的验证就是通passwod文件来验证用户名是否存在,然后通过shadow文件来验证用户名对应的密码是否正确,那么理解了底层东西很有必要,我们可以不需要去学习创建用户命令,真接通过vim命令在两个文件中添加用户。这就是linux的魅力噢。不像windows一样,我们不但知其然,还知其所以然。  “会灵魂附体的”命令权限                                                                        继续用户管理的学习,上一小节我们知道,只有root可以修改密码文件,那么普通用户为什么可以修改自己的密码,这是因为我们所操作有命令“灵魂附体”般的拥有了root权限。这个小节自我感觉不教难理解,而我的内容也是顺着思路写,按着顺序看,最好去试验一下。^_^ 小节重点:===============================setUID=4   所有人setGID=2   所属组粘着位=1    其它人=============================== 创建用户:[root@localhost ~]# useradd lisi      添加创建了一用户lisi[root@localhost ~]# passwd lisi       设置lisi的密码Changing password for user wangwu.New UNIX password:                    这里输入密码BAD PASSWORD: it is based on a dictionary wordRetype new UNIX password:         再次确认密码passwd: all authentication tokens updated successfully.  上面这种是不被推荐的一种创建用户的方式,任何的用户都应该属于某个组。创建这样的“散人”实际中没有太大意义。 [root@localhost ~]# grep lisi /etc/passwdlisi:x:502:502::/home/lisi:/bin/bash   从上面信息中看到,系统默认为我们创建了一个lisi的组,组ID为504  用户切换:[root@localhost ~]# su -- lisi        root切换到lisi用户[lisi@localhost root]$ su -- root     lisi用户切换到rootPassword:                                    普通用户切换root用户是要密码的哟!亲!普通用户切换到其它普通用户也是要密码的哟! 用户修改密码:[lisi@localhost root]$ passwdChanging password for user lisi.Changing password for wangwu(current) UNIX password:        先输入原始密码New UNIX password:               输入新有密码Retype new UNIX password:    再次确认新密码passwd: all authentication tokens updated successfully.  上面是铺垫,下面才是重点。。 思考:在上一节中,我们提到,存放用户密码的文件shadow只有root用户才可操作。那么普通用户为什么可以修改密码呢? =========================setUID===============================                 这里引出一个东东----setUID       定义:当一个可执行程序具有setUID权限,用户执行这个程序时,将以这个程序所有者的身份执行。       哈哈!小狼不能和小羊谈朋友,小羊可以与小羊谈朋友,于是,小狼披上了羊的外衣,然后以羊的身份和小羊一起幸福的生活。吼吼。       其实,用户执行的这个程序就是命令,passwd命令授权了SetUID权限。所以普通用户也可以通过passwd命令改密码。 下面来做个试验!!很有意思的噢,要不要也来试试噢? 切换到lisi用户下面。[lisi@localhost ~]$ touch file01   touch创建一个file01的文件[lisi@localhost ~]$ ls -l file01-rw-rw-r--  1 lisi lisi 0  5月  5 22:14 file01  我们看到,这个时候用touch命令创建的文件,所有者是lisi,所属于组是lisi组 切换到root下面[root@localhost ~]# ls -l /bin/touch   -rwxr-xr-x  1 root root 38056 2009-07-03  /bin/touch细心朋友会发现权限前面还多一位。没错!setUID就属于这一位。 setUID=4 现在我们给touch命令授予个setUID授予setUID权限有两种方式。[root@localhost ~]# chmod  u+s /bin/touch  [root@localhost ~]# chmod  4755  /bin/touch关于用户权限不理解的看我之前的相关文章。 再次切换到lisi目录下[lisi@localhost ~]$ touch file02   创建文件file02[lisi@localhost ~]$ ls -l file02-rw-rw-r--  1 root lisi 0  5月  5 22:35 file02    这次我们发现,同样的一个命令touch ,这次创建出来的文件所有者变成的root  去掉setUID权限的两种方式:[root@localhost ~]# chmod  u-s /bin/touch  [root@localhost ~]# chmod  755  /bin/touch  ========================setGID=================================          setGID的用法与setUID的用法一起,它是添加组权限的。setGID=2添加setGID的方式如下:[root@localhost ~]# chmod  g+s /bin/touch  [root@localhost ~]# chmod  2755  /bin/touch 一般的命令我们不能随便授予setUID权限假如给vi命令授予setUID命令,无疑于给linux留了个后面,那样我们就可以通过vi命令修改用户与密码信息文件了。那么到底有哪些命令设置有setUID呢?我们可以查找一下。 [root@localhost ~]# find / -perm -4000 -o -perm -2000在当前目录下(/)查找具有setUID(-perm -4000)或者(-o)具有 setGID(-perm -2000)权限的命令   =======================粘着位==================================   粘着位有什么作用,我们来看一个例子,这样更容易理解。。 [root@localhost test]# mkdir abc                   创建一个目录abc[root@localhost test]# touch abc/newfile      在这个目录下创建一个文件newfile[root@localhost test]# chmod 777 abc          对这个目录设置权限为所有人都有所有权限[root@localhost test]# ls -ld abcdrwxrwxrwx  2 root root 4096  5月  5 23:44 abc [root@localhost test]# ls -l abc/newfile          newfile文件的权限是其它人没有删改的权限。-rw-r--r--  1 root root 0  5月  5 23:44 abc/newfile 切换到lisi用户[lisi@localhost test]$ rm -rf abc        具然把abc目录下面的newfile干掉了,lisi用户虽然有对abc目录的所有权限,但对newfile文件没有删除权限呀。这就是linux对文件的权限规定。       假如张三和李四对一个文件夹都有所有权,这个文件夹下放的有张三的文件,也有李四的文件,如果张三看李四的文件不爽,那么他就直接干掉了,李四上去一看哭了。为什么办法让李四不哭呢?这里就用到粘着位了。 粘着位粘着位=1t,如果一个权限为777目录有粘着位,每个用户都可以在这个目录下创建文件,但只能删除自己是所有者的文件。 粘着位的授权方式:[root@localhost test]# chmod  o+t abc  [root@localhost test]# chmod  1755  abc 我们再来删除试试:[lisi@localhost abc]$ rm newfilerm:是否删除有写保护的一般空文件‘newfile’? yrm: 无法删除‘newfile’: 权限不够 自己创建的文件就可以删除噢![root@localhost test]# touch newfile2[root@localhost test]# rm newfile2 rm:是否删除一般空文件‘newfile2’? y 

用户组权限实例                                                                                                                                                     

先直接抛一个需求出来吧!先步骤完成了,后面再分析。

授权用户 chongshi 和 bugmaster 对目录/cnblogs有写权限

创建目录
[root@localhost hzh]# mkdir /cnblogs      创建目录
[root@bogon hzh]# ls -ld /cnblogs     查看目录
drwxr-xr-x 2 root root 4096 5月 10 23:20 /cnblogs


添加两个用户并设置密码
[root@bogon hzh]# useradd chongshi     创建用户
[root@bogon hzh]# passwd chongshi      设置密码
Changing password for user chongshi.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

[root@bogon hzh]# useradd bugmaster
[root@bogon hzh]# passwd bugmaster
Changing password for user bugmaster.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

 

添加一个组

[root@bogon hzh]# groupadd testing                    创建组
[root@bogon hzh]# grep testing /etc/group         查看组信息
testing:x:506:

 

将用户添加到组中

[root@bogon hzh]# usermod -G testing chongshi        用户chongshi添加到组testing
[root@bogon hzh]# gpasswd -a bugmaster testing     用户bugmaster添加到组testing
Adding user bugmaster to group testing
注意:上面两种方式不同,但作用是一样的,都是将用户添加到组中。
[root@bogon hzh]# grep testing  /etc/group         查看组中成员
testing:x:506:chongshi,bugmaster

 

我们知道,组有什么样的权限,组中成员也有什么样的权限。

设置cnblogs目录的所属组为testing

[root@bogon hzh]# chgrp testing  /cnblogs            将/cnblogs目录的所属组改为testing

[root@bogon hzh]# ls -ld /cnblogs         查看目录所属组
drwxr-xr-x 2 root testing 4096 5月 10 23:20 /cnblogs

 

对组加写权限

[root@bogon hzh]# chmod g+w /cnblogs                 对组加写权限
[root@bogon hzh]# ls -ld /cnblogs                            查看组对目录的权限
drwxrwxr-x 2 root testing 4096 5月 10 23:20 /cnblogs

现在用户chongshi和bugmaster已经对/cnbogs已经有写权限
[root@bogon hzh]# su -- chongshi                    切换用户
[chongshi@bogon hzh]$ touch /cnblogs/abc     创建文件,(可以成功在目录下创建文件,说明对本目录具有写权限)

 

 

用户常用操作命令                                                                          

 

添加一个用户
添加用户稍微复杂一些,我们先来看一下,添加用户都有那些选项
root@fnngj-virtual-machine:/# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no


参数详解:
-u:UID
-g:缺省所属用户组GID
-G:指定所属多个组
-d:宿目录
-s:命令解释器Shell
-c:描述信息
-e:指定用户失效时间
例子:
root@fnngj-virtual-machine:/# useradd -u 1888  -g webadmin -G sys,root -s /bin/bash  -c "market lisi"  -e 2012-12-12  jack

 

添加用户到组

usermod -G [组名]  [用户名]
root@fnngj-virtual-machine:/# usermod -G webadmin tom
root@fnngj-virtual-machine:/# grep webadmin /etc/group
webadmin:x:1001:tom

 

修改用户名

 usermod -l  [新用户名]  [旧用户名]
修改用户与添加用户时的内容基本相同,但多了一个修改用户的选项。

root@fnngj-virtual-machine:/# usermod -l tom jack                   把jack改为tom

 

删除用户
userdel -r [用户名]
-r:删除用户组

手工删除:
使用find命令查找属于某个用户或用户组的文件
find选项 -user、-uid、-group、-gid、
1、对需要保留的文件进行移动和备份
2、对不需要的文件进行删除
3、清除用户文件中的相关表项
4、清除用户宿主目录
[root@bogon /]# find /home -user fnngj
/home/fnngj
/home/fnngj/.bashrc
/home/fnngj/.bash_profile
/home/fnngj/.gtkrc
/home/fnngj/.bash_history
/home/fnngj/.bash_logout
可以对查找出来的用户信息判断需要干掉哪些。

 

用户信息查看命令                                                           

 

pwck   检测/etc/passwd文件
检测用户的设置文件是否正常。直接输入命令,后面不用带参数

vipw    编辑/etc/passwd文件
这个命令与vi最大的区别就是编辑的时候锁定文件。如果多人对passwd文件 
都有编辑权限,那么多人同时编辑就会造成混乱。使用vipw编辑passwd文件时,别 
人就无法打开passwd文件。

id        查看用户ID和组信息,直接输入命令,后面不用带参数
[root@bogon fnngj]# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6 
(disk),10(wheel) context=root:system_r:unconfined_t


finger      查看当前用户的登录信息
finger [用户名]    查看某个用户的详细信息。
[root@bogon fnngj]# finger
Login Name Tty Idle Login Time Office Office Phone
root root pts/1 May 13 14:57 (192.168.203.1)
[root@bogon fnngj]# finger root
Login: root Name: root
Directory: /root Shell: /bin/bash
On since 日 5月 13 14:57 (CST) on pts/1 from 192.168.203.1
New mail received 日 5月 6 11:00 2012 (CST)
Unread since 三 2月 22 20:40 2012 (CST)
No Plan.


su [用户名]      切换用户(su- 环境变量切换)
su - [用户名]    切换的时候也会把环境的时候也会切换环境变量
[root@bogon /]# su fnngj
[fnngj@bogon /]$ echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/fnngj/bin
[fnngj@bogon /]$ su root
Password:
[root@bogon /]# su - fnngj
[fnngj@bogon ~]$ echo $PATH
/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/fnngj/bin


passwd -S [用户名]    查看用户密码状态
[root@bogon fnngj]# passwd -S fnngj
Password set, MD5 crypt.


who、w    查看当前登录用户信息
[fnngj@bogon ~]$ who
root pts/1 May 13 14:57 (192.168.203.1)
[fnngj@bogon ~]$ w
15:11:29 up 54 min, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/1 192.168.203.1 14:57 0.00s 0.84s 0.01s w

 

用户禁用与恢复                                                                

 

禁用和恢复用户
当一个用户在操作的时候经常有违规操作或近期一段时间不用,我们可以对这 
个用户进行锁定。就像你的游戏账号发生异常被禁用一样。

-----------------------------------

禁用
#usermod -L username
#passwd -l username
恢复
#usermod -U username
#passwd -u username

------------------------------------

[root@bogon /]# passwd -l fnngj     禁用fnngj用户
Locking password for user fnngj.
passwd: Success
[root@bogon /]# passwd -S fnngj
Password locked.                   提示被禁用

[root@bogon /]# passwd -u fnngj    密码解锁
Unlocking password for user fnngj.
passwd: Success.
[root@bogon /]# passwd -S fnngj
Password set, MD5 crypt.


禁用原理:
[root@bogon /]# grep fnngj /etc/shadow
fnngj:$1$EudBseaZ$kw1S8ZS2dsvnJ83phhvQF0:15456:0:99999:7:::
[root@bogon /]# passwd -l fnngj
Locking password for user fnngj.
passwd: Success
[root@bogon /]# grep fnngj /etc/shadow
fnngj:!!$1$EudBseaZ$kw1S8ZS2dsvnJ83phhvQF0:15456:0:99999:7:::

  看到上面的操作,相信你已经明白了,当我禁用你的密码后,密码在shadwo文件中依然存在,只是前面多了两个叹号(!!),这样你肯定登录不了了,因为验证端改变了密码。当然,解锁之后,密码前面的两个叹号会去掉。

  其实,我们知道了原理以后,完全可以不用通过命令,通过vi编辑文件,一样可以禁用用户。

 

用户组常用操作命令                                                                        

 

  先看一下组配置文件里都存放了哪些内容

[root@bogon /]# more /etc/group
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
tty:x:5:
disk:x:6:root
lp:x:7:daemon,lp
mem:x:8:
kmem:x:9:
wheel:x:10:root
mail:x:12:mail
news:x:13:news
uucp:x:14:uucp
man:x:15:
games:x:20:
gopher:x:30:

.................

dialout:x:20:fnngj
dialout    组名            用户登录时所在的组
           组密码         一般不用
20          GID        组标识号  
fnngj       组内用户列表   属于该组的所有用户列表

 

添加用户组 

groupadd  [用户组名]
root@fnngj-virtual-machine:/# groupadd webadmin                添加一个组webadmin
root@fnngj-virtual-machine:/# grep webadmin  /etc/group   查看组信息
webadmin:x:1001:

我们在添加组的时候也可以指定好组的id
root@fnngj-virtual-machine:/# groupadd  -g 8888 webadmin
root@fnngj-virtual-machine:/# grep webadmin  /etc/group  
webadmin:x:8888:

 

删除用户组
groupdel [用户组名]
[root@bogon /]# groupdel webadmin               删除组webadmin

 

修改用户组信息

groupmod -n  [新组名] [旧组名]
[root@bogon /]# groupmod -n apache webadmin        修改组名webadmin为apache

 

用户组信息查看命令                                                                  

 

groups     查看用户隶属于哪些用户组

[root@bogon /]# groups fnngj
fnngj : fnngj

newgrp    切换用户组
[root@bogon /]# newgrp fnngj 不是组成员,知道组密码(如果有密码)一样可 
以切换。

grpck       用户组配置文件检测

chgrp       修改文件所属组

vigr          编辑/etc/group文件(锁定文件)
与vipw用法一样,在编辑group文件时,禁止其他人编辑。防止多人写操作,造成写混乱。

 

用户组管理命令                                                                                

 

gpasswd命令
这个事所有linux都有的一个命令。先看一下都有哪些参数。
root@fnngj-virtual-machine:/# gpasswd
Usage: gpasswd [option] GROUP
Options:
  -a, --add USER                add USER to GROUP
  -d, --delete USER             remove USER from GROUP
  -h, --help                    display this help message and exit
  -r, --remove-password         remove the GROUP's password
  -R, --restrict                restrict access to GROUP to its members
  -M, --members USER,...        set the list of members of GROUP
  -A, --administrators ADMIN,...
                                set the list of administrators for GROUP
Except for the -A and -M options, the options cannot be combined.
上面的参数信息虽然事英文的,不解释了,相信你懂的。
用法非常简单:
root@fnngj-virtual-machine:/# gpasswd -a tom webadmin     添加用户到组
root@fnngj-virtual-machine:/# gpasswd -d tom webadmin     把用户从组中删除
root@fnngj-virtual-machine:/# gpasswd webadmin                给用户组设置密码
root@fnngj-virtual-machine:/# gpasswd -A tom webadmin    将tom提升为组管理员
root@fnngj-virtual-machine:/# gpasswd -r webadmin        删除组密码
root@fnngj-virtual-machine:/# gpasswd -R webadmin       禁止其他用户切换到该组

 

 

目录:(内容较多,加个目录)

|-进程管理 

进程常用命令

  |- w查看当前系统信息

  |- ps进程查看命令

  |- kill终止进程

  |- 一个存放内存中的特殊目录/proc

  |- 进程的优先级

  |- 进程的挂起与恢复

  |- 通过top命令查看进程

计划任务

  |- 计划任务的重要性

  |- 一次性计划at和batch

  |- 周期性计划crontab

进程管理的概念                                                                                      


进程和程序区别

1.程序是静态概念,本身作为一种软件资源长期保存;而进程是程序的执行过程,它是动态概念,有一定的生命期,是动态产生和消亡的。
2.程序和进程无一一对应关系。一个程序可以由多个时程公用;另一一方面,一个进程在活动中有可顺序地执行若干个程序


父子进程的关系

1.子进程是由一个进程所产生的进程,产生这个子进程的进程称为父进程
2.在linux系统中,使用系统调用fork创建进程。fork复制的内容包括父进程的数据和堆栈段以及父进程的进程环境。
3.父进程终止子进程自然终止。


前台进程和后台进程

前台进程

在shell提示处理打入命令后,创建一个子进程,运行命令,Shell等待命令退出,然后返回到对用户给出提示符。这条命令与Shell异步运行,即在前台运行,用户在它完成之前不能执行别一个命令

很简单,我们在执行这个查找命令时,无法进行其它操作,这个查找就属于前台进程


后台进程

在Shell提示处打入命令,若后随一个&,Shell创建子进程运行此命令,但不等待命令退出,而直接返回到对用户给出提示。这条命令与Shell同步运行,即在后台运行。“后台进程必须是非交互式的”

再来看这个命令就变成了后台进程,我们用同样的条件进行查找,把查找记过放到hzh/test/init.find这个文件中。不影响我们前台其它的操作。

 

进程的状态


学过操作系统原理的同学应该可以看得懂,不懂再去翻翻书,不知道你有没有想起当时教这门课的老师呢?呵呵 

 


常用进程命令

 

w 查看当前系统信息                                                                                


w命令,我在之前的章节用曾用过,当时是查看当前用户信息,当然也可以查看到系统相关的信息。

作用:查看当前系统活动摘要。

[root@bogon cron]# w
14:48:39 up 2:46, 1 user,     load average: 0.00,   0.01,   0.00
USER     TTY       FROM             LOGIN@     IDLE   JCPU   PCPU WHAT  
root       pts/1    192.168.203.1 12:27      0.00s   0.17s   0.02s w

w显示信息的含义:

JCPU:     以终端代号来区分,该终端所有相关的进程的进程执行时,所消耗的CPU时间会显示在这里
PCPU:   cpu执行程序消耗的时间
WHAT:    用户下在执行的操作
load average :分别显示系统在过去1、5、15分钟内的平均负载程度。
FROM:  显示用户从何处登录系统,“:0”的显示代表该用户时人X Windows下,打开文本模式窗口登录的
IDLE:   用户闲置的时间,这是一个计时器,一旦用户执行任何操作,该计时器便会被重置

 

查看个别用户信息:w [用户名]

[root@localhost ~]# w root
23:32:01 up 52 min, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/1 192.168.203.1 22:53 0.00s 0.10s 0.01s w root

 

ps进程查看命令                                                                                      

  ps应该是查看进程用得最普遍的命令,我在之前的面试中都被多次问到过。因为linux不是面试我的重点,所以,我后来特意去查了一下。ps我以前的理解就是photoshop的缩写。哈哈!因为以前本专门跑去学过平面设计。吼吼,扯远了!

进程查看命令:ps

常用选项
-a:显示所有用户的进程
-u:显示用户名和启动时间
-x:显示 没有控制终端的进程
-e:显示所有进程,包括没有控制终端的进程
-l:长格式显示
-w:宽行显示,可以使用多个w进行加宽显示

应用实例:

ps 查看隶属自己的进程

root@fnngj-virtual-machine:~# ps
PID TTY TIME CMD
1370 pts/0 00:00:00 bash
3185 pts/0 00:00:00 ps

root@root:~# ps -l
F S    UID  PID     PPID    C   PRI   NI   ADDR   SZ     WCHAN     TTY      TIME      CMD
4 S    0     5941   5801   4   80    0   -       1882   wait      pts/2    00:00:00     bash
4 R    0     6000   5941   0   80    0   -       1121    -         pts/2    00:00:00     ps

看一下上面的选项都指的什么。。
PID :      进程号
PPLD   父进程的进程号
TTY :    进程启动的终端
STAT :  进程当前状态(S休眠状态,D不可中断的休眠状态,R运行状态,Z僵死状态,T停止
NI         进程优先级
TIME:     进程自从启动以后启用CPU的总时间
COMMAND/CMD:进程的命令名
USER    用户名
%CPU   占用CPU时间和总时间的百分比
%MEM  占用内存与系统内存总量的百分比

实列

ps -u or -l 查看隶属于自己进程详细信息

root@root:~# ps -u or -l

ps -le or -aux 查看所有用户执行的进程的详细信息

root@root:~# ps le or -aux

ps -aux --sort pid 可按进程执行的时间、PID、UID等对进程进行排序

root@root:~# ps -aux --sort pid

ps -uU fnngj 查看某个用记启动的进程

root@root:~# ps -uU fnngj 

ps -le | grep init 查看指定进程信息

root@root:~# ps -le | grep init 

 

kill终止进程                                                                                               

     在winddow下面,我们要结束一个进程,最简单的方式就是关闭这个程序,相应的进程也会随之结束,遇到不能关闭的情况。会打开任务管理器结果掉。那么在linux下如果做呢?我们可以使用kill命令来终止进程。

为什么要杀死进程?

* 该进程点用了过多的CPU时间
* 该进程缩住了一个终端,使其他前台进程无法运行
* 运行时间过长,但没有预期效果
* 产生了过多到屏幕或磁盘文件的输出
* 无法正常退出

kill用法:

关闭进程:kill  [进程号]

root@root:~# kill -l
1) SIGHUP    2) SIGINT    3) SIGQUIT    4) SIGILL    5) SIGTRAP
6) SIGABRT    7) SIGBUS    8) SIGFPE    9) SIGKILL    10) SIGUSR1
11) SIGSEGV    12) SIGUSR2    13) SIGPIPE    14) SIGALRM    15) SIGTERM
16) SIGSTKFLT    17) SIGCHLD    18) SIGCONT    19) SIGSTOP    20) SIGTSTP
21) SIGTTIN    22) SIGTTOU    23) SIGURG    24) SIGXCPU    25) SIGXFSZ
26) SIGVTALRM    27) SIGPROF    28) SIGWINCH    29) SIGIO    30) SIGPWR
31) SIGSYS    34) SIGRTMIN    35) SIGRTMIN+1    36) SIGRTMIN+2    37) SIGRTMIN+3
38) SIGRTMIN+4    39) SIGRTMIN+5    40) SIGRTMIN+6    41) SIGRTMIN+7    42) SIGRTMIN+8
43) SIGRTMIN+9    44) SIGRTMIN+10   45) SIGRTMIN+11   46) SIGRTMIN+12   47) SIGRTMIN+13
48) SIGRTMIN+14   49) SIGRTMIN+15   50) SIGRTMAX-14   51) SIGRTMAX-13   52) SIGRTMAX- 12
53) SIGRTMAX-11   54) SIGRTMAX-10   55) SIGRTMAX-9    56) SIGRTMAX-8    57) SIGRTMAX-7
58) SIGRTMAX-6    59) SIGRTMAX-5    60) SIGRTMAX-4    61) SIGRTMAX-3    62) SIGRTMAX-2
63) SIGRTMAX-1    64) SIGRTMAX

    我们看到每个编号对应一个含义,如 9) SIGKILL ;9标注的是SIGKILL ,那么我们可用9来终止进程。

关闭进程:

kill -s 9 [进程号]  (强行关闭)

kill -9   [进程号]  (强行关闭)
    上面的两种形式都可以强行关闭进程。

重启进程:

   有时候我们需要把进程重新启动一下,可以下面的命令完成。   

kill -1  [进程号]  (重启进程)

root@root:~# kill -1 3567    重启PID为3567的进程

 

关闭图形程序:

关闭图形程序: xkill
当你在终端下输入这个命令时,你的鼠标会变成一个小叉子,你只去点你想要关闭的窗口就可以关闭了

 

其它:

结束所有进程:    killall
查找服务进程号: pgrep  [服务名称]
关闭进程:          pkill    [进程名称]

 

一个存放内存中的特殊目录/proc                                                                

  

  这个目录比较特殊,他并不在我们磁盘上,而在我们的内存当中;当前系统运行的所有进程都动态的存放在这个目录中。

root@root:~# ls /proc
1 14 15 187 287 820 dma net
10 1401 1524 19 3 827 driver pagetypeinfo
1037 1403 1525 1906 32 830 execdomains partitions
1043 1413 1527 1919 34 832 fb sched_debug
1047 1414 1531 2 35 834 filesystems schedstat
11 1415 1536 20 36 840 fs scsi
1172 1418 1544 2024 454 842 interrupts self
12 1423 1555 2025 459 843 iomem slabinfo
.....................
上面每个编号就是以我们当前进程PID所命令的目录名。

当然,当前目录下也存放了一些我们系统的信息

查看我们当前cpu的信息
root@root:~# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Pentium(R) Dual-Core CPU T4500 @ 2.30GHz
stepping : 10
cpu MHz : 2294.000
cache size : 1024 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov 
pat 
pse36 clflush dts acpi mmx fxsr sse sse2 ss nx constant_tsc up arch_perfmon 
pebs 
bts xtopology tsc_reliable aperfmperf pni ssse3 hypervisor dts
bogomips : 4588.00
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:

查看内存信息

root@root:~# cat /proc/meminfo
MemTotal: 508344 kB
MemFree: 10668 kB
Buffers: 10700 kB
Cached: 96056 kB
SwapCached: 34124 kB
Active: 231384 kB
Inactive: 231576 kB
Active(anon): 178524 kB
Inactive(anon): 178316 kB
Active(file): 52860 kB
Inactive(file): 53260 kB
........................

查看当前分区的信息
root@root:~# cat /proc/partitions
major minor #blocks name

8 0 20971520 sda
8 1 20446208 sda1
8 2 1 sda2
8 5 522240 sda5

 

进程的优先级                                                                                            

     

  我们学过操作系统原理的同学都知道,我们系统在执行程序时有会先后顺序的,但为什么我们的电脑可以边听音乐,边聊QQ,边上网,甚至还可以同时挂几个游戏。因为我们CPU运行超快。他可以把每个程序的进程排好队,这个执行一下,那个执行一下。所以,我们会觉得各种程序是并行运行的。

      当然,进程也会分个快慢缓急的,所以要对进程分个优先级。同学们在食堂排队打饭,总理来了,这优先级多高啊。同学们纷纷让开,先给总理打。

* 优先级取值范围为(-20,19)

  linux给我们提供的优先级的范围为-20到19,我们启动一个进程时,默认的优先级为0 ,-20的优先级为最大,或者说最高。当然,我们在设置的时候可以写-30,但系统默认为-20。

nice命令 

指定程序的运行优先级
格式:nice -n command
例如:nice --5 command

renice 命令
改变一个正在运行的进程的优先级
格式: renice n pid
例如:renice -5 777

例子:

[root@bogon cron]# ps -le

[root@bogon cron]# renice -20  [PID]


nohup命令可以在用户退出时继续执行某一进程

  一般的命令在用户退登录后就停止执行了,nohup命令可以使进程在用户退出登录后仍旧继续执行,nohup命令将执行后的数据信息和错误信息默认存储到文件nohup.out中

格式:
nohup program &
例子:
[root@bogon cron]# nohup find / -name init* > /hzh/test/find.init.20120520 &
如果我们没指定/hzh/test/find.init.20120520这个保存位置的话,系统默认会把查询的结果放到nohup.out的文件中。我们一般不会去使用默认方式保存。

 

进程的挂起与恢复                                                                                      


  当我们执行一条命令时,发现太慢或输出内容太多,最常用到的做法就是终止(ctrl+c),那么挂起呢?通俗一点就是暂停呗!^_^!!

进程中止(挂起)和终止
挂起(ctrl+z)
终止(ctrl+c)
[root@bogon ~]# find / -name init* > /hzh/test/find.init.20120520

[1]+ Stopped find / -name init* >/hzh/test/find.init.20120520
被暂停的进程会提示我们Stopped

小知识:系统中有两种运行的进程,我们在前台是看不到的。一种是后台执行的命令,一种就是被暂停的。那我们通过什么方式查看被暂停和后台执行的进程呢?

查看被挂起的进程(jobs)
进程的恢复
恢复到前台继续运行(fg)
恢复到后台继续运行(bg)

[root@bogon ~]# jobs     通过jobs命令可以查看后被暂停的进程
[1]+ Stopped find / -name init* >/hzh/test/find.init.20120520

[root@bogon ~]# fg        fg会将暂停的进程恢复到前台继续执行。
find / -name init* >/hzh/test/find.init.20120520

[root@bogon ~]# bg      bg会将暂停的进程恢复到后台继续执行
[1]+ find / -name init* >/hzh/test/find.init.20120520 &


通过top命令查看进程                                                                                

 

  top命令与前面介绍的ps命令相似,已经介绍了ps,为什么还要top?top有它自己的优点呢。它比ps显示的信息更详细。而且是动态的噢,信息是在不断变化的噢!

[root@bogon ~]# top
top - 12:45:16 up 43 min, 1 user, load average: 0.00, 0.04, 0.06
Tasks: 57 total, 1 running, 56 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3% us, 0.3% sy, 0.0% ni, 99.3% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 1034536k total, 232864k used, 801672k free, 60188k buffers
Swap: 1052248k total, 0k used, 1052248k free, 118692k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6848 root 15 0 28948 8444 2524 S 0.3 0.8 0:05.44 X
7181 root 16 0 7036 2436 1968 S 0.3 0.2 0:00.26 sshd
7244 root 16 0 1964 976 772 R 0.3 0.1 0:00.45 top
1 root 16 0 3116 544 464 S 0.0 0.1 0:00.97 init
2 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
3 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
4 root 5 -10 0 0 0 S 0.0 0.0 0:00.03 events/0
5 root 5 -10 0 0 0 S 0.0 0.0 0:00.01 khelper
6 root 5 -10 0 0 0 S 0.0 0.0 0:00.00 kthread
7 root 15 -10 0 0 0 S 0.0 0.0 0:00.00 kacpid
88 root 5 -10 0 0 0 S 0.0 0.0 0:00.01 kblockd/0
89 root 15 0 0 0 0 S 0.0 0.0 0:00.00 khubd
106 root 20 0 0 0 0 S 0.0 0.0 0:00.00 pdflush
107 root 15 0 0 0 0 S 0.0 0.0 0:00.18 pdflush
108 root 25 0 0 0 0 S 0.0 0.0 0:00.00 kswapd0
109 root 6 -10 0 0 0 S 0.0 0.0 0:00.00 aio/0
255 root 25 0 0 0 0 S 0.0 0.0 0:00.00 kseriod


常用选项:
d :   指定刷新的时间间隔
c :     显示整个命令而不仅仅显示命令名

在命令运行的时候按键盘d,会出现如下提示要求你输入刷新的间隔时间
Change delay from 3.0 to: 10(秒)

常用命令
u :   查看指定用户的进程
k :   终止执行中的进程
h or ?   获得帮助
r:      重新设定进程优先级
s:    改变刷新的时间间隔
W:  将当前设置写入~/.toprc文件中

      这里不细讲了,感兴趣的可以用  man top  命令查看top的详细帮助。


为什么要计划任务                                                                                      

 

为什么要设置计划任务
  我们在系统的管理中,很多时候不是及时的去操作,比如对某一网站数据的备份,备份的过程需要占用大量的系统资源,凌晨三四点的时候系统访问用户最少,系统最空闲。但我们的系统的系统管理员总不能老那个时间爬起来操作吧。如果在家远程操作的话,老婆不愿意了。哈哈!

计划任务的命令

  计划命令分一次性计划和周期性计划。比如我要在今年10月1结婚,这是一次性的计划。不能每年的10月1结婚吧,真有女女愿意结,咱经济上也吃不消呀。睡觉就是周期性的计划。比如,我给自己规定每天晚上的11点半睡觉。那么到时间我就上床睡觉。
at    安排作业在某一时刻执行一次
batch  安排作业在系统负载不重时执行一次
cron    安排周期性运行的作业

 

一次性计划at和batch                                                                                

 

at命令指定时间的方式

绝对计时方法
midnight noon teatime
hh:mm [today]
hh:mm tomorrow
hh:mm 星期
hh:mm MM/DD/YY

相对计时方法

now+n minutes
mow+n hours
now+n days

用法
指定在今天下午17:30执行某命令(假设现在时间是下午14:30,2012年1月11日)
命令格式:
at 5:30pm
at 17:30
at 17:20 today
at now+3 hours
at now+180 minutes
at 17:30 12.1.11
at 17:30 1.11.12

好!现格式知道了,玩个实例吧!

[root@bogon ~]# at now+5 minutes
at>
  我们定的时间是5分钟之后,现在可以在at下面输入各种任务,保存!5分钟之后执行;不过,我们需要注意,在用命令时最好写命令的绝对路径,为了安全。

[root@bogon ~]# at now+5 minutes
at> /usr/bin/wall < /etc/motd    做一个广播,把etc/motd 文件广播出去
at>                   可以继续写其它的计划
at>
job 2 at 2012-05-20 13:43      ctrl+d保存计划并退出

是否还担心我们的计划是否启动,通过下面两个命令查看at进程是否正常启动
[root@bogon test]# at -l
3 2012-05-20 13:57 a root
[root@bogon test]# atq
3 2012-05-20 13:57 a root

如果真的没有启动的话,可以通过手工方式重新启动一下
[root@bogon ~]# /etc/rc.d/init.d/atd start

删除at计划任务
[root@bogon test]# at -d

查看at计划任务
[root@bogon test]# ls /var/spool/at/

 

batch命令

作用:
  安排一个或多个命令在系统负载较轻进运行一次(一般情况下负载较轻指平均负载降到0.8以下)

使用方法同at

 

周期性计划命令crontab                                                                           

 

  作用:用于生成cron进程所需要的crontab文件
crontab的命令格式
crontab {-l|-r|-e}
-l   显示当前的crontab
-r   删除当前的crontab
-e   使用编辑器编辑当前crontab文件

好多人都觉得周期计划任务设置起来比较麻烦,其实我们只要掌握规律就很好设置。

crontab -e

规则:  把知道的具体的时间添上,不知道的都添加上*

分钟    小时   天    月    星期   命令/脚本

 

假如,我们每天早上4点要做一下操作,以下面方式表示:

分钟    小时   天   月   星期    命令/脚本
*         4      *    *    *    [具体的操作]

 

假如,我们每周一和三下午的6点要做一下操作,以下面方式表示:

分钟    小时    天    月  星期    命令/脚本
*         18     *     *   1,3      [具体的操作]

 

 

  案例:在上学的时候都有上机课,周一到周五,下午5点30上课结果。我们需要在5点30发一个通知,5点45自动关机。设定计划任务需要分两步完成,第一步提醒,第二步关机
分钟   小时    天   月    星期    命令/脚本
30     17      *    *    1-5    /usr/bin/wall < /hzh/test/guanji.wall
45     17      *    *    1-5    /usr/bin/shudown -h now

操作方法:
[root@bogon test]#  crontab -e    回车会进入一个vi文本中
  根据我上面介绍格式编写内容,然后保存退出
crontab: installing new crontab 表示创建计划成功

 

通过下面方式进行查看计划
[root@bogon test]# cd /var/spool/cron
[root@bogon cron]# ls
root
[root@bogon cron]# cat root


老易
6楼 · 2020-12-30 13:50

以下相关命令操作,建议使用超级管理员root进行实现,使用root用户登录linux。推荐了解传智播客linux云计算+运维开发课程。

1、uname查看操作系统信息

命令:uname [参数]

作用:获取计算机操作系统相关信息

参数:-a,选项-a代表all,表示获取全部的系统信息(类型、全部主机名、内核版本、发布时间、开源计划)

用法一:直接输入uname 或者 uname -a

示例代码:

#uname

#uname -a

含义:列出当前工作路径下的文件名称

linux命令24


2、ls命令查看目录下文件

ls(完整写法=>list show)列出,列表

用法一:直接输入ls

示例代码:

#ls

含义:列出当前工作路径下的文件名称

linux命令24

用法二:# ls 后面跟绝对路径,列出某个路径下的文件名

示例代码:

#ls /var/log/

含义:列出/var/log/目录下的文件名称

linux命令26



用法三:# ls 后面跟相对路径,列出某个路径下的文件名

示例代码:

#ls anaconda/

含义:列出当前工作路径下,anaconda目录下的文件名

linux命令27


用法四:#ls 后面跟参数选项 跟路径

含义:在列出指定路径下的文件/文件夹的名称,并以指定的格式进行显示。

常见的参数选项:

-l:表示list,表示以详细列表的形式进行展示

-a:all,表示显示所有的文件/文件夹(包含了隐藏文件/文件夹)

-h:表示以较高可读性(文档大小)的形式进行展示

示例代码:

#ls -l

#ls -a

#ls -la

#ls -lh

linux命令28

linux命令29

linux命令30


特别说明:

在Linux 中隐藏文档一般都是以"."开头

"."表示当前路径

".."表示上级路径(相对当前路径)

注意第一列的第一个字符,该位表示文档类型,“d”表示文件夹,“-”表示是文件

文件&文件夹在ls结果中所表示的颜色是不一样的,文件夹的颜色一般都是蓝色的,文件一般都是黑色的(所说的颜色均是指在终端中的默认颜色)

linux命令31

需要注意:单位不一定是k,系统会在获取其大小之后为文档找到一个合适的单位,因此单位可是“K”、“M”、“G”、“T”其中之一。

用法五将ls -l进行简写

示例代码:

#ll

ll等价于"ls -l"

linux命令32

LS命令总结:

#ls

#ls /usr/local

#ls -l /usr/local

#ls -la /usr/local

#ll

#ls -lh

3、pwd命令 显示当前路径

命令:(print working directory)打印当前工作目录

用法:直接输入pwd

示例代码:

#pwd

含义:告诉用户当前所在的路径

linux命令33

4、cd命令 切换目录

命令: cd (change directory,改变目录)

作用:用于切换当前的工作目录的

用法:#cd [路径]

示例代码:

#cd /usr/local/

含义:切换到/usr/local/目录下

#cd

含义:切换到当前用户的家目录

#cd ~

含义:切换到当前用户的家目录

#cd ../

含义:切换到上一级目录

说明:路径是可以写也可以不写,写路径的话则表示切换到指定路径,如果不写表示切换到当前登录用户的家目录中。

linux命令34


特别用法说明:在Linux 中有一个特殊的符号“~”,表示当前用户的家目录,等价于直接cd。


切换的方式:# cd ~ 【表示切换到当前用户家目录中】

linux命令35


5、clear命令 清除屏幕信息

命令: clear

作用:用于清除终端信息(清屏)

用法:直接输入clear回车

示例代码:

#clear

含义:清除屏幕信息

linux命令36


6、whoami命令 显示当前用户

命令: whoami

作用:用户获取当前用户的用户名

用法:直接输入whoami回车

示例代码:

#whoami

含义:获取当前用户的用户名

linux命令37

7、reboot命令 重启操作系统

命令: reboot

作用:重启操作系统

用法:输入reboot回车

示例代码:

#reboot

含义:重启操作系统

linux命令39


8、shutdown命令 关闭操作系统

命令: shutdown

作用:关机命令

用法一:输入shutdown回车

示例代码:

#shutdown

含义:使系统在60秒后关机

linux命令39


用法二:输入shutdown加参数

-h 加数字:数字代表秒数,在某个时间后关机,如果数字为0,表示立即关机

now:表示立即关机

示例代码:

#shutdown -h 20

含义:延迟关机,使系统在20秒后关机

说明:当我们执行延迟关机shutdown -h 20这个命令时,系统就处于关机等待状态。如果后悔了想取消关机,可以

输入shutdown -c取消

示例代码:

#shutdown now

含义:立即关机


linux命令40


用法三:shutdown加-r参数重启计算机

示例代码:

#shutdown -r 60

含义:延迟重启,60秒之后重启

#shutdown -r now

含义:立即重启

说明:重启等待期间,仍然可以使用shutdown -c取消操作

linux命令41

扩展命令:halt命令

在实际应用中,我们也可以直接使用halt命令进行关机操作。

基本语法:

# halt

以上命令相当于"shutdown -h 0",代表立即关机

shutdown命令总结


#shutdown now

#shutdown -h 0

#shutdown -h 60

#shutdown -r 0

#shutdown -r 60

9、type命令 查看内部命令

命令:type

作用:查看一个命令是属于内部命令还是外部命令。

用法:输入type回车

示例代码:

#type

含义:查看命令属于内部命令还是外部命令

linux命令02


10、history命令 查看历史命令

命令:history

作用:列出最近输入的一千条Shell命令信息

用法:输入history回车

示例代码:

#history

含义:列出最近输入的一千条Shell命令信息

linux命令43


11、hostnamectl主机名命令

Centos6中

查看主机名:#hostname

临时更改主机名:#hostname 临时主机名

永久更改主机名:编辑/etc/sysconfig/network文件,在文件中定义永久主机名

Centos7中主机名分3类,静态的(static)、瞬态的(transient)、和灵活的(pretty)。

静态主机名也称为内核主机名,是系统在启动时从/etc/hostname内自动初始化的主机名。相当于永久更改

瞬态主机名是在系统运行时临时分配的主机名,相当于临时更改

灵活主机名则允许使用特殊字符的主机名,例如"MaYun's Host"

CentOS 7中和主机名有关的文件为/etc/hostname,它是在系统初始化的时候被读取的,并且内核根据它的内

容设置瞬态主机名。

命令:hostnamectl

作用:操作服务器的主机名(读取、设置)

1)查看主机名

用法:输入hostnamectl回车

示例代码:

#hostnamectl

含义:查看主机名信息

linux命令44


2)同时设置静态和瞬时主机名

用法:输入hostnamectl set-hostname 主机名

示例代码:

#hostnamectl set-hostname heimaserver01.itcast.cn

含义:设置主机名称为heimaserver01.itcast.cn

注意:此设置影响静态和瞬态的主机名

linux命令45


3)分别配置静态,瞬时,灵活主机名

用法:输入hostnamectl --pretty set-hostname 主机名

示例代码:

#hostnamectl --pretty set-hostname "yunwei's server01"

含义:单独设置 灵活 主机名称为 yunwei's server01

注意:

主机名需要用引号引起来

如果试图给静态或者瞬态,设置不规范的主机名称,命令可以执行,但是系统会自动去掉不允许的特殊字符

如果要单独设置静态或者瞬态主机名,只需要单独使用--static和--transient参数即可

linux命令46

4)通过配置文件修改主机名

可以修改/etc/hostname来更改静态主机名,后面我们会讲如何编辑文件,这里大家知道就好


相关问题推荐

  • 回答 7

    使用命令:chmod 744 myflile就可以实现以上的操作。

  • 回答 4

    关于CLOSE_WAIT和TIME_WAIT状态,服务器端都有可能出现,TIME_WAIT出现应该是短连接较多,需要通过修改内核参数解决,CLOSE_WAIT状态则是服务器程序可能有问题,服务器需要主动close,以及epoll多路复用模型中使用linger调整关闭等待时间分析解决这类问题,关...

  • 回答 6
    已采纳

    chmod 命令:chmod命令是非常重要的,用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。1. 文字设定法:chmod [who] [+ | - | =] ...

  • 回答 3
    已采纳

    Linux chattr 命令一般,chattr命令用于更改Linux文件上属性。以下是它的语法:chattr [ -RVf ] [ -v version ] [ mode ] files...下面是man手册对它的描述:chattr 改变一个Linux文件系统上的文件属性。一个通用格式是:+-=[aAcCdDeijsStTu]‘+’选项,将给...

  • 回答 8
    已采纳

    命令格式cat [选项] [文件]...命令功能cat主要有三大功能:一次显示整个文件:cat filename从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.将几个文件合并为一个文件:cat file1 file2 > file命令参数-n 或 --number 对输出的所有行编号,...

  • 回答 3

    shell的执行过程: 首先,脚本是从上至下从左至右执行每一行的语句的。 其次,当执行脚本时会进入一个新的shell,也成为nologin shell,在该shell下执行完成后,再返回执行前的shell。更加详细的讲解请楼主参考鸟哥linux网站中的bash shell章节有图能让您更...

  • 回答 3

    学习linux为什么要学习Shell: 1、首先我们了解一下shell编程是什么,其实shell编程就是一坨linux命令的集合再加上一些控制语句而已 2、为什么要学习linux下的shell编程,我们平时在做运维工作时总会遇到一些重复的工作,如果我们会shell编程的话就可以将这些...

  • 回答 6

    1.服务器一般情况下只有在进行项目部署或者是出现问题的时候才需要进行远程连接操作,在进行连接的时候我们一般都是使用的外部连接软件2.启动软件,点击快速连接,我们要选择连接的协议3.协议选择要然后填写服务器的IP地址和用户名,然后点击连接4.在通过验证...

  • 回答 4

    看看系统内存是否足够多,然后分区的时候是否正常运行

  • 回答 5

    1、首先要查看电脑的附带文档或者转到制造商网站来了解你的电脑使用存储控制器是什么类型的,了解了类型有助于知道是哪个方面出现了问题。2、然后在另一台电脑上同样是转到制造商的网站,将最新的驱动程序下载下来,并且保存在usb闪存驱动器或者是别的可以移...

  • 回答 7

    1、切换到root用户后。2、键入vim /etc/inittab, 就可以查看并修改该配置文件。3、在输入上面的命令后,我们可以看到该配置文件里面的信息如下:4、注意最后的那几行,就是Linux系统默认启动有七种。0:关机(不要设置这个!)1:单用户(类似于windows操作系统...

  • 回答 5
    已采纳

    很多朋友经常会忘记Linux系统的root密码,linux系统忘记root密码的情况该怎么办呢?重新安装系统吗?当然不用!进入单用户模式更改一下root密码即可。步骤如下:重启linux系统重启系统后出现GRUB界面在引导装载程序菜单上,按 E出现内核选择 ,选择第二行 ...

  • 回答 6

    1.正确的关机流程为:sysnc ? shutdown ? reboot ? halt;2.sync 将数据由内存同步到硬盘中。3.shutdown 关机指令,你可以man shutdown 来看一下帮助文档。例如你可以运行如下命令关机:4.shutdown –h 10 ‘This server will shutdown after 10 mins’ ...

  • 回答 2

    1、LPIC,全称Linux专业委员会认证2、Oracle联合认证(OCA)3、Oracle专业认证(OCP)4、RHCE,也叫做红帽认证工程师5、RHCA即红帽认证架构师6、SUSE认证Linux管理员(SUSE CLA)7、SUSE认证Linux专业人员(CLP)8、SUSE认证Linux工程师(CLE)...

  • 回答 15
    已采纳

    1、cd命令这是一个非常基本,也是大家经常需要使用的命令,它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径。如:cd /root/Docements # 切换到目录/root/Docementscd ./path          # 切换到当前目录下的path...

  • 回答 7
    已采纳

    目录/bin存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。/etc存放系统管理和配置文件/home存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示 /usr用于存放系统应用程序,比较重要的目录/u...

没有解决我的问题,去提问