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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值