Linux操作系统基础--(2)输入输出管理、帮助与用户管理

本文详细介绍了Linux操作系统的输入输出管理,包括命令行帮助获取(whatis, help, man),输入输出重定向,管道符的使用。同时讲解了用户管理,如用户和用户组的概念,用户切换,用户信息的查看与修改,以及权限下放的sudo机制。内容深入浅出,适合Linux初学者学习。

Linux操作系统基础

实验所用系统为Redhat-rhel8.2。

Linux操作系统基础–Linux中的输入输出管理与获得帮助

一、命令行获得帮助

1、whatis

whatis+命令		##查看命令的基本用途

查看过程中出现nothing appropriate表示
1、要查看内容没有帮助
2、系统帮助数据库未更新,在root用户下使用mandb命令更新
在这里插入图片描述

2、help

命令 --help 	##查看命令的基本用法

[] --内容可加可不加
… --内容个数无限制
<> --必须在命令执行时加入的元素
在这里插入图片描述

3、man

man +命令		##命令用法详解 (man是manual的缩写)
man -k passwd	##passwd关键字有多少级别的man
		1	命令
		2	系统调用
		3	函数库调用
		4	特殊文件(设备文件等)
		5	文件
		6	游戏
		7	特殊的包
		8	系统管理命令
		9	内核信息规则

man +命令–进入到该命令的帮助
q --退出
/关键字 --搜索关键字,n 向下匹配,N 向上匹配
G --快速移动到man的最后
g --表示快速移动到man的最前
在这里插入图片描述

二、输入输出

1、字符设备

  • 字符设备:显示字符到屏幕上的设备文件
  • stdin – 标准输入
    标号为0
    键盘 鼠标 打字机
  • stdout – 标准正确输出
    标号为1(存放在/dev/pts/0)
  • stderr – 标准错误输出
    标号为2

2、管理输出

  • 输出重定向
输出重定向  >  ##覆盖原文件内容
find /etc/ -name passwd > file		##将正确输出保存至file
find /etc/ -name passwd 2> file		##将错误输出保存至file
find /etc/ -name passwd &> file		##将所有输出保存至file
  • 追加输出
追加  >>	##不覆盖原文件内容
find /etc/ -name passwd >> file		##正确输出追加保存至file,不覆盖file原内容
find /etc/ -name passwd 2>> file	##将错误输出追加保存至file
find /etc/ -name passwd &>> file	##将所有输出追加保存至file

#find + 目录 + -name + 关键字或文件名
#查找该目录里名字含有该关键字或者该文件名的文件

  • “|”管道符
 “|” 管道符(只能通过正确输出)	 ##将命令隔开,将前一个命令的输出作为后面命令的输入
 ls /bin/ |wc -l					##将一个命令的输出作为第二个命令的输入
ls /bin/ | tee westos |wc -l		##ls命令的输出 被tee复制到westos中然后被wc统计
				##将上一个命令的输出复制保存至下一个文件,将第二条命令的输出作为第三个命令的输入
				##tee 复制输出到指定位置
ls westos hello 2>&1 |wc -l			##使错误输出通过管道符的方法:将其保存至正确输出的文件里	
				##westos存在,hello不存在,则将错误输出保存在正确输出里,通过管道符
				##2>&1 固定格式,将错误输出保存至正确输出的文件里

在这里插入图片描述

3、管理输入

  • 输入重定向
<			##输入重定向
tr ‘a-z’ ‘A-Z‘ < file		##把file文件中的小写字母转换成大写字母,定向到tr程序中

在这里插入图片描述

  • 输入重定向与管道符的区别

输入重定向:加载处理硬盘中的数据,即文件的真实内容
管道符:处理内存中的数据,即命令的输出,较慢

  • 多行录入
<<			##多行录入
tr 'a-z' 'A-Z'  <<  EOF 
test
test1		##此处的test不能表示为文件名,只表示test字符
EOF			##当首字母再次出现表示录入结束

在这里插入图片描述
#vim westos.sh,i编辑,将cat定向到westos.file中,输入内容,保存并退出vim
在这里插入图片描述
#sh westos.sh,建立westos.file文件

4、综合练习

  • 查找/etc/下的passwd文件屏蔽错误输出
find /etc/ -name passwd 2> /tmp/westos (/tmp 系统临时文件存放目录)

find /etc/ -name passwd 2> /dev/null(/dev 设备文件)

在这里插入图片描述

  • 查找/etc/下的passwd文件正确输出保存到westos.out中,错误输出保存到westos.err中
find /etc/ -name passwd > westos.out
find /etc/ -name passwd 2> westos.err
find /etc/ -name passwd > westos.out   2> westos.err

在这里插入图片描述

  • 查找/etc/下的passwd文件保存所有输出到westos.all中并统计输入的行数
find /etc/ -name passwd 2>&1 | tee westos.all | wc -l

在这里插入图片描述

  • 查找/etc/下的passwd文件统计输出行数并显示输出内容
find /etc/ -name passwd 2>&1 | cat -n
find /etc/ -name passwd 2>&1 | tee /dev/pts/0 | wc -l

在这里插入图片描述

  • 转换/etc/目录中的passwd文件中的所有字母为大写并统计文件行数
find /etc/ -name passwd 2>&1 |tr 'a-z' 'A-Z'| tee /dev/pts/0 | wc -l

在这里插入图片描述

Linux操作系统基础–Linux中的用户管理

一、用户及用户组

1、用户

用户存在的意义
系统资源是有限的,如何合理分配资源
解决这个问题必须要有资源配合

2、用户组

用户组存在的意义
分为初始组(不能由自身决定)和附加组(可由自身决定)
用户组是一个逻辑容器
对用户进行归类和统一授权

二、用户切换

1、用户查看

whoami		##查看当前用户
id		##查看用户id信息
	-u	##查看用户的用户id
	-g	##查看用户主组id
	-G	##查看用户所有的组的id
	-n	##显示名称(必须结合以上参数使用)

用户id范围:0-65535
0: ##linux超级用户id
1-999: ##linux系统自用id
1000-65535: ##用户级id
以上id设定规则都被记录在/etc/login.defs

在这里插入图片描述

2、用户切换

-				##切换用户环境
su - username	##切换用户身份及环境
su username		##切换用户身份,不改变环境

高级用户—>普通用户 不需要密码
[root]su - westos
普通用户—>高级用户 需要密码
[westos]su - root
普通用户—>普通用户 需要密码
[westos]su - linux

[注意] 反复切换会导致环境混乱,打开多个shell,可使用exit退出
避免这种情况,时刻保持当前只有一个shell开启

图形界面切换用户 gnome-session-quit
强制切换:gnome-session-quit --force

在这里插入图片描述

3、用户涉及到的系统配置文件

/etc/passwd					##用户身份信息文件
		##用户名称:用户密码:用户id:用户主组id:用户说明:用户家目录(/home/username):用户默认shell(/bin/bash)

/etc/group					##组身份信息文件
		##组名称:组密码:组id:组的附加成员

/etc/skel/.*				##用户环境配置文件模板

/etc/shadow					##用户认证信息文件
		##用户名称:用户密码的加密字符:用户密码最后一次被修改的时间(从1970年1月1日开始算起):密码最短有效期;密码最长有效期;密码过期前警告期:账号非活跃期(强制改密码):账号到期时间(从1970年1月1日开始算起):用户自定义(未使用)

/home/username				##用户家目录

/var/spool/mail/username	##用户邮箱文件

4、用户和用户组建立及删除

  • 监控命令,用于监控系统内的用户,用户组等。
监控用户建立的命令
watch -n 1 "tail -n 3 /etc/passwd /etc/group;echo ======;ls -l /home"

一秒监控一次“ ”里的命令
“ ”显示用户身份信息文件和组身份信息文件的后三行
;表示另一个命令
echo ======= 显示文字 “======”
ls -l /home 显示目录中内容的属性

在这里插入图片描述
在这里插入图片描述

  • useradd
useradd username		##用户建立
	-u id username		##uid		2*16=0-65535
				##0		表示超级用户
				##1-200		系统预留id
				##201-999	系统用户
				##1000-65535	用户级用户
			##/etc/login.defs	记录用户建立的默认规则

	-g id username		##主组id(此时该主组必须存在)
	-G id username		##附加组id
	-d dir username		##指定用户家目录
	-M    username		##建立用户时不建立家目录
	-c word username	##指定用户说明
	-s shell username	##指定用shell

在这里插入图片描述
#建立用户,建立指定id的用户
在这里插入图片描述
#建立指定id,主组,附加组,用户家目录,说明文字和shell的用户

  • userdel
userdel -r username		##用户删除,删除身份且删除系统配置文件
userdel  username		##用户删除,只删除身份,未删除系统配置文件
	#如果先删除了用户,未删除配置文件,则需要用rm删除/home里的该文件
	#rm -rf /home/username

在这里插入图片描述
#删除用户yun,未删除配置文件
在这里插入图片描述
#删除用户yun的配置文件
在这里插入图片描述
#删除用户ting的身份及配置文件

  • groupadd
groupadd groupname		##建立组
	-g id groupname		##指定组名称

在这里插入图片描述
#建立用户组和指定id的组

  • groupdel
groupdel groupname		##删除组

在这里插入图片描述
#删除用户组

5、用户和用户组的信息管理

usermod
	-l		##更改用户名称
	-u		##更改用户id
	-g		##更改主组id
	-G		##更改用户附加组身份,会删除此前的所有附加组身份  
		(如果要删除附加组身份,则可以添加“”空符号串)
	-aG		##添加用户附加组身份
	-c		##更改用户说明
		(删除用户说明,则添加“”空符号串)
	-d		##更改家目录指向
		(没有改变家目录名称,此时的家目录指向不一定存在)
	-md		##更改家目录指向和家目录名称
		(使用时保证家目录指向与名称一致)
	-s		##更改默认shell
		(原地址 /bin/bash  改为/sbin/nologin 则变成高级用户里的文件,使用su-username则不能切换用户,需要将shell还原成/bin/bash)
	-L		##冻结账号	(状态为!+密码的加密显示)
	-U		##解锁(解锁时账号必须有密码才能解锁)	(状态为密码的加密显示)

在这里插入图片描述
#建立用户lee
在这里插入图片描述
#将用户lee的名称改为leee
在这里插入图片描述
#将用户leee的id改为2548
在这里插入图片描述
#将用户leee的主组改为70
在这里插入图片描述
#id+名称 — 查看修改后的名称,id,主组,附组,添加的附组
在这里插入图片描述
#修改用户leee的说明文字和家目录指向
在这里插入图片描述
#修改用户leee的shell
在这里插入图片描述
#查看修改后用户leee的说明文字,家目录指向和shell

在这里插入图片描述

#改为/sbin/nologin 则变成高级用户里的文件,使用su-username则不能切换用户,需要将shell还原成/bin/bash

6、用户认证信息管理

#watch -n 1 "tail -n 3 /etc/passwd /etc/shadow"
  • passwd -S
passwd -S lee		##查看密码状态
			(LK---冻结状态,加密方式为SHA512对称加密;PS---解锁状态)
  • 更改密码
passwd lee				##只有root可以执行"echo 123 | passwd --stdin lee"(将123作为用户的密码)
			(root用户修改密码不需输入原密码)

passwd					##普通用户改密码
Changing password for user lee.
Current password:		##输入原始密码
New password:			##输入新密码(8位以上无序数字+无序字母组合)
Retype new password:	##重复输入
passwd:all authentication tokens updated successfully.

在这里插入图片描述

  • 冻结认证
passwd -l lee		##冻结账号认证(有密码时才能锁住)
passwd -u lee		##解冻账号认证

在这里插入图片描述
#冻结账号
在这里插入图片描述
#解冻

  • 密码删除
passwd -d lee		##有密码时才能删除
			(删除密码后-S查看状态:NP---没有密码的解锁状态)

在这里插入图片描述
#删除密码
在这里插入图片描述
#用户当前为无密码状态

echo 123 | passwd --stdin leee

在这里插入图片描述
#设置密码

  • 修改密码默认使用时间
passwd -e lee		##修改默认使用时间为0(不可加数字)
chage -d 0 lee		##账号必须改密码才能登录系统

#密码使用天数
#从1970-1-1开始算到今天

  • 密码最短有效期
passwd -n 1 lee		##lee在一天内不能改密码
chage -m 1 lee
  • 密码最长有效期
passwd -x 40 lee	##40天内lee必须更新密码都则会被冻结
chage -M 30 lee	
  • 密码过期警告
passwd -w 2 lee		##账号过期警告时间
chage -W 1 lee	
  • 认证非活跃天数
passwd -i 2 lee		##账号认证最大时间超过后还能用多久(-1天即0)
chage -I 1 lee

在这里插入图片描述
在这里插入图片描述

  • 账号认证到期时间
chage -E '2020-05-22"	##账号到2020-05-22这天账号会被冻结(形式为1970-1-1算起的第n天)

在这里插入图片描述
[注意]

#passwd -l username	##冻结用户(状态为!!+密码的加密显示)///(usermod -L username命令的状态为!+密码的加密显示)
#passwd -u username	##解冻账号(状态为密码的加密显示)

在这里插入图片描述

7、用户权力下放

在系统中普通用户是无法执行系统管理命令的
如果需要普通用户执行系统管理动作,则需要root用户进行授权

普通用户授权方式“sudo”
作用:可以使普通用户使用指定的用户身份执行命令

授权方法:
visudo		#编辑/etc/sudoers并提供语法检测

在代码的100行左右 — 代码规范性

hostname	##查看主机名----westosb.westos.org
which useradd	##查看useradd位置


username hostname = (newusername)   [NOPASSWD:]/command, /command1(注意:","后空格,"/")

#lee用户		在linux.westos.com主机=(用超级用户身份)		执行useradd命令
lee					linux.westos.com=(root)				/usr/sbin/useradd

#westos用户		在linux.westos.com	使用超户			免密			执行useradd和userdel
westos			linux.westos.com   =	(root)		NOPASSWD:/usr/sbin/useradd, /usr/sbin/userdel

例:westosadmin用户可以在系统中自由的管理用户
在这里插入图片描述
#建立用户,权力下放,修改文件
在这里插入图片描述
#在100行左右写入
在这里插入图片描述
#通过权力下放,普通用户也可以增删用户

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值