目录
常用快捷方式
1.Tab键自动补全
2.快捷键
3.别名的定义:简化复杂的命令
4.使用通配符
5、history历史命令的使用
命令行完整格式:——命令字 [选项]... [参数1][参数2]...
一:查看系统配置
1:查看内核信息
2:查看系统版本
3:查看主机名称
4:查看网卡信息(IP地址,mac地址)
5:查看CPU信息
6:查看内存信息
二:基本命令的使用--关机及重启
1:关机
2:延时关机
3:重启及延时重启
三:文件管理
1:pwd
2:cd
3:ls —List 列出目录内容
4:mkdir —Make Directory 新建目录
5:touch —新建文件
6:ln Link— 制作连接文件(新建快捷方式)
7:cp Copy 复制文件
8:rm Remove 删除文件
9:mv Move 移动文件/目录
11:重命名:路径不变的移动
四:文件内容操作
1.1:文件字数统计
1.2 du,统计文件占用空间
2:cat 连接并显示文件(打开文件) concatenate
3:文本编辑器VIM
4:分页阅读工具
分页阅读工具1— mo
re 文件名
分页阅读工具2— less 文件名
5:分页查看命令输出
6:截取文件首/尾部
head tail
7:保存命令输出为文本
五:文件压缩归档操作
1:制作一个zip压缩包
2:释放zip压缩包
3:制作一个gz压缩包
4:释放gzip压缩包-
5:bzip2 xz
6:制作tar包
7:释放tar归档包
六:文档查找
1:查找可执行程序
2:find条件查找文档
3:grep文件内容检索
七:用户管理
--用户账户
--组账户
1:添加普通用户
2:给用户设置登录口令
3:解析用户账号文件/etc/passwd
4:解析用户账号文件续shadow
5:用户密码控制
6:修改用户
7:密码有效控制
8:用户删除
9:查询ID
10:破解root的密码
11.用户初始配置
手动创建用户家目录:
八:组账号管理
1.组账号的增删改查操作
添加组账号
组的删除 groupdel
修改组账号
查看用户的组信息
2.groupadd 添加组账号
3.gpasswd管理组成员
4.解析组账号文件
创建用户、组的注意事项:
经典案例:
九、重定向与管道操作
1.重定向
2.管道操作
十、date时间操作
十一、计划任务(工作常用)
1.周期性任务
(1)、cron任务概述
(2)、管理计划任务
(3)、编写crontab任务记录
命令不全,此为常用命令,初学没必要记忆全部命令
/ 根目录
目录: 文件夹
文件: .txt .exe .doc
左上角--应用程序--终端
[root@localhost ~]#
~ : /root
ctrl+v-----^v
可补齐命令字、选项、参数、文件路径、软件名、服务名
]# if(tab) (tab) #列出以if开头的命令
]# ifco(tab)
Ctrl + c:结束正在运行的命令
Esc + . 或 Alt + . :粘贴上一个命令的参数
Ctrl + l:清空整个屏幕
Ctrl + u:从光标处清空至行首
Ctrl + w:往回删除一个单词(以空格界定)
Ctrl + a 或 Home键:光标快速到行首
End 键:光标快速到行尾
——查看已设置的别名
alias [别名名称]
——定义新的别名
alias 别名名称= '实际执行的命令行' #临时的别名
——取消已设置的别名
unalias [别名名称]
]#hostname
]#alias hn='hostname' #定义别名
]#hn
]#alias #查看系统中有哪些别名
]#unalias hn #删除 hn别名
]#hn
bash:hn:未找到命令......
]# alias myls='ls -l'
]# myls /etc/passwd
设置一个别名,执行myls时相当于执行'ls -l'命令
永久定义别名:编辑/root/.bashrc
1. 编辑/root/.bashrc在里面添加上我们需要的别名设置保存退出即可
2.使用source命令让这个初始化文件生效
全局永久别名:编辑/etc/bashrc #全局配置文件,影响全体用户 (开启新的终端)
[root@localhost ~]# \cp -r /boot/ /opt/ # 前面家反斜杠\ 本次操作临时取消别名
[root@localhost /]# ls /root/a*
[root@localhost /]# ls /boot/vm*
[root@localhost /]# ls /etc/*tab
[root@localhost /]# ls /etc/*.conf
[root@localhost /]# ls /etc/re*.conf
[root@localhost /]# ls /dev/tty*
[root@localhost /]# ls /etc/??tab
[root@localhost /]# ls /dev/tty?
[root@localhost /]# ls /dev/tty??
[root@localhost ~]# ls /dev/tty[1-7]
/dev/tty1 /dev/tty2 /dev/tty3 /dev/tty4 /dev/tty5 /dev/tty6 /dev/tty
[root@localhost ~]# ls /dev/tty{1,3,4,6,8}
/dev/tty1 /dev/tty3 /dev/tty4 /dev/tty6 /dev/tty8
[root@svr7 ~]# history #查看历史命令
[root@svr7 ~]# history -c #清理历史命令
[root@svr7 ~]# ls /root
[root@svr7 ~]# cat /etc/redhat-release
[root@svr7 ~]# !cat #执行历史命令中最近一条以cat开头的
历史命令数量最多可以记录1000条
[root@svr7 ~]# vim /etc/profile
HISTSIZE=1000 #指定历史命令记录的条数
uname -a 主机名,内核,硬件平台等全部信息
uname -r 只显示内核信息
选项 ERROR
cat /etc/redhat-release #查看系统版本
hostname 主机的完整名称,包含了主机名以及所在域的名称
ifconfig eth0(eth0为本机的网卡接口)
cat /proc/cpuinfo
lscpu #查看CPU处理器信息
cat /proc/meminfo
/proc : 内存的数据,不占用硬盘空
shutdown -h now
poweroff
init 0
shutdown -h +15
ctrl +c shutdown -c 取消延时关机
shutdown -r now
shutdown -h 3600
reboot 重启
init 6
/ 根目录
/etc /dev /root /boot 一级目录
绝对路径:以根开始的路径
相对路径:以当前为参照的路径
Print Working Directory 输出当前文件/目录的路径
Change Directory 进入到指定目录
cd /etc
cd .. 返回上一级目录
cd ../.. 返回上两级目录
. :当前目录
.. :父目录(上一层)
~:表示家目录
家目录:专门存放用户个性化信息的目录
~user:用户user的家目录
/root:是Linux管理员的家目录
/home:存放所有普通用户的家目录
]# cd ~root #去往root用户的家目录
]# pwd
用法:ls [选项]... [文件]...
ls -l /etc 长目录格式显示
ls -d /etc 显示目录本身的属性
ls -lh /etc 提供易读的容量单位
ls -A:显示所有内容,包含隐藏数据
ls -R : 递归显示
mkdir /nsd
mkdir -p /etc/hello #递归创建目录
mkdir -p /opt/aa/bb/cc/dd
touch abc
touch /root/test/a.txt
touch /opt/.yincang.txt #创建一个隐藏文件
格式:ln -s /路径/源数据 /路径/快捷方式的名称 //软连接
ln -s /etc/hello/abc /dev/
原文件 快捷方式路径
软连接优势:可以针对目录与文件制作快捷方式,支持跨分区
软连接缺点:源数据消失,快捷方式失效
格式:ln /路径/源数据 /路径/快捷方式的名称 //硬连接
硬连接优势:源数据消失,快捷方式失效
硬连接缺点:只针对文件制作快捷方式,不支持跨分区
cp [选项]... 原文件... 目标路径...
cp -r 递归复制(复制目录)
cp -f 强制覆盖不提示
cp -p 保持原文件属性不变(所属主,所属组等属性不变)
重名进行强制覆盖
]# \cp -r /boot/ /opt/ #本次操作临时取消别名
这个操作的意义:执行cp -r /boot/ /opt/之后再次执行此操作,会出现重复文件,会有选择是否覆盖,文件多的时候比较麻烦。执行\cp -r /boot/ /opt/ 会直接覆盖。
复制可以支持重新命名,目标路径下数据的名称
]# cp -r /home/ /opt/myhome
]# ls /opt/
]# cp /etc/redhat-release /opt/r.txt
]# ls /opt/
复制可以支持两个以上的参数,永远把最后一个参数作为目标,其他的所有的参数都作为源数据
]# mkdir /nsd05
]# cp -r /home/ /etc/passwd /boot/ /etc/shells /nsd05
]# ls /nsd05
复制与一个点进行连用,将数据复制到当前路径下
]# cd /etc/sysconfig/network-scripts/
]# pwd
]# cp /etc/passwd . #这是一个点
]# ls
rm 文件
rm -r 递归删除
rm -f 强制删除不提示
mv 原文件 目标路径
mv -f 强制覆盖不提示
]# ls /opt/
]# mv /opt/nsd01 /opt/abc
]# ls /opt/
]# mv /opt/abc/ /opt/student
]# ls /opt/
]# mv /opt/student /mnt/stu01
]# ls /mnt/
wc Word Count
用法:wc [选项]... [文件]... 行数,单词数,字节数
-c, --bytes print the byte counts
-m, --chars print the character counts
-l, --lines print the newline counts
-L, --max-line-length 显示最长行的长度
-w, --words 显示单词计数
字符跟字节:英文字符占一个字节,中文字符占2-3个字节,隐藏换行符也占一个字符
——du [选项]... [目录或文件]...
-s:只统计每个参数所占用的总空间的大小
-h:提供容易读的容量单位(k, M等)
[root@localhost ~]# du -sh /root
用法:cat [选项]... [文件]...
cat -n /etc/shells #显示行号
将[文件]或标准输入组合输出到标准输出。
-A, --show-all 等于-vET
-b, --number-nonblank 对非空输出行编号
-e 等于-vE
-E, --show-ends 在每行结束处显示"$"
-n, --number 对输出的所有行编号
-s, --squeeze-blank 不输出多行空行
-t 与-vT 等价
-T, --show-tabs 将跳格字符显示为^I
-v, --show-nonprinting 使用^ 和M- 引用,除了LFD和 TAB 之外
--help 显示此帮助信息并退出
--version 显示版本信息并退出
vim #修改文本文件内容,新建文本文件功能
三个模式:命令模式、插入模式(输入模式)、末行模式
[root@nb ~]# vim /opt/abc.txt
esc -> <- esc
输入模式-----命令模式-----末尾行模式
<- a 或 i : ->
末尾行模式:
—保存、退出
q 退出
w 保存
! 强制操作
q! 强制退出不保存
wq 或 x 保存并退出
ZZ(大写) 保存修改并退出
—查找
/word 向后查找字符串word
n 跳转至下一个找到的字符
N 跳转至上一个找到的字符
—字符串替换
操作类型 |
设置指令 |
用 途 |
|
行内替换 |
:s/root/new |
替换光标所在行第一个“root” |
|
:s/root/new/g |
替换光标所在行所有的“root” |
||
区域内替换 |
:1,10s/root/new/g |
替换第1-10行所有的“root” |
|
:%s/root/new/g |
替换文件内所有的“root” |
—开关参数的控制
操作类型 |
设置指令 |
用 途 |
编辑器设置 |
:set nu或set nonu |
显示/不显示行号 |
:set ai或 set noai |
启用/关闭自动缩进 |
命令模式输入:
—光标移动:
上下左右 移动光标
page up page down 上下翻页
Home键,^ ,数字0 跳转文件的行首
End键 ,$ 跳转文件的行首行尾
gg 跳转到文件的首行
G 跳转到文件的末尾行
—复制、粘贴
yy #yy 复制光标处的一行,#行
p ,P 粘贴到光标处之后,之前
—删除
x或者Delete键 删除光标处的单个字符
dd #dd 删除光标处的一行,#行
d^ 或 D 从光标处之前删除至行首
d$ 从光标处删除至行尾
—撤销
u 撤回上一步操作(撤销)
Ctrl + r 取消上一步的撤销(反向撤销)
补充:在命令模式下大写的C,可以删除光标之后,并且进入插入模式
more /etc/passwd
回车下翻一行
空格下翻一页
q或者Q退出
缺点:往回翻页不方便
优点:可以前后翻页
上下箭头代表前后翻一行
page up page down 代表前后翻一页
q或者Q退出
/ 向后查找特定关键字
/... ...表示你想查找的特定关键字
管道操作
cat /etc/passwd | less
head -n数字 文件名
head -2 /etc/passwd
tail -n数字 文件名
tail -2 /etc/passwd
截取中间部分内容:用一个管道操作,嵌套使用head,tail
man uname > file1.txt // man [命令] -------详细帮助文档
less file1.txt
归档:将许多零散的文件整理为一个文件
文件总的大小基本不变
压缩:按某种算法减小文件所占用空间的大小
恢复时按对应的逆向算法解压
常见的压缩格式及命令工具:
.gz --> gzip gunzip
.bz2 --> bzip2 bunzip2
.xz --> xz unxz
zip 归档工具,跨平台
用法:zip -r [压缩包名]... [被压缩的文件]...
zip -r abc.zip /etc/passwd /home
ls -lh abc*
unzip -l 压缩包名 #显示压缩包内容
unzip 压缩文件 -d 指定释放路径
unzip abc.zip -d /boot/
分别压缩每一个文件,但是原文件不保留
gzip 文件名
cd /dev
touch test.txt
gzip /dev/test.txt
ls -lh /dev/test.txt
gunzip gz压缩包
gunzip /root/test.gz
gunzip -d gz压缩包 gz压缩包
bzip2 文件名
xz 文件名
bunzip2 bz2压缩包
unxz xz压缩包
tar 集成备份工具
tar 制作压缩包(tar打包)
格式: tar [选项...] /路径/压缩包名字...... /路径/被压缩的数据01 /路径/被压缩的数据02......
逐一复制并归档,原目录文件保留
tar -zcf /root/test.tar.gz /home /boot /etc/passwd
-c create创建,动作为打包
-f 归档--指定压缩包名字,必须在所有的选项的最后
-z、-j、 -J :调用 .gz .bz2 .xz 格式的工具进行处理
-p 保留根路径
-v 细节模式
-------------------------------------------------------------------------
-t 显示归当中的文件清单
tar -tf test.tar 查看归档内容
-x 释放
-C 指定释放路径
tar -xf tar归档包 -C 目标目录 释放归档到指定目录
给定一个关键字,Linux从哪里去找这个命令
echo $PATH 查看系统的环境变量
which cd 查看切换目录的命令字
find 查找范围 查找条件 (d,f,l)
find /root -type l
条件
-type 类型
d 目录 directory
f 普通文件 file
l 快捷方式
b 块设备
c 字符设备 character
find /root -type d
-name "文档名称"
find /root -name "abc.*" #通配符
find /root -name "abc.???" (.txt 就输入3个?)
find /root -name "abc*"
通配符 [1-9]
find /etc/ -name "*.conf" | wc -l
wc -l #统计行数
-size 文件大小(k,M,G) ( + or - )
find /root -size -10M (小于10M)
find /root -size +10M (大于10M)
-mtime 修改时间(+ - 天数) 上一次修改的时间
find /root -mtime -1
-mtime +90 //90天之前的数据
-mtime -90 //90天之内的数据
三个月以前的数据,+90
-user 用户名 (按照数据的所有者)
[root@localhost ~]# find /home/ -user lisi
[root@localhost ~]# find / -user lisi
find [范围] [条件] -exec 处理命令 {} \;
(find每查找到一次就执行额外操作一次)
-exec 额外操作的开始
{} 永远表示前面的find查找的结果
\;额外操作的结束
[root@localhost ~]# find /boot/ -size +10M
/boot/initramfs-0-rescue-8bda2e2780584eadaa228b230c02deb9.img
/boot/initramfs-3.10.0-862.el7.x86_64.img
[root@localhost ~]# find /boot/ -size +10M -exec cp {} /mnt \;
[root@localhost ~]# ls /mnt/
initramfs-0-rescue-8bda2e2780584eadaa228b230c02deb9.img
initramfs-3.10.0-862.el7.x86_64.img
grep [选项] [关键词] 目标文件
检索行
选项:
-i 检索的时候忽略大小写
-v 反转查找 (除此之外的)
-color 突出显示查找的关键词
grep命令默认不支持通配符
grep -i '127.0.0.1' /etc/hosts -->检索127.0.0.1所在的一行
关键词:
^.... 以....开头的
^# 表示注释行
...$ 以...结尾的
^$ 表示空行
过滤配置文件
去除注释行:grep -v ^# /etc/hosts #开头表示注释行
grep -v ^# /etc/hosts | grep -v ^$ //去除注释行和空行
作用:--可以登陆操作系统
--不同的用户具备不同的权限
唯一标识:UID(编号从0开始的编号,默认最大60000)
管理员root的UID:永远为0
系统用户(为程序运行与服务运行提供身份)为1~999
普通用户的UID:默认从1000开始
作用:
唯一标识:GID
原则:linux一个用户必须至少属于一个组
组账号的分类:
基本组:系统创建与用户同名 #用户创建的同时系统会默认创建一个该用户的组,
即创建用户 lisi 的同时,系统会创建一个lisi组。
附加组(从属组):有管理员创建,由管理员进行加入
格式:useradd [选项]... 用户名
useradd zhangsan
useradd -u 1300 lisi
-u, --UID //指定新用户的用户 ID
-d, --home-dir // 指定新用户的主目录(家目录),缺省为/home/用户名
注意:不能自主创建家目录,指定家目录时不能不存在的多层目录.
-g , 将用户加入指定组
-G, --groups //指定新用户所属的附加组
groupadd 组名 //创建组
[root@localhost ~]# groupadd stugrp //单独创建stugrp组
[root@localhost ~]# useradd -G stugrp xixi #创建用户xixi并加入stugrp组中
-s, --shell-解释器 //指定新用户的登录 shell,
passwd lisi
4f^ 7d$ 8b@ 7a! 8h* 1g& 2h* 4g& 6d$ #一组有规律的密码 ^_^
/etc/passwd //保存用户账号基本信息,每个用户记录一行
head -n 1 /etc/passwd //截取文件的第一行
root:x:0:0:root:/root:/bin/bash
用户名:密码占位符:UID:基本组GID:用户描述信息:家目录:解释器
1:root 用户账号名
2:x 密码字串或占位符x
3:0 用户账号的UID
4:0 用户所属组的GID
5:root 用户全名
6:/root 宿主目录
7:/bin/bash 登录shell程序路径
/etc/shadow 保存用户密码字串和有效期等信息
tail -n 1 /etc/shadow
nsd01:$6$8R8p4HYR$zvpoLXJFgGvyQF5C1j.zmFtwI7mEwMY/N5sy3ymdfHkB3Mbb9r/0LkCdFZ4LfdAlBkRc55K4cP4aSOA2KC2KR/:19032:0:99999:7:::
1:nsd01 用户账号名称
2:**** 加密后的密码字符串
3:19032 上次修改密码的时间 #自1970-1-1至上一次修改密码的时间,所经历的天数
4:0 密码最短有效时间,默认为0
5:99999 密码最长有效时间,默认为99999
6:7 密码过期前的警告天数
7: *** 密码过期后多少天禁用此用户
8:*** 账号失效时间,默认值为空
9:*** 保留字段(未使用)
强制用户初次登录时修改密码(了解)
[root@localhost ~]# vim /etc/shadow
………
harry:$6$Y7P/HqvZ$roWXwACsX.pUY9GUKLQMRVHjygMWmiN8m45jYY3Tt.tPFDWVxJIdE7gyKHWo1/UKQC7ocEke5Uu8gKN8jydkp1:0:0:99999:7:::
上一次修改密码的时间:自1970-1-1到达上一次修改密码的时间,所经历的天数,修改成0
强制保存并退出
passwd [选项] 用户名
passwd -d zhangsan 清空密码,使之不需要密码即可登录
passwd --stdin zhangsan 从标准输入密码(管道输入)
echo [新密码] | passwd --stdin [用户名] 更改用户密码
usermod [选项] 新的用户名 用户名
-l 更改用户账号名称
-L 锁定用户账号 Lock
-U 解锁用户账号 Unlock
-u 更改用户账号的UID
-d 更改用户账号的宿主目录
-g 更改用户账号的所属组
-s 更改用户账号的登录shell(登陆解释器)
-G 附加组 //重置附加组----重置之前的附加组
chage [选项] 修改内容 用户名 (操作对象在最后)
用法:chage [选项] 登录
选项:
-d, --lastday 最近日期 将最近一次密码设置时间设为“最近日期”
-E, --expiredate 过期日期 将帐户过期时间设为“过期日期”XXXX-XX-XX
-h, --help 显示此帮助信息并推出
-I, --inactive INACITVE 过期 INACTIVE 天数后,设定密码为失效状态
-l, --list 显示帐户年龄信息
-m, --mindays 最小天数 将两次改变密码之间相距的最小天数设为“最小天数”
-M, --maxdays MAX_DAYS set maximum number of days before password
change to MAX_DAYS
-R, --root CHROOT_DIR chroot 到的目录
-W, --warndays 警告天数 将过期警告天数设为“警告天数”
格式:userdel [-r] 用户名
添加 -r 选项,宿主目录/用户邮件也一并删除
[root@localhost ~]# userdel -r nsd01 #连同家目录一并删除
[root@localhost ~]# userdel nsd02 #不删除家目录,只删除用户信息
id 用户名
必须是服务器管理者,涉及到重启服务器系统
思路:进入救援模式,修改root用户的密码
1.重启Linux系统
[root@nb ~]# reboot
2.在此界面按键盘的上下键,停在此界面。选择第一行,按e键
3.找到linux开头的行,将ro修改为rw,在该行的最后写入 rd.break
4.按Ctrl x进入救援模式,提示符为 switch_root:/#
5.进入救援模式之后
switch_root:/# chroot /sysroot #切换环境,切换到硬盘操作系统的环境
sh-4.4# ls #查看硬盘操作系统的所有数据
sh-4.4# echo 123 | passwd --stdin root #修改root密码
如果SELinux是强制模式,才需要重设SELinux策略(其他模式不需要做此操作)
sh-4.2# vim /etc/selinux/config #查看SELinux开机的运行模式
修改为宽松模式permissive
sh-4.2# touch /.autorelabel #让SELinux失忆
用户初始配置文件
—新建用户时,新建用户家目录,根据 /etc/skel 模板目录复制
[root@localhost ~]# ls -A /etc/skel/
.bash_logout .bash_profile .bashrc .mozilla
[root@localhost ~]# ls -A /home/xixi
.bash_logout .bash_profile .bashrc .mozilla
[root@localhost ~]# touch /etc/skel/xixi.txt
[root@localhost ~]# mkdir /etc/skel/test
[root@localhost ~]# ls -A /etc/skel/
.bash_logout .bash_profile .bashrc .mozilla test xixi.txt
[root@localhost ~]# useradd nsd21
[root@localhost ~]# ls -A /home/nsd21
.bash_logout .bash_profile .bashrc .mozilla test xixi.txt
主要的初始配置文件
.bash_profile: 每次登陆时执行,定义初始变量值
/root/.bashrc : 每次进入新的Bash环境时执行 #用来设置永久别名
全局配置文件:
/etc/bashrc #用来设置全局永久别名
/etc/profile
/etc/skel内容复制到手动创建的用户家目录下;然后把目录的所属主:所属组修改成用户;该目录权限修改为700。
root@localhost ~]# useradd kenji
[root@localhost ~]# grep kenji /etc/passwd
kenji:x:1001:1001::/home/kenji:/bin/bash
[root@localhost ~]# usermod -d /opt/ken kenji
[root@localhost ~]# grep kenji /etc/passwd
kenji:x:1001:1001::/opt/ken:/bin/bash
[root@localhost ~]# ls /opt/ken
ls: 无法访问/opt/ken: 没有那个文件或目录
[root@localhost ~]# cp -r /etc/skel/ /opt/ken #/etc/skel内容复制到手动创建的用户家目录下
[root@localhost ~]# ls -ld /opt/ken
drwxr-xr-x. 3 root root 78 3月 9 09:26 /opt/ken
[root@localhost ~]# chown -R kenji:kenji /opt/ken #把目录的所属主:所属组修改成用户
[root@localhost ~]# ls -ld /opt/ken
drwxr-xr-x. 3 kenji kenji 78 3月 9 09:26 /opt/ken
[root@localhost ~]# chmod 700 /opt/ken #该目录权限修改为700
groupadd -g GID 组账号名称
删除组账号: groupdel 组账号名称
删除组的时候,不可以删除基本组 **************
[root@localhost ~]# groupdel tmooc
[root@localhost ~]# grep tmooc /etc/group
groupmod -g 新GID 组名 //更改GID
groupmod -n 新组名 组名 //更改组名
groups 用户名
groupadd命令
用法: groupadd [选项] ... 组名
选项:
-f, --force 如果组已经存在则成功退出
并且如果 GID 已经存在则取消 -g
-g, --gid GID 为新组使用 GID
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-o, --non-unique 允许创建有重复 GID 的组
-p, --password 为新组使用此加密过的密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录
gpasswd命令
用法:gpasswd [选项] 用户名 组名
选项:
-a, --add USER #添加组成员,每次只能添加一个
-d, --delete USER #删除组成员,每次只能删除一个
-M, --members USER,... 定义(覆盖)组 GROUP 的成员列表,可设置多个
-A, --administrators ADMIN,... 定义组的管理员列表
gpasswd -A nb tarena //设置nb为tarena组的管理员
示例1:
root@localhost ~]# groupadd tarena
[root@localhost ~]# useradd kaka
[root@localhost ~]# useradd nb
[root@localhost ~]# useradd jack
[root@localhost ~]# useradd kenji
[root@localhost ~]# gpasswd -a kaka tarena #添加用户kaka到tarena组
[root@localhost ~]# id kaka
[root@localhost ~]# gpasswd -M 'jack,kenji' tarena #定义组成员列表
[root@localhost ~]# gpasswd -a nb tarena
[root@localhost ~]# gpasswd -d nb tarena #将nb用户从tarena组中删除
[root@localhost ~]# gpasswd -M '' tarena #删除组中所有成员
示例2:
-A:定义组管理员列表
[root@localhost ~]# su - nb
[nb@localhost ~]$ gpasswd -a kaka tarena
gpasswd:没有权限。
[nb@localhost ~]$ exit
[root@localhost ~]# gpasswd -A nb tarena #设置组管理员
[root@localhost ~]# su - nb
[nb@localhost ~]$ gpasswd -a kaka tarena
正在将用户“kaka”加入到“tarena”组中
[nb@localhost ~]$ exit
(1)/etc/group //存放组基本信息
grep tarena /etc/group
tarena : x : 1607 : nb,kaka
#组名:组密码占位符:组的GID:组成员列表
tarena:组账号名称
x:密码占位符
1607:组账号的GID
nb,kaka:本组的成员用户列表
(2)/etc/gshadow //保存组账号的管理信息
每一组记录一行,以:分割4个字段
tarena : ! : nb : nb,kaka
组账号名称:加密后的密码字符串:本组的管理员列表:本组的成员用户列表
1、/etc/passwd:用户基本信息配置文件
2、/etc/shadow:用户密码信息配置文件
3、/etc/group:组的基本信息配置文件
4、/etc/gshadow:组的管理信息配置文件
请问我创建一个用户tom,这个4个文件那些增加内容?
useradd tom 四个全部变化
useradd命令解析:
1./etc/passwd:用户基本信息配置文件 增加一行
2./etc/shadow:用户密码信息配置文件增加一行
3./etc/group:组的基本信息配置文件增加一行
4./etc/gshadow:组的管理信息配置文件增加一行
5.在/home增加一个家目录
6.在/var/spool/mail/新增一个用户的邮件文件
userdel -r 命令解析:
1./etc/passwd:用户基本信息配置文件 删一行
2./etc/shadow:用户密码信息配置文件 删一行
3./etc/group:组的基本信息配置文件 删一行
4./etc/gshadow:组的管理信息配置文件 删一行
5.删除家目录
6.删除用户的邮件文件
将前面命令的输出,作为内容,写入后面的文件
> :覆盖重定向
>>:追加重定向
补充:
> 重定向标准输出
2> 重定向错误输出
&> 重定向所有输出
[root@localhost ~]# head -2 /etc/passwd > /opt/p.txt
[root@localhost ~]# cat /opt/p.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@localhost ~]# hostname
localhost.localdomain
[root@localhost ~]# hostname >> /opt/p.txt
[root@localhost ~]# cat /opt/p.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
localhost.localdomain
操作符号 | -- 管道 -- 传递
作用:将前一条命令的标准输出,传递给后一条命令处理,作为后面命令的参数。
[root@localhost ~]# head -2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@localhost ~]# head -2 /etc/passwd | tail -1 //仅仅输出第二行------:输出前两行的最后一行
bin:x:1:1:bin:/bin:/sbin/nologin
用法:date [选项]... [+格式]
[root@localhost ~]# date //查看当前系统时间
2022年 02月 08日 星期二 16:52:26 CST
[root@localhost ~]# date -s "2008-8-8 08:08:08" //修改系统时间
2008年 08月 08日 星期五 08:08:08 CST
[root@localhost ~]# date +%Y #显示年
2022
[root@localhost ~]# date +%m #显示月
02
[root@localhost ~]# date +%d #显示日期
08
[root@localhost ~]# date +%H #显示小时
16
[root@localhost ~]# date +%M #显示分钟
52
[root@localhost ~]# date +%S #显示秒
26
[root@localhost ~]# date +%F #显示年月日
2022-02-08
[root@localhost ~]# date +%R #显示时:分
16:52
用途:按照设置的时间间隔为用户反复执行某一个固定的系统任务
软件包:cronie、crontabs
系统服务:crond
日志文件:/var/log/cron
[root@localhost ~]# tail /var/log/cron //了解corn执行消息
使用crontab命令
编辑:crontab -e [-u 用户名] #所有人都可以用,大多数是以root身份
查看:crontab -l [-u 用户名]
清除:crontab -r [-u 用户名]
[root@localhost ~]# crontab -l
* * * * * date >> /opt/time.txt
[root@localhost ~]# crontab -l -u lisi
no crontab for lisi
配置格式可参考 /etc/crontab 文件
计划任务书书写格式:
—分 时 日 月 周 任务命令行(绝对路径)
* * * * * #中间有空格
30 8 * * * //每天早上8:30执行一次
30 23 * * * //每天晚上23:30执行一次
30 23 * * 5 //每周的周5晚上23:30执行一次
30 23 * * 1-5 //每周的周一至周五晚上23:30执行一次
30 23 * * 1,3,6 //每周的周一,周三,周六晚上23:30执行一次
30 23 1 * 1 //每月的一号或每周的周一晚上23:30执行一次
* * * * * //每分钟执行一次
*/5 * * * * #每隔5分钟运行一次
1 */2 * * * #每隔2小时运行一次
例子:
每分钟记录当前的系统时间,写入/opt/time.txt
[root@localhost ~]# date
2022年 02月 08日 星期二 11:59:39 CST
[root@localhost ~]# date >> /opt/time.txt
[root@localhost ~]# cat /opt/time.txt
2022年 02月 08日 星期二 11:59:39 CST
[root@localhost ~]# crontab -e //编写计划任务
* * * * * date >> /opt/time.txt
[root@localhost ~]# crontab -l //查看计划任务
* * * * * date >> /opt/time.txt