声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章
声明:本文主要用作技术分享,所有内容仅供参考。任何使用或依赖于本文信息所造成的法律后果均与本人无关。请读者自行判断风险,并遵循相关法律法规。
感谢泷羽sec 团队 的教学
今天的主题是Linux目录介绍,一些基本命令使用以及资源耗尽病毒的编写。
一、Linux目录结构
Linux 目录结构概述:
- /bin: 存放二进制可执行文件和命令,特别重要,不能删除。
- /boot: 启动系统所需文件,特别重要,不能删除。
- /dev: 设备文件目录,特别重要,不能删除。
- /etc: 配置文件目录,特别重要,不能删除。
- /home: 普通用户的家目录。
- /lib: 32位库文件目录,特别重要,不能删除。
- /lib64: 64位库文件目录,特别重要,不能删除。
- /media: 用于挂载多媒体设备。
- /mnt: 用于临时挂载文件系统(如光盘和U盘)。
- /opt: 可选的软件包安装目录。
- /proc: 虚拟文件系统,提供系统进程信息,特别重要,不能删除。
- /root: root用户的家目录,特别重要,不能删除。
- /run: 系统运行时产生的临时文件。
- /sbin: 超级用户专用命令目录,特别重要,不能删除。
- /srv: 服务数据目录。
- /sys: 系统信息目录,特别重要,不能删除。
- /tmp: 临时文件存放目录。
- /usr: 用户级程序和数据目录,特别重要,不能删除。
- /var: 存放可变文件(如日志文件),特别重要,不能删除。
- /lost+found :用于存放文件系统检查时恢复的文件碎片。
二、基本命令
cd
- 作用: 切换到用户的主目录。
- 示例:cd /home/tom
ls
- -l: 详细信息列表。
- -a: 显示所有文件,包括隐藏文件。
- -h: 以可读的格式显示文件大小。
- 示例: ls -lah
pwd
- 作用: 显示当前目录的完整路径。
- 示例: pwd
clear
- 作用: 清空终端屏幕。
- 示例: clear
vim
- 作用: 打开文件进行编辑。
- 示例: vim file.txt
cat
- -n: 显示行号。
- 示例: cat -n anaconda-ks.cfg
tail
- -n num: 显示最后的 num 行。
- -f: 实时跟踪文件更新。
- 示例: tail -n 10 anaconda-ks.cfg #显示文件最后10行
head
- -n num: 显示前 num 行。
- 示例: head -n 5 anaconda-ks.cfg #显示文件前5行
more
- 作用: 分屏显示文件内容。
- 示例: more anaconda-ks.cfg
chown
- owner:group: 设置文件的所有者和组。
- 示例: chown tom:root new.txt
useradd
- -m: 创建用户的主目录。
- -s: 指定用户的登录 shell。
- 示例: useradd -m -s /bin/bash gg
adduser
- 通常是 useradd 的交互式版本。
- 示例: adduser GGB
su
- -: 切换用户并加载其环境。
- 示例: su - tom
userdel
- -r: 删除用户的同时删除其主目录。
- 示例: userdel -r tom
passwd
- 作用: 修改当前或指定用户的密码。
- 示例: passwd root
sudo
- 作用: 以超级用户身份执行命令。
- 示例: sudo yum update #检查所有已安装的软件包,并将它们更新到最新可用的版本。
三、 Linux权限详解
权限位
权限用三个字符表示:
- r (读): 值为 4
- w (写): 值为 2
- x (执行): 值为 1
- (无权限): 值为 0
权限组合
权限组合通过加和值确定:
- 0: ---
- 1: --x
- 2: -w-
- 3: -wx
- 4: r--
- 5: r-x
- 6: rw-
- 7: rwx
权限结构
权限分为三组:
- User (用户)
- Group (组)
- Other (其他人)
例如:rwxr-xr-x
- 用户 (User): rwx(读写执行)
- 组 (Group): r-x (读执行)
- 其他人 (Other): r-x (读执行)
改变权限
使用 chmod 命令修改权限:
数字方式: chmod 755 0708.txt #给文件0708.txt权限提升至最高
- 7 = rwx (用户)
- 7 = rwx (组)
- 7 = rwx (其他人)
符号方式: chmod ugo-wx 0708.txt #删除0708.txt写、执行权限
- u (用户), g (组), o (其他人)
- 添加权限, - 删除权限
用户与组
- root 用户: 最高权限,能够执行所有操作。
- 普通用户: 受限于分配的权限。
- 用户组 (users): 共享文件和权限的用户集合。
四、vim编辑器详解
基本操作
- 打开文件: vim filename
- 进入编辑模式: 按 i(插入模式)
常用模式
- 普通模式: 默认模式,用于导航和操作。
- 插入模式: 按 i 进入,可编辑文本。
- 命令模式: 按 : 进入,用于执行命令。
常用命令
- 保存并退出: :wq
- 仅保存: :w
- 仅退出: :q
- 强制退出: :q!
导航
- 移动光标: 使用方向键或 h(左),j(下),k(上),l(右)
- 跳转到行首: 0
- 跳转到行尾: $
- 跳转到文件开头: gg
- 跳转到文件结尾: G
编辑
- 删除字符: x
- 删除整行: dd
- 复制(拷贝)行: yy
- 粘贴: p
- 撤销: u
- 重做: Ctrl + r
查找与替换
- 查找: /pattern 然后按 Enter
- 下一个匹配: n
- 上一个匹配: N
- 替换: :s/old/new/g(当前行替换)
- 全局替换: :%s/old/new/g
实用技巧
- 行号显示: :set number
- 语法高亮: :syntax on
- 自动缩进: :set autoindent
- 按 : 进入命令模式使用。
五、资源耗尽病毒分析
该脚本通过notify-send发送无限弹窗通知,从而导致资源消耗的效果。
-
编写脚本:将以下代码保存到tc.sh文件中。
bash#!/bin/bash while true do notify-send "无限弹窗" "这是一个无限循环弹窗" sleep 2 done 说明: #!/bin/bash:指定使用 Bash 作为解释器。 while true:创建一个无限循环,true 始终为真,因此循环不会停止,除非手动终止。 notify-send:这是一个 Linux 下的桌面通知命令,通常用于显示桌面通知。它的第一个参数是通知的标题,第二个参数是通知的内容。 sleep 2:让脚本每 2 秒暂停一次。
-
设置权限:使用以下命令赋予执行权限。
bashchmod +x tc.sh
-
运行脚本:使用以下命令运行脚本。
bash./tc.sh
改进
设置一个计时器,运行 10 次后自动停止。
bash
#!/bin/bash
count=0
while [ $count -lt 10 ]
do
notify-send "有限弹窗" "这是一个有限次数的循环弹窗"
sleep 2
count=$((count+1))
done
解释:
#!/bin/bash:这行指定了脚本使用的解释器是 Bash。
count=0:初始化一个计数器 count,初始值为 0。
while [ $count -lt 10 ] do:开始一个 while 循环,条件是 count 小于 10。
notify-send :使用 notify-send 命令发送一个弹窗通知,标题为"有限弹窗",内容为"这是一个有限次数的循环弹窗"。
count=$((count+1)):将 count 的值增加 1。
done:结束while循环。