本章Blog相关Linux知识点


解析:在数据库按搜索码查找相对应的条目,并找与之对应额外的其他数据库的过程;名称解析:UID ,组名解析:GID

数据库:文本文件,sql数据库,ldap数据库,用户库:/etc/passwd ,密码库 :/etc/shadow,组库:/etc/group,组密码库:/etc/gshadow

加密方法:对称加密——加密和解密使用同一个密码,如DES,AES ;公钥加密——每个密码都成对出现,一个公钥,一个私钥,如DSA,RSA;单向加密——常用于数据完整性校验 ,特点1、雪崩效应,2、定长输出,3、不可逆 ,如MD5 ,SHA1

# cat /etc/passwd(各项涵义如),用户名:密码占位符:UID:GID(基本组):备注信息:HOMEDIR(家目录):默认SHell

# cat /etc/shadow(各项涵义如),用户名:密码占位符:最近一次密码修改时间:最短使用时间:最长使用期限:密码使用警告区间:非活动区间:账号的过期期限:预留段

用户类别:管理员(id为0),系统用户(id 1-499),一般用户(id 500-60000)

用户组类别(以用户为视角):私有组——创建用户时,如果没有为其指定所属组,系统会自动为其创建一个与用户名相同的组;基本组——用户的默认组;附加组——额外组,默认组意外的其他组

权限 r  w  x

文件: r  —— 可读 ,可以使用cat 等命令查看 ;w —— 可写 ,可以使用vi nano编辑文本内容 ;x —— 可以在命令提示付下当做命令提交给内核执行

目录: r  —— 可对此目录使用ls 命令列出内部所有文件 ;w —— 可在此目录中创建、删除文件 ;x ——  可使用cd 切换到此目录,也可使用ls -l 产看内部文件的详细信息

三类用户: u ——owner ;g——group ;o——other

进程的属主,是否与文件的属主相同:如果相同,进程则以文件属主的权限来访问文件;否则,进程的属主所属的组,是否其中之一与文件的属组相同;如果相同,进程则以文件的属组的权限来访问文件,否则,进程则以文件的其他用户的权限来访问文件

Linux用户组管理


useradd  创建用户,命令格式

# useradd [-c comment] [-d home_dir] [-e expire_date] [-f inactive_time] [-g initial_group] [-G group[,...]] [-m [-k skeleton_dir] | -M] [-s shell] [-u uid [ -o]] [-n] [-r] login
# useradd -D [-g default_group] [-b default_home] [-f default_inactive] [-e default_expire_date]  [-s default_shell]

-u :指定UID

-g :指定GID(基本组),但GID要先存在

-G:指定GID(附加组),但组要先存在

-c :“COMMENT”注释信息

-d :指定家目录

-s :指定Shell路径  /etc/shells:指定了当前系统中可用的安全shell ,# echo $SHELL 显示当前shell

-m -k :强制为用户创建家目录,并把shell文件拷贝到家目录

-M :/etc/login.defs ,不为用户创建家目录

-r :创建系统用户 ,id 1-499 ,不为用户创建家目录且默认shell为 /sbin/nologin

userdel 删除用户,命令格式

# userdel [-r] login

若不加任意选项,默认不删除家目录

-r :删除用户的同时,删除家目录

passwd 修改密码(普通用户通过passwd 修改自己的密码,管理员可通过passwd修改自己密码,亦可通过passwd USERNAME 命令修改普通用户的密码),命令格式

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

--stdin

-l :lock 锁定用户

-u :unlock ,解锁用户

示例:echo “redhat”| passwd --stdin user3  设置用户user3 密码为redhat

usermod 修改用户账号属性,命令格式

# usermod [-c comment] [-d home_dir [ -m]][-e expire_date] [-f inactive_time]   [-g initial_group] [-G group[,...]]   [-l login_name] [-s shell]  [-u uid [ -o]] login

-u :指定UID

-g :指定GID(基本组)

-a -G:指定GID(附加组),为用户在原有的附加组追加附加组,若不使用-a ,则会覆盖原有的附加组

-c :“COMMENT”注释信息

-d -m:指定家目录,并移动此前家目录的文件到新的家目录

-s :指定Shell路径  /etc/shells:指定了当前系统中可用的安全shell ,# echo $SHELL 显示当前shell

-L :lock 锁定用户

-U :unlock ,解锁用户

-l:调整Lgoin 新的用户名

# finger  查询用户账号信息

# chsh USERNAME :change shell

# chfn COMMENT :change finger 注释信息

id 查看用户id号,命令格式

# id [OPTION]... [USERNAME]

-u :显示UID ,可与-n组合使用

-nu :显示用户名

-g :显示GID ,可与-n组合使用

-G :显示扩展GID,可与-n组合使用

groupadd 添加组,命令格式:

# groupadd [-g gid [-o]] [-r] [-f] group

-g :指定GID

groupmod  修改组属性,命令格式

# groupmod [-g gid [-o]] [-n group_name] group

-g :更改GID

-n :更改群组名

# groupdel  group_name :删除组

# gpasswd group_name:调整组密码

Linux文件权限管理


只有管理员可以使用chgrp ,chown 命令调整文件权限属性

chown 改变文件所有者及所属组,命令格式

# chown [OPTION]... [OWNER][:[GROUP]] FILE...
# chown [OPTION]... --reference=RFILE FILE...

-R :修改目录及其内部文件的所有者

--reference=/path/to/somefile file :设置file的所有者与/path/to/somefile 的所有者一致

chown user_name:group_name file :同时改变file文件的所有者和所属组

chgrp  改变文件所属组,命令格式

# chgrp [OPTION]... GROUP FILE...
# chgrp [OPTION]... --reference=RFILE FILE...

-R :修改目录及其内部文件的所有者

--reference=/path/to/somefile file :设置file的所有者与/path/to/somefile 的所有者一致

chmod  修改文件权限,命令格式

# chmod [OPTION]... MODE[,MODE]... FILE...
# chmod [OPTION]... OCTAL-MODE FILE...
# chmod [OPTION]... --reference=RFILE FILE...

chmod [ugoa...][[+-=][rwx...]...] file :设置文件的用户的权限

-R:修改目录及其内部文件的所有者

--reference=/path/to/somefile file :设置file的所有者与/path/to/somefile 的所有者一致

Linux文本管理


wc 统计行数,单词数或字节数,命令格式

# wc [OPTION]... [FILE]...
# wc [OPTION]... --files0-from=F

-l :统计行数

-c :统计字符数

-w :统计单词数

tr 字符转换或删除字符,命令格式

# tr [OPTION]... SET1 [SET2]
    -d ‘集合1’:删除集合1

tr ‘集合1’‘集合2’ :替换功能

例:# cat /etc/passwd | tr 'abcd'  'ABCD'   显示并替换文本内的abcd 为ABCD

例:# cat /etc/passwd | tr -d 'abcd'      显示并删除文本内的abcd 字符

cut 把文本中每行符合条件的片段做移除,命令格式

# cut OPTION... [FILE]...

-d 字符 :指定分隔符

-f n :指定显示的第n个片段

-f n-m :指定显示第n 至 m片段

-f n,m :指定显示第n 及第m片段

例:# cut -d: -f1,3 /etc/passwd    显示/etc/passwd 文本中以:做分隔符,显示第1 和第3个片段

例:# echo“THis is a new line”| cut -d' ' -f3    显示“THis is a new line" 文本中以'  '(空白符)做分隔,显示第3个片段

sort  文本内容排序,命令格式

# sort [OPTION]... [FILE]...
# sort [OPTION]... --files0-from=F

-f :忽略字符大小写

-n :按照数值大小排序

-t 分隔符 -k 指定字段 :以指定字段进行排序

-u :重复的行仅显示一次

例:# sort -n -t: -k3 /etc/passwd  ,文本/etc/passwd 中以:为分隔符 ,以第三个片段UID 按照数值大小进行排序显示

uniq 显示重复的行,命令格式

# uniq [OPTION]... [INPUT [OUTPUT]]

-c :显示每行内容及重复次数

-d :仅显示重复的行

-u :仅显示不重复的行

例:#ls -d /etc/[Pp]* | wc -l     显示/etc/目录下以P或p 开头的文件并统计其个数

Linux文本处理工具之grep ,egrep    使用''  或""  引用


文本搜索工具grep 、egrep ——根据用户指定的文本模式对目标文件进行逐步搜索,显示能够被匹配的行

grep  ,egrep 显示匹配的行,命令格式

# grep [OPTIONS] PATTERN [FILE...]
# grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]

--color :颜色显示

-v :取反显示,反向显示

-i  :不区分字符大小写

-o :仅显示被匹配的字符串,而非整行

-E :支持扩展正则表达式 ,相当于egrep

例:grep -v  '^$’/etc/rc.d/rc.sysinit :显示非空白行

正则表达式:是一类字符所书写的模式(PATTERN),包括基本正则表达式和扩展正则表达式

基本正则表达式:尽可能长的去匹配字符

字符匹配:

. :任意单个字符,例 # grep “r..t” /etc/rc.d/rc.sysinit

[ ] :指定范围内的任意单个字符  ,例 [Ps]    包含P或s 的任意单个字符

[0-9] 或 [[:digit:]] :任意单个0-9的数字

[a-z]或 [[:lower:]] :任意单个a-z 小写字母

[A-Z]或[[:upper:]] :任意单个A-Z大写字母

[[:alpha:]] :任意单个大小写字母

[[:alnum:]] :任意单个带小写字母或数字

[[:space:]] :任意单个空白符

[[:punct:]] :任意单个特殊字符

[^] :指定范围外的任意单个字符

次数匹配:

* :前面的字符出现任意次 ,例 # grep “x*y”/etc/rc.d/rc.sysinit ,与通配符不同 * 代表任意长度的任意字符

.* :任意长度的任意字符

\? :前面的字符出现0次或1次   ,与通配符不同 ? 匹配任意单个字符

\{m\} :前面的字符匹配m次

\{m,n\} :前面的字符至少匹配m次 ,至多匹配n次 例:# grep --color=auto‘x\{2,6\}y' /etc/rc.d/rc.sysinit

位置锚定符:

^ :用于锚定行首 如,^Char

$ :锚定行尾 如 ,Char$

^$ :空白行

\<Char 或\b :锚定词首

Char\> 或\b :锚定词尾

分组符:

\(\) :分组 ,如 \(AB\) 代表AB为一个整体

引用:

\1 :后向引用,引用前面的第一个左括号及与之对应的右括号中的模式所匹配的内容(引用前面一模一样的字符串,不是引用通配符格式)

\n :与上文含义相似

扩展正则表达式:egrep :使用扩展正则表达式,相当于grep -E

字符匹配:

. :任意单个字符,例 # egrep “r..t” /etc/rc.d/rc.sysinit

[ ] :指定范围内的任意单个字符  ,例 [Ps]    包含P或s 的任意单个字符

[0-9] 或 [[:digit:]] :任意单个0-9的数字

[a-z]或 [[:lower:]] :任意单个a-z 小写字母

[A-Z]或[[:upper:]] :任意单个A-Z大写字母

[[:alpha:]] :任意单个大小写字母

[[:alnum:]] :任意单个带小写字母或数字

[[:space:]] :任意单个空白符

[[:punct:]] :任意单个特殊字符

[^] :指定范围外的任意单个字符

次数匹配:

* :前面的字符出现任意次 ,例 # grep “x*y”/etc/rc.d/rc.sysinit ,与通配符不同 * 代表任意长度的任意字符

.* :任意长度的任意字符

? :前面的字符出现0次或1次   ,与通配符不同 ? 匹配任意单个字符

+ :匹配其前面的字符至少一次

{m} :前面的字符匹配m次

{m,n} :前面的字符至少匹配m次 ,至多匹配n次 例:# egrep --color=auto‘x\{2,6\}y' /etc/rc.d/rc.sysinit

位置锚定符:

^ :用于锚定行首 如,^Char

$ :锚定行尾 如 ,Char$

^$ :空白行

\<Char 或\bChar :锚定词首

\>Char 或Char\b :锚定词尾

分组:

() :分组 ,如 (AB) 代表AB为一个整体

| :或者 (ab|bc) 代表ab 或bc ,左侧或右侧

引用:

\1 :后向引用,引用前面的第一个左括号及与之对应的右括号中的模式所匹配的内容(引用前面一模一样的字符串,不是引用通配符格式)

\n :与上文含义相似

综上,基本正则表达式与扩展表达式的区别 ,基本正则表达式分组及次数匹配引用需要加 “\” ,而扩展基本表达式中分组及次数匹配无需加“\”,且支持“+”及 “|” 引用等 。

正则表达式练习题


1、显示/proc/meminfo 文件中以 大小写 s开头的行               # grep -i '^s' /proc/meminfo 或 # grep "[Ss]" /proc/meminfo 2、取出默认shell为非bash的用户    # grep -v '/bin/bash\b' /etc/passwd | cut -d: -f13、取出默认shell为bash的且其ID号最大的用户    # grep  '/bin/bash\b' /etc/passwd | sort -n -t: -k3 | tail -1 | cut -d: -f1    # egrep  '/bin/bash\b' /etc/passwd | sort -n -t: -k3 | tail -1 | cut -d: -f14、显示/etc/rc.d/rc.sysinit文件中,以#开头,后面跟至少一个空白字符,而后又至少一个非空白字符的行     # grep '^#[[:space:]]\{1,\}[^[:space:]]\{1,\}' /etc/rc.d/rc.sysinit5、显示/boot/grub/grub.conf中以至少一个空白字符开头的行     # grep '^[[:space:]]\{1\}[^[:space:]]\{1,\}' /boot/grub/grub.conf6、找出/etc/passwd文件中一位数或2位数     #grep  '\<[0-9]\{1,2\}\>' /etc/passwd7、找出ifconfig 命令结果中1到255之间的整数    # ifconfig | grep -E "\<([1-9][1-9]|[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>"  注意:数字要锚定词首和词尾8、查看当前系统上root用户的所有信息    # grep "^root\b" /etc/passwd9、添加用户bash和testbash ,而后找出当前系统上其用户名和默认shell相同的用户    # grep "^\([[:alnum:]]\{1,\}\)\>.*\1$" /etc/passwd10、找出netstat -tan命令执行结果一“LISTEN”或“ESTABLISHED”结尾的行    # netstat -tan | egrep "LISTEN|ESTABLISHED"11、取出当前系统上所有用户的shell,要求:每种shell只显示一次,且按升序显示。     #cut -d: -f7 /etc/passwd | sort -u

本章blog命令汇总


# grep [OPTIONS] PATTERN [FILE...]  :显示匹配条件的行

# sort [OPTION]... [FILE]... :对文本内行排序

# wc [OPTION]... [FILE]... :统计行数,单词数或字节数

# tr [OPTION]... SET1 [SET2] :统计行数,单词数或字节数

# cut OPTION... [FILE]... :把文本中每行符合条件的片段做移除

# chown [OPTION]... [OWNER][:[GROUP]] FILE... :改变文件所有者及所属组

# chgrp [OPTION]... GROUP FILE... :改变文件所属组

# chmod [OPTION]... MODE[,MODE]... FILE... :修改文件权限

# useradd [-c comment] [-d home_dir] [-e expire_date] [-f inactive_time] [-g initial_group] [-G group[,...]] [-m [-k skeleton_dir] | -M] [-s shell] [-u uid [ -o]] [-n] [-r] login  :创建用户

# userdel [-r] login :删除用户

#  passwd  [-k]  [-l]  [-u  [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username] :修改密码

# usermod [-c comment] [-d home_dir [ -m]][-e expire_date] [-f inactive_time]   [-g initial_group] [-G group[,...]]   [-l login_name] [-s shell]  [-u uid [ -o]] login : 修改用户账号属性

# finger  :查询用户账号信息

# chsh USERNAME :change shell

# chfn COMMENT :change finger 注释信息

# id [OPTION]... [USERNAME] :查看用户id号

# groupadd [-g gid [-o]] [-r] [-f] group  :添加组

# groupmod [-g gid [-o]] [-n group_name] group :修改组属性

# groupdel  group_name :删除组

# gpasswd group_name:调整组密码

# uniq [OPTION]... [INPUT [OUTPUT]] :显示或移除重复的行

转载于:https://blog.51cto.com/itwish/2046961

Linux学习命令汇总三——Linux用户组管理,文件权限管理,文本搜索命令grep及正则表达式...相关推荐

  1. 我的Linux学习记录(蓝桥)————用户及文件权限管理

    我的Linux学习记录(蓝桥)三 Linux 是一个可以实现多用户登录的操作系统,比如"李雷"和"韩梅梅"都可以同时登录同一台主机,他们共享一些主机的资源,但他 ...

  2. 《Linux基础三》用户和文件权限管理

    用户和文件权限管理 1,用户 管理员用户: Root用户,也称根用户.超级用户.超级管理员 可对根目录执行读写和执行操作 具有系统中的最高.所有权限 普通用户: 权限有限的用户 Root用户拥有系统的 ...

  3. Linux命令学习笔记(一)—— 用户及文件权限管理

    1.用户 1.1 查看用户 who am i 查看当前用户及时间 whoami 显示当前用户 1.2创建用户 创建用户要用到 sudo 这个命令了.不过使用这个命令有两个大前提: 你要知道当前登录用户 ...

  4. Linux学习总结(57)——生产环境用户权限管理规范

    一.问题现状 公司生产服务器通常上百台,甚至上千台上万台,操作人员很多(开发+运维+架构+DBA).大家使用Linux服务器时,不同职能的员工水平不同,老手和新手员工熟知度不同,如果权限控制不当(如r ...

  5. linux递归访问文件权限,Linux基础管理——文件权限管理(访问控制)

    1.文件权限 1.1.三类权限简述 读.写.执行:rwx. 1.2.文件属性操作chown :设置文件的所有者(属主信息): chgrp :设置文件的属组信息: 1.3.修改文件的属主和属组 1.3. ...

  6. linux用户没有创建文件的权限设置密码,Linux学习第五章用户身份与文件权限

    一.用户身份与能力 Linux系统中一共有三种用户 第一种:管理员  root  UID =0 第二种:系统用户 不需要登录系统  负责单一服务的运行  UID = 0-1000 第三种:普通用户 日 ...

  7. Linux学习系列二:Linux中的常用命令

    这个系列的Linux教程主要参考刘遄老师的<Linux就该这么学>.用的系统是RHEL8,如果遇见一些命令出现问题,请首先检查自己的系统是否一致,如果不一致,可网上查一下系统间某些命令之间 ...

  8. linux中文件权限 组,linux中文件权限格式与chmod命令以及用户和用户组的管理

    简单了解一下linux中的文件权限格式与chmod命令 chmod命令:改变文件或者目录的权限 格式:chmod [参数] [] -R 或者--recursive 递归处理,表示将指定目录下的所有文件 ...

  9. 【Linux】Linux用户、用户组、文件权限学习笔记

    原文地址:http://www.sourcejoy.com/other_dev_tech/linux-user-and-file-manage.html 作者:HaiHai 发布时间:August 1 ...

最新文章

  1. 机器学习系列 5:特征缩放
  2. hadoop 运行java程序_Hadoop java 程序运行
  3. STL之set集合容器
  4. hisi mmz内存管理
  5. 查看表扫描次数,并对比索引对表查询的作用
  6. tomcat web.xml配置
  7. ROS: Ubuntu16.04安装ROS-kinetic
  8. java xml获取属性值_java – 如何获取具体属性值的特定XML元素?
  9. 新书《编写可测试的JavaScript代码 》出版,感谢支持
  10. mysql三高讲解(三)3.1 如何提高where效率
  11. python点对点传输_python点对点简单实现
  12. 部分大学上演造假运动闯关本科评估(图)
  13. 小米造车follow苹果路线?智能驾驶能力是个关键问题
  14. Symbian游戏编程入门 (一) Symbian OS简介
  15. 中国移动车联网 V2X 平台白皮书
  16. 老男孩教育 | 从小白进军IT,他仅用了四个月的时间!
  17. C#事件中sender的小用法(转载)
  18. android rfid开发实例,Android NFC读卡 高频卡 RFID
  19. python 批量替换当前.txt文本内容
  20. 1.计算机指令系统,深入学习计算机指令系统唐书

热门文章

  1. 这些行业,将率先落地AI芯片 | 星前沿
  2. 用深层神经网络解释大脑的运作
  3. 挑战61年未被质疑的经典心理学理论—— 大脑识别图像并非“趣味导向”
  4. 一文看懂5G芯片背后的明争暗斗
  5. 联合国《2017年信息经济报告》
  6. 末日来临,你的编程语言能干嘛? | 每日趣闻
  7. 开发vs测试 | 每日趣闻
  8. 年薪 50 万!淘宝重金招聘,35 岁以上优先,学历不限
  9. 谁说女生不适合当程序员?
  10. Rancher 推出 k3OS,业界首个 Kubernetes 操作系统