Linux常见指令解析

发布于:2024-04-19 ⋅ 阅读:(28) ⋅ 点赞:(0)

基础命令行

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 操作系统中,mdmkdir 命令用于创建新目录。使用方法是在命令提示符或 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指令:

  1. 添加软件源:要添加一个软件源,可以使用repo指令,通常需要root权限。例如:

    sudo add-apt-repository <repository>

    其中<repository>是软件源的地址或标识符。

  2. 删除软件源:要删除已添加的软件源,可以使用repo指令。例如:

    sudo add-apt-repository --remove <repository>

    这将删除指定的软件源。

  3. 更新软件源列表:要更新系统中可用的软件源列表,可以使用repo指令。例如:

    sudo apt update

    这将更新软件包管理系统的软件源列表。

  4. 搜索软件源:要搜索软件源中可用的软件包,可以使用repo指令。例如:

    apt search <keyword>

    这将搜索包含指定关键字的软件包。

注意事项

(1)所有的单独的文件中间一定要用空格隔开

(2)*可以代表诸如此类的所有文件,比如说*.o就是所有后缀为.o的文件

(3)./是当前目录 ../是上一级目录