基础命令行
1、rm可以删除文件(rm -d /path/to/directory或者rm -r /path/to/directory)
2、ls是展开文件 在linux中,“ll”是“ls -l”命令的别名,ls命令用于显示指定工作目录下之内容,参数“-l”表示除文件名称外,将文件型态、权限、拥有者、文件大小等资讯详细列出。
3、Mkdir是创建目录(无法使用vim)
4、Touch是创建文件(可以使用vim)
5、cd是查看文件 在最后加左下划线/ cd ..是退回上一级目录
6、ctrl+l或者是clear可以清除当前页面
7、显示当前路径:pwd 命令
8、查找所有路径用whereis 查找当前运行路径用which
9、切换root账户用su - 创建root用户用useradd -m root 更改密码用sudo passwd root
Su - nowcoder切换回nowcoder用户
10、Make 在编译大型项目的时候使用makefile,所需要的时间也比较长。尤其是在做测试的时候,需要使用很多次make指令,这需要耗费大量的时间。
使用make -j命令可以缩短这部分时间。使用方法就是在-j后面加一个数字,比如 -j10,意为在编译文件的时候用10个线程进行编译.
11、tree查看树状结构
12、Tar -xzf ...是解压缩操作
13、Sudo 是允许系统管理员让普通用户执行一些或者全部root命令的一个工具
14、重启用sudo reboot
15、移动文件到另外一个文件夹
mv [选项] 源文件 目标文件夹 比如mv example.txt /target/directory/
16、安装使用sudo apt install ...
卸载用sudo apt-get remove
17、cp是复制
语法:cp 【-r】 表示递归复制目录 【-r】选项,可选,用于复制文件夹使用,表示递归 参数1,Linux 路径,表示被复制的文件或文件夹 参数2,Linux 路径,表示要复制去的地方
编辑器命令行
基础命令
Vi/vim进入编辑操作
i是开始编辑
esc然后shift+:然后wq!退出编辑模式 (非管理员需要加感叹号)
wq是保存退出
q!是不保存退出
Ctrl+z可以强制退出
vim netrw
vim netrw在文件打开时关闭netrw缓冲区 vim netrw是一个用于在Vim编辑器中浏览文件系统的插件。当使用netrw打开文件时,可以通过以下步骤关闭netrw缓冲区:在Vim中,按下Esc键,确保处于正常模式。输入命令:bd,按下Enter键。这将关闭当前的netrw缓冲区。netrw插件的优势是它提供了一个方便的界面来浏览和管理文件系统,可以在Vim中直接进行文件操作,而无需切换到终端。它支持文件和目录的创建、复制、移动、删除等操作,还可以通过FTP和HTTP进行远程文件的访问。netrw插件的应用场景包括但不限于:
在Vim中快速浏览和编辑本地文件。
在Vim中进行文件和目录的管理和操作。
在Vim中通过FTP和HTTP访问远程文件。
在Vim中进行文件的比较和合并操作。
补充命令行
echo指令
echo命令是linux中最基础的命令,在写shell脚本的时候,会经常被用到,echo命令功能非常丰富,下面我们结合实际案例进行详细介绍。
echo命令的基本用法,很简单,就是echo命令后面跟上要输出的文本
-n 不要在最后自动换行
-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;
--help 显示帮助
--version 显示版本信息
每一个shell支持的echo指令可能都不太相同。
-n 不输出最后的\n
-e解释转义字符
-E不解释转义字符
示例:echo "i am a boy" // 执行后会打印 i am a boy
i am a boy
Linux export 命令
用于设置或显示环境变量。
在 shell 中执行程序时,shell 会提供一组环境变量。export 可新增,修改或删除环境变量,供后续执行的程序使用。export 的效力仅限于该次登陆操作。
-f 代表[变量名称]中为函数名称。
-n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
-p 列出所有的shell赋予程序的环境变量。
gcc命令
gcc 命令:用来编译C和C++文件
-v 同时显示编译器的代码
-x<语言> 指定语言
--help 显示帮助信息
--version 显示版本信息
-o<文件> 将输出输入到指定文件
-E 只进行预处理
-S 只进行预处理、编译 编译而不进行汇编和链接
-c 只预处理、编译、汇编,但不链接
-D 使用-D name[=definition]预定义名为name的宏,若不指定值则默认宏的内容为1
-l(小写的L) 使用-l libname或者-llibname,使链接器在链接时搜索名为libname.a/libname.so(静态/动态)的库文件
-L 使用-Ldir添加搜索目录,即链接器在搜索-l选项指定的库文件时,除了系统的库目录还会(优先)在-L指定的目录下搜索
-I(大写的i) 使用-I dir,将目录dir添加为头文件搜索目录
-include 使用-include file,等效于在被编译的源文件开头添加#include "file"
-static 指定静态链接(默认是动态链接)
-O0~3 开启编译器优化,-O0为不优化,-O3为最高级别的优化
-Os 优化生成代码的尺寸,使能所有-O2的优化选项,除了那些让代码体积变大的
-Og 优化调试体验,在保留调试信息的同时保持快速的编译,对于生成可调试代码,比-O0更合适,不会禁用调试信息。
-Wall 使编译器输出所有的警告信息
-march 指定目标平台的体系结构,如-march=armv4t,常用于交叉编译
-mtune 指定目标平台的CPU以便GCC优化,如-mtune=arm9tdmi,常用于交叉编译
其中GCC -c选项:生成目标文件
所谓目标文件,其本质为二进制文件,但由于尚未经过链接操作,所以无法直接运行。简单地理解,汇编其实就是将汇编代码转换成可以执行的机器指令。大部分汇编语句对应一条机器指令,有的汇编语句对应多条机器指令。相对于编译操作,汇编过程会简单很多,它并没有复杂的语法,也没有语义,也不需要做指令优化,只需要根据汇编语句和机器指令的对照表一一翻译即可。通过为 gcc 指令添加 -c 选项(注意是小写字母 c),即可让 GCC 编译器将指定文件加工至汇编阶段,并生成相应的目标文件
gcc生成文件类型:
(1)以.c文件结尾的文件名,表示C语言源文
(2)以.a文件结尾的文件名,表示目标文件构成的库文件
(3)以.o文件结尾的文件名,表示源文件编译的目标文件
(4)以.h文件结尾的文件名,表示头文件
(5)以.s文件结尾的文件名,表示汇编语言源文件
(6)以.S文件结尾的文件名,表示经过预编译的汇编源代码文件
(7)以.C,.cc,.cxx文件结尾的文件名,表示C++源代码文件
(8)以.i文件结尾的文件名,表示经过预处理的C源代码文件
(9)以.ii文件结尾的文件名,表示经过预处理的C++源代码文件
MD指令
在计算机上,"md" 通常是 "make directory" 的缩写,用于创建新目录(文件夹)。在不同的操作系统中,该命令可能会有所不同。
在 Windows 操作系统中,md
或 mkdir
命令用于创建新目录。使用方法是在命令提示符或 PowerShell 中输入 md
命令,后跟要创建的目录路径。例如:
md new_folder
这将在当前目录下创建一个名为 "new_folder" 的新目录。在 Linux 和 Unix 操作系统中,mkdir
命令用于创建新目录。使用方法与 Windows 中的 md
命令类似。例如:
mkdir new_folder
这将在当前目录下创建一个名为 "new_folder" 的新目录。在使用这些命令时,请确保你有适当的权限来在指定位置创建目录。
uboot下的md指令
在 U-Boot 中,md
是 "memory display" 的缩写,用于在控制台上显示内存的内容。这个命令通常用于调试和查看内存中的数据。以下是在 U-Boot 中使用 md
命令的基本语法:
md [options] address [# of objects] [format]
address
:要显示的内存地址。# of objects
:要显示的对象数量。format
:显示的格式,通常是十六进制(hexadecimal)格式。
例如,要在 U-Boot 中显示从地址 0x1000 开始的内存内容,显示10个对象(每个对象的大小取决于系统的字长),可以输入以下命令:
md 0x1000 10
你也可以指定显示的格式。例如,要以十六进制格式显示从地址 0x1000 开始的内存内容,可以输入以下命令:
md 0x1000 10 hex
这将显示地址范围从0x1000到0x101F的16字节的内存内容,以十六进制格式显示。
请注意,在 U-Boot 中使用 md
命令时需要小心,确保你知道要查看的内存地址范围,并避免对关键数据造成不可逆的影响。
mw指令
在U-Boot中,mw
是 "memory write" 的缩写,用于向内存中写入数据。这个命令通常用于调试和修改内存中的数据。以下是 mw
命令的基本语法:
mw [options] address value [count]
address
:要写入的内存地址。value
:要写入的值。count
:可选参数,指定要写入的字节数。
例如,要在 U-Boot 中将值 0x55
写入地址 0x1000
处的内存,可以输入以下命令:
mw 0x1000 0x55
这会将值 0x55
写入地址 0x1000
处的内存。如果指定了 count
参数,mw
命令将在指定的地址开始处写入连续的多个值。例如,要在 U-Boot 中将值 0x55
写入地址 0x1000
处的内存,连续写入5个值,可以输入以下命令:
mw 0x1000 0x55 5
这会将值 0x55
连续写入地址 0x1000
开始的5个内存地址中。请注意,在 U-Boot 中使用 mw
命令时需要小心,确保你知道要写入的内存地址和值,并避免对关键数据造成不可逆的影响。
Cat指令
在 Linux 和类 Unix 系统中,cat
是一个常用的命令,用于显示文件的内容。它的名称来自 "concatenate"(连接)的缩写,原本用于连接文件,但现在更常用于简单地显示文件的内容。
cat
命令的基本语法如下:
cat [OPTION]... [FILE]...
其中:
OPTION
是可选的命令选项,用于指定cat
命令的行为。FILE
是一个或多个要显示内容的文件的路径。
例如,要显示一个名为 example.txt
的文件的内容,可以使用以下命令:
cat example.txt
cat
命令还可以用于将多个文件的内容连接在一起,并将结果输出到标准输出流。例如:
cat file1.txt file2.txt
这将先显示 file1.txt
文件的内容,然后显示 file2.txt
文件的内容。
cat
命令的常见选项包括:
-n
:显示每行的行号。-b
:显示非空行的行号。-s
:合并连续的空行为一个空行。-v
:显示非打印字符的可视化表示。
除了显示文件内容外,cat
命令还有其他一些用途,例如创建文件、将文件内容重定向到其他文件等。
repo指令
在许多Linux发行版中,特别是那些使用基于Debian或Ubuntu的包管理系统的发行版,repo指令通常是一个用于管理软件源的命令。它通常用于添加、删除、更新和搜索软件源。
以下是一些常见的repo指令:
-
添加软件源:要添加一个软件源,可以使用repo指令,通常需要root权限。例如:
sudo add-apt-repository <repository>
其中
<repository>
是软件源的地址或标识符。 -
删除软件源:要删除已添加的软件源,可以使用repo指令。例如:
sudo add-apt-repository --remove <repository>
这将删除指定的软件源。
-
更新软件源列表:要更新系统中可用的软件源列表,可以使用repo指令。例如:
sudo apt update
这将更新软件包管理系统的软件源列表。
-
搜索软件源:要搜索软件源中可用的软件包,可以使用repo指令。例如:
apt search <keyword>
这将搜索包含指定关键字的软件包。
注意事项
(1)所有的单独的文件中间一定要用空格隔开
(2)*可以代表诸如此类的所有文件,比如说*.o就是所有后缀为.o的文件
(3)./是当前目录 ../是上一级目录