嵌入式linux学习(三):嵌入式编程基础

部分工具常用命令

一、linux终端下基本命令

文件操作命令

1、’$ ls’
-a 显示隐藏文件
-l以列表形式显示文件信息
-h配合-l显示文件大小
(ls通配符的使用,*代表任意多字符;?代表一个字符,至少一个;[]表示可以匹配字符组中的任意一个;[abc]表示匹配abc中的任意一个;[a~f]匹配a~f中的任意一个字符)

2、’$ cd ‘
~ 切换到家目录
.保留当前目录不变
..切换到上层目录
-在最近的两次工作目录来回切换

3、’$ touch’ 创建文件

4、’$ mkdir’ 创建文件夹
-p可以递归创建目录
eg:$ mkdir -p a/b/c/d
(linux中当前目录下,文件和目录是不能重名的)

5、’$ rm’ 删除文件
-f强制删除,忽略不存在的文件无需提示
-r递归删除目录下的内容,删文件必须加改参数
(删除文件后不可恢复,因此,谨慎使用)

6、’$ tree’ 以树状图列出文件目录结构
(需要安装tree软件包才能使用,命令:’$ sudo apt install tree’)

7、’$ cp’复制文件 ‘cp 源文件 目标文件’
-i覆盖文件前提示
-r递归复制目录下的内容

8、’$ mv’移动文件 ‘mv 源文件 目标文件’
-i覆盖文件前提示
-r递归剪切目录下的内容

9、’$ cat’查看文件内容
-b对非空输出行编号
-n对输出的所有行编号

10、’$ more’分屏显示

11、’$ grep’ 文本搜索(正则表达式)
-n显示匹配及行号
-v显示不包含匹配文本的所有行
-i忽略大小写
(常用的一些模式查找:^a行首,搜索以a开头的行;ke$行尾,搜索以ke结尾的行;……)

12、’$ echo 文字内容’ 在终端中显示参数指定的文字,通常会和重定向联合使用

13、’$ >和>>’重定向 将本应显示到终端上的内容输出/追加到指定文件中
‘>’ 表示输出,会覆盖文件内容
‘>>’表示追加,会将内容追加到已有文件末尾
(linux允许将命令执行结果重定向到一个文件)
eg: ‘$ ls -lh > a’ 把显示的内容输入到文件a中(覆盖)
‘$ echo hello >> b’ 把hello输入到文件b中(追加)
使用echo和重定向可以创建文件,并在文件刚创建的时候将指定的内容输入

14、’管道|’linux允许将一个命令的输出通过管道作为另一个命令的输入,左端写,右端读,
常和more以及grep联合使用
eg: ‘$ ls -alh | more ‘

远程管理常用命令

1、’$ shutdown’ 关机
-r重启
-c取消
‘$ shutdown +10’ 10min后关机

2、’$ ifconfig’ 查看/配置网卡信息

3、’$ ping ip’ 127.0.0.1被称为本地回环,回环地址一般用来测试本地网卡是否正常

4、’$ ssh [-p port] 用户名@ip’ 远程登录

5、’$ scp [-p port] 文件名或路径 用户名@ip:文件名或路径’
eg:

1
2
3
4
把当前目录下的0.1py文件复制到远程家目录下的Desktop下 
$scp -p 23 01.py user@remote:Desktop/01.py
把远程家目录下的Desktop/01.py文件复制到当前目录下的01.py
$scp -p 23 user@remote: Desktop/01.py 01.py

用户权限的相关命令

‘$ls -l’可以查看文件夹下文件的详细信息,从左到右依次是
权限 第一个字符如果是 d 表示目录
硬链接数 通俗的讲,就是有多少种方式,可以访问当前目录/文件
拥有者 家目录下文件/目录的拥有者通常都是当前用户
在linux中,很多时候,会出现组名和用户名相同的情况
大小
时间
名称

1、’$ chomd +/-rwx 文件名|目录名’ 修改用户/组对文件/目录的权限
·加上-R可以递归修改文件权限
·chomd在设置权限时,可以简单的使用三个数字分别对应拥有者/组 和其他用户的权限
其中的对应关系如下:
r—-4
w—-2
x—-1
这样在修改文件|目录权限时,就可以精确到拥有者/组 和其他用户的权限
eg:

1
2
递归修改文件权限,拥有者rwx,组rw-,其他用户r-x
$chomd -R 765 文件名 组名

2、’$ groupadd 组名’ 添加组
‘$ groupdel 组名’ 删除组
‘$ cat/etc/group’ 确认组信息
‘$ chgrp 组名 文件/目录名’ 修改文件/目录的所属组
·组信息保存在/etc/group文件中
·/etc目录是专门用来保存系统配置信息的目录

3、’$ useradd -m -g 组 新建用户名’ 添加新用户
-m自动建立用户家目录
-g指定用户所在的阻,否则会建立一个和用户名同名的组

4、’$ passwd 用户名’ 设置用户密码
如果是普通用户,直接用passwd可以修改自己的账户密码

5、’$ userdel -r 用户名’ 删除用户 -r会自动删除用户家目录

6、’$ cat /etc/passwd|grep 用户名’ 确认用户信息
·新建用户后,用户信息会保存在/etc/passwd文件中
·创建用户是,如果忘记添加-m选项指定新用户的家目录,,最简单的方法就是删除用户再重新创建
·创建用户时,默认会创建一个和用户名同名的组
·用户信息保存在/etc/passwd文件中

7、’$ id [用户名]’ 查看用户UID和GID信息

8、’$ who’ 查看当前所有登录的用户列表

9、’$ whoami’ 查看当前登录用户的账户名

10、’$ usermod -g 组 用户名’ 修改用户的主组(passwd中的GID)
‘$ usermod -G 组 用户名’ 修改用户的附加组
‘$ usermod -s /bin/bash’ 修改用户登录shell为bash
默认使用usermod添加用户是没有权限使用sudo以root身份执行命令的,可以使用以下命令将用户添加到sudo附加组中
‘$ usermod -G sudo 用户名’

11、’$ which 命令’ 可以查看执行命令所在的位置(cd终端命令是内置在系统内核中的,没有独立文件,因此使用which无法找到cd命令的位置)
eg:

1
2
3
4
5
6
$ which ls
# 输出
# /bin/ls
$ which useradd
# 输出
# /usr/sbin/useradd

12、’$ su -用户名’ 切换用户,并且切换目录 使用-可以切换到家目录,否则保持位置不 变
su不接用户名,则可以切换到root。root初始必须要先设置密码才能登录,设置代码:

1
$sudo passwd root

‘$ exit’退出当前登录账户

系统信息相关命令

1、’$ data’ 查看系统时间

2、’$ cal ‘ 查看日历
-y选项可以查看一年的日历
3、’$ df -h’ disk free 显示磁盘剩余空间
‘$ du -h[目录名]’ disk usage 显示目录下的文件大小
-h以人性化的方式显示文件大小
4、’$ ps aux’ process status 查看进程的详细状况
·ps默认只会显示当前用户通过终端启动的应用程序
·-a显示终端上的所有进程,包括其他用户的进程
·-u显示进程的详细状态
·-x显示没有控制终端的进程

5、’$ top’ 动态显示运行中的进程并且排序
·q退出top

6、’$ kill[-9]进程代号’ 终止指定代号的进程,-9表示强行终止
·使用kill命令时,如果终止以root身份开启的进程,则可能导致系统崩溃

其他命令

1、’$ find[PATH] -name “.py’ 查找指定路径下扩展名是.py的文件,包括子目录
·如果省略路径,表示在当前文件夹下查找
·find命令可使用通配符
eg:

1
$ find -name '1*'

2、’$ ln -s 被链接的源文件 链接文件’ 建立文件的软链接,类似于windows下的快捷方式
·没有-s,则建立的是一个 硬链接文件 (两个文件占用相同大小的磁盘空间)
·源文件要使用绝对路径,不能使用相对路径,这样可以方便移动文件后,仍然能够正常使用
·在linux中文件名和文件的数据是分开存储的,只有文件的硬链接数==0才会被删除。使用’$ ls -l’可以查看文件的硬链接数量

3、’$ tar -cvf 打包文件.tar 被打包文件/路径’ 打包文件
‘$ tar -xvf 打包文件.tar’ 解包文件
-c 生成档案文件,创建打包文件
-x 解开档案文件
-v 列出归档解档的详细过程,显示速度
-f 指定档案文件名称,f后面一定是.tar文件,所以必须放在选项最后

4、’$ tar -zcvf 打包文件.tar.gz 被压缩文件/路径…’
‘$ tar -zxvf 打包文件.tar.gz’ 解压缩文件
‘$ tar -zxvf 打包文件.tar.gz -C 目标路径’ 解压缩到指定路径
·tar与gizp命令结合可以使用实现文件打包压缩,tar只负责打包,用gizp压缩tar打包后的文件,其扩展名一般是xxx.tar.gz
·在tar命令中有一个选项-z可以调用gzip
·-C解压缩到指定目录,注意要压缩的目录必须存在

5、’$ tar -jcvf 打包文件.tar.bz2 被压缩的文件/路径…’ 打包压缩,和gizp用法一样

6、’$ sudo apt remove 软件名’ 卸载软件

文件信息


1、passwd 文件
用户信息保存在/etc/passwd文件中,由6个分好组成的7个信息,分别是
1)用户名
2)密码(x,表示加密的密码)
3)UID(用户标识)
4)GID(组标识)
5)用户全名或本地账号
6)家目录
7)登录使用的Shell,就是登录之后,使用的终端命令,Ubuntu默认是dash

2、bin和sbin
·在linux中,绝大多数可执行文件都是保存在/bin、/usr/bin、/usr/sbin
·/bin(binary)是二进制执行文件目录,主要用于具体应用
·/sbin(system binary)是系统管理员专用的二进制代码存放目录,主要用于系统管理
·/usr/bin(user commands for applications)后期安装的一些软件
·/usr/sbin(super user commands for applications)超级用户的一些管理程序


二、文本编辑器vi的使用

vi是linux系统下一款最基础的文本编辑器。由于我是装载的虚拟机,因此在不同操作系统之间切换十分方便,一般都是在windows下编写代码,然后使用scp协议把文件传送到linux下,所以平时只用到了它的一些基本命令。而且网上在这方面介绍的资料很多,这里就不一一介绍了。

三、编译交叉工具

编译器GCC

调试器GDB

连接器

四、Makefile