写点什么

Linux 操作系统——用户管理、实用指令

作者:胖虎不秃头
  • 2022 年 10 月 02 日
    河南
  • 本文字数:6227 字

    阅读完需:约 20 分钟

Linux操作系统——用户管理、实用指令

08 用户管理

8.1 基本介绍



Linux 系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统

8.2 添加用户

8.2.1 基本语法

useradd 用户名

8.2.2 应用案例

案例 1:添加一个用户 milan, 默认该用户的家目录在 /home/milan

8.2.3 细节说明

  1. 当创建用户成功后,会自动的创建和用户同名的家目录

  2. 也可以通过 useradd -d 指定目录 新的用户名,给新创建的用户指定家目录

8.3 指定/修改密码

8.3.1 基本语法

passwd 用户名

8.3.2 应用案例给 milan 指定密码 passwd milan

显示当前用户所在的目录 pwd

8.4 删除用户

8.4.1 基本语法

userdel 用户名

8.4.2 应用案例

  1. 删除用户 milan,但是要保留家目录, userdel milan

  2. 删除用户以及用户主目录, 比如 tom, userdel -r tom

8.4.3 细节说明

建议保留家目录

8.5 查询用户信息指令

8.5.1 基本语法

id 用户名

8.5.2 应用实例

案例:请查询 root 信息

id root

8.5.3 细节说明

当用户不存在时,返回无此用户

8.6 切换用户

8.6.1 介绍

在操作 Linux 中,如果当前用户的权限不够,可以通过 **su - ** 指令,切换到高权限用户 root

8.6.2 基本语法

su - 切换用户名(注意短横线两边都有空格)

8.6.3 应用实例

创建一个用户 jack, ,指定密码,然后切换到 jack

8.6.4 细节说明

  1. 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。

  2. 当需要返回到原来用户时,使用 exit/logout 指令

8.7 查看当前用户/登录用户

8.7.1 基本语法

whoami/ who am I

8.8 用户组

8.8.1 介绍

类似于角色,系统可以对有共性/权限的多个用户进行统一的管理



8.8.2 新增组

指令 : groupadd 组名

8.8.3 删除组

指令(基本语法): groupdel 组名

8.8.4 案例演示

  • 增加用户时直接加上组

  • 指令(基本语法) : useradd –g 用户组 用户名

  • 增加一个用户 zwj, 直接将他指定到 wudang

    groupadd wudang

    useradd -g wudang zwj

8.8.5 修改用户的组

指令(基本语法):usermod –g 用户组 用户名

案例演示

创建一个组 mojiao

把 zwj 放入到 mojiao

指令: usermod -g mojiao zwj

8.9 用户和组相关文件

8.9.1 /etc/passwd 文件

用户(user)的配置文件,记录用户的各种信息



每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录 Shell

root : x : 0 : 0 : root : /root : /bin/bash

8.9.2 /etc/shadow 文件

口令的配置文件

​ 每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

8.9.3 /etc/group 文件

组(group)的配置文件

​ 记录 Linux 包含的组的信息

​ 每行含义:组名:口令:组标识号:组内用户列表

09 实用指令

9.1 指定运行级别

9.1.1 基本介绍

运行级别说明:

0 :关机

1 :单用户【找回丢失密码】

2:多用户状态没有网络服务

3:多用户状态有网络服务

4:系统未使用保留给用户

5:图形界面

6:系统重启

常用运行级别是 3 和 5 ,也可以指定默认运行级别

9.1.2 应用实例

命令:init [0123456] 应用案例: 通过 init 来切换不同的运行级别,比如动 5-3 , 然后关机。

9.1.3 CentOS7 后运行级别说明

在 centos7 以前, /etc/inittab 文件中 .

进行了简化 ,如下:

multi-user.target: analogous to runlevel 3 graphical.target: analogous to runlevel 5 # To view current default target, run: systemctl get-default

# To set a default target, run:

systemctl set-default TARGET.target

9.2 找回 root 密码

如何找回 root 密码

  1. 首先,启动系统,进入开机界面,在界面中按“e”进入编辑界面。如图



  1. 进入编辑界面,使用键盘上的上下键把光标往下移动,找到以““Linux16”开头内容所在的行数”,在行的最后面输入:init=/bin/sh。如图


  1. 接着,输入完成后,直接按快捷键:Ctrl+x 进入单用户模式

  2. 接着,在光标闪烁的位置中输入:mount -o remount,rw /(注意:各个单词间有空格),完成后按键盘的回车键(Enter)。如图



  1. 在新的一行最后面输入:passwd, 完成后按键盘的回车键(Enter)。输入密码然后再次确认密码即可(密码长度最好 8 位以上,但不是必须的), 密码修改成功后,会显示 passwd.....的样式,说明密码修改成功



  1. 接着,在鼠标闪烁的位置中(最后一行中)输入:touch /.autorelabel(注意:touch 与 /后面有一个空格),完成后按键盘的回车键(Enter)

  2. 继续在光标闪烁的位置中,输入:exec /sbin/init(注意:exec 与 /后面有一个空格),完成后按键盘的回车键(Enter),等待系统自动修改密码(这个过程时间可能有点长,耐心等待),完成后,系统会自动重启, 新的密码生效了


9.3 帮助指令

9.3.1 man 获得帮助信息

基本语法:man [命令或配置文件](功能描述:获得帮助信息) 案例:查看 ls 命令的帮助信息 man ls

在 linux 下,隐藏文件是以 .开头 , 选项可以组合使用 比如 ls -al, 比如 ls -al /root

9.3.2 help 指令

基本语法:help 命令 (功能描述:获得 shell 内置命令的帮助信息)

9.3.3 应用实例

案例:查看 cd 命令的帮助信息

9.4 文件目录类

9.4.1 pwd 指令

  • 基本语法:pwd

  • 功能描述:显示当前工作目录的绝对路径

9.4.2 ls 指令

  • 基本语法:ls [选项] [目录或是文件]

  • 常用选项

    -a :显示当前目录所有的文件和目录,包括隐藏的。

    -l :以列表的方式显示信息

  • 应用案例:查看当前目录的所有内容信息

9.4.3 cd 指令

基本语法:cd [参数] (功能描述:切换到指定目录)


理解:绝对路径和相对路径

  • 回到自己的家目录:cd ~ 或者 cd

  • 使用绝对路径切换到 root 目录: cd /root

  • 使用相对路径到/root 目录 :比如在 /home/tom , cd ../../root

  • 表示回到当前目录的上一级目录 :cd ..

  • 回到家目录 :cd ~

9.4.4 mkdir 指令

  • mkdir 指令用于创建目录

    基本语法:mkdir [选项] 要创建的目录

  • 常用选项

    -p :创建多级目录

  • 应用实例

    案例 1:创建一个目录 /home/dog mkdir /home/dog

    案例 2:创建多级目录 /home/animal/tiger mkdir -p /home/animal/tiger

9.4.5 rmdir 指令删除空目录

  • 基本语法

    ​ rmdir [选项] 要删除的空目录

  • 应用实例

    ​ 案例:删除一个目录 /home/dog

  • 使用细节

    ​ rmdir 删除的是空目录,如果目录下有内容时无法删除的。

    ​ 提示:如果需要删除非空目录,需要使用 rm -rf 要删除的目录比如: rm -rf /home/animal

9.4.6 touch 指令

  • touch 指令创建空文件

  • 基本语法

    ​ touch 文件名称

  • 应用实例

    ​ 案例: 在/home 目录下 , 创建一个空文件 hello.txt

9.4.7 cp 指令



cp 指令拷贝文件到指定目录

  • 基本语法

    ​ cp [选项] source dest

  • 常用选项

    ​ -r :递归复制整个文件夹

  • 应用实例

    案例 1: 将 /home/hello.txt 拷贝到 /home/bbb 目录下

    ​ cp hello.txt /home/bbb

    案例 2: 递归复制整个文件夹,举例, 比如将 /home/bbb 整个目录, 拷贝到 /opt

    ​ cp -r /home/bbb /opt

  • 使用细节

    强制覆盖不提示的方法:\cp

    ​ \cp -r /home/bbb /opt

9.4.8 rm 指令

rm 指令移除文件或目录

  • 基本语法

    ​ rm [选项] 要删除的文件或目录

  • 常用选项

    -r :递归删除整个文件夹

    -f : 强制删除不提示

  • 应用实例

    案例 1: 将 /home/hello.txt 删除

    ​ rm /home/hello.txt

    案例 2: 递归删除整个文件夹 /home/bbb

    ​ rm -rf /home/bbb [删除整个文件夹,不提示]

  • 使用细节

    ​ 强制删除不提示的方法:带上 -f 参数即可

9.4.9 mv 指令

mv 移动文件与目录或重命名

  • 基本语法

    mv oldNameFile newNameFile(功能描述:重命名)

    mv /temp/movefile /targetFolder (功能描述:移动文件)

  • 应用实例

    案例 1: 将 /home/cat.txt 文件 重新命名为 pig.txt

    案例 2: 将 /home/pig.txt 文件 移动到 /root 目录下

    案例 3: 移动整个目录 , 比如将 /opt/bbb 移动到 /home 下 mv /opt/bbb /home/

9.4.10 cat 指令

cat 查看文件内容

  • 基本语法

    ​ cat [选项] 要查看的文件

  • 常用选项

    ​ -n :显示行号

  • 应用实例

    ​ 案例 1: /etc/profile 文件内容,并显示行号

  • 使用细节

    cat 只能浏览文件,而不能修改文件

    ​ 为了浏览方便,一般会带上管道命令 | more

    ​ cat -n /etc/profile | more [进行交互]

9.4.11 more 指令

more 指令是一个基于 VI 编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more 指令中内置了若干快捷键(交互的指令),详见操作说明

  • 基本语法



​ more 要查看的文件操作说明,如图

  • 案例: 采用 more 查看文件 /etc/profile

9.4.12 less 指令

​ less 指令用来分屏查看文件内容,它的功能与 more 指令类似,但是比 more 指令更加强大,支持各种显示终端。less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。

  • 基本语法

    ​ less 要查看的文件操作说明



  • 应用实例

    ​ 案例: 采用 less 查看一个大文件文件 /opt/杂文.txt less /opt/杂文.txt

9.4.13 echo 指令

echo 输出内容到控制台

  • 基本语法

    ​ echo [选项] [输出内容]

  • 应用实例

    案例: 使用 echo 指令输出环境变量, 比如输出 PATHPATHPATHHOSTNAME, echo $HOSTNAME

    案例: 使用 echo 指令输出 hello,world!

9.4.14 head 指令

head 用于显示文件的开头部分内容,默认情况下 head 指令显示文件的前 10 行内容

  • 基本语法

    ​ head 文件 (功能描述:查看文件头 10 行内容)

    ​ head -n 5 文件 (功能描述:查看文件头 5 行内容,5 可以是任意行数)

  • 应用实例

    ​ 查看/etc/profile 的前面 5 行代码

    ​ head -n 5 /etc/profile

9.4.15 tail 指令

tail 用于输出文件中尾部的内容,默认情况下 tail 指令显示文件的前 10 行内容。

  • 基本语法

    tail 文件 (功能描述:查看文件尾 10 行内容)

    tail -n 5 文件 (功能描述:查看文件尾 5 行内容,5 可以是任意行数)

    tail -f 文件 (功能描述:实时追踪该文档的所有更新)

  • 应用实例

    案例 1: 查看/etc/profile 最后 5 行的代码

    ​ tail -n 5 /etc/profile

    案例 2: 实时监控 mydate.txt , 看看到文件有变化时,是否看到, 实时的追加 hello,world

    ​ tail -f /home/mydate.txt

9.4.16 > 指令 和 >> 指令

> 输出重定向和 >> 追加

  • 基本语法

    ls -l >文件 (功能描述:列表的内容写入文件 a.txt 中(覆盖写))

    ls -al >>文件 (功能描述:列表的内容追加到文件 aa.txt 的末尾)

    cat 文件 1 > 文件 2 (功能描述:将文件 1 的内容覆盖到文件 2)

    echo "内容">> 文件 (追加)

  • 应用实例

    案例 1: 将 /home 目录下的文件列表 写入到 /home/info.txt 中,

    覆盖写入 ls -l /home > /home/info.txt [如果 info.txt 没有,则会创建]

    案例 2: 将当前日历信息 追加到 /home/mycal 文件中

  • 指令为: cal >> /home/mycal

9.4.17 ln 指令

软链接也称为符号链接,类似于 windows 里的快捷方式,主要存放了链接其他文件的路径

  • 基本语法

    ​ ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)

  • 应用实例

    案例 1: 在/home 目录下创建一个软连接 myroot,连接到 /root 目录

    ​ ln -s /root /home/myroot

    案例 2: 删除软连接 myroot rm /home/myroot

  • 细节说明

    ​ 当我们使用 pwd 指令查看目录时,仍然看到的是软链接所在目录。

9.4.18 history 指令

查看已经执行过历史命令,也可以执行历史指令

  • 基本语法

    ​ history (功能描述:查看已经执行过历史命令)

  • 应用实例

    案例 1: 显示所有的历史命令

    ​ history

    案例 2: 显示最近使用过的 10 个指令。

    ​ history 10

    案例 3:执行历史编号为 5 的指令

    ​ !5

9.5 时间日期类

9.5.1 date 指令-显示当前日期

  • 基本语法

    date (功能描述:显示当前时间)

    date +%Y (功能描述:显示当前年份)

    date +%m(功能描述:显示当前月份)

    date +%d (功能描述:显示当前是哪一天)

    date "+%Y-%m-%d %H:%M:%S"(功能描述:显示年月日时分秒)

  • 应用实例

    案例 1: 显示当前时间信息

    ​ date

    案例 2: 显示当前时间年月日

    ​ date "+%Y-%m-%d"

    案例 3: 显示当前时间年月日时分秒

    ​ date "+%Y-%m-%d %H:%M:%S"

9.5.2 date 指令-设置日期

  • 基本语法

    ​ date -s 字符串时间

  • 应用实例

    案例 1: 设置系统当前时间 , 比如设置成 2020-11-03 20:02:10

    ​ date -s “2020-11-03 20:02:10”

9.5.3 cal 指令

查看日历指令 cal

  • 基本语法

    ​ cal [选项] (功能描述:不加选项,显示本月日历)

  • 应用实例

    案例 1: 显示当前日历 cal

    案例 2: 显示 2020 年日历 : cal 2020

9.6 搜索查找类

9.6.1 find 指令

find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。

  • 基本语法

    find [搜索范围] [选项]

  • 选项说明



  • 应用实例

    案例 1: 按文件名:根据名称查找/home 目录下的 hello.txt 文件

    ​ find /home -name hello.txt

    案例 2:按拥有者:查找/opt 目录下,用户名称为 nobody 的文件

    ​ find /opt -user nobody

    案例 3:查找整个 linux 系统下大于 200M 的文件(+n 大于 -n 小于 n 等于, 单位有 k,M,G)

    ​ find / -size +200M

9.6.2 locate 指令

  • locate 指令可以快速定位文件路径。

  • locate 指令利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给定的文件。

  • Locate 指令无需遍历整个文件系统,查询速度较快。

  • 为了保证查询结果的准确度,管理员必须定期更新 locate 时刻

  • 基本语法

    ​ locate 搜索文件

  • 特别说明

    ​ 由于 locate 指令基于数据库进行查询,所以第一次运行前必须使用 updatedb 指令创建 locate 数据库。

  • 应用实例

    案例 1: 使用 locate 指令快速定位 hello.txt 文件所在目录

    ​ which 指令,可以查看某个指令在哪个目录下,比如 ls 指令在哪个目录

    ​ which ls

9.6.3 grep 指令和 管道符号 |



grep 过滤查找 , 管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。

  • 基本语法

    grep [选项] 查找内容 源文件

  • 常用选项



  • 应用实例

    ​ 案例 1: 请在 hello.txt 文件中,查找 "yes" 所在行,并且显示行号​ 写法 1: cat /home/hello.txt | grep "yes"​ 写法 2: grep -n "yes" /home/hello.txt

9.7 压缩和解压类

9.7.1 gzip/gunzip 指令

gzip 用于压缩文件, gunzip 用于解压的

  • 基本语法

    ​ gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz 文件)

    ​ gunzip 文件.gz (功能描述:解压缩文件命令)

  • 应用实例

    案例 1: gzip 压缩, 将 /home 下的 hello.txt 文件进行压缩

    ​ gzip /home/hello.txt

    案例 2: gunzip 压缩, 将 /home 下的 hello.txt.gz 文件进行解压缩

    ​ gunzip /home/hello.txt.gz

9.7.2 zip/unzip 指令



zip 用于压缩文件, unzip 用于解压的,这个在项目打包发布中很有用的

  • 基本语法

    ​ zip [选项] XXX.zip 将要压缩的内容(功能描述:压缩文件和目录的命令)

    ​ unzip [选项] XXX.zip (功能描述:解压缩文件)

  • zip 常用选项

    -r:递归压缩,即压缩目录

    ü unzip 的常用选项

    -d<目录> :指定解压后文件的存放目录

  • 应用实例

    案例 1: 将 /home 下的 所有文件/文件夹进行压缩成 myhome.zip

    ​ zip -r myhome.zip /home/ [将 home 目录及其包含的文件和子文件夹都压缩]

    案例 2: 将 myhome.zip 解压到 /opt/tmp 目录下

    ​ mkdir /opt/tmp

    ​ unzip -d /opt/tmp /home/myhome.zip

9.7.3 tar 指令

tar 指令 是打包指令,最后打包后的文件是 .tar.gz 的文件。

  • 基本语法

    ​ tar [选项] XXX.tar.gz 打包的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)

  • 选项说明



  • 应用实例

    案例 1: 压缩多个文件,将 /home/pig.txt 和 /home/cat.txt 压缩成 pc.tar.gz

    ​ tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt

    案例 2: 将/home 的文件夹 压缩成 myhome.tar.gz

    ​ tar -zcvf myhome.tar.gz /home/

    案例 3: 将 pc.tar.gz 解压到当前目录

    ​ tar -zxvf pc.tar.gz

    案例 4: 将 myhome.tar.gz 解压到 /opt/tmp2 目录下

    ​ mkdir /opt/tmp2

    ​ tar -zxvf /home/myhome.tar.gz -C /opt/tmp2

作者:胖虎不秃头

链接:https://juejin.cn/post/7135618234404831245

来源:稀土掘金

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

发布于: 刚刚阅读数: 4
用户头像

还未添加个人签名 2022.07.29 加入

还未添加个人简介

评论

发布
暂无评论
Linux操作系统——用户管理、实用指令_Linux_胖虎不秃头_InfoQ写作社区