嵌入式LINUX常见符号与常用命令(二)

发布时间:2026/10/8 22:03:10
嵌入式LINUX常见符号与常用命令(二)
前一篇嵌入式LINUX常见符号与常用命令-CSDN博客其他命令clear清屏apt-get安装或者卸载应用要在root权限下先su root比如apt-get install vim安装vimapt-get remove vim卸载vimapt 和 apt-get的区别_apt和apt-get-CSDN博客ln创建链接软链接软链接类似于快捷方式存有两个文件但是当原始文件被删除后链接文件也将失效。说明软链接仅仅包含所链接文件的路径名因此能链接目录文件也可以跨越文件系统进行链接。1.软链接以路径的形式存在。类似于Windows操作系统中的快捷方式2.软链接可以跨文件系统 硬链接不可以3.软链接可以对一个不存在的文件名进行链接4.软链接可以对目录进行链接建立软链接ln -s 源文件或目录 目标文件或目录链接文件的源文件是指原始文件目标是要创建的链接文件示例ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx-s 是 symbolic的意思删除软链接rm –rf 软链接名称rm -rf b请注意不要在后面加”/”rm -rf 后面加“/”的话会进行递归删除非常危险示例rm -rf /usr/bin/ngnix修改软链接ln –snf 新的源文件或目录 目标文件或目录将会修改原有的链接地址为新的地址示例创建一个软链接ln –s /var/www/test /var/test修改指向的新路径ln –snf /var/www/test1 /var/test找到文件夹下所有建立的软链接ls -alR | grep ^l硬链接可以将硬链接理解为一个“指向原始文件inode的指针”系统不为它分配独立的inode和文件。所以硬链接文件与原始文件其实是同一个文件只不过是不同的名字而已。我们每添加一个硬链接该文件的inode链接数就会增加1而且只有当该文件的inode连接数为0时才算彻底将它删除。换言之由于硬链接实际上是指向原文件的inode的指针因此即便原始文件被删除依然可以通过硬链接文件来访问。1.硬链接以文件副本的形式存在但不占用实际空间2.不允许给目录创建硬链接3.硬链接只有在同一个文件系统中才能创建建立硬链接ln 源文件 硬链接名另外删除链接文件和正常删除文件是一样的。查看文件的链接情况Linux下如何查看一个文件是否拥有软链接或硬链接文件_你的黑夜的技术博客_51CTO博客mount/unount磁盘挂载/卸载mount可用于查看挂载信息显示文件系统、挂载点以及文件类型。mount命令 – 将文件系统挂载到目录 – Linux命令大全(手册) (linuxcool.com)sed、awk正则表达式。匹配加替换。了解即可mkfs格式化文件系统了解即可。mkfs /dev/hd1mkfs -t vfat 32 -F /dev/hd1 创建一个FAT32文件系统gccc语言编译命令注意-o是指定输出文件名而不是链接啥的虽然跟目标文件的.o后缀容易搞混。-o指定生成的输出文件-E仅执行编译预处理-S将C代码转换为汇编代码-wall显示警告信息-c仅执行编译操作不进行连接操作make编译当前工作目录下的工程源码一般是自动读取Makefile文件用make -j带一个参数可以把项目在进行并行编译比如在一台双核的机器上完全可以用make -j4让make最多允许4个编译命令同时执行这样可以更有效的利用CPU资源。具体参考make的-j命令加速Linux程序编译_make -j-CSDN博客echoecho命令 – 输出字符串或提取后的变量值 – Linux命令大全(手册) (linuxcool.com)可用于在终端设备上输出指定字符串或变量提取后值的命令能够给用户一些简单的提醒信息。比如echo $PATH输出环境变量PATH的内容。注意echo无法输出一个文件的内容如果echo后面跟着一个文件名也只会输出该文件的名称也就是被当做一个字符串输出。export用于将shell变量输出为环境变量比如将向环境变量中加入路径export PATH/usr/local/arm/arm-2009q3/bin:$PATH这里表示将/usr/local/arm/arm-2009q3/bin:原封不动地写在了PATH变量值前面。export是用来操作环境变量的包括定义、查看、修改等使用示例定义环境变量export MY_VARIABLEHello, World!这条命令将创建一个名为MY_VARIABLE的环境变量并将其值设置为Hello, World!。查看已导出的环境变量export -p此命令会列出当前shell中定义的所有环境变量及其对应的值。修改环境变量如果已经在当前会话中设置了一个环境变量可以使用export命令来修改其值。例如如果之前设置了MY_VARIABLE可以再次使用export MY_VARIABLENew Value来改变它的值。咋没有删除如果想要删除一个已导出的环境变量可以使用unset命令。例如unset MY_VARIABLE将会删除名为MY_VARIABLE的环境变量。linux中的export命令和shell脚本中的export指令有什么区别Linux中的export命令和shell脚本中的export指令在本质和使用上基本相同但也存在一些细微的区别。以下是对这两者的详细比较一、相同点功能设置环境变量都可以用于将一个变量标记为可供子进程使用的环境变量使该变量在当前shell会话及其后续创建的子shell或子进程中可用。语法格式基本语法都是“export [变量名][值]”例如“export PATH$PATH:/home/user/bin”。作用域影响当前shell及子进程无论是直接在Linux命令行中执行export命令还是在shell脚本中使用export指令所设置的环境变量都会对当前shell以及由当前shell启动的所有子进程生效。函数导出两者都支持使用“-f”选项来将函数导出使函数在子shell中也能被调用但同样需要注意函数只能在相同类型的shell中导出和导入。查看已导出变量都可以使用“export -p”来列出当前shell中所有已导出的环境变量及其值。二、不同点执行方式与场景Linux命令行用户直接在终端的命令行中输入export命令通常用于临时设置或修改环境变量适用于一次性的操作或在当前终端会话中的快速配置。例如用户在当前终端会话中需要临时添加一个路径到PATH环境变量中以方便执行某个特定目录下的程序就可以直接使用export命令。Shell脚本在shell脚本中使用export指令是为了在脚本执行过程中设置环境变量以便脚本中的其他命令或脚本的子进程能够访问这些变量。这有助于在脚本中定义一些全局的配置信息或参数使脚本的行为可以根据不同的环境变量值而有所变化。例如在一个安装软件的脚本中可能会先通过export指令设置一些与安装相关的环境变量如软件的安装路径、配置文件路径等。变量的作用范围Linux命令行如果在命令行中不使用export命令直接声明变量那么该变量只是当前shell的一个局部变量只在当前的命令行会话中有效子进程无法访问。而使用export命令后变量就成为了环境变量可在子进程中使用。例如VARIABLEHello# 此时VARIABLE是局部变量export VARIABLE# 现在VARIABLE是环境变量Shell脚本在脚本中如果不使用export声明变量该变量默认只在脚本内部有效即只在当前脚本的运行环境中可见对于调用该脚本的其他shell或脚本的子进程是不可见的。只有使用export声明后变量才会被提升为环境变量从而在其他相关的环境中可用。例如#!/bin/bash NON_EXPORTED_VARI am local EXPORTED_VARI am exported export EXPORTED_VAR在这个脚本中NON_EXPORTED_VAR只在脚本内部有效而EXPORTED_VAR在脚本外部的当前shell会话中也可通过echo $EXPORTED_VAR来访问。总的来说export可以将某个变量提升为环境变量使其不仅在当前shell中可用还能在子shell中使用。source命令的功能是用于从指定文件中读取和执行命令通常用于被修改过的文件使之新参数能够立即生效而不必重启整台服务器。语法格式source [文件]比如source aaa.shdate[OPTION]... [FORMAT]从1970年1月1日00:00:00 UTC到当前为止的秒数即秒数的绝对值date %s将指定日期格式转换为时间戳date -d 2023-01-01 00:00:00 %s更多参考Linux date 命令 | 菜鸟教程 (runoob.com)linux系统date命令时间戳与日期相互转换_linux时间戳转换日期格式-CSDN博客其中加号表示是查看若是不以加号作为开头则表示要设定时间设定时间date -s 设置当前时间只有root权限才能设置其他只能查看 date -s 20120523 设置成20120523这样会把具体时间设置成00:00:00 date -s 01:01:01 设置具体时间不会对日期做更改 date -s 01:01:01 2012-05-23 这样可以设置全部时间 date -s 01:01:01 20120523 这样可以设置全部时间 date -s 2012-05-23 01:01:01 这样可以设置全部时间 date -s 20120523 01:01:01 这样可以设置全部时间补充✔基本工具安装Vim编辑器apt-get install vim✔ifconfig可以查看ip信息不过要先安装网络工具ifconfig命令没有安装请使用apt-get install net-tools或yum install net-tools命令安装。ping指令和win下是一样的可以测试网络连通性✔history可以查看过往指令列表更多参考【Linux】Linux常用命令60条含完整命令语句-CSDN博客如果执行某个命令不好使可能是没有安装该命令的执行环境。通常一个命令都是对应着一个工具。打开多个终端窗口。参考Linux多终端窗口合并以及多窗口分屏式终端-CSDN博客按快捷键CtrlAltT打开一个终端再按快捷键CtrlShiftT就可以在同一窗口打开另一个终端按多次就会生成多个终端效果图如下按快捷键Alt1会切换到第一个终端Alt2会切换到第2个终端以此类推。exit指令Linux exit命令 | 菜鸟教程 (runoob.com)exit命令将关闭当前的shell。如果你在图形界面的终端中使用exit命令那么终端窗口将被关闭。如果你在一个脚本中使用exit命令那么脚本的执行将立即停止。退出状态是一个介于0和255之间的整数。0通常表示成功非零值表示出现了某种错误。linux终端其实就是个进程如果你在图形界面的终端中使用exit命令那么终端窗口将被关闭。但是如果你在一个shell脚本中使用exit命令那么脚本的执行将立即停止exit命令将关闭当前的shell而不会关闭正在运行的终端界面这是因为shell脚本的执行也是一个进程exit离开的是当前进程并不是专用于终端。不管exit在哪被执行只要执行了就会立即退出当前进程。参考Linux exit命令教程如何优雅地退出你的Shell附案例详解和注意事项-CSDN博客更多待补充。dpkg命令dpkg命令来自英文词组Debian package的缩写其功能是管理软件安装包是在Debian系统中最常用的软件安装、管理、卸载的实用工具。原文链接dpkg命令 – 管理软件安装包 – Linux命令大全(手册)示例注意dpkg是要有安装包然后才能安装apt-get是下载安装包并安装。exprexpr命令 – 字符串及整数计算器 – Linux命令大全(手册) (linuxcool.com)expr命令来自英文单词“expression”的缩写中文译为“表达式”其功能是用于字符串及整数计算。常被用作Linux系统中求表达式变量值的工具亦可用于计算整数值或字符串的结果当作计算器也没问题的。unsetLinux unset命令 | 菜鸟教程 (runoob.com)Linux unset命令用于删除变量或函数。unset为shell内建指令可删除变量或函数。多命令顺序连接符Linux多命令顺序执行连接符(; || |)_linux命令连接符-CSDN博客可以通过使用分号;、逻辑与和逻辑或||等符号将多个命令写在一行上。以下是一些示例使用分号 (;)分号用于顺序执行多个命令不管前一个命令是否成功。echo Hello, World!; ls -l; pwd使用逻辑与 ()逻辑与用于在前一个命令成功时才执行下一个命令。mkdir new_directory cd new_directory touch file.txt使用逻辑或 (||)逻辑或用于在前一个命令失败时才执行下一个命令。cd non_existent_directory || echo Directory does not exist组合使用你可以组合使用这些符号来实现更复杂的逻辑。mkdir new_directory cd new_directory touch file.txt || echo Failed to create directory or change into it示例单行脚本进行文件操作以下是一个单行的Shell脚本它创建一个目录、进入该目录并创建一个文件mkdir mydir cd mydir touch myfile.txt通过这种方式你可以在一行中编写相对简单的Shell脚本但请注意对于复杂任务建议将脚本分成多行以提高可读性和维护性。重定位符号shell中/dev/null 21 - 坏~牧羊人 - 博客园 (cnblogs.com)我们使用或者对输出进行重定向当使用时会判断右边的文件存不存在如果存在的话就先删除然后创建一个新的文件不存在的话则直接创建。但是当使用进行追加时则不会删除原来已经存在的文件。比如通过echo向文件里写内容在Linux系统中使用echo命令来将内容写入文件是非常常见的操作。这个功能在管理文件和配置时非常有用。假设我们想要创建一个名为example.txt 的文本文件并且在其中写入一行文字“Hello, World!”。我们可以使用以下命令echo Hello, World! example.txt这行命令的意思是将“Hello, World!”这个字符串重定向到一个名为example.txt的文件中。如果example.txt不存在则会被创建如果已存在则会被覆盖。如果我们想要将内容追加到文件末尾而不是覆盖可以使用双大于号()echo This is a new line. example.txt这行命令会将“This is a new line.”这个字符串追加到example.txt文件的末尾。21 /dev/null拆解先纠正一个关键点你这行的写法顺序有坑pushd $BUILDROOT_DIR/configs 21 /dev/null1. 基础概念Linux 3 个标准文件描述符0标准输入 stdin1标准输出 stdout正常打印信息2标准错误 stderr报错信息 /dev/null把标准输出 (stdoutfd1) 重定向到黑洞丢弃21文件描述符 2stderr复制指向文件描述符 1 当前的目标⚠️ 重定向是从左到右依次执行你代码里21 /dev/null执行顺序先执行21此时 fd1 指向终端屏幕所以 fd2stderr指向屏幕。然后执行 /dev/null把 fd1 改成指向 /dev/null。结果stdout 丢进黑洞stderr 仍然输出到屏幕这是错误写法作者本意应该是stdout 和 stderr 全部屏蔽都不输出。✅ 正确写法两个输出全部丢弃pushd xxx /dev/null 21顺序 /dev/nullfd1 指向黑洞21fd2 跟着 fd1也指向黑洞标准口诀先重定向 1再把 2 指向 12. 两种写法对比写法效果cmd 21 /dev/nullstdout 丢弃stderr 仍然打印到控制台你截图里这行大概率不是想要的cmd /dev/null 21stdout、stderr全部丢弃没有任何输出✅ 常用静默执行3. 补充简写bash 4代表同时重定向 stdoutstderr等价于xxx 21pushd xxx /dev/null一行搞定更简洁推荐写脚本用这个。4. 常见误区❌21 file不等于 file 21顺序决定一切21不是把 2 的内容写到 1 的内容里是复制文件描述符指向的目标。/dev/null是黑洞设备写进去的数据直接消失。commandcommand命令 – 调用并执行指定的命令 – Linux命令大全(手册) (linuxcool.com)command命令来自英文单词“命令”其功能是用于调用并执行指定的命令。当系统同时定义了与命令相同的函数时command命令会忽略Shell函数而去执行相应的Linux命令。对于绝大部分的Linux系统命令无需使用此命令调用可直接在Shell终端执行因此很多运维人员会对此命令感到陌生。sedLinux sed 命令是利用脚本来处理文本文件。sed 可依照脚本的指令来处理、编辑文本文件。Linux sed 命令 | 菜鸟教程 (runoob.com)patch命令Linux patch命令 | 菜鸟教程 (runoob.com)安装ibus-pinyin输入法Ubuntu 22.04系统安装中文输入法 - 低调码农哥! - 博客园 (cnblogs.com)Ubuntu22.04 LTS如何开启中文输入法有多种方式可以使用其中一种。方式1界面设置Ubuntu22.04 LTS如何开启中文输入法_ubuntu chinese input-CSDN博客方式2偏命令方式Ubuntu 22.04系统安装中文输入法 - 低调码农哥! - 博客园 (cnblogs.com)遇到的问题汉语选项是灰色的拖也拖不动怎么办设置下regional format可参考Ubuntu中文语言总是灰色_ubuntu汉语灰色-CSDN博客然后再回去拖动。并且应用到全局。之后按照两种方式使用ibus-setup或者在键盘里设置就行。一般选择Intelligent Pinyin即可。如下所示更多待补充。。。安装chrome浏览器Linux | Ubuntu 20.04 | 通过命令行安装Google Chrome浏览器_ubuntu安装谷歌浏览器命令-CSDN博客linux中使用code命令在Linux命令行中打开VSCode首先确保已经安装了VSCode。打开终端输入以下命令code按下回车键即可打开VSCode.如果你想在 Vsual Studio Code 中打开一个指定的文件或目录只需要在上面的命令中提供它的路径即可。例如要打开名为 myproiect的目录可以输入以下命令:code myproject这将在 Visual Studio Code 中打开名为 myproject 的目录并显示其内容。比如在vscode中打开当前目录就可以 code .或者code ./注意一般是打开路径不能打开具体文件。linux命令的长选项和短选项Linux命令长选项--和短选项-和没有-选项区别(选项的单双连字符-和--区别)_linux命令行为什么需要长选项和短选项-CSDN博客更多待补充。Linux 终端运行命令时出现多行带有加号的信息这是因为执行过set -x如果你也一样出现上面这种情况输入set x指令即可然后再输其他指令就不会出现这些了。Hexdump工具hexdump是一个用于在Linux系统中查看和解析二进制文件内容的命令行工具。以下是对hexdump的详细介绍基本概述定义hexdump是Linux下的一个命令行工具用于以十六进制格式显示和解析二进制文件内容。用途它适用于分析文件结构、查找特定字节序列或检查数据损坏等问题。在处理网络数据包、系统日志文件、可执行文件等时hexdump常常能提供有价值的见解。工作原理读取输入hexdump命令读取输入数据可以是文件、管道或其他命令的输出。解析显示然后将这些数据按照指定的格式通常是十六进制进行解析和显示。除了十六进制表示外hexdump还可以显示ASCII字符的对应表示以便更容易地识别文本内容。主要特点多种显示格式除了默认的十六进制格式外还可以选择其他格式如八进制、十进制等。灵活的数据分组可以指定每行显示的字节数以及每组的字节数。强大的过滤功能通过指定搜索模式可以高亮显示或过滤出特定的字节序列。常用参数-C以十六进制和ASCII字符的混合格式显示数据每行显示16个字节。-d以无符号十进制格式显示数据。-o以八进制格式显示数据。-s跳过指定数量的字节后开始显示。-n仅显示指定数量的字节。-v显示每个字节的完整值而不是仅显示可打印字符。更详细参考Linux命令学习总结hexdump - 潇湘隐者 - 博客园 (cnblogs.com)Hexdump 如何工作 - 知乎 (zhihu.com)总的来说hexdump是一个功能强大的工具对于处理和分析二进制数据非常有用。通过掌握其工作原理和主要特点并结合实际应用示例进行练习你将能够更好地利用这个工具来解决实际问题。命令的本质linux中的各种指令其实也是去执行一个可执行程序这些可执行程序基本都放在根目录下的一些bin相关目录下这些可执行程序和我们自己写的可执行程序没有任何区别如果硬要区别那就是很多都是linux自带的并且已经加了PATH这个环境变量所以不需要指定路径就能执行如果是我们自己写的可执行程序那么我们一般要指定路径如果不想指定路径那么可以将应用程序所在的路径加入PATH路径。在Linux操作系统中命令的执行方式和应用程序的执行方法可以通过多种途径实现。以下将详细介绍这些方法绝对路径执行如果知道应用程序的完整路径可以直接在命令行中输入该路径并按下回车键来执行程序。例如/usr/bin/app其中/usr/bin是应用程序所在的目录app是应用程序的名称。相对路径执行如果应用程序位于当前工作目录或其子目录中可以使用相对路径来执行它。例如如果应用程序位于当前工作目录下的bin目录中可以输入./bin/app来执行。命令搜索路径执行Linux系统会根据环境变量PATH中指定的路径进行应用程序的搜索。当在命令行中输入应用程序的名称时系统会在PATH中的路径下查找该应用程序并执行找到的第一个应用程序。可以通过echo $PATH命令查看当前的PATH设置。别名执行可以为某个应用程序创建一个更简短、更易记的别名使用alias命令来创建别名。例如可以使用alias llls -l来将ll指定为ls -l的别名。然后只需在命令行中输入ll系统会自动执行ls -l。可执行权限执行如果应用程序没有可执行权限Linux系统会拒绝执行它。可以使用chmod命令为应用程序添加可执行权限。例如可以使用chmod x app来添加app应用程序的可执行权限然后可以直接执行app。后台运行执行有些应用程序可以在后台运行这意味着它们不会占据终端的控制而是在后台执行。一种常用的方法是在应用程序名称后面添加符号。例如firefox 命令将在后台启动Firefox浏览器。程序启动器执行在某些Linux发行版中还可以使用程序启动器来执行应用程序。程序启动器是一个图形界面工具可以通过点击图标或从应用程序菜单中选择来执行应用程序。这种方法特别适用于图形界面应用程序。传递参数执行如果需要向应用程序传递参数可以在程序的文件名后面添加这些参数。例如./program arg1 arg2其中arg1和arg2是程序所需的参数。快捷键执行在命令行中运行程序时可以使用一些快捷键来方便操作。例如CtrlC用于中断当前正在运行的程序CtrlZ用于暂停当前正在运行的程序并将其放入后台fg用于将后台暂停的程序切换到前台bg用于将后台暂停的程序继续在后台执行。总结来说Linux中命令的执行方式和应用程序的执行方法多种多样可以根据实际需求选择合适的方式来执行程序。同时了解并掌握这些方法和技巧可以提高在Linux环境下的工作效率和灵活性。注意只要没有加入PATH路径即使是执行当前路径下的可执行程序也要加路径绝对路径和相对路径都可以一般当前程序下用相对路径./xx即可。