文件管理
0x01 mv命令-移动后改名文件
简介:
mv命令可以移动文件/文件夹,来自英文单词“move“
语法格式:
mv 参数1 参数2
- 参数1:Linux路径,表示被移动的文件或者文件夹
- 参数2:Linux路径,表示要移动去的地方,如果目标不存在,则进行改名
常用参数:
参数 | 作用 |
---|---|
-b | 覆盖前为目标文件创造备份 |
-f | 强制覆盖目标文件而不询问 |
-i | 覆盖目标文件前询问用户是否确认 |
-n | 不要覆盖已有文件 |
-u | 当源文件比目标文件更新时,才执行覆盖操作 |
-v | 显示执行的详细信息 |
-Z | 设置文件安全上下文 |
–help | 显示帮助信息 |
–version | 显示版本信息 |
0x02 ls命令-显示目录中文件何其属性信息
简介:
ls命令是英文单词list的缩写,其功能是显示目录中的文件何其属性信息
语法格式:
ls [参数1 参数2 ……] [linux路径]
常用参数:
参数 | 作用 |
---|---|
-a | 显示所有的文件即目录,即隐藏文件,在Linux系统中,文件夹前面带“.”代表这是一个隐藏文件 |
-A | 不显示当前目录和父目录 |
-d | 显示目录自身的属性信息 |
-i | 显示文件的inode属性信息(存储文件元信息的区域,包括文件的创建者、文件的创建日期、文件的大小等等) |
-l | 显示文件的详细属性信息 |
-m | 以逗号为间隔符,水平显示文件信息 |
-r | 依据首字母将文件以相反次序显示 |
-R | 递归所显示的子文件 |
-S | 依据文件大小将文件排列显示 |
-t | 一句最后修改的时间将文件排序显示 |
-X | 依据扩展名将文件排序显示 |
-color | 以彩色显示信息 |
0x03 cp命令-复制文件或目录
简介:
cp可以用=用于复制文件/文件夹,来源于英文copy
语法格式:
cp 参数 源文件名 目标文件名
常用参数:
参数 | 作用 |
---|---|
-a | 递归复制,复制的数据会保留原有数据的时间戳等信息(具体:时间戳+所有权+复制连结文件属性而非档案本身) |
-b | 覆盖目标文件前先进行备份 |
-d | 复制链接文件时,将目标文件也建立为链接文件 |
-f | 若目标文件已经存在,则会直接覆盖 |
-i | 若目标文件已经存在,询问是否覆盖 |
-l | 对源文件建立硬链接,而非复制文件 |
-p | 保留源文件或目录的所有属性信息 |
-r | 递归复制所有子文件 |
-s | 对源文件建立软连接,而非复制文件 |
-v | 显示执行的详细过程 |
**文件链接:**链接文件在文件之间创建链接。这种操作实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称。
**软链接:**软链接像快捷方式,可以对文件和目录做软链接。软链接记录的只是源文件。软链接失去源文件不可用。
**硬链接:**硬链接只能针对文件做,不能对目录做。硬链接只能在同分区做。在删除源文件之后,硬链接依然可以打开。硬链接不占用inode。
0x04 mkdir命令-创建目录文件
简介:
mkdi命令的功能时创建文件,但需要注意,如果文件目录已经存在,则不能继续创建,若目录不存在,但是存在嵌套的以来关系,例如/Dir1/Dir2/Dir3/Dir4/Dir5,想要一次性创建需要加入-p参数。
语法格式:
mkdir 参数 目录名
常用参数:
参数 | 作用 |
---|---|
-m | 创建目录时同时设置权限 |
-p | 递归创建多级目录 |
-v | 显示执行的详细过程 |
-z | 设置目录安全上下文 |
0x05 pwd命令-打印当前工作目录
简介:
pwd命令来自英文词组print working directory的缩写,其功能是显示当前工作目录的路径,即显示所在位置的绝对路径。
语法格式:
pwd [参数]
常用参数:
参数 | 作用 |
---|---|
-L | 显示逻辑路径 |
-P | 显示实际物理地址 |
–version | 显示版本信息 |
–help | 显示帮助信息 |
0x06 tar命令-解压和压缩文件
简介:
tar命令的功能是压缩和解压缩文件,能够制作出Linux系统中常见的tar、tar.gz、tar.bz2等格式的压缩包文件。
语法结构:
tar 参数 压缩包名/文件/目录名
常用参数:
参数 | 作用 |
---|---|
-A | 添加文件到已知压缩包 |
-B | 设置区块大小,为磁带机设定的,其后跟一数字 |
-c | 创建新的压缩 |
-C | 解压到指定目录 |
-f | 指定压缩包文件 |
0x07 cd命令-切换目录
简介:
cd命令来自英文词组change directory的缩写,切换路径可以是相对路径也可以是绝对路径
语法格式:
cd 参数 目录名
常用参数:
参数 | 作用 |
---|---|
-L | 切换至符号链接所在目录 |
-P | 切换至符号链接对应的实际目录 |
– | 切换上次所在目录 |
~ | 切换至home目录 |
… | 切换至当前目录的上一级目录,可连用 |
0x08 chmod命令-改变文件或目录权限
简介:
chmod命令来自英文词组change mode的缩写,功能是改变文件或者目录的权限。默认只有文件的所有者和root用户可以设置文件权限
设置权限时可以使用数字法,亦可使用字母表达式,对于目录文件,建议加入-R参数进行递归操作,这意味着不仅对于目录本身,而且也对目录内的子文件/目录进行新权限的设定。
语法格式:
chomod 参数 文件名/目录名
常用参数:
参数 | 作用 |
---|---|
-c | 改变权限成功后再输出成功信息 |
-f | 改变权限失败后不显示错误信息 |
-R | 递归所有子文件 |
-v | 显示执行的详细过程 |
–no-preserve-root | 不特殊对待目录 |
–preserve-root | 禁止对目录进行递归操作 |
–reference | 使用指定参考文件的权限 |
–help | 显示帮助信息 |
–version | 显示版本信息 |
补充知识:用户和用户组/查看权限信息
用户和用户组:
在Linux系统中可以:
- 配置多个用户
- 配置多个用户组
- 用户可以加入多个用户组中
Linux中关于权限的管控级别有2个级别,分别是:
- 针对用户的控制权限
- 针对用户组的控制权限
用户组的管理:
以下命令必须使用root用户执行
- 创建用户组:
groupadd 用户组名
- 删除用户组:
groupdel 用户组名
用户管理:
以下命令必须使用root用户执行
- 创建用户
useradd [-g -d] 用户名
**-g:**指定用户的组,不指定-g,会创建同名组并自动加入; 指定-g需要的组要已经存在。
**-d:**指定用户的HOME目,不指定,HOME目录默认 在:/home/用户名
- 删除用户
userdel [-r] 用户名
**-r:**删除用户的HOME目录,不适用-r,删除用户时, HOME目录保留。
- 查看用户所在组
id [用户名]
**用户名:**如果不提供,查看的是当前用户
- 修改用户所属的组
usermod -aG 用户组 用户名
getent命令
**简介:**使用getent命令,可以查看当前系统中有哪些用户。
语法:getent passwd
返回的结果共有7份信息,分别是:用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)
查看权限信息
drwxr-xr-x. 2 dogbox001 dogbox001 6 10月 3 23:28 Desktop
drwxr-xr-x. 2 dogbox001 dogbox001 6 10月 1 18:46 Documents
drwxr-xr-x. 3 dogbox001 dogbox001 81 10月 3 23:36 Downloads
drwxr-xr-x. 2 dogbox001 dogbox001 6 10月 1 18:46 Music
drwxr-xr-x. 2 dogbox001 dogbox001 6 10月 1 18:46 Pictures
drwxr-xr-x. 2 dogbox001 dogbox001 6 10月 1 18:46 Public
drwxr-xr-x. 2 dogbox001 dogbox001 6 10月 1 18:46 Templates
drwxrwxr-x. 2 dogbox001 dogbox001 52 10月 3 15:50 test
drwxr-xr-x. 2 dogbox001 dogbox001 6 10月 1 18:46 Videos
- drwxr-xr-x一类,表示文件,文件夹的权限控制信息
- dogbox001(第一个)一类,表示文件,文件夹所属用户
- dogbox001(第二个)一类,表示文件,文件夹所属用户组
权限信息
权限细节总共分为10个槽位
- **r权限:**表示读(read)权限,针对文件可以查看文件内容,针对文件夹可以查看文件夹内容,如ls命令。
- **w权限:**表示写(write)权限,针对文件可以修改此文件,针对文件夹,可在文件夹内创建,删除,改名等操作
- **x权限:**表示执行权限,针对文件可以将文件作为程序执行,针对文件夹可以更改工作目录到此文件夹,即可cd进入
用数字表示文件权限
444 r--r--r--
600 rw-------
644 rw-r--r--
666 rw-rw-rw-
700 rwx------
744 rwxr--r--
755 rwxr-xr-x
777 rwxrwxrwx
从左至右,
1-3位数字代表文件所有者的权限,
4-6位数字代表同组用户的权限,
7-9数字代表其他用户的权限。
读取权限:等于4 用 r 表示
写入权限:等于2 用 w 表示
执行权限:等于1 用 x 表示
文档编辑
0x01 cat命令-在终端上显示文件内容
简介:
cat命令来自英文词组concatenate files and print的缩写,其作用是在终端中显示文件内容,如果文件内容较多的情况下,cat命令会一下都显示出来,不利于阅读,所以cat命令适合查看内容较少的纯文本文件。
语法格式:
cat 参数 文件名
常用参数:
参数 | 作用 |
---|---|
-A | 等价于-vET |
-b | 显示行数(空行不编号) |
-e | 等价于-vE参数组合 |
-E | 每行结束处显示$符号 |
-n | 显示行数(空行也编号) |
-s | 显示行数(多个空行算一个编号) |
-t | 等价于-vT参数组合 |
-T | 将TAB字符显示为^I符号 |
-v | 使用^和M-引用,LFD和TAB除外 |
–help | 显示帮助信息 |
–version | 显示版本信息 |
0x02 rm命令-删除文件或目录
简介:
rm命令来自英文单词remove的缩写,中文译为“消除”,其功能是删除文件或目录,一次可以删除多个文件,或递归删除目录及其内的所有子文件。
语法格式:
rm 参数 文件名
常用参数:
参数 | 作用 |
---|---|
-d | 仅删除无子文件的空目录 |
-f | 强制删除文件而不询问 |
-i | 删除文件前询问用户是否确认 |
-r | 递归删除目录以及全部子文件 |
-v | 显示执行过程详细信息 |
–help | 显示帮助信息 |
–version | 显示版本信息 |
0x03 grep命令-强大的文本搜索工具
简介:
grep命令来自英文词组global search regular expression and print out the line的缩写,意思是用于全面搜索的正则表达式,并将结果输出。人们通常会将grep命令与正则表达式搭配使用,参数作为搜索过程中的补充或对输出结果的筛选,命令模式十分灵活。
与之容易混淆的是egrep命令和fgrep命令。如果把grep命令当作标准搜索命令,那么egrep则是扩展搜索命令,等价于grep -E命令,支持扩展的正则表达式。而fgrep则是快速搜索命令,等价于grep -F命令,不支持正则表达式,直接按照字符串内容进行匹配。
语法格式:
grep 参数 文件名
常用参数:
参数 | 作用 |
---|---|
-b | 显示匹配行距文件头的偏移量 |
-c | 只显示匹配的行数 |
-E | 支持扩展正则表达式 |
-F | 匹配固定字符串的内容 |
-h | 多文件查找不显示文件名 |
-i | 忽略关键词大小写 |
-l | 只显示符合匹配条件的文件名 |
-n | 显示所有匹配行极其行号 |
-o | 只输出文件中匹配的部分 |
-q | 静默执行模式,不显示任何信息 |
-r | 递归搜索模式 |
-s | 不显示没有匹配文本的错误信息 |
-v | 显示不包含匹配文本的所有行 |
-w | 精准匹配到词 |
-x | 精准匹配整行 |
0x04echo命令-输出字符串或提取后的变量值
简介:
echo命令的功能是在终端设备上输出指定字符串或变量提取后的值,能够给用户一些简单的提醒信息,亦可以将输出的指定字符串内容同管道符一起传递给后续命令作为标准输入信息进行二次处理,若输出的字符串复杂,要用“ ”包裹起来。还可以同输出重定向符一起操作,将信息直接写入文件。如需提取变量值,需在变量名称前加入”$“符号,变量名称一般均为大写形式
语法格式:
echo 参数 字符串或者$变量名
基础知识
0x01 汇编语言的组成
- 汇编指令(机器码的助记符)
- 伪指令(由编译器执行)
- 其他符号(由编译器识别)
0x02 存储器
介绍:
CPU是计算机的核心部件,想让CPU工作,就必须向它提供指令和数据,指令和数据在存储器中存放,也就是内存。
0x03 存储单元
介绍:
存储器别划分为若干存储单元,每个从0开始编号
0x04 CPU对存储器的读写
物理上:一根根导线的集合
逻辑上:
-
地址总线
地址总线能出传输多少个不同的信息,CPU就可以对多少个储存单元进行寻址。一根地址总线,可以索引一个内存单元,一个内存单元就是一个字节
-
数据总线
数据总线决定了CPU和外界的数据的传送速度
-
控制总线
有多少根控制总线,就意味着CPU提供了对外界器件的多少种控制,控制总线的宽度决定了CPU的控制能力。
0x05 内存地址空间
-
主板
-
接口卡
例如显示器,音响,打印机等,CPU可通过控制接口卡间接对这些外部器件进行控制
-
各类储存器芯片
-
从读写属性上分为两类,随机存储器(RAM)和只读存储器
-
从功能和连接上分为:
随机存储器RAM
装有BIOS的ROM
接口卡的RAM
-
从CPU将各类存储器看作一个逻辑存储器,通过总线控制
寄存器
0x01通用寄存器
8086cCPU的寄存器都是16位的,可以存放两个字节,AX、BX、CX、DX通常用来存放一般性数据,被称为通用寄存器。
以AX为例,16位数据在寄存器中的存放情况:
-
十进制数据:18
-
二进制表示:10010
-
在寄存器AX中的存储:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0
8086的16位寄存器可以分为两个独立的8位寄存器使用。AX可以为分为AH(high),和AL(low),其他亦然
0x02 字在寄存器中的存储
字:记为word,有两个字节组成,两个字节可以分为高位字节和低位字节
为区分不同的进制,在16进制数后加H,2进制数加B,10进制数什么也不加
0x03 几条汇编指令
汇编指令 | 控制CPU完成的操作 | 用高级语言表示 |
---|---|---|
mov ax, 18 | 将8送入AX | AX = 18 |
mov ah, 78 | 将78送入AH | AH = 78 |
add ax, 8 | 将AX的数值加8 | AX = AX + 8 |
mov ax, bx | 将BX的数据送入AX | AX = BX |
add ax, bx | 将AX,BX的内容相加,存储在AX中 | AX = AX + BX |
汇编指令不区分大小写!!!
0x04 物理空间
CPU访问内存单元时要给出内存单元的地址,所有的内存的单元构成的储存空间是一个以为的线性空间,我们将这个唯一的地址称为物理空间。
0x05 8086CPU给出物理地址的方法
8086有20位地址总线,可传输20位地址,寻址能力1M,但是8086内部位16位结构,只能传输16位地址,寻址能力位64k。为了给出物理地址,8086内部采用两个16位地址合成(地址加法器)的方法来形成一个20位物理地址。
地址加法器原理:物理地址 = 段地址*16 + 偏移地址(都是16进制的值)
“段地址*16”有一个更常用的方法就是数据左移4个二进制位
0x06 物理地址 = 段地址*16 + 偏移地址的含义
用比喻来解释,我们需要一个容纳四位数据的纸条,来传递2826这个信息,但是不巧我们没有容纳四位数据的纸条,我们只有容纳三位数据的纸条,那我们要用容纳三位数据的纸条传递2826这个信息就需要在第一张纸上写上200(段地址)在第二张纸上写826(偏移值)。
第一张纸:
2 | 0 | 0 |
---|
第二张纸:
8 | 2 | 6 |
---|
在得到这两张纸后,做这样的运算200 (段地址) * 10 + 826(偏移地址) = 2826(物理地址),其中的“*10”操作为“移位”,因为这次模拟传递的是十进制数。