Linux

Linux

前言

  • 服务器:一个用于独立运行项目的电脑

  • 操作系统:windows、linux、ios、安卓、鸿蒙


  • linux:基于命令的操作系统,权限控制系统非常严格

  • windows:基于图形页面的操作(支持命令行操作CMD)


  • 开源

image-20230708103000584

  • / --> 根目录

  • root --> 超级用户

  • Linux(centos)操作系统会默认设置一个超级管理员,这个超级管理员用户名叫root,它拥有操作系统完全的权限

Linux命令格式

  • 【命令关键字】【参数 自定义内容】【参数 自定义内容】...

  • 【命令关键字】 --help 查看这个命令的帮助信息

  • man 【命令关键字】 查看一个命令文档级的帮助信息(q 退出

  • ls 查看当前目录下所有文件与文件夹

  • ls -l (ll) 查看当前目录下所有文件与文件夹的详细信息

    • 查询结果的第一个字符用于标识文件类型

    • 文件

    • d 文件夹

    • l 快捷方式

基础命令

  • cd 目录切换命令
  • cd .. 返回上层目录
  • pwd 查看当前所在目录
  • clear 清除当前屏幕上的输出(快捷键:ctrl + l
  • exit 退出登录
  • history 查看历史操作记录
  • init 0 快速关机

用户和组的配置文件:

  • /etc/passwd 用户密码及其相关属性
  • /etc/group 组及其相关属性
  • /etc/shadow 组密码及其相关属性

1. 组管理篇

1.groupadd(组添加)

groupadd --help     #查看帮助文档

image-20230708135942396

groupadd -g GID name    #指明GID普通组
groupadd -g 1001 enndfp #创建普通用户组enndfp

image-20230708141152009

cat /etc/group  #打开组文件

image-20230708140526032

groupadd -r 组名  #创建系统组
groupadd -r sysgroup    #创建系统组sysgroup

image-20230708141037982

cat /etc/group  #打开组文件

image-20230708141317417

2.groupmod(组修改)

groupmod --help     #查看帮助文档

image-20230708141537586

groupmod -g newgid groupname    #将groupname组的id改为newgid
groupmod -g 8888 enndfp     #将enndfp组的id改为8888

image-20230708142018627

cat /etc/group  #打开组文件

image-20230708141854808

groupmod -n newName oldName  #将oldName改为newName
groupmod -n newEnndfp enndfp #将enndfp改为newEnndfp

image-20230708142351838

cat /etc/group  #打开组文件

image-20230708142427798

3.groupdel(组删除)

groupdel --help     #查看帮助文档

image-20230708142942047

groupdel 组名     #删除组
groupdel newEnndfp      #删除newEnndfp组

image-20230708142800617

cat /etc/group  #打开组文件

image-20230708142828664

4.groupmems(更改和查看组成员)

groupmems --help        #查看帮助文档

image-20230708230308919

groupmems -g groupname -a username  #将username用户添加到groupname组中
groupmems -g enndfp -a enndfp       #将enndfp用户添加到enndfp组中

image-20230708230632893

groupmems -g groupname -d username  #将username用户从groupname组中删除
groupmems -g enndfp -d enndfp       #将enndfp用户从enndfp组中删除

image-20230708230801594

2. 用户管理篇

1.useradd(用户创建)

useradd --help      #查看帮助文档

image-20230708143804543

useradd 用户名     #创建一个默认用户
useradd enndfp    #创建一个enndfp用户

image-20230708144431029


注:默认创建一个与用户名同名的组

cat /etc/group  #打开组文件

image-20230708144541467


注:默认在home目录下创建一个同名的用户名文件夹

cd /home    #切换到home目录
ls          #查看目录信息

image-20230708144902471


useradd -g groupname username #创建一个username用户并添加到groupname组中
useradd -g enndfp enndfpUser  #创建一个enndfpUser用户并添加到enndfp组中

useradd -G groupname username #创建一个username用户并添加到groupname附加组中
useradd -G sysgroup enndfpUser2  #创建一个enndfpUser2用户并添加到sysgroup附加组中

注:它会同时拥有enndfouser2和sysgroup两个组的权限

image-20230708223347632


id 用户名      #查看用户

2.usermod(用户修改)

usermod --help      #查看帮助文档

image-20230708223609422

usermod -u newUID username      #将username用户UID改为newUID
usermod -u 8888 enndfp      #将enndfp用户的UID改为8888

image-20230708224243530

3.userdel(用户删除)

userdel --help      #查看帮助文档

image-20230708224530022

userdel username        #删除username用户
userdel enndfpUser2     #删除enndfpUser2用户

注:如果不带任何参数,此用户的归属组文件&文件夹会遗留

image-20230708224843625

userdel -r username     #删除username用户以及根目录
userdel -r enndfpUser   #删除enndfpUser用户以及根目录

image-20230708225131051

3. 密码管理篇

每一个新用户密码是锁定的,先进行解锁才可以登录

1.passwd(密码)

  • 如果执行的用户是root ,就可以对其他用户进行密码修改、删除、过期等操作
  • 如果执行的用户是普通用户,只能对自己进行密码修改
  • Linux 中密码规则(Root 无视):
    • 长度要8位以上
    • 包含数字、字母、特殊字符
    • 当前设置的密码与上一次密码不能有2位以上的字符重复
passwd --help       #查看帮助文档

image-20230709112733868

passwd -d username      #删除username用户的密码
passwd -d enndfp        #删除enndfp用户的密码

image-20230709112949400

passwd username     #修改username用户的密码
passwd enndfp       #修改enndfp用户的密码

image-20230709130506114

passwd -l lock username     #锁定username用户,永远提示密码不正确(仅root使用)
passwd -u username          #解锁username用户

2.su(切换用户登录)

su --help       #查看帮助文档

image-20230709124533047

注:如果是root用户使用su命令去切换成其它用户,不需要输入用户密码。其它用户使用su命令切换需要输入密码

su username     #非登录式切换,不会读取用户的配置文件,不改变当前的工作目录
su enndfp       #以非登录式切换到enndfp用户

image-20230709125000800

su - username   #登录式切换,会读取用户配置文件,完全切换
su - enndfp     #以登录式切换到enndfp用户

image-20230709125422731

4. 文件操作篇

Linux文件结构

image-20230709131226658

  • /bin : 存放供所有用户使用的基本命令的二进制可执行文件,不可关联到独立分区

  • /boot :引导分区,引导文件、内核文件存放目录

  • /dev : 设备文件存放位置

  • /etc: 配置文件

  • /home : 普通用户主目录存放位置

  • /lib : 启动时程序依赖的基本共享库文件

  • /lib64 :在x86_64系统上的辅助共享文件库存放位置

  • /media :便携式移动设备挂载点

  • /mnt : 临时文件系统挂载点

  • /opt : 第三方应用程序安装位置

  • /proc : 存放内存中的正在运行中的进程

  • /root : 管理员的目录

  • /run:一个临时存储和运行时数据的位置

  • /sbin : 存放管理类的基本命令的二进制可执行文件,不可关联到独立分区

  • /srv : 系统运行服务用到的数据

  • /sys :存放和硬件相关的(内存)内容

  • /tmp : 临时文件存储

  • /usr:包含许多用户相关的应用程序和文件

  • /var : 一般存放经常修改的文件,例如日志

1.mkdir(文件夹创建)

mkdir --help        #查看帮助文档

image-20230709132906526

mkdir [选项] 目录   #格式
mkdir test      #创建一个空白文件夹test

image-20230709133351922

mkdir -p 目录     #连续创建多层目录(若文件夹已存在则忽略)
mkdir -p a/b/c   #在当前目录下创建空白文件夹a/b/c

image-20230709133650318

  • a/b/c 表示在当前目录创建空白文件夹a/b/c

  • /a/b/c 表示在根目录创建空白文件夹a/b/c

2.touch(文件创建)

touch --help        #查看帮助文档

image-20230709134226516

touch filename      #创建文件
touch test.txt      #创建test文件

image-20230709134545719

stat filename       #查看文件状态
stat test.txt       #查看test.txt文件状态

image-20230709134727372

3.mv(修改)

mv --help       #查看帮助文档

image-20230709135050978

mv oldFileName newFileName      #修改文件名称
mv test.txt test2.txt   #将test.txt文件名改为test2.txt

image-20230709135507683

mv filename directory       #移动文件
mv test2.txt test       #将test2.txt文件移动到test目录下

image-20230709135840255

4.rm(删除)

删除文件前先做备份,rm -rf 在不确定情况下少用(rm -rf / 同删库概念一样)

rm --help       #查看帮助文档

image-20230709141210675

rm -i [filename | directory]    #交互式删除
rm -i test.txt      #交互式删除test.txt

image-20230709141925866

rm -r directory #递归删除
rm -r a     #递归删除a文件夹

image-20230709142101904

rm -f filename      #强制删除
rm -f test.txt      #强制删除test.txt文件

image-20230709142427220

rm -rf [filename | directory]   #强制无信息提示删除,慎用!!!

5. 文件编辑篇

image-20230713141852791

Vim 是一个强大的文本编辑器,它有三种基本的模式:命令模式(Command mode)、输入模式(Insert mode)和底线模式(Last line mode)。

1.命令模式(Command mode):

  • 进入命令模式:打开 Vim 后,默认就是命令模式,可以按 Esc 键进入命令模式。
  • 常用操作:
    • 搜索文本:
    • 命令:/<要搜索的文本>
    • 作用:在文件中向前搜索指定的文本。
    • 示例:
      • /hello:搜索下一个出现的 "hello"。
      • /hello\c:以不区分大小写的方式搜索 "hello"。
      • /hello\c\|world:搜索 "hello" 或 "world"。
    • 光标移动:
    • 命令:使用光标键或其他移动命令。
    • 作用:在文件中移动光标。
    • 示例:
      • h:向左移动一个字符。
      • j:向下移动一行。
      • k:向上移动一行。
      • l:向右移动一个字符。
      • 0:移到行的开头。
      • $:移到行的末尾。
      • gg:移到文件的开头。
      • G:移到文件的末尾。
      • 50G:移到文件的第 50 行。
    • 复制、剪切和粘贴:
    • 命令:使用 y(复制)、d(剪切)和 p(粘贴)命令,可以结合移动命令一起使用。
    • 作用:复制、剪切和粘贴文本。
    • 示例:
      • yy:复制当前行。
      • 2yy:复制当前行及其下一行。
      • dd:剪切当前行。
      • 2dd:剪切当前行及其下一行。
      • p:在光标所在行的下方粘贴文本。
      • P:在光标所在行的上方粘贴文本。
    • 撤销和重做:
    • 命令:u(撤销)和 Ctrl + r(重做)。
    • 作用:撤销最近的操作或重做之前的操作。
    • 示例:
      • u:撤销最近的操作。
      • Ctrl + r:重做之前的操作。
    • 显示行号:
    • 命令::set number(显示行号)和 :set nonumber(隐藏行号)。
    • 作用:控制是否显示行号。
    • 示例:
      • :set number:显示行号。
      • :set nonumber:隐藏行号。

2.插入模式(Insert mode):

  • 进入插入模式:在命令模式下按 i 进入插入模式。
  • 常用操作:
    • 插入文本:在插入模式下直接输入文本即可。
    • 删除字符:使用 Backspace 或 Delete 键删除字符。
    • 复制、剪切和粘贴:使用常用的复制、剪切和粘贴快捷键(如 Ctrl + C、Ctrl + X 和 Ctrl + V)。

3.底线模式(Last line mode):

  • 进入底线模式:在命令模式下按 shift+:进入底线模式。
  • 常用操作:
    • 保存文件:按 Shift + : 进入底部命令行模式,然后输入 w 保存。
    • 退出 Vim:按 Shift + : 进入底部命令行模式,然后输入 q 退出。
    • 强制退出 Vim:按 Shift + : 进入底部命令行模式,然后输入 q! 强制退出。
    • 打开文件:按 Shift + : 进入底部命令行模式,然后输入 e <文件路径> 打开指定文件。

6. 文件查看篇

1.cat(从头打印文本内容)

cat --help      #查看帮助文档

image-20230713143957008

cat /etc/group

image-20230713144313074

2.tac(从尾打印文本内容)

tac --help      #查看帮助文档

image-20230713144156379

tac /etc/group

image-20230713144350236

3.nl(显示时,输出行号)

nl --help       #查看帮助文档

image-20230713144521995

nl /etc/group

image-20230713144612274

4.more(一页一页的显示文件内容)

more --help     #查看帮助文档

image-20230713144740269

more /etc/group         #回车翻页

image-20230713144824891

5.less(与more类似,可向前翻页)

less --help     #查看帮助文档

image-20230713145127827

注:按Q退出

6.head(只看前10行)

head --help     #查看帮助文档

image-20230713145331680

head /etc/group

image-20230713145738797

7.tail(只看尾部十行)

tail --help     #查看帮助文档

image-20230713145849359

tail /etc/group

image-20230713145921616

8.ln(创建快捷方式)

ln --help       #查看帮助文档

image-20230713150138651

ln 源文件 快捷方式         #创建硬连接快捷方式
ln -s 源文件 快捷方式      #创建软连接快捷方式(符号指向连接快捷方式)
  • 硬连接相当于将源文件的所有属性都克隆了一份,就算删除源文件,硬连接文件不会受到影响

  • 软连接相当于创建一个符号快捷方式,如果源文件被删除了,则软连接就失效了。

7. 文件权限篇

在Linux系统中,文件的权限共分为四部分,用一个9位的二进制数表示,每三位一组,最大权限为rwx(读、写、执行),最小权限为---。这里我们将文件权限分为以下四部分:

image-20230721193815622

1. 文件属性

文件属性是文件权限的第一部分,用于描述文件的类型。常见的文件属性包括:

  • -: 普通文件
  • d: 目录文件
  • l: 链接文件
  • b: 设备文件(块设备)
  • c: 字符设备文件
  • p: 管道文件

2. 文件所有者权限

文件所有者权限是文件权限的第二部分,用三位二进制数表示。常见权限包括:

  • r: 可读取文件内容
  • w: 可修改文件内容
  • x: 可执行文件(将其运行为进程)

3. 文件所属组权限

所属组权限是文件权限的第三部分,也用三位二进制数表示。常见权限包括:

  • r: 可读取文件内容
  • w: 可修改文件内容
  • x: 可执行文件(将其运行为进程)

4. 其他用户权限

其他用户权限是文件权限的第四部分,同样用三位二进制数表示。常见权限包括:

  • r: 可读取文件内容
  • w: 可修改文件内容
  • x: 可执行文件(将其运行为进程)

权限组合与对应的二进制数与十进制数

根据不同权限的组合,可以得到不同的二进制数和对应的十进制数。以下是一些常见的权限组合及其对应的二进制数和十进制数:

  • ---: 000 (0)
  • --x: 001 (1)
  • -w-: 010 (2)
  • -wx: 011 (3)
  • r--: 100 (4)
  • r-x: 101 (5)
  • rw-: 110 (6)
  • rwx: 111 (7)

例如:

  • 123(二进制:--x -w- -wx):所属用户可以执行,用户组可写,其他用户可写与执行。
  • 456(二进制:r-- r-x rw-):所属用户只读,用户组读与执行,其他用户读与写。
  • 777(二进制:rwx rwx rwx):所有用户都具有读、写和执行的权限。

图片示例

image-20230721193201005

5.chmod(修改权限)

chmod --help        #查看帮助文档

image-20230721194129054

chmod 权限 文件     #给文件赋予权限
chmod 777 text.txt      #给text.txt文件赋予读、写和执行权限

image-20230721194449293

8. 拓展篇

1.who(显示当前系统中正在登录的使用者信息)

who --help      #查看帮助文档
#用于显示当前系统中正在登录的使用者信息,包括用户ID、终端机、登录来源、登录时间、空闲时间、CPU使用情况等。

image-20230721195112484

常用参数:

  • -h: 不显示标题行。
  • -u: 不显示使用者的动作/工作信息。
  • -s: 使用简短的格式显示信息。
  • -f: 不显示使用者的上线位置。
  • -V: 显示who命令的版本信息。

image-20230721195451286

2.find(在指定路径下根据给定的表达式查找文件或目录)

find --help     #查看帮助文档

image-20230721195644717

常用参数:

  • -name: 按名称查找文件或目录。
  • -size: 按文件大小查找。
  • -user: 按文件宿主查找。
  • -type: 按文件类型查找。
  • -iname: 忽略名称大小写。
  • -exec: 对查找到的文件执行指定的命令。
find /etc -name "*.conf"  #将在/etc目录下查找所有以.conf结尾的配置文件。

image-20230721195856585

3.top(查看进程信息)

top用于实时查看系统中运行的进程信息,包括进程的CPU使用情况、内存占用情况、进程ID、执行命令等

常用参数:

  • c: 切换显示模式,有两种模式可选,一种是只显示执行档的名称,另一种是显示完整的路径与名称。
  • S: 累积模式,将已完成或消失的子进程(dead child process)的CPU时间累积起来。
  • s: 安全模式,取消交互式指令,避免潜在的危机。
  • i: 不显示任何闲置(idle)或无用(zombie)的进程。
  • n: 更新次数,完成后将会退出top
  • b: 批次档模式,与参数n一起使用,可将top的结果输出到文件中。
top     #查看进程信息

image-20230721200316846

4.ps(查看系统中运行的进程信息)

ps用于查看系统中运行的进程信息。它提供了许多参数选项,用于过滤和显示进程的不同属性。

常用参数:

  • a: 显示一个终端的所有进程,除会话引线外。
  • u: 显示进程的归属用户及内存的使用情况。
  • x: 显示没有控制终端的进程。
  • -l: 显示较详细的进程信息,包括进程状态、启动时间等。
  • -e: 显示所有进程。
ps -aux     #将显示系统中所有进程的详细信息,包括用户、CPU使用率、内存使用率、进程ID、终端、状态、启动时间和命令

image-20230721200709929

  • USER: 进程的拥有者。
  • PID: 进程ID。
  • %CPU: CPU使用率。
  • %MEM: 内存使用率。
  • VSZ: 占用的虚拟内存大小。
  • RSS: 占用的实际内存大小。
  • TTY: 终端设备号。
  • STAT: 进程状态(D、R、S、T、Z等)。
  • START: 进程启动时间。
  • TIME: 进程执行的累计时间。
  • COMMAND: 进程执行的命令。

5.kill(终止进程)

kill命令用于向进程发送信号,可以终止执行中的程序或工作。预设的信号为SIGTERM(15),可用于正常终止程序。如果进程无法正常终止,可以使用SIGKILL(9)信号来强制终止进程。可以使用ps命令或jobs命令查看进程或工作的编号。

语法:

kill [-s <信号名称或编号>] [进程]
kill [-l <信号编号>]

常用信号:

  • HUP (1): 终端断线
  • INT (2): 中断 (同 Ctrl + C)
  • QUIT (3): 退出 (同 Ctrl + )
  • TERM (15): 终止
  • KILL (9): 强制终止
  • CONT (18): 继续 (与STOP相反,fg/bg命令)
  • STOP (19): 暂停 (同 Ctrl + Z)

只有信号9(SIGKILL)可以无条件终止进程,其他信号进程有权忽略。

常用参数:

  • -a: 当处理当前进程时,不限制命令名和进程号的对应关系。
  • -p: 仅打印相关进程的进程号,而不发送任何信号。
  • -s <信号名称或编号>: 指定发送信号。
  • -u <用户>: 指定用户。

示例:

kill -9 1234
kill -TERM 5678

6.killall(根据进程名称杀死一组进程)

killall命令用于根据进程名称杀死一组进程,将进程的名称作为参数,可以杀死与该名称匹配的一组进程。相比kill命令,killall将查找进程和发送信号两个步骤合二为一。

语法:

killall [选项] 进程名称

常用选项:

  • -e: 对长名称进行精确匹配。
  • -l: 忽略大小写的不同。
  • -p: 杀死进程所属的进程组。
  • -i: 交互式杀死进程,杀死进程前需要进行确认。
  • -q: 如果没有进程被杀死,则不输出任何信息。
  • -r: 使用正则表达式匹配要杀死的进程名称。
  • -s <信号名称或编号>: 用指定的信号代替默认信号“SIGTERM”。
  • -u <用户>: 杀死指定用户的进程。

示例:

killall -9 process_name
killall -i -TERM program_name
🌟 如果您喜欢我的文章,欢迎赞赏支持,您的支持是我创作的最大动力!🌟
🖋 作者:Enndfp
🔗链接:https://blog.enndfp.cn
📜版权声明:您可以自由转载,但请务必注明原文地址,感谢您的尊重与支持~

评论

  1. lzzh
    Windows Edge
    1 年前
    2023-10-07 23:39:18

    参考参考笔记

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇