(长期更新)
推荐一个简洁的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 -
:返回到上一次的目录中
19.查看当前文件夹下有多少个文件:ls|wc -w
20.解压至指定文件夹
tar -zxvf xxx.tgz -C destinationDirectory
21.打包当前文件夹下的所有文件
tar czvf xxx.tar.gz *
22.传输本地文件到服务器上 scp -r local_dir username@servername:remote_dir
23.unzip -o -d /home/sunny myfile.zip
把myfile.zip文件解压到 /home/sunny/
-o:不提示的情况下覆盖文件;
-d:-d /home/sunny 指明将文件解压缩到/home/sunny目录下;
24.查看文件大小
du -s filename
得到的文件大小是以KB为单位的,用du -b
则是以byte为单位