Linux02—文本编辑命令、用户管理、组管理、权限管理

文本编辑命令

重定向:

改变文件描述符输出结构的位置

>    覆盖输出重定向 

>>  覆盖输出重定向 

2>  错误输出重定向 

2>>  错误输出追加重定向 

&>    无论对错都重定向

<  输入重定向

<<  输入追加重定向

<< eof  eof为输入休止符

   练习1:[root@bojie yang]# cat << eof >>a.txt   --将输入的信息定向给a.txt文档

 >yangbaojie

 >eof

  [root@bojie yang]# cat a.txt    --查看文档的时候需要显示文档格式

 

vi/vim文本编辑器

  vi/vim 有三种模式:  

1.编辑模式

2.末行模式    保存退出 wq

3.命令模式

 

  vi编辑模式:

进入文件方式:vi 文件名      ---没有文件的话自动创建

[root@bojie /]vi test

  i       在光标前插入

  I       在行首插入

  a       在光标后插入

  A       在行尾插入

  o       在光标所在的下一行插入

  O       在光标所在的上一行插入

    u       撤销

   【ESC】    退出编辑模式

 

  vi命令模式    

   -- 光标的移动

 可以使用上下左右箭头

 h      向左移动

 j       向下移动

 k      向上移动

 l       向右移动

【shift】+6    快速移动到行首 即(^)

【shift】+4    快速移动到行尾 即($)

-- 删除 d

 x     删除光标所在位置的符号

 X     删除光标前面的一个字符

 d     删除

 dw   在单词中删除光标到单词末尾的内容

 d$    删除从当前字符直到行尾

 d     删除从当前字符直到行尾

 dd    删除一整行

 3dd   删除三行,删除从当前开始的三行

-- 复制 y

y      ? ?

yw     复制一个单词

yy     复制一整行

4yy    复制从当前行开始的四行

--粘贴 p

p:     

y与p在一起使用的时候相当于实现复制粘贴的功能;

d与p在一起使用的时候相当于实现剪切粘贴的功能;

--撤销 u

u      撤销

 

vi末行模式

    【shift】+【:】  进入到末行模式

    【shift】+【:】+set nu       显示行号          

            【shift】+【:】+set nonu    取消显示行号      

            【shift】+【:】+q!          不保存修改内容,强制退出    

            【shift】+【:】+q           不保存退出    

             shift】+【:】+wq          保存退出

 

用户管理

 (1)  用户是什么  

             用户是用来操作系统中不同功能的身份;

     windows里的管理员是administrator

 (2)  linux中的用户分类

 1. root: 超级用户  uid:0

 2. 系统用户      uid:1-500

   bin  --系统命令的属主

     daemon  --进程,无特权系统软件的属主

 nobody  --普通的nfs用户

 3. 普通用户

 超级用户能创建的用户

 

用户管理命令:

  useradd/adduser    添加用户

  usermod            修改用户属性

  userdel              删除用户

  id                查看用户信息

  mod       修改    ---modify

  del                 删除    ---delete

  passwd           设置用户密码  --PASSWORD

 注意:1. 当我们创建一个用户时,系统自身会创建一系列的命令和文档。

        我们删除用户的时候,这些命令和文档不一定删除干净!

                所以不能创建以往存在过的用户,即使已经删除了

   2. 添加用户的操作需要用ROOT用户来添加      --ROOT超级用户

 例句:[root@bojie ~]# useradd bojie      --创建用户BOJIE

   [root@bojie ~]# id bojie            --查看用户bojie信息

    UID=502(BOJIE) GID=502(BOJIE) GROUPS=502(BOJIE)           说明:UID        用户标识,当UID=0时  表示的是超级用户

   GID        表示当前用户所属组的ID   --GROUP ID

   GROUPS   表示当前用户所属组的信息

        *** 如果添加用户时不指定用户的所有者和所属组,那么系统会创建一个和用户

            同名的所有者和所有组。

   

 1) 添加用户

    语法格式: [root@bojie /]# useradd  选项  参数...  用户名

  选项:

 -u   定义用户的uid   --如果没有指定gid,那么默认gid会是你创建的

                                上一个组的gid顺延值

 -C   (注释) 描述信息         --COMMENT

 -d   用户的主目录

   /ROOT:   是用户ROOT的主目录

   /HOME:  默认情况下是普通用户主目录所在处

   如果创建用户时没有加-D选项指定家目录,那么它的家目录就是/HOME 

                         下和用户名同名的一个目录。例如:/HOME/BoJie

 -g   指定用户的所属组,表示用户属于的用户组

  在指定的时候可以用ID或者组的名字。有一个前提,就是这个组必须存在

 -G   指定用户的附属组,表示用户除了属于所属组外,还属于的其他组

  在指定的时候可以用ID或者组的名字。有一个前提,就是这个组必须存在

 -S   指定用户的登录SHELL

 注意:组是必须存在的

       创建用户的时候,系统就已经隐形创建名为用户名的组了,

           如果用户没有所属组和附加组的话,其自身就是所属组和附加组;

 例如  [root@BoJie ~]# id baojieyang

        uid=515(baojieyang)  gid=515(baojieyang)  groups=515(baojieyang)

        用户                  所属组                附加组

    例句1:[root@BoJie ~]# useradd -G 500 mengqiu

[root@BoJie ~]# id mengqiu

uid=504(mengqiu) gid=504(mengqiu)groups=504(mengqiu),500(niulang)

例句2:[root@BoJie ~]# useradd -G 500 lulu

   [root@BoJie ~]# id lulu

  uid=505(lulu)  gid=505(lulu)  groups=505(lulu),500(niulang)

     查看:在/etc 目录下的passwd 文档中可以查看到用户信息

  [root@bojie etc]# tail -3 passwd

   yangbaojie  : x    : 503    : 503    :     :/home/yangbaojie   :/bin/bash

   mengqiu    : x    : 504    : 504    :     :/home/mengqiu     :/bin/bash

   lulu         : x    : 505    : 505   :     :/home/lulu          :/bin/bash

   用户       :密码 :uid    : gid    : 描述信息 :家目录     :登录的shell

一个用户有且只有一个主组,但是可以属于多个组,其他为附属主

 

2) 删除用户

   语法格式: [root@bojie /]# userdel 用户名

例句: [root@BoJie ~]# userdel yangbaojie

查看: [root@BoJie ~]# id yangbaojie      ---此时用户属性看不到了

  id: yangbaojie: No such user

   [[root@BoJie etc]# tail passwd   

                              ---此时在password文件中也看不到用户属性信息了

 niulang:x:500:500::/home/niulang:/bin/bash

 liudan:x:501:501::/home/liudan:/bin/bash

 BoJie:x:502:502::/home/BoJie:/bin/bash

 mengqiu:x:504:504::/home/mengqiu:/bin/bash

 lulu:x:505:505::/home/lulu:/bin/bash

[root@BoJie ~]# useradd yangbaojie     

           --当重新创建用户的时,报错原因是:之前有创建过用户信息,

        Creating mailbox file: File exists  

           --系统在其他文件中已经有了当时的信息所以在此创建的时候创建不上

 useradd: warning: the home directory already exists.

 Not copying any file from skel directory into it.

   

 -r:递归删除,会同时删除用户的所属组

   **例句:创建用户gaozhuang,所属组为lulu,递归删除gaozhuang

          [root@BoJie ~]# useradd -g lulu gaozhuang  

                                  -创建用户gaozhuang,所属组为lulu

  [root@BoJie ~]# id lulu

  uid=505(lulu) gid=505(lulu) groups=505(lulu),500(niulang)  -查看lulu ID

  [root@BoJie ~]# id gaozhuang

  uid=507(gaozhuang) gid=505(lulu) groups=505(lulu)     

     

3) 修改用户

 语法格式: [root@bojie /]# usermod 选项 参数 用户名

 选项:

-d       修改用户家目录

-g       修改用户的所属组

-G       修改用户的附属组,不管你原来的附属组是什么

-a -G     为用户追加附属组    ---aG

      例句1:

 在家目录下创建用户class2,class3,

[root@BoJie ~]# useradd class3

[root@BoJie ~]# id class2

    uid=509(class2) gid=509(class2) groups=509(class2)

[root@BoJie ~]# useradd class3

[root@BoJie ~]# id class3

uid=510(class3) gid=510(class3) groups=510(class3)

 在根目录下创建用户class4,stu4,

[root@BoJie ~]# useradd -d /root stu4

useradd: warning: the home directory already exists.

Not copying any file from skel directory into it.

[root@BoJie ~]# id stu4

uid=512(stu4) gid=512(stu4) groups=512(stu4)

 在class3下创建stu3,附属组为class2,

[root@BoJie ~]# useradd -g class3 -G class2 stu3

[root@BoJie ~]# id stu3

 uid=511(stu3) gid=510(class3) groups=510(class3),509(class2)

用户          所属组      附属组:第一个为所属组,后面的是附属组     

/*[root@BoJie ~]# tail -5 /etc/passwd

stu:x:508:508::/root:/bin/bash

class2:x:509:509::/home/class2:/bin/bash

class3:x:510:510::/home/class3:/bin/bash

stu3:x:511:510::/home/stu3:/bin/bash

stu4:x:512:512::/root:/bin/bash*/

第一个:将用户stu4的基目录改为home

[root@BoJie ~]# usermod -d /home/class2 stu4

[root@BoJie ~]# tail -1 /etc/passwd

    stu4:x:512:512::/home/class2:/bin/bash

第二个:将用户stu4的所属组改为class3

[root@BoJie ~]# usermod -g class3 stu4

[root@BoJie ~]# id stu4

  uid=512(stu4) gid=510(class3) groups=510(class3)

第三个:将用户stu4的附属组设定为class2

[root@BoJie ~]# usermod -G class2 stu4

[root@BoJie ~]# id stu4

   uid=512(stu4) gid=510(class3) groups=510(class3),509(class2)

 注意:如果你原来没有设置附属组,直接将-G后面的组加到附属组里

   如果你原来设置附属组,则修改附属组,主组不受影响

 例句2:为stu4追加附属组class5

[root@BoJie ~]# usermod -a -G class5 stu4

[root@BoJie ~]# id stu4

uid=512(stu4) gid=510(class3) groups=510(class3),509(class2),513(class5)

 

(4) 设置用户密码

 语法格式:[root@BoJie ~]# passwd 用户名

    [root@BoJie ~]# passwd class3

  Changing password for user class3.

  New UNIX password:     ---输入密码的时候是隐形的

  BAD PASSWORD: it is WAY too short

      Retype new UNIX password:      ---重复输入密码,隐形的

  passwd: all authentication tokens updated successfully. 密码设置成功

 

组管理

 理解:组在系统里的位置:/etc/group    其格式是一个普通文档

   -rw-r--r--   1 root root    951 Sep   4 21:34 group

 基本命令

   groupadd      添加组

   groupmod     修改组

   groupdel      删除组

   gpasswd       设置密码

 

 (1)添加组

  语法格式:[root@BoJie /]# group 选项 参数 组名

  选项:

    -g    指定组的gid    

               ---如果没有指定gid,那么默认gid会是你创建的上一个组的gid顺延值

   例句1:[root@BoJie /]# groupadd baojie      ---查看group文档

  [root@BoJie /]# tail -2 /etc/group

 jklio:x:517:

 baojie:x:518:

   例句2:[root@BoJie /]# groupadd -g 2333 bo     

    --自定义gid的组 gid=2333  gid建议指定500以上的,500以下的可能系统已经用了

  [root@BoJie /]# tail -2 /etc/group

  baojie:x:518:                       

    --由此可知baojie组的gid为518,如果组bo没有自定义的话,系统应该延续顺延519

  bo:x:2333:

 (2)删除组

   语法格式:[root@BoJie /]# groupdel 组名

   注意:可以删除用户的附属组,不能删除用户的主组

   例句: [root@BoJie /]# useradd gr1                       

                   ---创建用户gr1和用户gr2,由于没哟制定所属表,

  [root@BoJie /]# useradd gr2          

  [root@BoJie /]# id gr1

      uid=516(gr1) gid=2336(gr1) groups=2336(gr1)     

                  ---系统自动建立一个与用户名相同的表作为其主表

  [root@BoJie /]# id gr2

      uid=517(gr2) gid=2337(gr2) groups=2337(gr2)

  [root@BoJie /]# tail -2 /etc/group                

                  ---我们可以在group文档中看到系统自动为用户创建的所属组

 gr1:x:2336:

 gr2:x:2337:

  [root@BoJie /]# groupdel gr2

 groupdel: cannot remove user‘s primary group.       

                   ---由于组gr2是用户gr2的所属组,所以不能删除

  [root@BoJie /]# usermod -g gr1 gr2                   

                   ---此时将组gr1定义为用户gr2的所属组

  [root@BoJie /]# id gr2

  uid=517(gr2) gid=2336(gr1) groups=2336(gr1)           

  [root@BoJie /]# groupdel gr2                          

                    ---删除用户gr2的附属组gr2

  [root@BoJie /]# id gr2

  uid=517(gr2) gid=2336(gr1) groups=2336(gr1)

 1.切换用户

 su 用户名     这种是不完全切换

 su  -用户名    这种是完全切换

 2.显示哪些用户正在在登录系统 在做什么  w

 [root@BoJie /]# w

22:38:26 up  8:04,  2 users,  load average: 0.00, 0.00, 0.00

    USER   TTY      FROM     LOGIN@   IDLE   JCPU   PCPU WHAT

    root  :0  -  14:34   ?xdm?  13.40s  0.03s /usr/bin/gnome-session

    root  pts/1    10.10.10.1    14:35    0.00s  0.09s  0.00s w

 3.显示当前用户的首要组

 [root@BoJie /]# groups

  root bin daemon sys adm disk wheel

 4.显示用户的登录情况

 [root@BoJie /]# last

 5.所有用户最后一次登录系统的时间

 [root@BoJie /]# lastlog

 6.读取环境变量的文件

 ~/.bash_profile

          每个用户都可以使用该文件输入自己使用的shell信息,

              当用户登录时,只读取一次

7.查看文件类型   FILE 文件名

[root@BoJie BoJie]# file test

test: ASCII text

 

 

权限管理

 LINUX里的文件和目录都是有一定的访问许可权限的

 查询etc目录中内容的详细属性

[root@BoJie /]# ll etc   --查看etc目录中内容的属性

- rw- r-- r--  1 root root   2441 Sep  4 22:24 passwd

    (1)解 析:

1            链接数

第一个root       是文件的所有者

第二个root       是文件的所属组

2441             是件的大小

Sep  4 22:24     文件的最后修改时间

passwd            文件名

 

LINUX下文件的类型

 -:   普通文件

 d:    目录文件

 c:    字符设备

   [root@huaxiajinling dev]# ll /dev/vcsa8

   crw------- 1 vcsa tty 7, 136 sep  4 15:06 /dev/vcsa8

 b:    块设备   一般是硬盘设备

   [root@huaxiajinling dev]# ll /dev/sda

 brw-r----- 1 root disk 8, 0 sep  4  2018 /dev/sda

  l:    连接文件

 

     对于文件来说:

 1.  用户分类如下

 u    文件的所有者

 g    文件所属组

 o    其他人

 a    所有人(u,g,o)

      - rw-    r--       r--          

    u      g        o

 2.  权限的基本类型

 r    读权限     read

 w    写权限     write

 x    执行权限   execute

 

 (2)权限的设置  

    chown    修改文件的所有者或所属组  ---chang ower  

  1.只修改文件的所有者

  [root@BoJie yang]# chown BoJie mima

  [root@BoJie yang]# ll

total 4

   -rw-r--r-- 1 BoJie root 2441 Sep  4 23:28 mima

 

  2.只改变文件的所属组

[root@BoJie yang]# chown .BoJie mima

[root@BoJie yang]# ll

total 8

-rw-r--r-- 1 BoJie BoJie 2441 Sep  4 23:28 mima

  3.同时修改文件的所有者和所属组

[root@BoJie yang]# chown BoJie.BoJie mima

[root@BoJie yang]# ls

mima  tst

[root@BoJie yang]# ll

total 8

-rw-r--r-- 1 BoJie BoJie 2441 Sep  4 23:28 mima

  4.递归修改文件和目录的所有人和所属组  -R

  文件和空目录修改一致的,当目录里有文件的时候用—R全部修改,

              当没有-r 的时候里面的不变

[root@BoJie yang]# chown -R  BoJie.BoJie bo

[root@BoJie yang]# ll

    total 12

    drwxr-xr-x 2 BoJie BoJie 4096 Sep  4 23:37 bo

    -rw-r--r-- 1 BoJie BoJie 2441 Sep  4 23:28 mima

    -rw-r--r-- 1 BoJie BoJie   23 Sep  4 23:31 tst

[root@BoJie yang]# cd bo

[root@BoJie bo]# ll

    total 4

    -rw-r--r-- 1 BoJie BoJie 14 Sep  4 23:37 women

 

  chmod    修改文件和目录的读写权限  --change mode 

   语法格式:chmod [u,g,o,a][+-=][rwx]  文件名

   等值授权=

    [root@huaxiajinling huaxiajinling]# chmod u=r a

[root@huaxiajinling huaxiajinling]# ll

total 12

-r--r--r-- 1 z2 z1    6 Sep  4 17:11 a

   增值授权+

    [root@huaxiajinling huaxiajinling]# chmod g+w a

    [root@huaxiajinling huaxiajinling]# ll

    total 12

    -r--rw-r-- 1 z2 z1    6 Sep  4 17:11 a

   减值授权-

    [root@huaxiajinling huaxiajinling]# chmod o-r a

[root@huaxiajinling huaxiajinling]# ll

total 12

-r--rw---- 1 z2 z1    6 Sep  4 17:11 a

   同时授权 a

    [root@huaxiajinling huaxiajinling]# chmod a+x a

    [root@huaxiajinling huaxiajinling]# ll

total 12

-r-xrwx--x 1 z2 z1    6 Sep  4 17:11 a

 

数字权限

         常用的一种方式,权限对应的数字

r   --   4

w  --   2

x   --   1

-   是   0

[root@huaxiajinling huaxiajinling]# chmod 640 a

[root@huaxiajinling huaxiajinling]# ll

total 12

-rw-r----- 1 z2 z1    6 Sep  4 17:11 a

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值