Linux常用基础命令(超全)

文章目录

🌼 ls命令

🌼 cd命令

🌼 pwd命令

🌼 date命令

🌼 创建、删除文件和目录命令

🌼 alias 命令

🌼 echo 命令

🌼 复制、移动、重命名、查看(文件、目录)命令位置命令

🌼 head、tail、less、more 日志查看命令

🌼 find查找、wc统计命令、sort uniq排序去重组合

🌼 vi/vim命令

🌼 压缩与解压缩

🌼 grep sed awk命令以及正则表达式

🌼 防火墙与selinux的关闭及开启和永久生效

🌼 用户、用户组管理


在Linux系统中,以“.”开头的文件和目录都是隐藏的。

在Linux中,“..”表示上一级目录,“.”表示当前目录。

长格式选项:以双短横线(--)引导的单词选项。

短格式选项:以单短横线(-)引导的字母选项。

文件类型及颜色表示:

普通文件:无特殊标记

可执行文件:绿色

压缩文件:红色

目录:蓝色(d)

链接文件:浅蓝色(l)

块设备文件:黄色(b)

字符设备文件:黄色(c)

套接字文件:紫色(s)

管道文件:紫色(p)

路径类型:

  • 绝对路径:从根目录(/)开始的路径。
  • 相对路径:从当前目录开始的路径。


🌼 ls命令

1、ls (list) 列出目录下的内容查

用法:

ls

示例:

ls(列出当前目录的内容)

示例:

ls -la(详细列出包括隐藏文件在内的所有文件和目录)

–help

看帮助信息列表

-a (all)

查看所有内容,包括隐藏文件⭐⭐⭐

-h (–human-readable)

以人类可读方式显示⭐⭐⭐

-l (–long)

以长格式显示文件信息⭐⭐⭐

-d

查看目录本身

-S

由大到小排序

-r

由小到大排序(由旧到新),一般-rt 一起用

-t

按照修改时间排序

也可参考👉linux命令-ll之按时间、大小顺序排列显示👈

查看帮助命令:help man info


🌼 cd命令

用法:

cd 目录名

示例:

cd /home/user/documents(切换到指定目录)
cd        切换目录(后面跟路径“/”)
cd -返回上一个工作目录
cd ..返回上一级目录
cd ~回到家目录


🌼 pwd命令

用法:

pwd

示例:

pwd(显示当前所在的目录路径)
pwd打印工作目录
su -root切换到管理员命令

用法:

su -root

示例:

su -(切换到root用户,需要输入root用户密码)


🌼 date命令

用法:

date

示例:

date(显示当前日期和时间)
date查看系统时间和日期 (+%Y-%m-%d %H:%M:%S)
-d<字符串>显示字符串所指的日期与时间。字符串前后必须加上双引号
-s<字符串>根据字符串来设置日期与时间。字符串前后必须加上双引号
日期格式字符串列表
如果需要以指定的格式显示日期,可以使用“+”开头的字符串指定其格式
更多时间设置参考👉linux时间设置👈

%H 小时(以00-23来表示)
%I 小时(以01-12来表示)
%K 小时(以0-23来表示)
%l 小时(以0-12来表示)
%M 分钟(以00-59来表示)
%P AM或PM
%r时间(含时分秒,小时以12小时AM/PM来表示)
%s 总秒数。起算时间为1970-01-01 00:00:00 UTC
%S 秒(以本地的惯用法来表示)
%T 时间(含时分秒,小时以24小时制来表示)
%X 时间(以本地的惯用法来表示)
%Z 时区
%a 星期的缩写
%A 星期的完整名称
%b 月份英文名的缩写
%B 月份的完整英文名称
%c 日期与时间。只输入date指令也会显示同样的结果
%d 日期(以01-31来表示)
%D 日期(含年月日)
%j 该年中的第几天
%m 月份(以01-12来表示)
%U 该年中的周数
%w 该周的天数,0代表周日,1代表周一,以此类推
%x 日期(以本地的惯用法来表示)
%y 年份(以00-99来表示)
%Y 年份(以四位数来表示)
%n 在显示时,插入新的一行
%t 在显示时,插入tab


此外,常用时间和日期格式的占位符:

MM 月份(必要)
DD 日期(必要)
hh 小时(必要)
mm 分钟(必要)
ss 秒(选择性)


这些格式化符号用于定制和显示时间和日期信息,有助于更精确地管理和展示时间相关数据


🌼 创建、删除文件和目录命令

用法:

touch 文件名

示例:

touch newfile.txt
touch创建文件或者更新文件时间戳
stat查看文件信息(stat后面加文件名)

用法:

mkdir 目录名

示例:

mkdir newdirectory
mkdir创建一个新的目录
-v(详细)为每个创建的目录打印一条消息(在mkdir后面加-v和目录名)
-p(层级)如果存在,就不会创建,如果不存在,就会创建父目录(例如:mkdir -pv dir1/dir2/dir3)

用法:

rm 文件名 或 rm -r 目录名(递归删除目录及其内容)

示例:

rm oldfile.txt

示例:

rm -r olddirectory
rm删除文件
-r递归删除文件及目录(rm -r 目录名)
-f忽略提示,直接强制删除


🌼 alias 命令

用法:

alias 别名='命令'

示例:

alias ll='ls -la'
alias别名(例如:a=”rm -r“好比如rm -r)
alias取消别名(unalias 别名)

设置永久可参考👉Linux设置永久别名alias的方法👈


🌼 echo 命令

用法:

echo [选项] 字符串

示例:

echo "Hello, World!"(在终端输出“Hello, World!”)

echo命令可以与花括号扩展(brace expansion)结合使用,以生成一系列字符串。以下是用法和示例:

        

生成字母序列:

用法:

echo {a..z}

示例:

echo {a..z}(输出从a到z的字母序列)

其他花括号扩展的常见示例:

生成数字序列:

用法:

echo {1..10}

示例:

echo {1..10}(输出从1到10的数字序列)

带步长的序列:

用法:

echo {起始..结束..步长}

示例:

echo {1..10..2}(输出从1到10,每次增加2的数字序列,即1 3 5 7 9)

混合使用文本和序列:

用法:

echo 前缀{序列}后缀

示例:

echo file{1..3}.txt(输出file1.txt file2.txt file3.txt)

这些示例展示了如何使用echo命令与花括号扩展来生成一系列有规律的字符串或数字,有助于批量处理和自动化脚本编写。


🌼 复制、移动、重命名、查看(文件、目录)命令位置命令

移动文件或目录:

用法:

mv 原路径 目标路径

示例:

mv /home/user/file.txt /home/user/documents/

重命名文件:

用法:

mv 原文件名 新文件名

示例:

mv oldname.txt newname.txt
mv移动或重命名
-b覆盖前为目标文件创建备份
-f强制覆盖目标文件而不询问
-i覆盖目标文件前询问用户是否确认
-n不要覆盖已有文件
-u当源文件比目标文件更新时,才执行覆盖操作
-v显示执行过程详细信息
-Z设置文件安全上下文
–help显示帮助信息
–version显示版本信息


复制文件或文件夹:

用法:

cp [选项] 原路径 目标路径

示例:

cp file.txt /home/user/documents/(将file.txt复制到指定目录)
cp复制
-r递归复制目录及其内容
-i在覆盖文件前提示确认
-v显示复制过程中的详细信息
*匹配任意所有
?匹配任意一个字符

查看文件或目录:

用法:

cat [选项] 文件名

示例:

cat file.txt(显示file.txt文件的内容)
cat查看文件内容
-n显示每一行的行号
-b显示非空行的行号
-s压缩空白行
-E在每行结束处显示$

查找命令的位置:

用法:

which 命令

示例:

which wc mkdir sed awk

查询命令及相关文件的位置:

 用法:

whereis 命令

示例:

whereish awk


🌼 head、tail、less、more 日志查看命令

用法:

head [选项] 文件名

示例:

head -n 10 file.txt(显示file.txt文件的前10行)
head显示文件的前几行
-n num指定显示的行数,默认显示头10行

用法:

tail [选项] 文件名

示例:

tail -n 10 file.txt(显示file.txt文件的后10行)
tail显示文件的后几行
-n num指定显示的行数,默认显示最后10行
-f实时显示文件的新增内容,常用于查看日志文件

用法:

less 文件名

示例:

less file.txt(分页浏览file.txt文件内容)
less分页浏览文件内容,支持向前和向后滚动
q退出
空格或f向前滚动一页(下一页)
b向后滚动一页(上一页)
G最后1行
g第1行
99g到第99行
/内容搜索,n继续向下搜索,N继续向上搜索
选项
less -N显示行号

用法:

more 文件名

示例:

more file.txt(分页浏览file.txt文件内容)
more分页浏览文件内容,但只支持向前滚动
q退出
空格向前滚动一页(下一页)
回车向前滚动一行(下一行)


🌼 find查找、wc统计命令、sort uniq排序去重组合

用法:

find 查找范围 [条件]

示例:

find /path/to/search -name "filename"(在指定目录中查找名为 "filename" 的文件)
-name "文件名"按名字查找(例如:find / -name "example.txt"(查找名字是example.txt的文件))
-type 文件类型按文件类型查找(例如:find /var -type d(在 /var 目录中查找所有目录)
-size [+/-]大小按大小查找(例如:find /home -size +10M(在 /home 目录中查找大于 10MB 的文件))
-mtime [+/-]天数按修改时间查找(例如:find /application/log/ -mtime +0 -type d (查找/application/log下一天前的日志,类型为目录))
-atime [+/-]天数按访问时间查找(例如:find /var/log -atime +30(在 /var/log 目录中查找超过30天未访问的文件))
-perm 权限按权限查找(例如:find /etc -perm 644(在 /etc 目录中查找权限为 644 的文件))
-user 用户名按用户查找(例如:find /home -user alice(在 /home 目录中查找所有属于用户 alice 的文件))
-group 组名按用户组查找(例如:find /home -group developers(在 /home 目录中查找所有属于组 developers 的文件))
管道 |将前一个命令的执行结果给后一个命令处理

举例:删除系统中所有名为 a.txt 文件的几种方法,并附有解释:

1.使用命令替换:

命令:

rm -rf $(find / -name "a.txt")

解释:find 命令从根目录 / 开始查找名为 a.txt 的文件,并将其结果传递给 rm -rf 命令进行删除。此方法使用了命令替换 $(...),可能会因为找到的文件路径过多而导致命令长度限制问题。


2.使用-exec选项:

命令:

find / -name "a.txt" -exec rm -rf {} \;

解释:find 命令从根目录 / 开始查找名为 a.txt 的文件,对于找到的每个文件,使用 -exec 选项调用 rm -rf 进行删除。{} 表示每个找到的文件,\; 表示命令结束。


3.使用xargs:

find / -name "a.txt" | xargs rm -rf

解释:find 命令从根目录 / 开始查找名为 a.txt 的文件,并将结果通过管道 | 传递给 xargs,由 xargs 将每个文件传递给 rm -rf 命令进行删除。xargs 可以有效地处理大量文件路径。

举例:删除/application/log/下的一天前的日志并设置为每周一删除,类型为目录:

  • 设置 crontab 任务:

    • 使用 crontab -e 命令打开当前用户的 crontab 编辑器。

    • 添加以下行来设置任务每周一凌晨 0 点执行:

      0 0 * * 1 find /application/log/ -type d -mtime +1 | xargs rm -rf
    • 这行命令的含义是:每周一凌晨 0 点执行 find 命令,查找 /application/log/ 目录下修改时间超过一天的目录并使用 xargs 将这些目录传递给 rm -rf 进行删除。

  • 解释各部分:

    • 0 0 * * 1:表示每周一凌晨 0 点执行任务。
    • find /application/log/ -type d -mtime +1
      • /application/log/:要查找的目录路径。
      • -type d:只查找目录。
      • -mtime +1:查找修改时间超过一天的目录(注意这里应使用 +1 而不是 +0+0 表示的是今天一天前)。
    • | xargs rm -rf:将找到的目录传递给 rm -rf 命令进行删除。

wc:

用法:

wc [选项] 文件名

示例:

wc file.txt(显示file.txt文件中的行数、单词数和字符数)
wc统计文件中的行数、单词数和字符数
-l统计行数
-w统计单词数
-c统计字节数
-m统计字符数

sort:命令用于对文件的行进行排序。

 用法:

sort [选项] 文件名

示例:

  1. 按字典顺序排序:

    sort file.txt
    
  2. 按数值排序:

    sort -n file.txt
    
  3. 按逆序排序:

    sort -r file.txt
    
  4. 按特定字段排序:

    1. 假设文件内容以空格分隔,按第二个字段排序

      sort -k 2 file.txt
      
  5. 按特定字段并指定分隔符排序:

    1. 假设文件内容以逗号分隔,按第三个字段排序

      sort -t ',' -k 3 file.csv
sort排序
-n按数值排序
-r按逆序排序
-k指定排序字段
-t指定字段分隔符
-u去除重复行(与 uniq 类似)

 uniq:命令用于报告或忽略文件中的重复行。通常与 sort 命令一起使用,因为 uniq 只能去除相邻的重复行。

 用法:

uniq [选项] 文件名

示例

  1. 去除重复行:
    sort file.txt | uniq
  2. 统计每行出现的次数:
    sort file.txt | uniq -c
    
  3. 仅显示重复的:
    sort file.txt | uniq -d
  4. 仅显示不重复的行:
    sort file.txt | uniq -u
    
uniq去重
-c去重并显示次数


🌼 vi/vim命令

vi/vim 进入编辑模式

编辑模式:

i:在光标显示的地方直接编辑

        示例:在普通模式下,按 i 进入插入模式,并从当前光标位置开始编辑。


I:在光标显示的行首编辑

        示例:在普通模式下,按 I 进入插入模式,并从当前行的行首开始编辑。


a:在光标显示的后一个位置编辑

示例:在普通模式下,按 a 进入插入模式,并从当前光标位置的下一个字符开始编辑。


A:在光标显示的行尾编辑

        示例:在普通模式下,按 A 进入插入模式,并从当前行的行尾开始编辑。


o:在光标显示的下一行编辑

        示例:在普通模式下,按 o 在当前行的下一行插入新行,并进入插入模式。


O:在光标显示的上一行编辑

        用法:O示例:在普通模式下,按 O 在当前行的上一行插入新行,并进入插入模式。


s:删除光标所在的位置并进行编辑

        示例:在普通模式下,按 s 删除光标所在的字符,并进入插入模式。


S:删除光标所在的行并进行编辑

        示例:在普通模式下,按 S 删除光标所在的整行,并进入插入模式。

编辑模式–>Esc键–>命令模式

命令模式:

跳转:

gg 跳转到文件第一行

G 跳转到文件最后一行

数字  gg 跳转到指定行

home^ 跳转到行首

end$ 跳转到行尾

w 每次跳过一个单词

删除或剪切:

dd 删除光标所在行

D 删除从光标所在位置到行尾

数字  dd 删除从光标所在行开始的指定行数

dG 删除从光标所在行到文件结束位置

xdelete 删除光标所在的字

复制与粘贴:

yy 复制光标所在行

数字  yy 复制从光标所在行开始的指定行数

p 粘贴到光标的下一行

P 粘贴到光标的上一行

其他:

u 撤销上一步操作

ctrl+r 恢复撤销的操作

命令模式 --> :/?-->末行模式 

末行模式:

查找与替换:

/ 查找

n 继续向下搜索

N 继续向上搜索

:s#old#new#g 替换单行(将 old 替换为 new,# 作为分隔符)

:%s/old/new/g 替换整个文件(将 old 替换为 new,/ 作为分隔符,g 表示全局替换)

文件操作:

:w 保存当前文件

:w 文件路径 另存为指定路径

:q 退出编辑器

:wq 保存并退出

:q! 强制退出(不保存)

:w! 强制保存

:wq! 强制保存并退出

:r 文件路径 读取另一个文件并插入到当前光标位置

显示设置:

:set number:set nu 显示行号

:set nonumber:set nonu 取消显示行号

:set nohlsearch 取消高亮搜索结果

可视模式:

选择模式:

ctrl+v 可视块模式

shift+vV 可视行模式

v 可视模式


🌼 压缩与解压缩

gzip与gunzip

压缩和解压缩的概念

压缩级别:gzip 提供 1 到 9 的压缩级别,其中 1 表示最快速但压缩率最低,9 表示最慢速但压缩率最高。默认压缩级别为 6。

        1-9:压缩级别,数值越大,生成的文件越小,但速度越慢。


使用特定压缩级别压缩文件

用法:

gzip -数字 原文件

示例:

gzip -9 file.txt(使用最高压缩率压缩 file.txt,生成 file.txt.gz)

示例:

gzip -1 file.txt(使用最低压缩率压缩 file.txt,生成 file.txt.gz)

gzip:压缩文件

用法:

gzip [选项] 原文件

示例:

gzip file.txt(压缩 file.txt,生成 file.txt.gz)

gunzip:解压缩文件(等同于 gzip  -d

用法:

gunzip [选项] 压缩文件

示例:

gunzip file.txt.gz(解压缩 file.txt.gz,生成 file.txt)

bzip2与bunzip2

bzip2bunzip2 是用于文件压缩和解压缩的命令,类似于 gzipgunzip,但 bzip2 通常提供更高的压缩比,尽管速度较慢

bzip2:压缩文件

用法:

bzip2 [选项] 原文件

示例:

bzip2 file.txt(压缩 file.txt,生成 file.txt.bz2)

bunzip2:解压缩文件

用法:

bunzip2 [选项] 压缩文件

示例:

bunzip2 file.txt.bz2(解压缩 file.txt.bz2,生成 file.txt)

tar压缩与解压缩

tar常用的压缩与解压缩操作

  1. 压缩文件:

    • 用法:tar cvf 归档文件名.tar 要归档的文件/目录
    • 示例:
      tar cvf archive.tar /dir1
    • 解释:将 /dir1 目录归档为 archive.tar,不压缩。
  2. 压缩文件并使用 gzip 压缩:

    • 用法:tar czvf 归档文件名.tar.gz 要归档的文件/目录
    • 示例:
      tar czvf archive.tar.gz /dir1
    • 解释:将 /dir1 目录归档并使用 gzip 压缩为 archive.tar.gz
  3. 压缩文件并使用 bzip2 压缩

    • 用法:tar cjvf 归档文件名.tar.bz2 要归档的文件/目录
    • 示例:
      tar cjvf archive.tar.bz2 /dir1
    • 解释:将 /dir1 目录归档并使用 bzip2 压缩为 archive.tar.bz2
  4. 解压缩文件:

    • 用法:tar xvf 归档文件名.tar
    • 示例:
      tar xvf archive.tar
    • 解释:解压 archive.tar 归档文件。
  5. 解压缩 gzip 压缩的文件:

    • 用法:tar xzvf 归档文件名.tar.gz
    • 示例:
      tar xzvf archive.tar.gz
    • 解释:解压 archive.tar.gz 归档文件。
  6. 解压缩 bzip2 压缩的文件:

    • 用法:tar xjvf 归档文件名.tar.bz2
    • 示例:
      tar xjvf archive.tar.bz2
    • 解释:解压 archive.tar.bz2 归档文件。
tar制作或释放归档文件
-c创建新的归档文件

-x

解压归档文件
-v显示操作过程中的详细信息
-f指定归档文件名
-z使用 gzip 压缩或解压缩
-j使用 bzip2 压缩或解压缩
-t列出归档文件内容
-C指定解压目录

使用 --exclude 排除指定文件模式

用法:

tar -czvf 归档文件名.tar.gz 要归档的目录 --exclude="排除模式"

示例:

tar -czvf bash.tar.gz /dir1 --exclude="*.txt"

此命令将 /dir1 目录压缩为 bash.tar.gz,但排除所有以 .txt 为后缀的文件。

在 Linux 中,file 命令可以用来查看文件的类型,包括检查一个文件是否是压缩包及其具体的压缩类型。以下是 file 命令的用法和示例:

用法:

file 文件

示例:

file archive.tar.gz

输出示例:

archive.tar.gz: gzip compressed data, from Unix, last modified: Fri Jun 18 10:20:18 2021


🌼 grep sed awk命令以及正则表达式

grep:grep 用于在文件中搜索文本并输出匹配的行。

基本用法:

grep [选项] '内容' 文件名

示例:

  1. 搜索包含"hello"的行:

    grep 'hello' file.txt
  2. 忽略大小搜索"hello":

    grep -i 'hello' file.txt
  3. 递归搜索目录中包含"hello"的文件:

    grep -r 'hello' /path/to/directory
  4. 显示行号的同时搜索"hello":

    grep -n 'hello' file.txt
  5. 反向搜索不包含"hello"的行:

    grep -v 'hello' file.txt
grep以行为单位过滤
-i忽略大小写
-r递归搜索目录
-n显示号
-v反向匹配
-c统计过滤的行数
-o只输出过滤的内容
-w以单词为单位进行过滤
-A指定行数,过滤指定内容以及上几行
-B指定行数,过滤指定内容以及下几行
-C指定行数,过滤指定内容以及上下各几行

sed:是一个流编辑器,用于在文件中搜索、替换和处理文本。

基本用法:

sed [选项] ‘[操作地址]sed内置操作’ 文件

 示例:

  1. 将文件中所有"hello"替换为"world":

    sed 's/hello/world/g' file.txt
  2. 直接在文件中替换"hello"为"world":

    sed -i 's/hello/world/g' file.txt
  3. 删除包含"hello"的行:

    sed '/hello/d' file.txt

常用选项

sed流文件处理工具
-i修改文件内容,直接编辑文件
-e允许多个编辑命令,多个sed内置操作可以使用分号隔开
-n只输出处理的行
-r支持扩展正则表达式

操作地址

2代表处理文件的第2行
1,5代表处理文件的第1到5行
1;5代表处理文件的第1行和第5行
1~2代表指定步长为2,处理的是1,3,5…行
2,~2代表处理文件的第2行开始,到2的倍数行结束。(2,~2=2,4 ;4,~4=4,8行)
4,$代表处理文件第4行到最后一行
1,+2代表处理文件的第1行到第1+2行,也就是1到3行

内置操作

p打印
a在指定行后追加数据
i在指定行前插入行前
d删除匹配的行
c替换指定整行
s替换指定字符,默认替换每行第一个字符
g通常与s组合使用,替换全部指定字符
n获取下一行
y字符转换,类似于tr命令(正则不能使用)
r将文件读入指定行后
w将指定行另存为文件
q结束sed操作
n不会清空模式空间内的内容,将下一行追加到模式空间,两行数据以换行符

awk:是一个强大的文本处理工具,用于在文件中搜索、替换和格式化文本。

基本用法:

awk [选项] ‘BEGIN{command}匹配模式{command}END{command}’ 文件

$0文件的整行
$1~$nawk处理的列,以FS为分隔符
NF查看一共有多少列
$NF查看文件的最后一列
NR表示处理的行数(一共有多少行) 外:指定输出第几行
FNR表示处理当前文件的行数
FS输入字段的分隔符,默认空格或制表符
RS输入记录的分隔符,默认是换行
OFS输出字段的分隔符,默认空格
ORS输出行的分隔符,默认换行
FILENAMEawk处理的文件名
PATH文件路径
ARGC命令行参数个数
ARGV命令行参数数组
ENVIRON获取Linux系统中的环境变量

正则表达式:正则表达式是用于文本匹配和处理的强大工具。

基础正则表达式 -->grep可以直接使用

$ 以…结尾
^ 以…开头
. 匹配任意一个字符
- 匹配前一个字符或子表达式任意次(例如:grep "g.d" a.txt(过滤a.txt文件中的以g开头以d结尾可以代表有任意多个字符或没有字符))
[A-Z] [a-z] [0-9] [A-Za-z0-9]
[^a-z] 取反


扩展正则表达式 egrep =grep -E

{n,m} 匹配前一个字符或子表达式n到m次
{n, } 匹配前一个字符或子表达式最少n次
{ ,m} 匹配前一个字符或表达式最少m次
{n} 匹配前一个字符或子表达式n次

+ 匹配前一个字符或子表达式1次以上(*包括0+不包括,至少)
? 匹配前一个字符或子表达式0次或1次以上
| 或
() 分组(例如:(g|f)ood)

\ 转义,取消一个字符的特殊含义


想要查看更多的正则表达式就去👉 正则表达式(全)👈
示例:查找/root这层目录有多少个普通文件?
find ./ -maxdepth 1 -type f ! -name “.*” | wc -l | ll | grep -c “^_”


🌼 防火墙与selinux的关闭及开启和永久生效

查看防火墙详情请看:👉Linux防火墙命令👈 

systemctl status firewalld       查看防火墙状态
systemctl start firewalld        开启防火墙服务
systemctl stop firewalld         关闭防火墙服务
systemctl disable firewalld      禁止防火墙,禁止开机启动
systemctl enable firewalld       开启防火墙,开机自启防火墙
systemctl restart firewalld      重启防火墙

systemctl is-enabled firewalld   查看防火墙是否开机自启动

关闭selinux:
getenforce 查看selinux的状态
setenforce 设置selinux的状态
vi /etc/selinux/config
vi /etc/sysconfig/selinux
SELINUX=disabled

重启系统生效
重启系统的命令:reboot、init 6、shutdown -r


🌼 用户、用户组管理

用户类型及其特性:

超级用户: 

        root

        UID = 0

普通用户:

        Shell: /bin/bash

        UID ≠ 0

程序用户:

        Shell: /sbin/nologin

用户目录模板

在 Linux 系统中,创建用户后,会以目录 /etc/skel/ 为模板复制文件到用户家目录。


重要文件

        /etc/passwd:存放用户信息

        /etc/shadow:存放用户密码

/etc/passwd文件格式

示例条目:root:x:0:0:root:/root:

        第一段: 用户名

        第二段: 密码占位符(x 表示密码存储在 /etc/shadow 中 )

        第三段: 用户 ID (UID)

        第四段: 组 ID (GID)

        第五段: 描述信息

        第六段: 用户家目录

        第七段: 用户登录的 shell

常见 Shell

       /bin/bash:允许用户登录

       /sbin/nologin:禁止用户登录

示例:创建禁止登录的程序用户

要创建一个名为 mysql 的程序用户,并禁止其登录系统,可以使用以下命令:

useradd -s /sbin/nologin mysql

示例解释

     useradd:创建新用户的命令

     -s /sbin/nologin:指定用户的 shell 为 /sbin/nologin,禁止该用户登录

     mysql:用户名

这样,mysql 用户将被创建为一个程序用户,并且无法登录到系统。


用户管理:

新增用户语法

useradd [选项] 用户名

useradd新增用户
-u指定UID
-g指定GID,用户的主要组
-G指定用户的附加
-s指定登录shell,默认是/bin/bash
-M不创建用户家目录
-m创建用户家目录
-d指定用户家目录 默认家目录/home/与用户同名

在创建用户时,默认会从/etc/skel目录下复制内容到用户家目录下

su 用户名 切换用户
su - 用户名 系统环境变化
ctrl+d或exit 退出登录

修改用户信息语法:

usermod [选项] 用户名

usermod修改用户信息
-c修改描述字段
-d修改家目录位置
-g修改GID
-u修改用户的UID
-l修改用户名
-s修改登录的Shell
-L锁定用户
-U解锁

修改或设置用户密码的命令

修改或设置密码

         passwd:修改当前用户的密码

        ​​​​​​​ passwd <username>:修改指定用户的密码

例如,更改 root 用户的密码:

passwd root

不交互设置用户密码

使用 echopasswd --stdin 组合来非交互地设置用户密码。

例如,为用户 test 设置密码 123123:

echo "123123" | passwd --stdin test

锁定和解锁用户密码

 ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ passwd -l <username>:锁定用户密码,使用户无法登录

 ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ passwd -u <username>:解锁用户密码,恢复用户登录权限

例如,锁定用户 test:

passwd -l test

解锁用户 test:

passwd -u test

查看用户密码状态

 ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​  ​​​​​​​passwd -S <username>:查看用户密码状态

例如,查看用户 test 的密码状态:

passwd -S test

删除用户语法:

userdel [选项] 用户名

userdel删除用户
-r删除用户时删除家目录

用户组管理:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值