vim笔记在文件管理中
一、输出输入重定向
1、理解输入输出重定向
输入重定向是指把文件导入命令中,输出重定向则是把原本要输出到屏幕的数据信息写入制定的文件中。输出重定向又分为标准输出重定向和错误输出重定向。
名称 | 作用 |
---|---|
标准输入重定向(0) | 默认从键盘输入,也可以从其他文件或命令输入 |
标准输出重定向(1) | 默认输出到屏幕 |
错误输出重定向(2) | 默认输出到屏幕 |
2、输出输入重定向符号及其作用
(1)表1:输入重定向中用到的符号及作用
符号 | 作用 |
---|---|
命令<文件 | 将文件作为命令的标准输入 |
命令<<分界符 | 将标准输入读入,遇到分界符停止 |
命令<文件1>文件2 | 将文件1作为命令的标准输入并将标准输出到文件2中 |
(2)表2:输出重定向中用到的符号及作用
符号 | 作用 |
---|---|
命令>文件 | 将标准输出重定向到一个文件中(清空原文件的数据) |
命令2>文件 | 将错误输出重定向到一个文件中(清空原文件的数据) |
命令>>文件 | 将标准输出重定向到一个文件中(追加到原有文件后面) |
命令2>>文件 | 将错误输出重定向到一个文件中(追加到原有文件后面) |
命令&>>文件 | 将标准输出和错误输出都重定向到一个文件中(追加到原有文件后面) |
对于重定向中的标准输出模式,可以省略文件描述符1不写,但是错误输出模式的文件描述符2必须写。
举例1:通过标准输出重定向将man bash命令原本要输出到屏幕的信息输入到file文件中,并显示file文件内容
举例2:覆盖写入与追加写入区别
二、处理系统文件-查询文件大小行数等属性
1、清空一个文件
wc 文件名
>file 新建file3
2、用wc命令查询文件行数单词数字节数等
wc
命令 | 作用 |
---|---|
wc -l 文件 | 统计文件的行数 |
wc -w 文件 | 统计文件的单词数 |
wc -m 文件 | 统计文件的字符数 |
wc -c 文件 | 统计文件的字节数 |
字符数和字节数区别:英文一个字母是一个字节,一个中文两个字符四个字节。
文件的字节=文件的大小。
三、管道命令符
执行格式:命令A | 命令B | 命令C
作用:把前一个命令原本要输出到屏幕的标准正常数据当做后一个命令的标准输入。
eg:找出被限制登录用户的命令,并统计文本行数
grep "/sbin/nologin" /etc/passwd | wc -l
find /etc -name passwd | wc -l ###把对的输出来
find /etc -name passwd 2>&1 | wc -l ###把错的转换为对的输出(管道必须),输出所有行数
find /etc -name passwd 2>&1 | tee file |wc -l ###保存一份file输出后统计行数
这个实验在student用户下做
四、执行预存命令
tr命令 ###文件字符转换
建立一个脚本可以输入多个(无输入)命令,让脚本自动运行,
多行多次录入:
有些脚本可以自动运行完毕,在文件中输入命令即可
若不能自动运行,需要手动输入:
vim westos.sh
打开文本后:
passwd << EOF
…
…
EOF
首位字母必须一样
sh westos.sh
五、用户管理=文件管理=安全
1、查看当前用户;
whoami ###查看当前用户
2、新建用户(文件形式新建)
id westos
vim /etc/passwd
westos:x:8888:88888::/home/westos:/bin/bash ###文本编辑
mkdir /home/westos
chown westos.westos /home/westos
vim /etc/group
westos:x:8888: ###文本编辑
chown westos.westos /home/westos
3、系统中用户的查看:
命令 | 作用 |
---|---|
id | 查看指定用户id |
id -u | 查看用户uig |
id -g | 查看用户gid |
id -G | 查看所有组id |
id -n | 显示名字,不显示id数字 |
3、用户存储文件:
用户信息文件:/etc/passwd
vim /etc/passwd
用户名称:密码:uid:gid --------说明:家目录:默认shell(可以查看的用户shell文件)
用户组信息文件:/etc/group。组的名字:组密码:组id:组成员
认证信息文件:/etc/shadows
默认开启shell的配置,用户的骨文件(骨架目录):/etc/skel/.*
用户家目录:/home/username
4、监控系统用户产生界面
(1)、
; 代表这条命令结束,开启下一条
(2)、监控命令
watch -n 1 "tail -n 3 /etc/passwd /etc/group;ls -l /home/" ###1秒更新一次,用ctrl+c退回
5、新建、删除用户
userdel -r westos ###删除用户westos
useradd -u 888 westos ###新建一个uid(888)
useradd -g 21 westos ###指定用户初始组id,21必须是存在的
groupadd -g 888 westos后useradd -g 888 -u 888 westos ###id不存在时新建用户、初始组westos,id为888
id westos ###查询当前id的uid(用户) gid(初始组)及group(初始组+附加用户组)
userdel -r westos
useradd -G 21 westos ###组目录会新加一个附加组21,21必须是存在的
6、改变shell,用户家目录及添加说明
(1)、用户说明更改:
useradd -c "westos hahaha" westos ###添加用户说明
useradd -d /home/westos westos ###改变用户家目录指向,但不一定存在
useradd -s /bin/tcsh westos ###改变用户shell
cat /etc/shells ###查看系统装了多少shell
(2)、用户信息的更改:
usermod -l linux westos ###改用户名
usermod -u 888 westos ###更改uid
usermod -g 2003 westos ###更改gid
usermod -G 2004 admin leo ###更改附加组信息,抹掉原始
usermod -aG 2004 admin leo ###更改附加组信息,在后面添加
sermod -G 2004 "" leo ###抹掉所有的
sermod -L westos ###冻结帐号
sermod -U westos ###解锁帐号
7、用户身份切换
(1)、切换用户名
su - 用户名 ###切换用户
-标示在用户身份/etc/bashrc切换同时切换当前用户的系统环境/etc/profile。
su切换需要用其他用户身份一定要退出当前环境exit,在切换用户。
(2)、su 和su - 区别
su -为登陆过的shell
su 为未登陆过的shell,只加载当前开启软件配置,系统环境配置未加载
vim /etc/bashrc
vim /etc/profile
8、用户在系统中的储存模式
(1)、改密码:超级用户密码直接passwd后输入密码enter两次,不需要知道原始密码,普通用户只能改自己的,且需要输入当前用户密码。
改密码想关规则修改:
命令 | 作用 |
---|---|
passwd westos | 更改密码 |
passwd -l westos | 在用户密码前加入“!!” |
passwd -u westos | – |
passwd -L westos | 在用户密码前加入“!” |
passwd -U westos | 在密码不为空时使用 |
passwd -d westos | 清空密码 |
备注:普通用户改密码时:
1、必须知道当前用户原始密码
2、密码不能和帐号名称相似
3、密码不能是有序的数字或有序的纯字母
4、密码是数字或字母时>8
(2)、储存模式
/etc/passwd
[1] [2] [3] [4] [5] [6] [7] [8] [9]
其中:
[1]:westos 用户名称
[2]:!! 用户密码:用户的加密字符串,默认用的加密方式为sha512对称加密,如果字符串前出现年“I”说明用户被冻结
[3]:17895 用户密码最后一次被更改的时间,从1970-1-1开始累计天数。
[4]:用户密码最短有效日期。
[5]:99999 用户密码最长有效期
[6]:密码警告期限,会发送警告信息
[7]:非活跃天数,默认为0。
[8]:用户到期日期,默认为空
[9]:用户自定义列,目前没有启动。
(3)、更改储存模式
命令 | 作用 |
---|---|
passwd -e westos / chage -d 0 westos | 改变用户最后一次更改密码的时间为0 |
passwd -n 1 westos / chage -m 1 westos | 用户在登陆一天内不能修改密码 |
passwd -x 30 westos / chage -m 40 weston | 设定在30天内必须修改密码 |
passwd -w 2 westos | 密码过期前两天有警告输出 |
8、对非超级用户模式进行命令授权(在超级用户模式进行)
(1)、个别命令添加
在root用户下输入命令visudo进入文档,在100 行左右进行输入
用户 主机名称=(得到的用户身份root) NOPASSWD: /etc/sbin/useradd, /etc/sbin/userdel
主机,名称用hostnamectl获得
运行时切换到想作用的用户中,用sudo +命令。
(2)、组合数列添加
1、命令集合2、用户集合