300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 嵌入式Linux基本命令及常用命令

嵌入式Linux基本命令及常用命令

时间:2022-09-29 05:20:18

相关推荐

嵌入式Linux基本命令及常用命令

一、Linux系统中文件层次结构

/ 为根目录

/bin 存放命令的:bin是二进制英文的缩写

/boot 系统启动装载引导程序:存放系统启动时需要用到的程序

/dev:包含了所有Linux系统中使用的外设

/etc:存放了系统管理时要用到的各种配置文件

/lib:存放系统动态链接共享库

/home:普通用户主目录(家目录)

/root:根用户(超级用户)的主目录

二、Linux基本命令

1.cd 跳转指令

cd +路径

绝对路径:

cd /mnt/hgfs 以/(根目录)开头的路径

相对路径:

cd share

. 当前的工作目录

.. 上一级目录

2.ls 列表指令

ls -a (all)

ls -l

3.cp 复制指令

cp 带复制路径的文件名 你要复制到哪里去

cp -r 复制文件夹

ps:补全键 Tab

4.mv 移动指令 (剪切)

mv 带移动路径的文件名 你要移动到哪里去

mv 可以也可以用做重命名

5.mkdir(make directory 创建目录)

mkdir -p 级联创建文件夹

6.rm remove 删除指令

rm + 文件名

rm + -rf +目录名

7.touch 创建文件或更新时间戳

8.cat指令 显示文件的内容

cat -s:多个空行和并成一个空行

cat -b:加行号显示

9.head命令和tail命令

head -n 文件名 :表示查看文件前n行

tail -n 文件名 :表示查看文件倒数n行

10.gcc 命令

gcc -o <file> 表示输出文件名为file,不能和源文件名相同

gcc 1.c -o 1

gcc 1.c

gcc 1.c -o 1 -Wall:加了-Wall会提示语法错误

gcc -E -o 只预处理,不会编译、汇编、链接

gcc -E -o hello.i hello.c

gcc -S -o 只编译,不会汇编、链接

gcc -S -o hello.s hello.i

gcc -c -o 编译和汇编,不会链接

gcc -c -o hello.o hello.s

gcc -o hello hello.o 输出可执行文件

小结:

1)输入文件的后缀名和选项共同决定gcc到底执行哪些操作

2)在编译过程中,除非使用了-E、-S、-c选项(或者编译出错阻止了完整的编译过程)

否则最后的步骤都是链接

ps:链接就是将汇编生成的OBJ文件、系统库的OBJ文件、库文件链接起来,最终生成可以在特定平台运行的可执行程序。

crt1.o、crti.o、crtbegin.o、crtend.o、crtn.o是gcc加入的系统标准启动文件,对于一般应用程序,这些启动是必需的。

-lc:链接libc库文件,其中libc库文件中实现了printf等函数。

gcc -v -nostdlib -o hello hello.o 会提示因为没有链接系统标准启动文件和标准库文件,而链接失败。

-nostdlib选项常用于裸机/bootloader/linux内核等程序,因为它们不需要启动文件,也不需要标准库文件。

一般应用程序才需要启动文件和标准库文件.

sudo ln -s /usr/lib/x86_64-linux-gnu/libmpfr.so.6 /usr/lib/x86_64-linux-gnu/libmpfr.so.4

arm gcc (在ARM环境下编译)

./a.out :表示执行程序

Makefile文件

1、当”目标文件“不存在 或 某个依赖文件比目标文件”新“ ,则执行”命令“

2、Makefile的语法

a.通配符:%.o

$@ 表示目标文件(即.o输出文件)

$< 表示第一个依赖文件

$^ 表示所有的依赖文件

b.假想目标: .PHONY: (防止有同名文件影响make的执行)

c.即时变量、延时变量,export

简单变量(即时变量):

A := xxx #A的值即刻确定,在定义时即确定(即时变量)

B = xxx #B的值使用到时才确定(延时变量)

?= xxx #延时变量,如果是第一次定义才起效,如果在前面该变量已定义则忽略

+= xxx #附加,它是即时变量还是延时变量取决于前面的定义

A := $(C)B = $(C)C = abcall:@echo A = $(A)@echo B = $(B)#输出A = B = abc#ps: $() 表示引用变量

3、Makefile函数

a.$(foreach var,list,text)

A = a b cB = $(foreach f, $(A), $(f).o)#输出a.o b.o c.o

b.$(filter pattern...,text) #在text中取出符合pattern格式的值

$(filter-out pattern...,text) #在text中取出不符合pattern格式的值

A = a b c d/B = $(filter %/, $(A))C = $(filter-out %/, $(A))#输出B = d/C = a b c

c.$(wildcard pattern) #pattern定义了文件名的格式,wildcard取出其中存在的文件

1、files = $(wildcard *.c)#输出#会打印此文件夹下所有后缀为.c的文件名2、 file = a.c b.c c.cfiles = $(wildcard $(file))#输出#会打印Makefile所在文件夹下与file同名的文件

d.$(patsubst pattern, replacement, $(var))#从列表中取出每一个值,如果符合pattern,则替换为replacement

file = a.c b.c c.cfiles = $(patsubst %.c, %.o, $(file))#输出#把传入形参(file)中后缀为.c的文件全部替换成后缀为.o的文件files = a.o b.o c.o

4.Makefile实例

a.改进:支持头文件依赖

gcc -M c.c //打印出依赖

gcc -M -MF c.d c.c //把依赖写入文件c.d

gcc -c -o c.o c.c -MD -MF c.d //编译c.o,把依赖写入文件c.d

b.添加CFLAGS

c.分析裸板Makefile

11.pwd 命令

显示当前所在位置

12.vi 命令

命令行模式:vi + 文件名

插入模式: 进入界面按(A a,I i,O o)一般为i

a:光标后移一位

i:光标位置不变

o:光标下插入新的行

A:把光标移到所在行的最后面

I:把光标移到所在行的最前面

O:光标上插入新的行

底航模式:编辑完成后按esc

:q:退出未修改的文件

:q!:强制退出,不保存修改部分

:w:保存文件

:w FILE:不退出,当前文件另存为别的文件名

:x:保存并退出

:r FILE:把FILE中的内容读到当前文件中

vi中复制与黏贴

y0:复制光标至行首的字符

y$:复制光标至行尾的字符

rang y:1,$y(表示复制全文)(可用于复制特定行)

[N]dd:剪切(N代表几行)

[N]yy:复制

小写p:黏贴到当前光标的下一行

大写P:黏贴到当前光标的上一行

u:撤销

光标命令

h:相当于左(H在左边)

j:相当于下 (J很像↓)

k:相当于上

l:相当于右 (I在右边)

:[N]:光标跳转到某一行

1G:跳掉第一行

G:跳到最后一行

:set nu:加行号

:set nonu:去掉行号

查找命令

/ + 想要查找的函数

n:往下查找下一个

N:往上查找下一个

ps:查找命令支持正则表达式

替换命令

:/s/old/new (表示old替换为new)

:.,$s/ole/new (表示从当前位置到文件末尾把第一个old替换为new)

:.,$s/ole/new/g (表示从当前位置到文件末尾把所有old替换为new)

:1,$s/ole/new/g (表示全文的old替换为new) 等同于 :%s/ole/new/g

三、linux常用命令

1、find [路径] [类型] [名称] (用于查找文件)

find . -name "*.txt" (找到当前路径下所有后缀为.txt的文件)

find . -mtime -2 (找到当前路径下所有2天之内修改过的文件)

2、grep [选项] [查找模式] [文件名]

grep -rn "abc" * ( -r(递归查找) -n(显示行号) 表示递归查找当前目录下文件中有"abc"字符串的文件)

-w 全字匹配

3、file [文件名] (识别文件类型)

file ~/.bashrc 为ASCII 编码的text类型

file ~/.vimrc 为UTF-8 Unicode 编码的text类型

file ~/Pictures/* 如图形文件JPEG/PNG/BMP格式

file [文件名] 为directory表明这是一个目录

file /bin/pwd 出现ELF 64-bit LSB,即为ELF格式的可执行文件

file /dev/* 出现character special(字符设备文件) block special(块设备文件)

4、which 和 whereis [命令名/应用程序名] (查找命令或应用程序所在位置)

举例:

which pwd 定位到/bin/pwd

which gcc 定位到/usr/bin/gcc

whereis 查找到可执行程序的位置和手册页的位置

5、常用压缩命令

单个文件解压缩使用 gzip 和 bzip2

多个文件和目录使用 tar

gzip常用选项

-l(list) 列出压缩文件的内容 (bzip2没有这个选项)

-k(keep) 在压缩文件解压时,保留输入文件

-d(decompress) 将压缩文件进行解压缩

1)查看文件内容 gzip -l [文件名]

2)解压文件 gzip -kd [文件名]

3)压缩文件 gzip -k [文件名]

ps:如果gzip不加任何选项,此时为压缩,压缩完文件会生成后缀为.gz的压缩文件,并删除原有的文件

若文件名不同,解压出来的大小也不一样

一般情况下,小文件使用gzip压缩,大文件使用bzip2压缩

多文件tar打包,gzip压缩 (bzip2压缩只需要把z改成j就行了)

tar -czvf [压缩文件名] [目录名]

ps: tar -czvf 和 tar czvf效果是一样的

查看

tar tvf [压缩文件名]

解压

tar xzvf [压缩文件名]

tar xzvf [压缩文件名] -C [指定目录]

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。