c01-linux基础命令,c++编译命令

 

1.rmdir -p aa/bb 递归删除bb目录

2.rm -r aa 强制删除目录aa及其子目录

3.set nonuvi中取消行号显示

4.mkdir -p aa/bb 递归创建bb目录

5.mv移动目录或文件

6.chmod [who] [opt] [mode] 文件/目录名 

who表示对象,是以下字母中的一个或组合: u:表示文件所有者g:表示同组用户 o:表示其它用户a:表示所有用户 opt代表操作,可以为: +:添加某个权限-:取消某个权限 =:赋予给定的权限,并取消原有的权限 mode代表权限: r:可读w:可写 x:可执行 可用二进制表示如:7表示111, 6表示110例如:为同组用户增加对文件a.txt的读写权限: 

chmod g+rw a.txt 

7.export PATH=$PATH:.在环境变量后添加当前目录,终端关闭后失效

8.vi ~/.bash_profile中的环境变量(PATH)后添加:.由于在ubuntu中没有找到.bash_profile文件固用下方法

9.vi ~/.bashrc文件最后添加PATH=$PATH:.

10.liunx脚本中date显示日期,echo显示内容

如:hello.sh中:

date

echo hello

11.命令行中输入echo $PATH显示环境变量

12.cp命令

 

语法: cp [选项] 源文件或目录 目标文件或目录 

 

 

说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。

 

 

该命令的各选项含义如下:

 

 

- a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。

 

 

- d 拷贝时保留链接。

 

 

- f 删除已经存在的目标文件而不提示。

 

 

- i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。 

 

 

- p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。 

 

 

- r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。

 

 

- l 不作拷贝,只是链接文件。 

 

 

  需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名已存在,用cp命令拷贝文件后,这个文件就会被新源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用i选项。新源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用i选项。

 

 

例子:

 

 

Cp -i file1 file2              	 (将文档 file1 复制成 file2 . –i为提示确认。)	 (将文档 file1 复制成 file2 . –i为提示确认。)

 

 

cp file1 dir1               	将文档 file1 复制到目录 dir1 下,文件名仍为 file1.	将文档 file1 复制到目录 dir1 下,文件名仍为 file1.

 

 

cp /tmp/file1 .              	 将目录 /tmp 下的文档 file1复制到现行目录下,档名仍为 file1.	 将目录 /tmp 下的文档 file1复制到现行目录下,档名仍为 file1.

 

 

cp /tmp/file1 file2              将目录 /tmp 下的文档 file1现行目录下,档名为file2

 

 

cp -r dir1 dir2              	 (recursive copy) 复制整个目录.若目录 dir2 不存在,则将目录dir1,及其所有文档和子目录,复制到目录 dir2 下,新					目录名称为dir1.若目录dir2不存在,则将dir1,及其所有文档和子目录,复制为目录 dir2.	 (recursive copy) 复制整个目录.若目录 dir2 不存在,则将目录dir1,及其所有文档和子目录,复制到目录 dir2 下,新					目录名称为dir1.若目录dir2不存在,则将dir1,及其所有文档和子目录,复制为目录 dir2.

 

13.mv命令

参数有-i, -f, -b

-i, -f 使用同cp

-b覆盖文件前先对其进行备份

其具有该文件名功能

14.cat查看文件命令

15.more命令

 

 

使用方式:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
说明:类似 cat ,不过会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。
参数:-num 一次显示的行数
-d 提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声
-l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
-f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
-p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
-c 跟 -p 相似,不同的是先显示内容再清除其他旧资料
-s 当遇到有连续两行以上的空白行,就代换为一行的空白行
-u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
+/ 在每个档案显示前搜寻该字串(pattern),然后从该字串之后开始显示
+num 从第 num 行开始显示
fileNames 欲显示内容的档案,可为复数个数

 

 

16.ps命令

 

ps -ef 查看全格式的全部进程
ps -ax 查看全部进程
ps -ef|grep <进程名> 查看并筛选 跟进程名有关的进程,该进程名可以是进程的全部或者部分。

 

17.kill -9 进程号

18.正则表达式中表达符

 

^
锚定行的开始 如:'^grep'匹配所有以grep开头的行。
$
锚定行的结束 如:'grep$'匹配所有以grep结尾的行。
.
匹配一个非换行符('\n')的 字符如:'gr.p'匹配gr后接一个任意字符,然后是p。
*
匹配零个或多个先前字符 如:' *grep' (注意*前有空格)匹配所有零个或多个空格后紧跟grep的行,需要用egrep 或者grep带上 -E 选项。 .*一起用代表任意字符。
[]
匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。
[^]
匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-F和H-Z的一个字母开头,紧跟rep的行。
\(..\)
标记匹配字符,如'\(love\)',love被标记为1。
\<
锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。
\>
锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。
x\{m\}
重复字符x,m次,如:'o\{5\}'匹配包含5个o的行。
x\{m,\}
重复 字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。
x\{m,n\}
重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。
\w
匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。
\W
\w的反置形式,匹配一个或多个非单词 字符,如点号句号等。
\b
单词锁定符,如: '\bgrep\b'只匹配grep。 [1]
用于egrep和 grep -E的元字符扩展集
+
匹配一个或多个先前的 字符。如:'[a-z]+able',匹配一个或多个小写字母后跟able的串,如loveable,enable,disable等。
?
匹配零个或一个先前的字符。如:'gr?p'匹配gr后跟一个或没有字符,然后是p的行。
a|b|c
匹配a或b或c。如:grep|sed匹配grep或sed
()
分组符号,如:love(able|rs)ov+匹配loveable或lovers,匹配一个或多个ov。
x{m},x{m,},x{m,n}
作用同x\{m\},x\{m,\},x\{m,n\}

 

 

 

19.grep使用简单实例

 

$ ls -l | grep '^a'
通过管道过滤ls -l输出的内容,只显示以a开头的行。
$ grep 'test' d*
显示所有以d开头的文件中包含test的行。
$ grep 'test' aa bb cc
显示在aa,bb, cc文件中匹配test的行。
$ grep '[a-z]\{5\}' aa
显示所有包含每个 字符串有5个连续小写字符的字符串的行。
$ grep 'w\(es\)t.*\1' aa
如果west被匹配,则es就被 存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着另外一个es(\1),找到就显示该行。如果用egrep或grep -E,就不用"\"号进行转义,直接写成'w(es)t.*\1'就可以了。

 

20.g++ 参数

-c 编译(compile)生成.o文件

-o 生成可执行文件名

-l 库名(小写L)

-L库文件路径

 

 

 

 

 

 

 

 

 
### 配置aarch64-v01c01-linux工具链以使用fsck工具 对于配置适用于aarch64架构Linux系统的工具链并安装`fsck`工具,操作涉及几个方面。通常情况下,在目标平台上直接获取预构建的二进制文件是最简便的方法之一;然而,如果需要从源码编译,则需确保环境已正确设置。 #### 设置交叉编译环境 为了使能对特定硬件平台的支持,比如这里提到的aarch64架构,首先要确认已经拥有合适的交叉编译器套装。假设当前使用的工具链名称为`aarch64-v01c01-linux-gcc`,那么应当将其路径加入到PATH环境中以便后续命令能够识别该编译器: ```bash export PATH=/path/to/toolchain/bin:$PATH ``` 此步骤确保了之后执行的所有编译过程都将调用正确的GCC版本[^1]。 #### 获取源代码包 接着是从官方仓库或者其他可信资源下载e2fsprogs项目(它包含了多个用于管理ext2/ext3/ext4以及exFAT文件系统的实用程序),因为其中就含有`fsck.exfat`这个组件。可以采用如下方式克隆Git库: ```bash git clone https://github.com/exfatprogs/exfatprogs.git cd exfatprogs ``` 这一步骤提供了必要的源代码基础,使得能够在本地进行定制化的编译工作。 #### 编辑Makefile或CMakeLists.txt 由于默认配置可能并不支持跨平台编译选项,因此有必要调整项目的构建脚本——通常是修改`Makefile`或者是`CMakeLists.txt`文件中的某些参数来适应新的需求。具体来说就是指定宿主机与目标机的信息,并指明所要利用的交叉编译工具前缀名(`CC=aarch64-v01c01-linux-gcc`)等细节。 #### 执行编译流程 完成上述准备工作后就可以正式开始编译进程了。进入解压后的源目录下运行相应的make指令即可触发整个编译链条的动作: ```bash ./autogen.sh ./configure --host=aarch64-v01c01-linux-gnu --prefix=/usr/local/aarch64-exfat-tools CC=aarch64-v01c01-linux-gcc CXX=aarch64-v01c01-linux-g++ make && make install DESTDIR=$(pwd)/output/ ``` 通过这种方式不仅完成了针对ARM64体系结构优化过的可执行文件生成任务,同时也将它们安置到了相对独立的位置上方便日后部署至实际设备当中去。 #### 将工具复制到开发板 一旦成功创建了所需的二进制文件,最后一步便是把这些新产生的工具传输给远端的目标机器。可以通过SCP协议或者直接挂载网络驱动等方式实现这一点。例如,若SD卡对应的设备节点名为/dev/mmcblk0,则可以在开发板终端内输入以下命令来进行格式化处理: ```bash scp output/usr/local/aarch64-exfat-tools/sbin/fsck.exfat root@your_device_ip:/tmp/ /tmp/fsck.exfat /dev/mmcblk0p1 ``` 以上即是如何基于自定义的aarch64-v01c01-linux工具链来准备和应用`fsck`工具的大致方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值