liunx部分常用命令及安装软件操作
主要内容 :
①什么是嵌入式开发
②liunx 的由来
③liunx 的系统层次
④liunx 的目录结构
⑤命令提示符
⑥liunx 的基本命令
一. 什么是嵌入式?什么是嵌入式开发?
嵌入式即嵌入式系统,IEEE(美国电气和电子工程师协会)对其定义是用于控制、监视或者辅助操作机器和设备的装置,嵌入式是一种专用的计算机系统;国内普遍认同的嵌入式系统定义是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统;从应用对象上加以定义来说,嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。
嵌入式开发就是指在嵌入式的操作系统下进行开发,包括在系统化设计指导下的硬件和软件以及综合研发。除暂且分离硬件的 EDA 研发以外,侧重的就是在一定硬件条件下的系统化设计和软件研发
二.liunx 的由来
三.liunx 的系统层次
应用,内核,硬件
Linux 利用内核实现软硬件的对话。
通过系统调用的这个接口,Linux 将上层的应用与下层的内核分离,隐藏了底层的复杂性,也提高了上层应用的可移植性。
库函数利用系统调用创造出模块化的功能,
Shell 则提供了一个用户界面,并让我们可以利用 shell 的语法编写脚本,以整合程序。
四.liunx 的目录结构
树型目录结构
五:命令行提示符
打开方式
① 搜索 cmd,回车
②在要使用的目录前输入 cmd 空格,回车打开
命令行提示符的基本作用:通过命令对系统进行管理
liunx 命令提示符
jsetc@liunx:/dev$
jsetc:用户名
@分隔符,无特殊含义
linux:说明系统
:分隔符
/dev 当前所在路径
$ 普通用户权限
#管理员权限
~ 用户目录的路径
六.liunx 的基本命令
前言
- 后面一般跟随该命令的属性,可跟随多个
* 表示所有
6.1 ls
作用:显示当前所有的目录和文件
ls -a 显示所有的隐藏目录,文件
ls -l 显示当前目录和文件的所有属性
ls -al 显示所有隐藏文件或目录的属性
ls -/ 指定目录 / 查看指定,目录下的文件和 目录
ls -lt 在目录中列出文件并对最后修改日期和时间进行排序
d rwx rwx r-x 6 jsetc jsetc 4096 1 月 10 15:47 jsetc/
d: 表示当前文件的属性
b:块设备文件
s:套接字文件
p:管道文件
-: 普通文件
l: 软链接文件
c:字符设备文件
d:目录文件
rwx:三层权限,可读可写可执行,分别用 0,1 表示可或不可
最大权限:7(111) rwx
最小权限:0(000) ---
第一个 rwx :当前用户
第二个 rwx:同组用户的其他用户
第三个 rwx:其他用户
chmod 命令:修改文件,目录权限
格式:chmod 权限 目录 / 文件
例 chmod 777 jsetc
6.2pwd 命令
显示当前用户所在路径(绝对路径)
6.3 cd 命令
作用:实现指定路径
cd 路径 // 进入指定目录
路径
相对路径:从当前目录开始的路径
绝对路径:从根目录开始的路径
. 当前路径
.. 上一级路径
../.. 上一级路径的上一级路径
6.4 mkdir 命令
创建目录
mkdir 目录名
mkdir 目录 1 目录 2
6.5 sudo 命令
以管理员权限运行该命令 \ 获得管理员命令(需输入密码)
6.7 rm 命令
删除文件或目录
rm -rf 递归强制删除
rm -rf* 强制
-d --directory 删除可能仍有数据的目录 (只限超级用户)
-f --force 略过不存在的文件,不显示任何信息
-i --interactive 进行任何删除操作前必须先确认
-r/R --recursive 同时删除该目录下的所有目录层
-v --verbose 详细显示进行的步骤
--help 显示此帮助信息并离开
(慎用)
6.8 cp 命令
复制文件或目录
cp 源路径 目的路径
cp 源路径 目的路径 -r // 复制一个目录
6.9 mv 命令
移动一个目录或文件,或对其进行改名
mv 源路径 目的路径
6.10 cat 命令
查看文件中内容
cat 文件
cat -n 文件名 \\ 显示行号
6.11 su 命令
切换用户
sudo su root (普通到 root)
su 用户名 (root 到普通)
6.12 clear 命令
清屏(Ctrl+l)也可实现
6.13 tab 按键补齐
自动补齐你可能会用到的
6.14 find 文件查找
find 路径 -name 文件名
七. vim 编辑器
需下载,下载方式见后
使用方法: vim 文件名
三种模式:
①命令行模式,进入既是,不可对程序进行编辑,输入 i 进入插入模式
yy 复制
p 粘贴
nyy 复制 n 行
u 撤销
dd 剪切
ndd 剪切 n 行
gg 跳到首行
G 跳到尾行
ngg 跳到第 n 行
shift 键 + zz 退出并保存
进入方式:插入模式下按 esc 键
②插入模式:
可对代码进行编辑
③:底行模式
在命令行模式下输入 shift+:
w 保存
q 退出
wq 保存并退出
q! 不保存退出
set nu 显示行号
set nonu 取消显示行号
vsp 文件名 左右分屏打开多文件
sp 文件名 上下分屏打开多文件
八 gcc 编译器
对敲得代码进行编译,需使用命令下载
下载命令:sudo apt-get install gcc
(同理,vim 下载方式: sudo apt-get install vim)
如何使用:
gcc 文件名 -o
或
gcc 文件名 -o 新建文件
如:
gcc hello.c -o hello
(另加文件名是为了防止编译别的程序被覆盖)
运行 ./hello
8.1 gcc 编译过程
预处理
头文件展开,宏的替换,条件编译
gcc -E hello.c -o hello.i
编译
语法检查,若语法有误则报错
gcc -s hello.i -o hello.s
汇编
将上一步生成的汇编文件转换成二级制文件,但目前仍不可执行
gcc -c hello.s -o hello.o
链接 将所有的 -o 文件链接生成可执行文件
gcc hello.c -o hello
九 软件安装
注:ubunto 所有软件后缀名均为 deb
redhat 所有后缀名均为 rpm
以某个软件名举例
sl - 3.03 -17 bulid2_amd64 .deb
软件名 主版本 修订版本 架构 类型
离线安装
dpkg (不会安装依赖程序)
sudo dpkg -i 软件包名
在终端输入软件名对软件进行执行
sudo dpkg
-r 软件名 卸载软件(不完全,会保留配置文件)
-p 软件名 完全卸载软件
-l 软件名 查看软件安装状态
-L 软件名 查看该软件相关的所有路径
-s 软件名 查看更加详细的软件安装状态
在线安装
级别较高,如果安装的软件有依赖程序,这些依赖程序也会被一并安装
在线安装需预先选择软件安装源
sudo apt-get update 更新软件源
sudo apt-get install -f 更新软件依赖
sudo apt-get install 软件名 下载软件
sudo apt-get clean // 清除目录下的安装包
压缩与打包
注:目录不能被压缩,文件不能被打包
①压缩
ubuntu 提供的压缩格式:.gz .bz2 .xz
gzip/gunzip xxx.gz
bzip2/bunzip2 xxx.bz2
xz/unxz xxx.xz
压缩率:xz 最差,bzip2 最好(压的最小和压的最大)
压缩速率:xz 最快,bzip2 最慢
注:压缩,解压后文件会被替(压缩后的我不再是我)
打包(归档)
将一个目录归档成一个文件,或者将这个归档后的文件重新释放变成一个目录
1. 归档
tar -cf hello.tar hello // 将 hello 的目录打包成 tar 文件
tar -xf hello.tar // 将 hello.tar 拆成 hello 目录
2. 打包并压缩成三种格式
tar -czf tongxunlu.tar.gz tongxunlu
tar -cjf tongxunlu.tar.bz2 tongxunlu
tar -cJf tongxunlu.tar.xz tongxunlu
5. 拆包(解压)
tar -xvf 压缩包 // 万能拆包命令
tar -xvf -c 路径
(补)chmod 命令详解
修改文件权限
用法
chmod 权限 文件名
u:当前用户权限
g:同组其他用户权限
o: 其他用户权限
a:all 所有用户权限
chmod o+x 文件名 // 给其他用户加上可执行权限