Linux系统基本知识(2)

5. 用户管理

5.1 基本介绍

画一个示意图,帮助大家理解用户管理的规则。包括:用户,组,home目录。
在这里插入图片描述

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

5.2 操作指令

添加用户
基本语法:useradd [选项] 用户名
添加一个用户 xm. 命令为:useradd xm
如果没有指定xm在哪个组里,则会自动创建一个xm组,并将用户xm放在这个组中。

  1. 当创建用户成功后,会自动的创建和用户同名的家目录
  2. 也可以通过 useradd -d 指定目录 新的用户名,给新创建的用户指定家目录。例如:useradd -d /home/dog xq

给用户指定或者修改密码
基本语法:passwd 用户名
给用户xm添加密码,命令为:passwd xm

删除用户
基本语法:userdel 用户名

  1. 删除用户 xm,但是要保留家目录,命令为:userdel xm
  2. 删除用户 xh 以及用户主目录,命令为:userdel -r xq
    在删除用户时,我们一般不会将家目录删除。

查询用户信息
基本语法:id 用户名
返回的信息包括:用户id号,所在组的id号,组名
例如查询用户root的信息,命令为:id root

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

切换用户
在操作 Linux 中,如果当前用户的权限不够,可以通过 su - 指令,切换到高权限用户,比如 root
基本语法:su – 切换用户名
从用户root切换到用户xm,命令为:su - xm
1)从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
2)当需要返回到原来用户时,使用 exit 指令

用户组
通过用户组,系统可以对有共性的多个用户进行统一的管理。
基本语法:
增加组:groupadd 组 名 例如groupadd dog
删除组:groupdel 组名 例如 groupdel dog
增加用户时直接加上组 :useradd -g 用户组 用户名 例如 useradd -g dog xq
修改用户的组:usermod -g 用户组 用户名 例如usermod -g cat xq

**用户和组的相关文件
(1)/etc/passwd 文件:存放用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录 Shell
使用命令 vim /etc/passwd 进行查看
在这里插入图片描述
(2)/etc/shadow 文件:口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

(3)/etc/group 文件:组(group)的配置文件,记录 Linux 包含的组的信息每行含义:组名:口令:组标识号:组内用户列表
在这里插入图片描述

6 实用指令

6.1 指定运行级别

运行级别说明:
0 :关机
1 :单用户【找回丢失密码】
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
通过使用 vim /etc/inittab 查看当前运行级别。常用运行级别是 3 和 5 ,要修改默认的运行级别可改文件 /etc/inittab 的 id:5:initdefault:这一行中的数字

切换到指定运行级别的指令
基本语法 init [012356]
案例 1: 通过 init 来切换不同的运行级别,比如动 5->3 , 然后关机
命令:init 3->init 5->init 0

如何找回 root 密码,如果我们不小心,忘记 root 密码,怎么找回。
思路: 进入到 单用户模式,然后修改 root 密码。因为进入单用户模式,root 不需要密码就可以登录。
具体操作:开机时按e键,不直接进入系统,进入选择系统界面,然后按e键,接着将光标移至第二行,在输入一个e,进入下一步,输入“空格”,在输入1,表示要进入单用户模式。然后输入enter,退回到上一个界面,输入b,就进入到了单用户级别。再用passwd修改密码。

开机->在引导时输入 e键-> 看到一个界面输入 e -> 看到一个新的界面,选中第二行(编辑内核)在输入 e-> 在这行最后输入 1 ,再输入 回车键->再次输入 b ,这时就会进入到单用户模式。这时,我们就进入到单用户模式,使用 passwd 指令来修改 root 密码。

注意,通过这种方式修改密码,不能使用远程控制,必须进入机房操作。

设置我们的 运行级别,linux 运行后,直接进入到 命令行界面,即进入到 3 运行级别
通过 vim /etc/inittab 将里面的 id:5:initdefault: 这一行中的数字5 这个改成对应的运行级别3即可.

6.2 帮助指令

当我们对某个指令不熟悉时,我们可以使用 Linux 提供的帮助指令来了解这个指令的使用方法。
man 获得帮助信息
基本语法:man [命令或配置文件](功能描述:获得帮助信息)
案例:查看 ls 命令的帮助信息 man ls

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

6.3 文件目录类

pwd 指令
基本语法:pwd (功能描述:显示当前工作目录的绝对路径)
案例:显示当前工作目录的绝对路径,直接输入pwd

ls 指令
基本语法:ls [选项][目录或是文件]
常用选项:
-a :显示当前目录所有的文件和目录,包括隐藏的。
-l :以列表的方式显示信息。
案例:查看当前目录的所有内容信息,输入ls -l

cd指令
基本语法:cd [参数] (功能描述:切换到指定目录)
常用参数:
1)绝对路径和相对路径
当前工作目录是/root,我们希望进入到/home下,绝对路径:/home 即从根目录开始定位,相当于是直接找;相对路径:. ./home 从当前工作目录开始定位到需要的目录去,先使用. .回到上一级目录。
2)cd ~ 或者 cd :回到自己的家目录
3)cd … : 回到当前目录的上一级目录(注意cd 和 …之间有空格)
案例 1:使用绝对路径切换到 root 目录 cd /root ; 使用相对路径到 root 目录,这里我们需要直到该用户目录在那个目录下,才能写出这个指令, cd …/…/root ;

mkdir 指令:创建目录(make directory)
基本语法 :mkdir [选项] 要创建的目录
常用选项:
-p :创建多级目录
案例 1:创建一个目录 /home/dog,使用mkdir /home/dog ,表示在/home目录下,创建dog目录;
案例 2:创建多级目录 /home/animal/tiger,使用mkdir -p /home/animal/tiger

rmdir 指令:删除空目录
基本语法:rmdir [选项] 要删除的空目录
案例:删除一个目录 /home/dog,使用rmdir /home/dog
注意:rmdir 删除的是空目录,如果目录下有内容时无法删除的。如果需要删除非空目录,需要使用 rm -rf 要删除的目录,例如 rm -rf /home/dog

touch 指令:创建空文件
基本语法:touch 文件名称
案例 : 创建一个空文件 hello.txt,使用touch hello.txt,会在当前目录中创建该文件

cp 指令:拷贝文件到指定目录
基本语法:cp [选项] source dest
常用选项:
-r :递归复制整个文件夹
案例 1: 将 /home/aaa.txt 拷贝到 /home/bbb 目录下[拷贝单个文件],现在在home目录,使用cp aaa.txt bbb/,表示将当前目录的aaa.txt文件拷贝到当前目录的bbb这个目录下,这里使用的是相对路径。
案例 2: 递归复制整个文件夹,举例将/home/test 整个目录拷贝到 /home/zwj 目录,现在在home目录,使用cp -r test/ zwj/,便将test文件夹复制到了zwj中。当发现目标目录下有相同文件,会提示你是否覆盖,如果想要强制覆盖原来的文件,使用 \cp -r test/ zwj/,这样就不会提示。
一定要注意当前的目录位置。

rm 指令:删除文件或目录
基本语法:rm [选项] 要删除的文件或目录
常用选项
-r :递归删除整个文件夹
-f : 强制删除不提示
案例 1: 将 /home/aaa.txt 删除,使用rm aaa.txt,也可以使用绝对路径,rm /home/aaa.txt
案例 2: 递归删除整个文件夹 /home/bbb,使用 rm -rf bbb/ (这里使用强制删除,否则会让一个一个进行确认)

mv 指令:移动文件与目录或重命名
基本语法:
mv oldNameFile newNameFile (功能描述:重命名)
mv /temp/movefile /targetFolder (功能描述:移动文件)
案例 1:将 /home/aaa.txt 文件 重新命名为 pig.txt,使用mv aaa.txt pig.txt
案例 2:将 /home/pig.txt 文件移动到 /root 目录下,使用 mv pig.txt /root/ (后面的目录使用绝对路径)

cat 指令:查看文件内容,是以只读的方式打开
基本语法:cat [选项] 要查看的文件
常用选项 -n :显示行号
案例 1: /etc/profile 文件内容,并显示行号,使用 cat -n /etc/profile | more
注意:cat 只能浏览文件,而不能修改文件,为了浏览方便,一般会带上管道命令 | more , 即使用cat 文件名 | more,这样可以进行分页浏览

more 指令:是一个基于 VI 编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more 指令中内置了若干快捷键,详见操作说明
基本语法:more 要查看的文件
案例: 采用 more 查看文件 /etc/profile,使用more /etc/profile
快捷键:
在这里插入图片描述
less 指令
less 指令用来分屏查看文件内容,它的功能与 more 指令类似,但是比 more 指令更加强大,支持各种显示终端。less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
基本语法:less 要查看的文件
案例: 采用 less 查看一个大文件文件 /opt/金庸-射雕英雄传 txt 精校版.txt,先到opt目录下,然后使用less 金庸-射雕英雄传 txt 精校版.txt
在这里插入图片描述
> 指令 和 >> 指令
> 输出重定向 : 会将原来的文件的内容覆盖
>> 追加: 不会覆盖原来文件的内容,而是追加到文件的尾部
基本语法

  1. ls -l >文件(功能描述:列表的内容写入文件 a.txt 中(覆盖写))例如:ls -l > a.txt , 将 ls -l 的显示的内容覆盖写入到 a.txt 文件,如果该文件不存在,就创建该文件。
  2. ls -l >>文件 (功能描述:列表的内容追加到文件 aa.txt 的末尾),例如 ls -l >> b.txt
  3. cat 文件 1 > 文件 2 (功能描述:将文件 1 的内容覆盖到文件 2),例如 cat /etc/profile > c.txt
  4. echo “内容” >> 文件,例如 echo “hello world” >> hello.txt
    案例 1: 将 /home 目录下的文件列表写入到 /home/info.txt 中,使用ls -l /home/ > /home/info.txt
    案例 2: 将当前日历信息追加到 /home/mycal 文件中,使用cal >> /home/mycal

echo 指令:输出内容到控制台。
基本语法:echo [选项] [输出内容]
案例: 使用 echo 指令输出环境变量,输出当前的环境路径。使用 echo $PATH
案例: 使用 echo 指令输出 hello,world! ,使用 echo “hello, world!”

head 指令
head 用于显示文件的开头部分内容,默认情况下 head 指令显示文件的前 10 行内容
基本语法
head 文件 (功能描述:查看文件头 10 行内容)
head -n 5 文件 (功能描述:查看文件头 5 行内容,5 可以是任意行数)
案例: 查看/etc/profile 的前面 5 行代码,使用 head -n 5 /etc/profile

tail 指令
tail 用于输出文件中尾部的内容,默认情况下 tail 指令显示文件的后 10 行内容。
基本语法
1)tail 文件 (查看文件后10行内容)
2)tail -n 5 文件 (查看文件后5行内容,5可以是任意数字),例如 tail -n 5 /etc/profile
3)tail -f 文件 (实时追踪该文档的所有更新,工作中经常使用,使用Ctrl + c 退出)
案例 : 实时监控 mydate.txt , 看看到文件有变化时,是否看到, 实时的追加日期,使用 tail -f mydate.txt,即可实时的监控mydate.txt有没有变化,如果有变化,就会看到。

ln 指令
软链接也叫符号链接,类似于 windows 里的快捷方式,主要存放了链接其他文件的路径
基本语法
ln -s [原文件或目录]\ [软链接名] (功能描述:给原文件创建一个软链接)
案例 1: 在/home 目录下创建一个软连接 linkToRoot,连接到 /root 目录,使用 ln -s /root linkToRoot。cd linkToRoot/ 就相当于 cd /root,但当我们使用 pwd 指令查看目录时,仍然看到的是软链接所在目录。
案例 2: 删除软连接 linkToRoot,使用 rm -rf linkToRoot。在删除软链接文件时,不要带/,否则提示资源忙。

history 指令
查看已经执行过历史命令,也可以执行历史指令
基本语法
history (功能描述:查看已经执行过历史命令)
案例 1: 显示所有的历史命令,使用 history
案例 2: 显示最近使用过的 10 个指令,使用 history 10
案例3:执行编号为178的指令,使用 !178

6.4 时间日期类

date 指令
用途一:显示当前日期
基本语法

  1. date (功能描述:显示当前时间)
    2)date + %Y 显示当前年份
    3)date + %m 显示当前月份
    4)date + %d 显示当前是哪一天
  2. date “+%Y-%m-%d %H:%M:%S”(功能描述:显示年月日时分秒)
    案例 1: 显示当前时间信息,使用date
    案例 2: 显示当前时间年月日,使用 date “+%Y-%m-%d”
    案例 3: 显示当前时间年月日时分秒,使用 date “+%Y-%m-%d %H:%M:%S”

用途二:设置日期
基本语法:date -s 字符串时间
案例 1: 设置系统当前时间 , 比如设置成 2018-10-10 11:22:22,使用 date -s “2018-10-10 11:22:22”

cal指令:查看日历
基本语法: cal [选项] (功能描述:不加选项,显示本月日历)
案例 1: 显示当前日历,使用 cal
案例 2:显示2021年的日历,使用 cal 2021

6.5 搜索查找类

find 指令
find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。
基本语法:find [搜索范围] [选项]
选项说明
在这里插入图片描述
案例 1: 按文件名:根据名称查找 /home 目录下的 hello.txt 文件,使用 find /home -name hello.txt
案例 2:按拥有者:查找/opt 目录下,用户名称为 nobody 的文件,使用 find /opt -user nobody
案例 3:查找整个 linux 系统下大于 20m 的文件(+n 大于, -n 小于, n 等于),使用 find / -size +20M
案例4:查询 / 目录下,所有 .txt 的文件,使用 find / -name *.txt

locaate 指令
可以快速定位文件路径。locate 指令利用事先建立的系统中所有文件名称及路径的locate 数据库实现快速定位给定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻。
基本语法:locate 搜索文件
特别说明:由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库。
案例 1: 请使用 locate 指令快速定位 hello.txt 文件所在目录,使用 locate hello.txt

grep 指令和 管道符号 |
grep 过滤查找 , 管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。
基本语法:grep [选项] 查找内容 源文件
常用选项
在这里插入图片描述
案例 1: 请在 hello.txt 文件中,查找 “yes” 所在行,并且显示行号,使用 cat hello.txt | grep -n yes

6.6 压缩和解压类

gzip/gunzip 指令
gzip 用于压缩文件, gunzip 用于解压的
基本语法
gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz 文件)
gunzip 文件.gz (功能描述:解压缩文件命令)
注意:当我们使用 gzip 对文件进行压缩后,不会保留原来的文件。
案例 1: gzip 压缩, 将 /home 下的 hello.txt 文件进行压缩,使用命令 gzip hello.txt
案例 2: gunzip 压缩, 将 /home 下的 hello.txt.gz 文件进行解压缩,使用命令 gunzip hello.txt.gz

zip/unzip 指令
zip 用于压缩文件, unzip 用于解压的,这个在项目打包发布中很有用的
基本语法
zip [选项] XXX.zip 将要压缩的内容(功能描述:压缩文件和目录的命令)
unzip [选项] XXX.zip (功能描述:解压缩文件)
zip 常用选项 -r:递归压缩,即压缩目录
unzip 的常用选项 -d<目录> :指定解压后文件的存放目录
案例 1: 将 /home 下的所有文件进行压缩成 mypackage.zip,使用 zip -r mypackage.zip /home/
案例 2: 将 mypackge.zip 解压到 /opt/tmp 目录下,使用unzip -d /opt/tmp/ mypackage.zip

tar 指令
tar 指令是打包指令,最后打包后的文件是 .tar.gz 的文件。
基本语法
tar [选项] XXX.tar.gz 打包的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)
选项说明
在这里插入图片描述
案例 1: 压缩多个文件,将 /home/a1.txt 和 /home/a2.txt 压缩成 a.tar.gz,使用 tar -zcfv a.tar.gz a1.txt a2.txt
案例 2: 将/home 的文件夹 压缩成 myhome.tar.gz,使用 tar -zcvf myhome.tar.gz /home/
案例 3: 将 a.tar.gz 解压到当前目录,使用 tar -zxvf a.tar.gz
案 例 4: 将 myhome.tar.gz 解压到 /opt/ 目录下,使用 tar -zxvf myhome.tar.gz -C /opt/,注意指定解压到的那个目录,事先要存在才能成功,否则会报错。

猜你喜欢

转载自blog.csdn.net/qq_42820853/article/details/113175659
今日推荐