Menu
Woocommerce Menu

顾客及权限管理,Linux基本功命令知识

0 Comment


图片 1

在64位的Red
Hat Enterprise Linux Server release 6.6上安装Symantec Backup Exec
2010时, 遇到下面错误:

linux系统是多用户(Multi-users)和多任务(Multi-tasks)的,这样的目的是为了一台linux主机可以给很多用户提供服务同时运行多种服务,但是我们是怎么区分每个用户呢?作为一个管理员我对linux系统权限有哪些?作为一个普通的用户又可以对linux系统有哪些操作呢?这里就牵扯到了linux的用户类别和权限管理。本次博客就用户和权限管理作出详细的解释。

 图片 2

 

用户和组类型

在linux系统中,有着用户和组着两个概念,用户是被包含在组里面的。

用户可以分为以下2中类别:

管理员:也就是我们常说的root

普通用户:分为系统用户(为了能够让有些后台进程或服务类进程以非管理员的身份运行,通常需要为此创建多个普通用户,这类用户从不用登录系统)和登录用户

作为合法居民都应该有自己的ID号,在linux中,用户也有自己的用户标识的UID,是由16bits的二进制数字来标识的,所以取值范围为0-65535.不同类型的用户取值范围如下:
管理员:0

普通用户:

    系统用户:1-499(centos6),1-999(centos7)

    登录用户:500-60000(centos6),1000-60000(centos7)

组按不同的分类可以分为以下3中类型的组:

1.按管理员组合普通用户组

管理员组:对系统有着管理权限的组

普通用户组:和普通用户对应也有着系统组和登录组

组也有着自己的GID,不同组的取值范围如下(和用户取值范围相同)

管理员组:0

普通用户组:

    系统用户组:1-499(CentOS6), 1-999(CentOS7)

    登录用户组:500-60000(CentOS6), 1000-60000(CentOS7)

 

2.按基本组和附加组

基本组:用户在创建的时候,都会默认创建一个与其名字相同的基本组

附加组:一个用户可以属于一个基本组后,也可以添加其他的组中,这个其他组就称为这个用户的附加组

 

3.按用户数目

私有组:组名通用户名,且只包含一个用户

公用组:组内包含着多个用户

 

下面我们来说一下系统是怎么识别这个用户是合法用户的,用户在登录的时候,必须要键入用户名和密码,系统会把用户提供密码与系统中配置文件中的密码对比(当然这里不是简简单单的明文对比),如果相同则允许登入,否则不允许。管理员在定义用户密码的时候后最好要遵循以下定义标准(虽然linux允许用户设置弱类型密码):

1.使用随机的密码

2.最短长度不要低于8位

3.应该使用大写字母、小写字母、数字和标点符号四类字符中至少三类

4.定期更换

我们都知道,定义的密码都是明文的,那么保存在配置文件中是以明文的吗?那肯定不是的,密码一般都会被算法加密,在centos中有以下加密算法,密码被加密成的bit位也不一样,越长说明安全性越高,加密等级为(1-6),在加密前还会添加上一段随机数进行加密,centos默认以sha512加密:

1    md5:128bits

2    sha:160bits

3    sha224:224bits

4    sha256:256bits

5    sha384:384bits

6    sha512:512bits

可以使用命令对一段明文加密:

[root@localhost ~]# echo "Frank" | sha512sum 
d373aa36ac1061fab63c4a8ee098102476de1ff1bdff11be3629c54ccb14a35d27f658a4745a61ec183fbbd1077561a5bfcba5ead0fa4b32e2e63492e8fed3ea  -

 

 图片 3

#
./installralus

用户和组的相关配置文件

/etc/passwd

我们先看一下这个文件:

[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
......(省略)
tcpdump:x:72:72::/:/sbin/nologin
claire:x:1001:1001::/home/claire:/bin/bash

会看到一行从左到右被冒号分割成了7个部分,下面就这七个部分作出解释,我们以最后一行为例:

1.claire,也就是用户名啦

2.x,密码占位符,密码不是没有保存在这个文件下,后面会讲

3.1001,UID,也就是用户ID

4.1001,GID,也就是组ID

5.空的,这里一般是注释信息,可能是用户的全称

6./home/claire,用户的家目录

7./bin/bash,用户登录的默认shell

我们可以看到前面为UID为0的为管理员root,那些UID小于等于999的,如bin为1,是系统用户,他的默认shell为/nologin,也就是不允许登录的。

 

/etc/shadow

我们先来看一下这个文件:

[root@localhost ~]# cat /etc/shadow
root:$6$0CIKvP15hvSin5V5$oc.amWyL11jfB1pYxYiaGNfyN8HVq2s0iaVW0KiUd5RrS2SwKmWhTTqUzJ5uNnHi7.pc3OEqO/BMeLIFPOnpJ.::0:99999:7:::
bin:*:17110:0:99999:7:::
daemon:*:17110:0:99999:7:::
adm:*:17110:0:99999:7:::
lp:*:17110:0:99999:7:::
sync:*:17110:0:99999:7:::
.....(省略)
tcpdump:!!:17348::::::
claire:$6$ZZ5ZKnr4$UI7/gW2z6rtmZygBpH81V8MawY7oLgPTaU65w.zmNyi8Bd9rWVgLQPuZtB1.Q6p6T5KOcd9wnCEJapqcAKCLj.:17357:0:99999:7:::

会看到一行被冒号分为了9个部分,我们还是以claire为例子来说明:

1.claire,用户名

2.用户被加密后的密码,第一个$和$之间的为加密等级,”6″为sha512(前面说过咯),第二个$和第三个$之间为随机数(也被称为加salt),之后为加密后的密文,当密码前有”!”或者”*”代表这个用户被禁用了

3.用户最近修改密码的日期,用天数表示,表示从1970年1月1日到被修改那天之间的天数,可以通过以下方法将天数换算成具体的日期:

[root@localhost ~]# date -u -d "1970-01-01 UTC $((17357 * 86400 )) seconds"
Mon Jul 10 00:00:00 UTC 2017

4.密码最短使用天数,”0″表示可以随时修改密码,如果为”3″,那么表示用户只有在最近一次修改的三天之后才能修改改密码

5.密码最长使用天数,”99999″就不需要修改了,对你来说也就是永久的了

6.密码告警时间,也就是你密码最长使用天数的,前多少天提醒你,如果的你的密码最长使用天数为100天,密码告警时间为7,那么在
     94天的时候,就会提示用户改修改密码了

7.密码过期的恕限时间,如果这里的值为2,当你在告警时间结束之后,仍然没有修改密码,那么在2天内,你还可以使用这个密码登录

8.账号失效时间,也是基于1970年1月1日的天数,当用户到了这个时间的时候,就无法在使用了,这一项一般会被使用在收费服务的系统中,当超过这个时间的时候,账户就不能使用了。

9.保留位,未来有可能会使用

 

/etc/group

我们还是先看一下这配置文件下有什么

[root@localhost ~]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
......(省略)
slocate:x:21:
tcpdump:x:72:
claire:x:1001:

每一行被冒号从左至右分割成了4个部分,还是以最后一行来说明:

1.claire:默认创建一个用户,就会自己创建一个与其同名的组

2.x,组密码占位符,密码也不是放在这里的哦

3.1001,GID,组ID

4.是一个以逗号分隔的用户列表,以此组为附加组的用户的用户列表

 

/etc/gshadow

先打开文件看一下:

[root@localhost ~]# cat /etc/gshadow
root:::
bin:::
daemon:::
sys:::
......
avahi:!::
slocate:!::
tcpdump:!::
claire:!::

每一行被冒号从左至右分割成了4个部分,还是以最后一行来说明:

1.claire:默认创建一个用户,就会自己创建一个与其同名的组

2.如果为”!”或者是”*”,那么其他用户就不需要密码就可以加入到这个组中,如果组是设置的密码,则为一串密文,如果是空,则表示只有该组的成员可以获得组的权限

3.用户组管理员,是一个以逗号分隔的用户列表,用户组管理员可以修改密码和组成员,也很组里其他成员拥有相同的权限

4.成员,是一个以逗号分隔的用户列表,以此组为附加组的用户的用户列表,应该要和/etc/group下的用户列表一样

 

图片 4

./installralus:
../perl/Linux/bin/perl: /lib/ld-linux.so.2: bad ELF interpreter: No such
file or directory

用户和组管理常用命令

 作为一个管理员,我们可以增删用户、增删组、修改用户和组属性,下面我们就来介绍常用的用户和组管理命令。

 groupadd

NAME:创建一个新的组

SYNOPSIS:groupadd [options] group

常用选项:

-g GID:指定GID,默认是上一个组的GID+1

-r:创建系统组

举例如下:

[root@localhost ~]# groupadd my_group
[root@localhost ~]# tail -2 /etc/group
claire:x:1001:
my_group:x:1002:    #默认上一个组号加一,注意必须是同类型的组,这里都位登录用户组
[root@localhost ~]# groupadd -g 1500 cloud    #指定GID为1500
[root@localhost ~]# tail -2 /etc/group
my_group:x:1002:
cloud:x:1500:    #GID被指定为1500
[root@localhost ~]# groupadd -r my_sys    #创建系统用户组 my_sys
[root@localhost ~]# tail -2 /etc/group
cloud:x:1500:
my_sys:x:983:    #系统用户组的GID为983

 

 groupmod

NAME:修改组的属性

SYNOPSIS:groupmod [options] GROUP

常用选项:

-g GID:修改GID

-n new_name:修改组名

举例如下:

[root@localhost ~]# tail -3 /etc/group
my_group:x:1002:
cloud:x:1500:
my_sys:x:983:
[root@localhost ~]# groupmod -g 1003 cloud    #修改GID为1003
[root@localhost ~]# tail -3 /etc/group
my_group:x:1002:
cloud:x:1003:
my_sys:x:983:
[root@localhost ~]# groupmod -n  my_system my_sys    #将组名my_sys修改为my_system
[root@localhost ~]# tail -3 /etc/group
my_group:x:1002:
cloud:x:1003:
my_system:x:983:

 

groupdel

NAME:删除一个组

SYNOPSIS:groupdel [options] GROUP

举例如下:

[root@localhost ~]# tail -3 /etc/group
my_group:x:1002:
cloud:x:1003:
my_system:x:983:
[root@localhost ~]# groupdel my_system   #删除系统组my_system
[root@localhost ~]# tail -3 /etc/group
claire:x:1001:
my_group:x:1002:
cloud:x:1003:

 

useradd

NAME:创建一个用户或者更新用户的信息

SYNOPSIS:useradd [options] LOGIN

                       useradd -D

                       useradd -D [options]

常用选项:

-u:–uid UID:指定UID

-g:–gid GROUP:指定基本组,此组得事先存在

-G:–groups
GROUP1[,GROUP2,…[,GROUPN]]]:指定用户所属的附加组,多个组之间用逗号分隔

-c:–comment COMMENT:指明注释信息

-d:–home
HOME_DIR:指定的路径为用户的家目录:通过复制/etc/skel此目录并重命名实现,指定的家目录路径如果事先存在,则不 
                                          会为用户复制环境配置文件

-s:–shell
SHELL:指定用户的默认shell,可用所有的shell存放在/etc/shells下

-r:–system:创建系统用户

举个例子

创建一个组ID为1200,基本组为cloud(已存在),附加组为”my_group”,注释信息为”my_test”,家目录为”/home/my_home”,shell为csh,用户名为my_test的用户

[root@localhost ~]# useradd -u 1200 -g cloud -G my_group -c "my_test" -d /home/my_home  -s /bin/csh my_test 
[root@localhost home]# id my_test    id命令后面会讲到
uid=1200(my_test) gid=1003(cloud) groups=1003(cloud),1002(my_group)
[root@localhost home]# 
[root@localhost home]# tail -1 /etc/passwd
my_test:x:1200:1003:my_test:/home/my_home:/bin/csh
[root@localhost home]# tail -3 /etc/group
claire:x:1001:
my_group:x:1002:my_test
cloud:x:1003:
[root@localhost home]# ll -a  /home/my_home/
total 12
drwx------. 3 my_test cloud  78 Jul 10 06:23 .
drwxr-xr-x. 5 root    root   48 Jul 10 06:23 ..
-rw-r--r--. 1 my_test cloud  18 Aug  2  2016 .bash_logout
-rw-r--r--. 1 my_test cloud 193 Aug  2  2016 .bash_profile
-rw-r--r--. 1 my_test cloud 231 Aug  2  2016 .bashrc
drwxr-xr-x. 4 my_test cloud  39 Jul  1 07:56 .mozilla

 注意:创建用户时的默认设定配置文件为/etc/login.defs如:

PASS_MAX_DAYS    99999
PASS_MIN_DAYS    0
PASS_MIN_LEN    5
PASS_WARN_AGE    7
#
# Min/max values for automatic uid selection in useradd
#
UID_MIN                  1000
UID_MAX                 60000
# System accounts
SYS_UID_MIN               201
SYS_UID_MAX               999
#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN                  1000
GID_MAX                 60000
# System accounts
SYS_GID_MIN               201
SYS_GID_MAX               999
.....
CREATE_HOME    yes
UMASK           077
ENCRYPT_METHOD SHA512 

 也可使用useradd -D显示创建用户的默认配置

[root@localhost home]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

修改默认的属性

useradd -D 

选项:

-b,–base-dir:家目录

-e,–expiredate:账号失效时间

-f,–inactive:密码过期的恕限时间

-g,–gid:在创建新的用户的时候,一般都会自动创建与其同命的组,当在创建用户的时候使用了-N/–no-user-group,也就是不创建组或者在/etc/login.defs里的USERGROUPS_ENAB变量被设置成了no,就会将默认指定的组(默认为组100,user)指定改用户的组。

[root@localhost ~]# useradd -N no_group
[root@localhost ~]# id no_group
uid=1201(no_group) gid=100(users) groups=100(users)

 -s,–shell:用户登录的shell

 

 usermod

NAME:修改一个用户的属性

SYNOPSIS:usermod [options] LOGIN

常用选项:

-u, –uid UID:修改用户的ID为此处指定的新UID;

-g, –gid GROUP:修改用户所属的基本组;

-G, –groups
GROUP1[,GROUP2,…[,GROUPN]]]:修改用户所属的附加组;原来的附加组会被覆盖;

-a, –append:与-G一同使用,用于为用户追加新的附加组;

-c, –comment COMMENT:修改注释信息;

-d, –home
HOME_DIR:修改用户的家目录;用户原有的文件不会被转移至新位置;

-m,
–move-home:只能与-d选项一同使用,用于将原来的家目录移动为新的家目录;

-l, –login NEW_LOGIN:修改用户名;

-s, –shell SHELL:修改用户的默认shell;

-L, –lock:锁定用户密码;即在用户原来的密码字符串之前添加一个”!”;

-U, –unlock:解锁用户的密码;

与useradd类型,这里就不在多说了

 

 userdel

NAME:删除一个用户和其相关的文件

SYNOPSIS:userdel [options] LOGIN

常用选项:

-r:删除用户时一并删除其家目录,默认不删除

[root@localhost home]# userdel no_group
[root@localhost home]# ll /home/
total 0
drwx------. 3 claire  claire 78 Jul 10 03:35 claire
drwx------. 2 frank   frank  62 Jun 30 10:17 frank
drwx------. 3 my_test cloud  78 Jul 10 06:23 my_home
drwx------. 3    1201 users  78 Jul 10 06:49 no_group

 

passwd

NAME:修改用户的认证信息

SYNOPSIS: passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n
mindays] [-x maxdays] [-w warndays] [-i inactivedays]
[-S] [–stdin] [username]

仅适用passwd,修改用户自己的密码,要输入2次,输入密码的密码为隐藏状态

[root@localhost home]# passwd
Changing password for user root.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

passwd  USERNAME:修改指定用户的密码,一般只用管理员root才可以修改

常用选项:

-l,-u:锁定和解锁用户

-d:清除用户密码

-e
DATE:账户失效时间,日期,也可以使用1970年1月1日到现在的天数,试过不可用,如果兄弟试了可用,麻烦告知,可以通过设置/etc/default/useradd的EXPIRE的day数,默认不设置,当设置为”99999″时,创建账户Never_user默认账户失效时间就被设为了”99999″,也可以使用后面的命令chage,后面再说!

[root@localhost home]# cat /etc/default/useradd 
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=99999
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@localhost home]# useradd Never_user
[root@localhost home]# tail -1 /etc/shadow   #用户失效时间被设置为了99999
Never_user:!!:0:0:99999:7::99999:

-i DAYS:密码过期的恕限时间

-n DAYS:密码的最短使用期限;

-x DAYS:密码的最长使用期限;

-w DAYS:警告期限;

以上亲测(除-e之外)均可设置,

–stdin:标准输入,避免重复输入2次密码

使用方法:

[root@localhost home]# echo "Never_user" | passwd --stdin Never_user
Changing password for user Never_user.
passwd: all authentication tokens updated successfully.
[root@localhost home]# tail -1 /etc/shadow
Never_user:$6$vogq3txX$7pcR5l4sb6YMRbE9CK2gNg2ZR12tCeqdgMWb3vmhlZmcnw2hfgjozcSellI7w7QLTHoQpuik1EGFkAn.74py30:17357:0:99999:7::99999:

 

gpasswd

NAME:可以设置组密码

SYNOPSIS:gpasswd [option] group

常用选项:

-a USERNAME:向组中添加用户

-d USERNAME:从组中移除用户

比如我们将用户”Never_user”添加到组”cloud”中

[root@localhost home]# gpasswd -a Never_user cloud
Adding user Never_user to group cloud
[root@localhost home]# tail -3 /etc/group
my_group:x:1002:my_test
cloud:x:1003:Never_user
Never_user:x:1201:
[root@localhost home]# 

 

newgrp

NAME:临时切换基本组

SYNOPSIS:newgrp [-] [group]

常用选项:

-:会模拟用户重新登录以实现初始化其工作环境,返回以前的状态,是用exit退出

#我们切换到Never_user下,Never_user基本组为Never_user和cloud
[Never_user@localhost ~]$ id
uid=1201(Never_user) gid=1201(Never_user) groups=1201(Never_user),1003(cloud) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[Never_user@localhost ~]$ touch test.txt
[Never_user@localhost ~]$ ll     #我们可以看见创建的文件的组为Never
total 0
-rw-rw-r--. 1 Never_user Never_user 0 Jul 10 08:07 test.txt
[Never_user@localhost ~]$ newgrp - cloud   #切换为组cloud
[Never_user@localhost ~]$ 
[Never_user@localhost ~]$ touch test1.txt   #test1文件的用户组为cloud
[Never_user@localhost ~]$ ll
total 0
-rw-r--r--. 1 Never_user cloud      0 Jul 10 08:07 test1.txt
-rw-rw-r--. 1 Never_user Never_user 0 Jul 10 08:07 test.txt

 

chage

NAME:修改用户密码的过期信息

SYNOPSIS:chage [options] LOGIN

常用选项:

-d:修改最后一次修改密码时间

-E:修改用户失效时间

-I:修改密码过期怒限时间

-W:修改告警天数

-m:修改密码最小使用天数

-M:修改密码最长使用天数

举个例子:修改Never_user账户失效的时间为2017年07月30日

[root@localhost home]# chage  -E  2017-07-30 Never_user
[root@localhost home]# tail -1 /etc/shadow   #2017年07月30日,自动转换为了从1970年1月1日到2017年07月30日的天数
Never_user:$6$vogq3txX$7pcR5l4sb6YMRbE9CK2gNg2ZR12tCeqdgMWb3vmhlZmcnw2hfgjozcSellI7w7QLTHoQpuik1EGFkAn.74py30:17357:0:99999:7::17377:

 

id

NAME:显示真的和有效的用户和组ID

SYNOPSIS:id [OPTION]… [USER]

常用选项:

-u: 仅显示有效的UID

-g: 仅显示用户的基本组ID

-G:仅显示用户所属的所有组的ID

[root@localhost home]# id frank
uid=1000(frank) gid=1000(frank) groups=1000(frank)
[root@localhost home]# id -u frank
1000
[root@localhost home]# id -g frank
1000
[root@localhost home]# id -G frank
1000

 

 su

NAME:切换用户

SYNOPSIS:su [options…] [-] [user [args…]]

登录式时切换,会通过读取目标用户的配置文件来重新初始化

su – USERNAME

非登录式时切换,不会读取目的用户的配置文件进行初始化

su USERNAME

管理员可以无密码切换至其他任何用户

-c  ‘COMMADN’:仅以指定用户的身份运行此处制定的命令

[root@localhost home]# su -c "whoami" Never_user
Never_user

 

图片 5

 

权限的定义

 我们先任意看一下目录下的文件:

[root@localhost ~]# ll /etc/default/
total 12
-rw-r--r--. 1 root root  254 Jun 30 10:19 grub
-rw-r--r--. 1 root root 1756 Nov  4  2016 nss
-rw-r--r--. 1 root root  124 Jul 10 07:20 useradd

每一行的最左位为文件的类型,-代表普通文件,那么接下来的9为又是什么呢?

左三位:定义了owner(属主)的权限,也就是user的

中三位:定义了group(属组)的权限

右三位:定义了others(其他人)的权限

 图片 6

进程以其发起者的身份运行,进程对文件的访问权限,取决于发起此进程的用户的权限;当使用一个进程对一个文件进行操作的时候,会对比进行的发起者是不是和文件的属主一致,如果一致,则应用属主的权限,如果不一致,则对比进程的发起者是不是属于文件的属组,如果属于则执行属组的权限,如果都不是,则只能应用其他人的权限。用户也只能修改那些属主是自己的那些文件。

那么rwx分别代表什么呢?

r:readable,可读

w:writable,可写

x:excutable,可执行

rwx对文件和目录的操作是不同的:

对文件:

r:可获取该文件的数据

w:可修改文件的数据

x:该文件可以执行

对目录:

r:可以使用ls命令回去其下的所有文件的列表,如果只有r,则只能看到目录下的文件名列表

w:可修改此文件目录下的文件列表,就是可以删除和创建文件,前提必须有x的权限,如果只有w,不能干任何事

x:且可使用ls
-l来获取所有文件的详细属性信息,前提必须是有r的权限,如果只有x,只能cd到目录下

 
权限与二进制和八进制的对应关系表

 图片 7

 

 

出现这个错误是因为64位系统中安装32位应用程序(Symantec
Backup Exec
2010的32位安装应用程序,如果是64位应用程序,就不会遇到这个问题),需要在64位系统中安装32位相关包。安装下面包即可解决这个问题。

 权限的管理命令

 chmod

NAME:change file mode bits,修改文件的权限

SYNOPSYS:

      1. chmod [OPTION]… MODE[,MODE]… FILE…

       2.chmod [OPTION]… OCTAL-MODE FILE…

       3.chmod [OPTION]… –reference=RFILE FILE…

下面来介绍一下这三种方式,每种方式适合不同的场景

  1. chmod [OPTION]… MODE[,MODE]…
    FILE…

首先我们来了解一下,在命令中使用以下字母代表相应用户类型

u:属主

g:属组

o:其他人

a:所有

(1)可以直接将rwx直接赋值给相应的用户类型,比如:u=rwx,g=x,o=
,空代表该位没有权限

举个例子:

[root@localhost ~]# cd /tmp/read/
[root@localhost read]# ll
total 4
-rw-r--r--. 1 root root 4 Jul 10 09:49 read.txt
[root@localhost read]# chmod u=rwx,g=rw,o= /tmp/read/read.txt 
[root@localhost read]# ll
total 4
-rwxrw----. 1 root root 4 Jul 10 09:49 read.txt

(2)直接操作一类用户的一个权限位

举个例子:

[root@localhost read]# ll
total 4
-rwxrw----. 1 root root 4 Jul 10 09:49 read.txt
[root@localhost read]# chmod u-x /tmp/read/read.txt
[root@localhost read]# ll
total 4
-rw-rw----. 1 root root 4 Jul 10 09:49 read.txt

2.chmod [OPTION]… OCTAL-MODE
FILE…

直接指定八进制

举个例子:

[root@localhost read]# chmod 777 /tmp/read/read.txt 
[root@localhost read]# ll
total 4
-rwxrwxrwx. 1 root root 4 Jul 10 09:49 read.txt

3.chmod [OPTION]… –reference=RFILE
FILE…

参考其他文件的权限

[root@localhost read]# chmod --reference=/etc/passwd  /tmp/read/read.txt 
[root@localhost read]# ll
total 4
-rw-r--r--. 1 root root 4 Jul 10 09:49 read.txt

常用选项:

-R:–recursive:递归修改

 

 chown

只有管理员可以修改文件的属主和属组

NAME:修改文件的属主和属组

SYNOPSIS:

       chown [OPTION]… [OWNER][:[GROUP]] FILE…

       chown [OPTION]… –reference=RFILE FILE…

举个例子:

[root@localhost read]# ll
total 4
-rw-r--r--. 1 root root 4 Jul 10 09:49 read.txt
[root@localhost read]# chown frank:frank ./read.txt 
[root@localhost read]# ll
total 4
-rw-r--r--. 1 frank frank 4 Jul 10 09:49 read.txt

常用选项:

-R:如果修改目录,也想递归修改下面的文件,则是用该参数

 

chgrp

NAME:修改属组

SYNOPSIS:

       chgrp [OPTION]… GROUP FILE…

       chgrp [OPTION]… –reference=RFILE FILE…

其实直接使用chown就可以了

这里补充一个内容就是umask,当我们创建一个普通文件或者目录文件的时候,都会有默认的权限,那么这个默认权限是怎么定义的呢?

默认umask(只看后三位):

[root@localhost read]# umask
0022

对于新建文件的权限为666-umask=644=rw-r–r–

[root@localhost read]# touch test.txt
[root@localhost read]# ll
total 4
-rw-r--r--. 1 frank frank 4 Jul 10 09:49 read.txt
drwxr-xr-x. 2 root  root  6 Jul 10 10:36 test
-rw-r--r--. 1 root  root  0 Jul 10 10:37 test.txt

对于新建目录的权限为777-umask=755=rwxr-xr-x

[root@localhost read]# mkdir ./test
[root@localhost read]# ll
total 4
-rw-r--r--. 1 frank frank 4 Jul 10 09:49 read.txt
drwxr-xr-x. 2 root  root  6 Jul 10 10:36 test

可以使用umask MASK来设置umask,当然只对当前Shell进程有效

 

补充命令:

install

NAME:复制文件并设置属性,也可以创建目录,不能复制目录和递归复制

SYNOPSYS:

       install [OPTION]… [-T] SOURCE DEST

       install [OPTION]… SOURCE… DIRECTORY

       install [OPTION]… -t DIRECTORY SOURCE…

       install [OPTION]… -d DIRECTORY…

和cp的用法类似,这里不再敖述,新的用法是install -d 可以创建目录

常用选项:

-m:设置目标文件的属性,默认属性为755

-o:设置目标文件的属主

-g:设置目标文件的属组

[root@localhost read]# install -o frank -g frank /etc/fstab /tmp/
[root@localhost read]# ll /tmp/
total 48
drwxr-xr-x. 2 root  root      6 Jul  7 02:44 07070244
drwxr-xr-x. 2 root  root      6 Jul  7 02:45 07070245
drwxr-xr-x. 2 root  root      6 Jul  7 02:53 07070253
drwxr-xr-x. 2 root  root      6 Jul  7 01:18 a_c
drwxr-xr-x. 2 root  root      6 Jul  7 01:18 a_d
drwxr-xr-x. 2 root  root      6 Jul  7 01:18 b_c
drwxr-xr-x. 2 root  root      6 Jul  7 01:18 b_d
drwxr-xr-x. 2 root  root    279 Jul  9 00:57 conf.d
-rwxr-xr-x. 1 frank frank     5 Jul 10 10:44 fstab
-rw-r--r--. 1 root  root    126 Jul  9 01:22 fstab1.out

 

mktemp

NAME:创建临时的文件或者目录文件,会直接返回文件名称

SYNOPSIS: mktemp [OPTION]… [TEMPLATE]

TEMPLATE为:name.XXXX  name可以自定义,XXXX必须为大写的X且最少三位

[root@localhost tmp]# mktemp case.XXX
case.rMB
[root@localhost tmp]# mktemp case.XXXXX
case.HeqBH
[root@localhost tmp]# mktemp case.XXXXX
case.MatKC

常用选项:

-d:创建临时目录

[root@localhost tmp]# mktemp -d case.XXXXX
case.TGRtu

图片 8

 

图片 9

 

特殊权限

SUID

默认情况下,用户发起的进程,进程的属主是其发起者1,因此,以发起者的身份在运行

作用:用户运行某程序时,如果此程序拥有SUID权限,那么程序运行为进程时,进程的属主不是发起者,而是程序文件自己的属主

修改SUID的权限:

chmod u(+|-)s  FILE

展现的位置:属主的执行权限位,如果属主原本有执行权限,显示为小写s,否则为大写S

举例:passwd这个命令对/etc/shadow,/etc/shadow保存的是用户的密码等信息,默认只有管理员可以修改,但是passwd这个命令普通的用户也可以用来修改密码,因为当用户执行passwd这个命令的时候,进程的发起者不是用户本身,而是管理员root

[root@localhost ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd

 

SGID

作用:当目录属组有写权限的时候,且有SGID权限时,那么所有属于此目录的属组,且以属组身份在此目录中新建文件或目录时,新文件的属组不是用户的基本组,而是此目录的属组。

管理文件的SGID:

chmod g+|-s FILE

展现位置:属组的执行权限位,如果属组原本就有执行权限,显示为小写s,否则为大写S

举例

修改/tmp/myper的权限:

[root@localhost tmp]# chmod g+s  ./myper/
[root@localhost tmp]# ls -ld ./myper/
drwxrwsr-x. 2 root root 76 7月  23 09:28 ./myper/

给用户添加frank的附件组root

[root@localhost tmp]# usermod  -aG root frank
[root@localhost tmp]# id frank
uid=1000(frank) gid=1000(frank) 组=1000(frank),0(root)

su到frank用户下,在/tmp/myper下创建新文件myer5,这时我们会看到文件myper5的属组并不是frank,而是其属组

[root@localhost tmp]# su - frank
上一次登录:日 7月 23 09:26:49 CST 2017pts/1 上
[frank@localhost ~]$ touch /tmp/myper/myper5
[frank@localhost ~]$ ls -l /tmp/myper/
总用量 16
-rw---x--x. 1 root  root 7 7月  23 07:57 myper1
-r---w--w-. 1 root  root 7 7月  23 07:57 myper2
---xr-xr-x. 1 root  root 7 7月  23 07:57 myper3
-rwxr-xr-x. 1 root  root 7 7月  23 07:57 myper4
-rw-rw-r--. 1 frank root 0 7月  23 09:28 myper5

 

sticky

作用:对于属组或全局可写的目录,组内所有的用户或系统的所有用户对在此目录中都能创建或删除自己的文件,如果此类目录设置了sticky权限,则每个用户能创建新文件,且只能删除自己的

管理sticky:

chmod o+|-t FILE

展现位置:其他用户的执行权限位,如果其他用户原本就有执行权限,为小写t,否则为大写T

举例:/tmp目录本身就是有sticky权限的,每个用户能在其目录下创建文件且只能删除自己的文件

我们也可以使用八进制的方式进行权限的修改:

图片 10

赋权方式,在默认的三位八进制左侧再加一位八进制数字如:

chmod  2755  FILE

 

 

图片 11

yum
install glibc.i686

文件的访问控制列表facl

facl:file access control lists

在原来的u\g\o之外,还可以给用户和组另外的赋权

 

getfacl:可以查看是否有facl

[root@localhost myper]# getfacl myper1
# file: myper1
# owner: root
# group: root
user::rw-
group::--x
other::--x

setfacl:设置facl

赋权给用户:

setfacl -m u:USERNAME:MODE  FILE

赋权给组:

setfacl  -m g:GROUPNAME:MODE FILE

撤销赋权:

setfacl -x  u:USERNAME FILE

setfacl -x  g:GROUPNAME FILE

举例:给用户centos对/tmp/myper/myer1的读写权限,centos的附件组没有root

[root@localhost myper]# setfacl -m u:centos:rw myper1

 查看其权限,对权限匹配时,先会查看是否为属主,若不是会匹配facl的权限

[root@localhost myper]# getfacl /tmp/myper/myper1 
getfacl: Removing leading '/' from absolute path names
# file: tmp/myper/myper1
# owner: root
# group: root
user::rw-
user:centos:rw-
group::--x
mask::rwx
other::--x

 su到centos用户下,查看文件

[root@localhost myper]# su - centos
上一次登录:日 7月 23 09:51:30 CST 2017pts/1 上
[centos@localhost ~]$ cat /tmp/myper/myper1
myper1
[centos@localhost ~]$ ll /tmp/myper/
总用量 16
-rw-rwx--x+ 1 root  root 7 7月  23 07:57 myper1
-r---w--w-. 1 root  root 7 7月  23 07:57 myper2
---xr-xr-x. 1 root  root 7 7月  23 07:57 myper3
-rwxr-xr-x. 1 root  root 7 7月  23 07:57 myper4
-rw-rw-r--. 1 frank root 0 7月  23 09:28 myper5

 

小练习

1.创建组distro,其GID为2016

图片 12图片 13

[root@localhost ~]# groupadd -g 2016 distro
[root@localhost ~]# tail -1 /etc/group
distro:x:2016:

View Code

2.创建用户mandriva,其ID号为1005,基本组为distro

图片 14图片 15

[root@localhost ~]# useradd mandirva -u 1005 -g distro
[root@localhost ~]# 
[root@localhost ~]# id mandirva
uid=1005(mandirva) gid=2016(distro) 组=2016(distro)

View Code

3.创建用户mageia,其ID号为1100,家目录为/home/linux

图片 16图片 17

[root@localhost ~]# useradd mageia -u 1100 -d /home/linux
[root@localhost ~]# 
[root@localhost ~]# id mageia
uid=1100(mageia) gid=1100(mageia) 组=1100(mageia)
[root@localhost ~]# 
[root@localhost ~]# cd /home/
[root@localhost home]# ll
总用量 4
drwx------.  5 centos   centos  128 7月  23 09:53 centos
drwx------. 16 frank    frank  4096 7月  23 09:28 frank
drwx------.  3 Frank    Frank    78 7月  18 13:15 Frank
drwx------.  3 hadoop   hadoop   78 7月  23 08:16 hadoop
drwx------.  3 mageia   mageia   78 7月  23 18:55 linux
drwx------.  3 mandirva distro   78 7月  23 18:54 mandirva
drwx------.  5 hadoop   hadoop  128 7月  23 00:08 mygrp

View Code

4.给用户mageia添加密码,其密码为mageedu

图片 18图片 19

[root@localhost home]# echo "mageedu" | passwd --stdin mageia
更改用户 mageia 的密码 。
passwd:所有的身份验证令牌已经成功更新。

View Code

5.删除mandriva,但保留其家目录

图片 20图片 21

[root@localhost home]# userdel mandirva

View Code

6.创建用户slackware,其ID号为2002,基本组为distro,附加组peguin

图片 22图片 23

[root@localhost home]# groupadd peguin
[root@localhost home]# useradd slackware -u 2002 -g distro -G peguin
[root@localhost home]# id slackware
uid=2002(slackware) gid=2016(distro) 组=2016(distro),2017(peguin)

View Code

7.修改slackware的默认shell为/bin/tcsh

图片 24图片 25

[root@localhost home]# usermod -s /bin/tcsh slackware 
[root@localhost home]# tail -2 /etc/passwd
mageia:x:1100:1100::/home/linux:/bin/bash
slackware:x:2002:2016::/home/slackware:/bin/tcsh

View Code

8.为用户slackware新增附加组admins

图片 26图片 27

[root@localhost home]# groupadd admins
[root@localhost home]# usermod -aG admins slackware
[root@localhost home]# id slackware
uid=2002(slackware) gid=2016(distro) 组=2016(distro),2017(peguin),2018(admins)

View Code

 9.复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限

图片 28图片 29

mkdict  mkdir   
[root@localhost ~]# mkdir /home/tuser1
[root@localhost ~]# cp /etc/skel/.*  /home/tuser1
[root@localhost ~]# chmod -R g=,o= /home/tuser1/

View Code

10.编辑/etc/group文件,添加组hadoop

图片 30图片 31

[root@localhost tuser1]# tail -1  /etc/group   #使用vim
hadoop:x:2019:

View Code

11.手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的ID号,其家目录为/home/hadoop

图片 32图片 33

[root@localhost ~]# tail -1 /etc/passwd
hadoop:x:2003:2019::/home/hadoop:/bin/bash

View Code

12.复制/etc/skel目录为/home/hadoop,要求修改hadoop目录的属组和其他用户没有任何访问权限

图片 34图片 35

[root@localhost hadoop]# cp -r /etc/skel  /home/hadoop
[root@localhost home]# chmod g=,o= hadoop/
[root@localhost home]# ll
总用量 4
drwx------.  5 centos    centos  128 7月  23 09:53 centos
drwx------. 16 frank     frank  4096 7月  23 09:28 frank
drwx------.  3 Frank     Frank    78 7月  18 13:15 Frank
drwx------.  3 root      root     78 7月  23 19:36 hadoop
drwx------.  3 mageia    mageia   78 7月  23 18:55 linux
drwx------.  3      1005 distro   78 7月  23 18:54 mandirva
drwx------.  5      1003   1003  128 7月  23 00:08 mygrp
drwx------.  3 slackware distro   78 7月  23 18:59 slackware
drwx------.  2 root      root     62 7月  23 19:17 tuser1

View Code

13.修改/home/hadoop目录及其内部所有文件的属主为hadoop,属组为hadoop

图片 36图片 37

[root@localhost home]# chown -R hadoop:hadoop ./hadoop/
[root@localhost home]# ll
总用量 4
drwx------.  5 centos    centos  128 7月  23 09:53 centos
drwx------. 16 frank     frank  4096 7月  23 09:28 frank
drwx------.  3 Frank     Frank    78 7月  18 13:15 Frank
drwx------.  3 hadoop    hadoop   78 7月  23 19:36 hadoop
drwx------.  3 mageia    mageia   78 7月  23 18:55 linux
drwx------.  3      1005 distro   78 7月  23 18:54 mandirva
drwx------.  5      1003   1003  128 7月  23 00:08 mygrp
drwx------.  3 slackware distro   78 7月  23 18:59 slackware
drwx------.  2 root      root     62 7月  23 19:17 tuser1
[root@localhost home]# ll -a  ./hadoop/
总用量 12
drwx------.  3 hadoop hadoop  78 7月  23 19:36 .
drwxr-xr-x. 11 root   root   133 7月  23 19:36 ..
-rw-r--r--.  1 hadoop hadoop  18 7月  23 19:36 .bash_logout
-rw-r--r--.  1 hadoop hadoop 193 7月  23 19:36 .bash_profile
-rw-r--r--.  1 hadoop hadoop 231 7月  23 19:36 .bashrc
drwxr-xr-x.  4 hadoop hadoop  39 7月  23 19:36 .mozilla

View Code

 

更新历史:

2017-7-23-10:02:更新了特殊权限及文件访问控制列表facl;

 

图片 38

 

图片 39

 

命令

在安装过程中,还遇到下面错误:

1.tty (查看登录平台数量及用户)

 

2.who (查看当前平台及用户) -r(同3)

Enter the system names separated by spaces on which to install RALUS: (MyLNX8)

 

Checking system communication:

 

    Attempting /usr/bin/rsh with MyLNX8 ........................................................................... 

Cannot /usr/bin/rsh to MyLNX8

Initial system check failed.

 

Press [Return] to continue: 

3.runlevel (查看当前运行级别)

 

4.whoami (当前登录用户) *

出现这个错误的原因是因为配置文件/etc/hosts里面没有配置主机名,
在 /etc/sysconfig/network中主机名为MyLNX8

5.init3/5(切换字符/图形界面)
0/6(关机/重启“同16”) *

 

6.lsblk (查看磁盘,块设备)

# more /etc/hosts

 

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

 

::1         localhost localhost.localdomain localhost6 localhost6.localdom

7.free (查看内存) -m/g(以MB/GB为单位)
*

 

8.nano (修改文本)

修改配置文件/etc/hosts后,这个问题解决。

9.ifconfig (查看网络设备) *******
1

 

10.ls (显示目标列表) *

# more /etc/hosts

 

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

 

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

 

192.168.xx.xxx   MyLNX8.xxx.xxx.com    MyLNX8

11.ll (显示当前目标详细文件) *

12.cat (查看文本文件) *

13.rz
(批量上传文件到linux服务器“不能上传文件夹”) *

14.sz (批量上传文件到windows服务器)
*

15.cp (复制一个或多个文件到目录目标)
*

16.reboot(重启)

17.pwd (显示当前用户工作目录绝对路径)
*

18.echo(显示文字) ${A}123 (前提A=某个数)
*

19.enable (查看内部命令) -n XXX
(查看禁用的XXX内部命令)

20.exit (退出当前用户)

21.logout (注销当前用户)

22.rm -rf(删除文件或目录) *

23.type
(判断是内部命令还是外部命令)

24.hash (打开缓存表) -r XX
(清除XX缓存记录) -r (清除所有缓存)-p /xx X (“/xx”命
令路径起别名为X)

25.cd XXX (进入XXX目录) *

26.alias (查看别名) XX=“YY”
(定义“YY”的别名)

27.unalias YY(取消”YY”的别名)
-a(取消所有的别名)

28.date (查看系统时间) xxxxxx.Y
(修改月日时分年Y秒)或 date -s ‘2020-1-5 12:30:50’
(修改时间) *

29.clock (主板时间) -s (覆盖系统时间)
-w(覆盖主板时间)

30.date
+%Y-%m-%d-%H-%M-%S(显示系统时间格式 年-月-日-时-分-秒) “+%F
%T”(%F显示年月日 %T显示时分秒) *

31.date -d@距离秒数 “+%Y-%M-%D-%s-%m-%s”
*

32.reset (重置,复位)

33.shutdown (关机) -r (重启“同16”) -h +xx
(xx分钟后关机)

34.ifconfig (显示或配置网络设备)
*

35.screen -S XX(创建会话XX) -x
XX(加入会话XX)

36.cal (查看日历) XXX
查看(查看XXX年日历) Y XXX (查看XXX年Y月日历)

37.touch (创建文件) *

38.history (查看当前历史记录)
!XX(执行某条历史记录)-a (清空命令历史) -d XX (删除第XX条的命令)
*

39.rpm -ivh (显示安装过程和套件相关信息)
XXX(安装XXX目录后缀为RPM的文件) *

40.mount XXX
YYYY(挂载XXX目录下的光盘到YYY目录下) *

41.df (查看已加载的光盘) *

42.which XXX (查看XXX命令路径) *

43.gedit (图形编辑工具)

44.useradd XXX (创建一个XXX的用户)
*

45.su XXX (切换到XXX的用户) *

49.halt:关闭系统 -p(关闭系统并关闭电源) -d(关闭系统,但不留下纪录)

50.hwclock

51.info:在info后面输入命令的名称就可以查看该命令的info帮助文档了:

53.mandb:linux自带的帮助文档mandb

53.makewhatis

55.poweroff:当需要系统关闭电源时,内核调用用户空间的/sbin/poweroff命令来完成。

56.screen:Screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器,这意味着你能够使用一个单一的终端窗口运行多终端的应用

57.shutdown:关机

58.tree:执行tree指令,它会列出指定目录下的所有文件,包括子目录里的文件。

60.whatis

61.whoami:显示登录名whoami 命令在有 root
用户权限时也有效,因为它不检查 /etc/utmp 文件。显示计算名和用户

62.who am i

63.w:打印当前系统活动摘要。

64.wc:计算器

 

 

bytes

bits

8bits = 1 Bytes

 

100M

B 1024Bytes=1KB

KB 1024KB=1M

MB 1024MB=1GB

GB 1024GB=1TB

TB 1024TB=1PB

PB 1024PB=1EB

 

把十进制转化为二进制

bc

obase=2

192

11000000

二进制转化为十进制

bc

ibase=2

1010101

85

 

虚拟机当中释放鼠标 Ctrl + ALT

在安装环境中输入 ctrl + alt +f2

 

centos5及之前

hda:ida

sda:scsi、sata、sas、usb

centos6及之后

sda:

vda: 虚拟机

xvda: 虚拟机

一切皆文件

 

XShell、SecureCrt、Putty

Shell : 是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。

它接收用户输入的命令并把它送入内核去执行

shell也被称为LINUX的命令解释器

Shell:人机交互的语言

GUI:Gnome、KDE、Windows、IOS、Android

CLI:Dos、cmd、powershell、sh、

 

cat:查看文件内容

[root@centos6 ~]# cat /etc/shells
查看当前系统所安装的shell

[root@centos6 ~]# echo $SHELL
查看当前使用的何种shell

 

which :查看命令的路径

who am
i 和 who 和whoami 的区别

图片 40

 

enable :enable既可以查看内部命令,同时也可以判断是否为内部命领

-n 查看所有已禁用的内部命令

-a 查看所有的内部命令

enable command 启用指定的内部命令

enable -n command
禁用指定的内部命令

配合 | wc -l 可查看数量

[root@linuxeye ~]# enable -a
#查看内部命令

[root@linuxeye ~]# enable whiptail
#非内部命令

-bash: enable: whiptail: not a shell
builtin

[root@linuxeye ~]# enable pwd
#是内部命令

 

命令提示符:

例如:
PS1=”[\[\e[32m\]\u\[\e[36m\]@\h_v6\[\e[31m\]\[\e[0m\]
\W]\$ “

[root@localhost ~]#

# 管理员 $ 普通用户

显示提示符格式1:[root@localhost
~]#echo $PS1

修改提示符格式2 PS1=”\[\e[1;5;41;33m\][\u@\h
\W]\\$\[\e[0m\]”

\e \033 \u 当前用户 \h 主机名简称 \H
主机名 \w 当前工作目录 \W 当前工目录基名 \t 24小时时间格式 \T
12小时时间格式 \! 命令历史数 \# 开机 后命令历史行

每个用户都有默认shell设定;

查看当前shell种类:

~]# echo $SHELL

$SHELL:是环境变量

 

在shell中可执行的命令有两类

 

内部命令:
由shell自带的,而且通过某命令形式提供

help 内部命令列表

enable cmd 启用内部命令

enable –n cmd 禁用内部命令

enable –n 查看所有禁用的内部命令

外部命令:
在文件系统路径下有对应的可执行程序文件

查看路径:which -a |–skip-alias ;
whereis

区别指定的命令是内部或外部命令 type
COMMAND

命令执行的优先顺序 : alias > 内部 > 外部(hash > PATH)

 

hash缓存表

系统初始hash表为空,当外部命令执行时,默认会从PATH路径 ($PATH)下寻找该命令,找到后会将这条命令的路径记录到hash表中,当再次使用该命令时,shell解

释器首先会查看hash表,存在将执行之,如果不存在,将会去PATH路径下寻找。

利用hash缓存表可大大提高命令的调用速率

 

图片 41

 

hash常见用法

hash 显示hash缓存

hash –l
显示hash缓存,可作为输入使用

hash –p path name
将命令全路径path起别名为name

hash –t name 打印缓存中name的路径

hash –d name 清除name缓存

hash –r 清除缓存

 

命令别名:nano .bashrc 定义别名 vim
~/.bashrc

alias grep=’grep –clock=auto’

alias
显示当前shell进程所有可用的命令别名,在命令行中定义的别名,仅

对当前shell进程有效
,如果想永久有效,要定义在配置文件中

仅对当前用户:~/.bashrc

对所有用户有效
:/etc/bashrc

alias copy=cp

alias copy=’cp -p -r’

alias 查看别名

unalias 别名名字

unalias -a 取消所有别名

写入~/.bashrc

gedit ~/.bashrc

临时使某条命令不受别名影响

1.路径执行命令

如:/bin/ls

2.\ls

3.’ls’

命令的格式
:command option arguments

options 选项
启用命令的某项功能,从而更改命令的功能

arguments 参数 改变命令作用的对象

短选项

-c

-ca = -c -a

长选项

–word

 

type
:查看命令种类

如果是内嵌命令,直接显示为内嵌;

如果是外部命令,显示命令的绝对路径;

例如:

~]# type ls

~]# type cd

~]# type type

 

date : date (查看系统时间) xxxxxx.Y
(修改月日时分年Y秒)或 date -s

.clock (主板时间) -s (覆盖系统时间)
-w(覆盖主板时间)

日期相关的命令:date,hwclock(clock),cal

硬件时钟:由电池供电,硬件计时;

系统时钟:系统启动时,从硬件时钟读取并设定其时间;内核时钟;

ntp:net time protocol网络时间协议

[root@centos6 ~]# date “+%Y年%m月%d日
%H时%M分%S秒 星期2”

2018年05月15日 15时59分43秒
星期2

[root@centos6 ~]# date “+%F %T”
年月日时分秒

2018-05-15 16:00:07

[root@centos6 ~]# date +%s

1526371345

[root@centos6 ~]# date 100112202019.20
月日时分[年][.秒]

Tue Oct 1 12:20:20 CST 2019

[root@centos6 ~]# date -s ‘2020-1-5
12:30:50’

Sun Jan 5 12:30:50 CST 2020

[root@instructor_v7(nanyibo) ~]# date
-d ‘-2 days’ +%A 表示前天是星期几

 

FORMAT:格式说明

%F:日期,显示为数字,格式为:2016-03-02;

%D:显示英制格式,月日年,显示格式为:03/02/16;

%T:时间,显示为数字,格式为:15:52:16;

%Y:年份,只显示完整年份数字(4位数字)显为:2016

%y:显示年份的后两位,显示格式为:16;

%m:月份,只显示数字,显示格式为:03;

%d:日期,只显示数字,显示格式为:02;

%H:小时,只显示数字,显示格式为(00..23):15;

%k:小时,显示格式为(0..23);

%I:小时,格式为(01..12);

%l:小时,显示格式为(1..12);

%h:显示月份,显示格式为:3月;

%M:分钟,只显示数字,显示格式为:52;

%S:秒钟,只显示数字,显示格式为:16;

%a:缩写星期;

%A:完整星期;

%b:缩写月份;

%B:完整月份;

%r:显示格式为(11:11:04 PM);

%R:同%H%M,格式为(23:37)

%s:从1970年1月1日至此刻所经历的秒数;timestamp;
显示格式为:1456905397;

 

设定日期时间格式:[月月日日时时分分[[年年]年年][.秒秒]];

hwclock命令:硬件时钟

-s,
–hctosys:以硬件时间为准;设定系统时间;

-w,
–systohc:以系统时间为准;设定硬件时间;

 

图片 42

 

 

 

cal:显示日历;

cal [month] [year]
clock/hwclock

command 查看硬时间

-s 硬时间写入软时间

-w 软时间写入硬时间

init
:init 0 关机

:init 6 重启

poweroff

shutdown :shutdown (关机) -r (重启) -h +xx
(xx分钟后关机)

shutdown -h +0

+xx 几分钟后关机

20:00

TIME:无指定,默认相当于 +1

now: 立刻,相当于+0

+m: 相对时间表示法,几分钟之后;例如
+3

hh:mm: 绝对时间表示,指明具体时间

 

 

screen命令:

创建新screen会话

screen –S [SESSION]

加入screen会话

screen –x [SESSION]

标签:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章

网站地图xml地图