Linux命令集/汇编指令集

(长期更新)
推荐一个简洁的Linux命令搜索引擎:https://wangchujiang.com/linux-command/

1.dd
详细说明请参考此处:https://blog.51cto.com/xiaozhuang/850657
今天学到一条dd指令如下:

dd bs=1 if=bootsect of=Image skip=32

就是1次读取1字节,1次写入1字节(这两个功能是由bs=1体现出来的),输入的文件为bootsect,生成的文件为Image,并且跳过bootsect文件的首32字节

2.0x10中断:0x10中断是由BIOS对屏幕及显示器提供的服务程序,但是后来又附加了一些服务功能,这些功能也都是挂在int 0x10内。使用int 0x10中断功能时,先指定ah的值,该值是所调用的功能编号。比如Linux-0.11中的下列代码:

mov    ah,#0x03
xor    bh,bh
int    0x10

ah取3时便是调用获取光标位置的功能,然后把光标所在列的值赋给dl,所在行赋给dh,所以执行上面这段代码后dx寄存器就存了光标位置的行列值。
更多关于0x10名下的功能及调用参数请参考这篇文章

3.enoent:linux错误代码,表示无此文件或者目录

4.把文件从源目录复制到目的目录中

cp 文件原路径/文件名 目的路径

如果是要移动一整个文件夹,那么就需要加个参数-r,不加的话会出现类似下面的错误:
cp: -r not specified; omitting directory

5.jmpi指令:
jmpi a,b \leftrightarrow jmpi ip,cs
来源:https://blog.csdn.net/zhl1224/article/details/5735747

6.xchg指令:交换src和dest操作数的内容

7.AT&T汇编中,寄存器前冠以%,立即数前冠以$,在16进制数前冠以"0x";
intel汇编中,是在立即是的后面冠以"h"或"b",h表示16进制,b表示二进制;

8.两种汇编指令中操作数的方向:
AT&T:mov src,dest
Intel: mov dest,src

9.esp寄存器指向的是栈顶,ebp指向的是栈底

10.lldt指令:用于设置LDTR寄存器的值
sldt指令:保存LDTR寄存器的值

11.TR:指任务寄存器(task register),存放16位的段选择符,以及当前任务TSS段的整个描述符(不可见部分)。这些信息是从GDT中当前任务的TSS描述符中复制过来的

12.LTR:加载和保存任务寄存器TR的可见部分,即TSS段的选择符,它只能被特权级0的程序执行,通常用于系统初始化时给TR寄存器加载初值
STR:保存任务寄存器的可见部分

13.CR3:页目录寄存器

14.标志寄存器EFLAGS中的NT标志:
1)中断服务返回时,如果NT处于复位(0)状态,那么执行一般返回处理;如果处于置位(1)状态,则返回操作会产生任务切换;
2)它指出了当前执行的任务是否是嵌套在另一个任务中执行,并且当前任务的前一任务链接字段中存放着嵌套层中更高层任务的TSS选择符(如果有的话)

15.je指令:等于则跳转
js指令:不等则跳转

16.fs寄存器:fs实际上是个选择子,是一个指向描述符表项的指针,而这个描述符才是指向实际的用户态内存的指针。这个指针的值固定为0x17

17.align n指令:指在编译出来的机器码里面插入n个0,align 2就是插入两个0

18.outb:向IO端口发送数据,这个数据可能会用来控制一些硬件的行为。也就是说,这个端口不是用来保存发送过来的数据的,因此这个端口的值可以说是没有发生改变。比如向显示器的端口发送一个值,用来控制一些像素的颜色。

19.inb:从IO端口读入数据

Linux指令

1.在终端打开文件夹的图形化界面:
nautilus 目录

2.Linux查看系统时间:
date
运行结果:
在这里插入图片描述
3.Linux查看文件修改时间:
stat 文件名
运行结果:
在这里插入图片描述

4.用cat查看文件时显示行号
cat -n 文件名

5.查找某个文件:
find / -name 文件名
运行结果:
在这里插入图片描述
6.用cp指令复制文件到目的目录下时,覆盖目的目录中的同名文件:
cp -b 原文件 目的文件

7.查看文件权限:
ls -l 文件名
运行结果示例:
在这里插入图片描述

8.修改文件权限:
chmod xxx 文件名
示例:
chmod 644 文件名 (所有者有读和写的权限,组用户只有读的权限)
这里的第一个数字表示所有者的权限,第二个数字表示同组用户的权限,第三个数字表示所有用户的权限

9.文件权限的表示方式:
只读:r--,值为4
只写:-w-,值为2
只执行:--x,值为1

10.Linux/windows输出重定向:
指令 > 文件名

11.shell脚本注释:#

12.lea:load effective address,加载有效地址,可将有效地址传送到指定寄存器

13.修改文件夹名
mv filename new_name

14.如果文件夹名字带有特殊字符,比如有一个文件夹名字为my drive,那么想要在cd,cp等命令中处理该文件夹,那就只需要在特殊字符前加个空格,比如:
在这里插入图片描述
15.查看文件夹的大小
du -h --max-depth=0 your_dir
示例:我这里就是查看当前文件夹下的各个子目录的大小
在这里插入图片描述

16.波浪线代表当前用户的宿主目录,例如“~/bin”代表“/home/username/bin/”

17.ld指令:将目标文件链接为可执行文件
它的几个参数:
-o:指定输出的文件名
-e:是指定程序的入口符号
-m:指明生成文件格式
比如下面这条指令的意思是:把crt0.o和hello.o连接起来生成可执行文件output
ld -o output /lib/crt0.o hello.o -lc

18.cd -:返回到上一次的目录中

猜你喜欢

转载自blog.csdn.net/yuanren201/article/details/100806169