参考资料:https://www.linuxprobe.com/chapter-02.html
Linux命令大全(手册) – 真正好用的Linux命令在线查询网站
https://www.linuxcool.com/
1 SHELL
如何理解shell, 简单来说shell就是linux的命令行工具,也可以称之为终端。你只需要将命令告诉shell,shell 就会调用相应的程序执行你的命令。现在主流linux系统默认使用的终端是Bash(Bourne-Again SHell)解释器。其具有4项优势:
- 通过上下方向键来调取过往执行过的Linux命令;
- 命令或参数仅需输入前几位就可以用Tab键补全;
- 具有强大的批处理脚本;
- 具有实用的环境变量功能。
2 常见命令格式
常见执行Linux命令的格式是这样的:
命令名称 [命令参数] [命令对象]
注意,命令名称、命令参数、命令对象之间请用空格键分隔。
命令对象一般是指要处理的文件、目录、用户等资源,而命令参数可以用长格式(完整的选项名称),也可以用短格式(单个字母的缩写),两者分别用--与-作为前缀。
命令参数的长格式与短格式示例
长格式 | man --help |
---|---|
短格式 | man -h |
在Linux系统中的命令参数有长短格式之分,长格式和长格式之间不能合并,长格式和短格式之间也不能合并,但短格式和短格式之间是可以合并的,合并后仅保留一个-(减号)即可。另外某些命令可允许参数不加减号(-),例如可直接写成ps aux的样子。
Linux新手不会执行命令大多是因为参数比较复杂,参数值需要随不同的命令和需求情况而发生改变。因此,要想灵活搭配各种参数,执行自己想要的功能,则需要长时间的经验积累了。
3 查看帮助命令
man
是linux系统的说明文档,所有的程序、函数都将自己的说明文档提交给man。当需要阅读某个函数或程序的说明时,通过man命令进行调用。
man
命令的可用帮助文档分类有: 普通的命令;内核调用的函数与工具;常见的函数与函数库;设备文件的说明;配置文件;惯例与协议;管理员可用的命令;内核相关的文件。
一般来讲帮助文件都很长很多,如果你想翻看的话,就要理解帮助文档的目录结构与操作方法:
结构名称 | 代表意义 |
---|---|
NAME | 命令的名称 |
SYNOPSYS | 参数的大致使用方法 |
DESCRIPTION | 介绍说明 |
EXAMPLES | 演示(附带简单说明) |
OVERVIEW | 概述 |
DEFAULTS | 默认的功能 |
OPTIONS | 具体的可用选项(带介绍) |
ENVIRONMENT | 环境变量 |
FILES | 用到的文件 |
SEE ALSO | 相关的资料 |
HISTORY | 维护历史与联系方式 |
在man
命令帮助信息的界面中,所包含的常用操作按键及其用途如表2-2所示。
man
命令中常用按键以及用途
按键 | 用处 |
---|---|
空格键 | 向下翻一页 |
PaGe down | 向下翻一页 |
PaGe up | 向上翻一页 |
home | 直接前往首页 |
end | 直接前往尾页 |
/ | 从上至下搜索某个关键词,如“/linux” |
? | 从下至上搜索某个关键词,如“?linux” |
n | 定位到下一个搜索到的关键词 |
N | 定位到上一个搜索到的关键词 |
q | 退出帮助文档 |
4 常用系统工作命令
1.echo命令
echo命令用于在终端输出字符串或变量提取后的值,格式为 echo [字符串 | $变量]
。
2.date命令
date命令用于显示及设置系统的时间或日期,格式为 date [选项] [+指定的格式]
。
强大的date命令能够按照指定格式显示系统的时间或日期,只需键入"+"号开头的字符串指定其格式,详细格式如下:
%t | 跳格[TAB键] |
---|---|
%H | 小时(00-23) |
%I | 小时(01-12) |
%M | 分钟(00-59) |
%S | 秒(00-60) |
%X | 相当于%H:%M:%S |
%Z | 显示时区 |
%p | 显示本地AM或PM |
%A | 星期几 (Sunday-Saturday) |
%a | 星期几 (Sun-Sat) |
%B | 完整月份 (January-December) |
%b | 缩写月份 (Jan-Dec) |
%d | 日(01-31) |
%j | 一年中的第几天(001-366) |
%m | 月份(01-12) |
%Y | 完整的年份 |
3.wget命令
wget命令用于在终端中下载网络文件,格式为 wget [参数] 下载地址
。
wget命令的参数以及作用
参数 | 作用 |
---|---|
-b | 后台下载模式 |
-O | --output-document=FILE #write documents to FILE. 指定文件下载位置 |
-P | --directory-prefix=PREFIX #save files to PREFIX/...下载到指定目录 |
-t | 最大尝试次数 |
-c | --continue #resume getting a partially-downloaded file.断点续传 |
-p | --page-requisites #get all images, etc. needed to display HTML page.下载页面内所有资源,包括图片、视频等 |
-np | --no-parent #don't ascend to the parent directory. 不下载父级目录的文件 |
-r | --recursive #specify recursive download.递归下载 |
-nd | --no-directories ## don't create directories. 不创建层级目录,所有文件下载到当前目录 |
-x | --force-directories ## force creation of directories. 强制创建文件夹 |
-L | --relative #follow relative links only. 只下载相对链接,如果页面嵌入其他站点不会被下载 |
--ftp-user=USER set ftp user to USER. 设置ftp 下载的用户名 | |
--ftp-password=PASS set ftp password to PASS. 设置ftp 下载的密码 | |
-q | --quiet 安静模式(无信息输出)。 |
-v | --verbose 详尽的输出(此为默认值)。 |
4.ps 命令
ps命令用于查看系统中的进程状态,格式为ps [参数]
。
ps -aux
ps命令的参数以及作用
参数 | 作用 |
---|---|
-a | 显示所有进程(包括其他用户的进程) |
-u | 用户以及其他详细信息 |
-x | 显示没有控制终端的进程 |
ps aux最初用到Unix Style中,而ps -ef被用在System V Style中,两者输出略有不同。现在的大部分Linux系统都是可以同时使用这两种方式的。
Linux系统中时刻运行着许多进程,如果能够合理地管理它们,则可以优化系统的性能。在Linux系统中,有5种常见的进程状态,分别为运行、中断、不可中断、僵死与停止,其各自含义如下所示。
R(运行):进程正在运行或在运行队列中等待。
S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该 状态。
D(不可中断):进程不响应系统异步信号,即便用kill命令也不能将其中断。
Z(僵死):进程已经终止,但进程描述符依然存在, 直到父进程调用wait4()系统函数后将进程释放。
T(停止):进程收到停止信号后停止运行。
5. top 命令
top命令用于动态地监视进程活动与系统负载等信息,其格式为top
。
top命令相当强大,能够动态地查看系统运维状态,完全将它看作Linux中的"强化版的Windows任务管理器"
top命令执行结果的前5行为系统整体的统计信息,其所代表的含义如下。
第1行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)。
第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。其中数据均为CPU数据并以百分比格式显示,例如"97.1 id"意味着有97.1%的CPU处理器资源处于空闲。
第4行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。
第5行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量。
6.pidof命令
pidof命令用于查询某个指定服务进程的PID值,格式为pidof [参数] [服务名称]
。
每个进程的进程号码值(PID)是唯一的,因此可以通过PID来区分不同的进程。
7.kill命令
kill命令用于终止某个指定PID的服务进程,格式为kill [参数] [进程PID]
。
通常来讲,复杂软件的服务程序会有多个进程协同为用户提供服务,如果逐个去结束这些进程会比较麻烦,此时可以使用killall命令来批量结束某个服务程序带有的全部进程。
killall命令用于终止某个指定名称的服务所对应的全部进程,格式为:killall [参数] [服务名称]
。
如果我们在系统终端中执行一个命令后想立即停止它,可以同时按下Ctrl + C组合键(生产环境中比较常用的一个快捷键),这样将立即终止该命令的进程。
或者,如果有些命令在执行时不断地在屏幕上输出信息,影响到后续命令的输入,则可以在执行命令时在末尾添加上一个&符号,这样命令将进入系统后台来执行。
5 系统状态检测命令
1.ifconfig命令
ifconfig命令用于获取网卡配置与网络状态等信息,格式为ifconfig [网络设备] [参数]
。
2.uname命令
uname命令用于查看系统内核与系统版本等信息,格式为uname [-a]
。
在使用uname命令时,一般会固定搭配上-a参数来完整地查看当前系统的内核名称、主机名、内核发行版本、节点名、系统时间、硬件名称、硬件平台、处理器类型以及操作系统名称等信息。
如果要查看当前系统版本的详细信息,则需要查看redhat-release文件,使用 cat /etc/redhat-release
命令。
3.uptime命令
uptime用于查看系统的负载信息,格式为uptime
。
uptime命令真的很棒,它可以显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息。
4.free命令
free用于显示当前系统中内存的使用量信息,格式为free [-m/-g/-h]
。 m 表示结果以Mb为单位,g表示结果以Gb为单位,h表示以更人性化的方式输出内存的实时使用量信息。
5.who|w命令
who
##用于查看当前登入主机的用户终端信息,格式为who [参数]
。
这三个简单的字母可以快速显示出所有正在登录本机的用户的名称以及他们正在开启的终端信息。
w
###用于查看当前登入主机的用户和他们在做什么 ,格式为 w
who am i
## 查看当前用户名
id
# 查看指定用户信息
6.last命令
last命令用于查看所有系统的登录记录,格式为last [参数]
。
7.history命令
history命令用于显示历史执行过的命令,格式为history
。
历史命令会被保存到用户家目录中的".bash_history"文件中。Linux系统中以点(.)开头的文件均代表隐藏文件,一般会是系统文件。可以用cat命令查看其文件内容,cat ~/.bash_history
.
要清空当前用户在本机上执行的Linux命令历史记录信息,可执行如下命令:history -c
8.sosreport命令
sosreport
命令用于收集系统配置及架构信息并输出诊断文档,格式为sosreport
。
当Linux系统出现故障需要联系技术支持人员时,大多数时候都要先使用这个命令来简单收集系统的运行状态和服务配置信息,以便让技术支持人员能够远程解决一些小问题,亦或让他们能提前了解某些复杂问题。
9. 查看系统信息信息
cat /proc/cpuinfo
# 查看CPU信息的linux系统信息命令**
cat /proc/cpuinfo |grep "model name" && cat /proc/cpuinfo |grep "physical id"
#查看CPU信息
说明:Linux下可以在/proc/cpuinfo中看到每个cpu的详细信息。但是对于双核的cpu,在cpuinfo中会看到两个cpu。常常会让人误以为是两个单核的cpu。 其实应该通过Physical Processor ID来区分单核和双核。而Physical Processor ID可以从cpuinfo或者dmesg中找到. flags 如果有 ht 说明支持超线程技术 判断物理CPU的个数可以查看physical id 的值,相同则为
hostname是一个kernel变量,可以通过hostname命令来查看本机的hostname
。也可以直接cat /proc/sys/kernel/hostname
查看,上面两种输出结果相同。
env
# 查看环境变量资源
df -h
# 查看各分区使用情况
fdisk -l |grep Disk
#查看硬盘信息,需要root权限
du -sh [文件夹]
# 查看指定目录的大小
du -h --max-depth=1
#查看当前目录下级子目录的大小
iptables -L
# 查看防火墙设置,需要root 权限
rpm -qa
# 查看所有安装的软件包
cat /etc/passwd
# 查看系统所有用户 cat /etc/group
# 查看系统所有组
ping -c 3 -i 3 -s 1024 -t 255 www.baidu.com
# ping命令,用于查看网络连接状况 ,-c 3 收到两次包后,自动退出 -i 3 发送周期为 3秒 -s 设置发送包的大小 -t 设置TTL值为 255 ## ping命令如果不加-c参数,默认会一直运行,需要Ctrl+C结束进程
6 工作目录切换命令
1.pwd命令
pwd命令用于显示用户当前所处的工作目录,格式为pwd [选项]
。
-P 显示真实路径。(即非快捷链接的地址)
2.cd命令
cd命令用于切换工作路径,格式为cd [目录名称]
。
可以通过cd命令迅速、灵活地切换到不同的工作目录。除了常见的切换目录方式,还可以
使用cd -
命令返回到上一次所处的目录,
使用cd..
命令进入上级目录,以及
使用cd ~
命令切换到当前用户的家目录,亦或使用cd ~username
切换到其他用户的家目录。
使用cd 路径
的方式切换进/etc目录中:cd /etc
3.ls命令
ls命令用于显示目录中的文件信息,格式为ls [选项] [文件]
。
所处的工作目录不同,当前工作目录下的文件肯定也不同。
-a | 查看全部文件(包括隐藏文件) |
---|---|
-d | 仅看目录本身 |
-h | 易读的文件容量(如k,m,g) |
-l | 显示文件的详细信息 |
7 文本文件编辑命令
1.cat命令
cat命令用于查看纯文本文件(内容较少的),格式为cat [选项] [文件]
。
如果在查看文本内容时还想顺便显示行号的话,不妨在cat命令后面追加一个-n
参数:
cat 在屏幕上的内容可以 用>
保存在某文件中(会覆盖原来的内容),或者>>
(会追加到文件的尾部)
输出重定向:会将原来的文件内容覆盖
追加:不会覆盖原来文件的内容,而是追加到文件的尾部
2.more命令或者less 命令
more命令用于查看纯文本文件(内容较多的),格式为more [选项]文件
。
more命令会在最下面使用百分比的形式来提示您已经阅读了多少内容。您还可以使用空格键或回车键向下翻页.
less命令用于分页显示文本文件的内容,less是more的升级版(less is more)和more命令不同的是,less命令可以向上翻页,而more命令却不能。
3.head命令
head命令用于查看纯文本文档的前N行,格式为head [选项] [文件]
。
head -n 20 initial-setup-ks.cfg
## 查看initial-setup-ks.cfg文件前20行内容
4.tail命令
tail命令用于查看纯文本文档的后N行或持续刷新内容,格式为tail [选项] [文件]
。
tail命令的操作方法与head命令非常相似,只需要执行tail -n 20 文件名
命令就可以查看文件最后20行内容。
tail命令最强悍的功能是可以持续刷新一个文件的内容,当想要实时查看最新日志文件时,这特别有用,此时的命令格式为tail -f 文件名
.
5.tr命令
tr命令用于替换文本文件中的字符,格式为tr [原始字符] [目标字符]
。
6.wc命令
wc命令用于统计指定文本的行数、字数、字节数,格式为wc [参数] 文本
。
wc的参数以及作用
参数 | 作用 |
---|---|
-l | 只显示行数 |
-w | 只显示单词数 |
-c | 只显示字节数 |
7.stat命令
stat命令用于查看文件的具体存储信息和时间等信息,格式为stat 文件名称
。
会显示出文件的三种时间状态:Access、Modify、Change。
8.cut命令
cut命令用于按列
提取文本字符,格式为cut [参数] 文本
。
在Linux系统中,如何准确地提取出最想要的数据,这也是我们应该重点学习的内容。一般而言,按基于行
的方式来提取数据是比较简单的,只需要设置好要搜索的关键词即可。但是如果按列搜索,不仅要使用-f参数来设置需要看的列数,还需要使用-d参数来设置间隔符号。
9.diff命令
diff命令用于比较多个文本文件的差异,格式为diff [参数] 文件
。
在使用diff命令时,不仅可以使用--brief参数来确认两个文件是否不同,还可以使用-c参数来详细比较出多个文件的差异之处,这绝对是判断文件是否被篡改的有力神器。
8 文件目录管理命令
1.touch命令
touch命令用于创建空白文件或设置文件的时间,格式为touch [选项] [文件]
。
对touch命令来讲,有难度的操作主要是体现在设置文件内容的修改时间(mtime)、文件权限或属性的更改时间(ctime)与文件的读取时间(atime)上面。
2.mkdir命令
mkdir命令用于创建空白的目录,格式为mkdir [选项] 目录
。
mkdir命令还可以结合-p
参数来递归创建出具有嵌套叠层关系的文件目录。
3.cp命令
cp命令用于复制文件或目录,格式为cp [选项] 源文件 目标文件
。大家对文件复制操作应该不陌生,在Linux系统中,复制操作具体分为3种情况:
如果目标文件是目录,则会把源文件复制到该目录中;
如果目标文件也是普通文件,则会询问是否要覆盖它;
如果目标文件不存在,则执行正常的复制操作。
cp命令的参数及其作用
参数 | 作用 |
---|---|
-p | 保留原始文件的属性 |
-d | 若对象为”链接文件”,则保留该`链接文件”的属性 |
-r | 递归持续复制(用于目录) |
-i | 若目标文件存在则询问是否覆盖 |
-a | 相当于-pdr(p、d、r为上述参数) |
4.mv命令
mv命令用于剪切文件或将文件重命名,格式为mv [选项] 源文件 [目标路径|目标文件名]
。
5.rm命令
rm命令用于删除文件或目录,格式为rm [选项] 文件
。
在Linux系统中删除文件时,系统会默认向您询问是否要执行删除操作,如果不想总是看到这种反复的确认信息,可在rm命令后跟上-f参数来强制删除。另外,想要删除一个目录,需要在rm命令后面加一个-r参数才可以,否则删除不掉。
>rm -r *
##删除当前目录下的所有文件及文件夹
rm删除的文件无法恢复,所以不要轻易使用 rm -fr
等命令 —— 三思而后行~~
如果执行了 rm -f /*
或 rm -rf /
不要问怎么办,赶紧跑路……
6.dd命令
dd命令用于按照指定大小和个数的数据块来复制文件或转换文件,格式为dd [参数]
。
dd命令是一个比较重要而且比较有特色的一个命令,它能够让用户按照指定大小和个数的数据块来复制文件的内容。当然如果愿意的话,还可以在复制过程中转换其中的数据。
dd命令的参数及其作用
参数 | 作用 |
---|---|
if | 输入的文件名称 |
of | 输出的文件名称 |
bs | 设置每个“块”的大小 |
count | 设置要复制“块”的个数 |
7.file命令
file命令用于查看文件的类型,格式为file 文件名
。
在Linux系统中,由于文本、目录、设备等所有这些一切都统称为文件,而我们又不能单凭后缀就知道具体的文件类型,这时就需要使用file命令来查看文件类型了。
8. 创建连接 ln
Linux 链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln 命令产生硬链接。
硬链接:硬连接指通过索引节点来进行连接。A 和 B 对文件系统来说是完全平等的。删除其中任何一个都不会影响另外一个的访问。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。
软连接:也称之为符号连接(Symbolic Link)。软链接文件有类似于 Windows 的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。通过 ln -s [文件1] [目标文件]
创建
touch f1 #创建一个测试文件f1
ln f1 f2 #创建f1的一个硬连接文件f2
ln -s f1 f3 #创建f1的一个符号连接文件f3
9 打包压缩与搜索命令
1.tar命令
tar命令用于对文件进行打包压缩或解压,格式为tar [选项] [文件]
。
在Linux系统中,常见的文件格式比较多,其中主要使用的是.tar或.tar.gz或.tar.bz2格式,我们不用担心格式太多而记不住,其实这些格式大部分都是由tar命令来生成的。
tar命令的参数及其作用
参数 | 作用 |
---|---|
-c | 创建压缩文件 |
-x | 解开压缩文件 |
-t | 查看压缩包内有哪些文件 |
-z | 用Gzip压缩或解压 |
-j | 用bzip2压缩或解压 |
-v | 显示压缩或解压的过程 |
-f | 目标文件名 |
-p | 保留原始的权限与属性 |
-P | 使用绝对路径来压缩 |
-C | 指定解压到的目录 |
一般使用tar -czvf 压缩包名称.tar.gz 要打包的目录
命令把指定的文件进行打包压缩;
相应的解压命令为tar -xzvf 压缩包名称.tar.gz
。
2.gzip 命令
作为tar的补充,用来压缩或解压.gz 格式的文件
参数 | 说明 |
---|---|
-c | 保留源文件 |
-d | 解压.gz文件 |
gzip [需要压缩的文件名|文件夹] >[目标文件名.gz]
## 压缩文件
gzip -d [需要解压的文件名.gz]
##解压文件
3. zip|unzip命令
zip 是个使用广泛的压缩程序,压缩后的文件后缀名为 .zip
unzip命令用于解压缩zip文件
语法
unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][.zip文件][文件][-d <目录>][-x <文件>] 或 unzip [-Z]
参数:
-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。
-f 更新现有的文件。
-l 显示压缩文件内所包含的文件。
-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
-t 检查压缩文件是否正确。
-u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
-v 执行是时显示详细的信息。
-z 仅显示压缩文件的备注文字。
-n 解压缩时不要覆盖原有的文件。
-o 不必先询问用户,unzip执行后覆盖原有文件。
-P<密码> 使用zip的密码选项。
-q 执行时不显示任何信息。
-s 将文件名中的空白字符转换为底线字符。
-V 保留VMS的文件版本信息。
-X 解压缩时同时回存文件原来的UID/GID。
[.zip文件] 指定.zip压缩文件。
[文件] 指定要处理.zip压缩文件中的哪些文件。
-d<目录> 指定文件解压缩后所要存储的目录。
-x<文件> 指定不要处理.zip压缩文件中的哪些文件。
zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期时间>][-<压缩效率>][压缩文件][文件...][-i <范本样式>][-x <范本样式>]
4.grep命令
grep命令用于在文本中执行关键词搜索,并显示匹配的结果,格式为grep [选项] [文件]
。
grep命令的参数及其作用
参数 | 作用 |
---|---|
-b | 将可执行文件(binary)当作文本文件(text)来搜索 |
-c | 仅显示找到的行数 |
-i | 忽略大小写 |
-n | 显示行号 |
-v | 反向选择——仅列出没有“关键词”的行。 |
-o | 只显示匹配内容(与正则表达式结合) |
最常用的参数:-n参数用来显示搜索到信息的行号;-v参数用于反选信息(即没有包含关键词的所有信息行)。这两个参数几乎能完成您日后80%的工作需要。
5.find命令
find命令用于按照指定条件来查找文件,格式为find [查找路径] 寻找条件 操作
。
find命令中的参数以及作用
参数 | 作用 |
---|---|
-name | 匹配名称 |
-perm | 匹配权限(mode为完全匹配,-mode为包含即可) |
-user | 匹配所有者 |
-group | 匹配所有组 |
-mtime -n +n | 匹配修改内容的时间(-n指n天以内,+n指n天以前) |
-atime -n +n | 匹配访问文件的时间(-n指n天以内,+n指n天以前) |
-ctime -n +n | 匹配修改文件权限的时间(-n指n天以内,+n指n天以前) |
-nouser | 匹配无所有者的文件 |
-nogroup | 匹配无所有组的文件 |
-newer f1 !f2 | 匹配比文件f1新但比f2旧的文件 |
--type b/d/c/p/l/f | 匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件) |
-size | 匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件) |
-prune | 忽略某个目录 |
-exec …… {}; | 后面可跟用于进一步处理搜索结果的命令 |
10 Linux 用户管理
1. 查看用户
如何查看系统中所存在的用户的分组信息
id
## 查看当前用户的分组信息
id [用户名]
## 查看指定用户分组信息
$id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
2 查看所有用户信息
当创建一个用户时,系统会操作/etc/passwd 及/etc/shadow 这两个文件
使用cat
命令可以查看 /etc/passwd及 /etc/shadow 文中中的用户信息
passwd 文件
以:作为分隔符,总共7列
用户名:密码占位符:用户UID:组GID:注释信息:用户家目录:登录shell
shadow 文件
以: 作为分隔符,总共9列
用户名:密码,*则表示无密码:最近一次变更密码的时间: 密码最少使用天数,0表示无限制:密码最长使用天数,默认99999不过期:7表示密码到期前,系统会在密码到期前7天提醒变更密码:密码到期后X天,强制提示变更用户密码:账户失效时间:空白
3 用户UID的含义
linux的用户是分级的,有普通用户和管理员用户之分,管理员用户的权限更高,一般用户最后不要使用。
用户UID | 系统中约定的含义 |
---|---|
0 | 超级管理员,最高权限,破坏力极大 |
1~200 | 系统用户,用来运行系统自带的进程,默认已创建 |
201~999 | 系统用户,用来运行系统安装的程序,所以此类用户无需登录系统 |
1000+ | 普通用户,正常可以登录系统的用户,权限比较小,能执行的任务有限 |
4 useradd 创建用户
useradd[新用户名]
#添加用户
useradd的参数
参数名 | 含义 |
---|---|
-u | 指定要创建用户的UID,不允许冲突 |
-g | 指定要创建用户默认组(基本组 主要的组) |
-G | 指定要创建用户附加组,逗号隔开可添加多个附加组 |
-d | 指定要创建用户家目录 |
-s | 指定要创建用户的bash shell /bin/bash #终端登录 /sbin/nologin 无法登录,用于创建系统用户 |
-c | 指定要创建用户注释信息 |
-M | 给创建的用户不创建家目录 |
-r | 创建系统账户,默认无家目录 [200-999] |
groupadd
## 添加新分组
UID GID 在整个系统是唯一的
5 usermod 修改用户
usermod 参数
参数名 | 含义 |
---|---|
-u | 指定要修改用户的UID |
-g | 指定要修改用户基本组 |
-G | 指定要修改用户附加组,使用逗号隔开多个附加组, 覆盖原有的附加组 |
-aG | 追加附加组 |
-d | 指定要修改用户家目录 |
-md | 旧家搬新家 |
-s | 指定要修改用户的bash shell |
-c | 指定要修改用户注释信息 |
-l | 指定要修改用户的登陆名 |
-L | 指定要锁定的用户 |
-U | 指定要解锁的用户 |
6 userdel 删除用户
userdel
##删除用户
参数
-r #删除用户同时删除它的家目录(慎用)
7 passwd更改用户密码
passwd [用户名]
##更改某用户的密码 ,需要root权限
8 su 用于切换用户
需要输入密码