0
点赞
收藏
分享

微信扫一扫

嵌入式Linux学习笔记

扒皮狼 2022-01-13 阅读 55

Linux

Linux安装

安装文档

Linux系统目录结构

目录名称解释
/binBinaries,这个目录存放着最经常使用的命令。
/boot这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
/devDevice,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。该目录下的/null目录等价于一个只写文件,并且所有写入它的内容都会永远丢失,而尝试从它那儿读取内容则什么也读不到,但/dev/null对命令行和脚本都非常的有用,相当于windows中的回收站。
/etcEtcetera,这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home用户的主目录,新增用户账号时,用户的目录都存放在此目录下。
/libLibrary的缩写,系统使用的函数库的目录,这个目录里存放着系统最基本的动态链接共享库,其作用类似于Windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库。
/lost+found这个目录一般情况下是空的,当系统非法关机或产生错误后,会将一些遗失的命令放置于此目录。
/medialinux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux会把识别的设备挂载到这个目录下。
/mnt光盘默认挂载点。
/optoptional,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下,默认是空的。
/procProcesses,/proc是一种伪文件系统,即虚拟文件系统,存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息,这个目录的内容不在硬盘上而是在内存里。
/root该目录为系统管理员,也称作超级权限者的用户主目录。
/sbinSuperuserBinaries超级用户的二进制文件,这里存放的是系统管理员使用的系统管理程序。
/srv该目录存放一些服务启动之后需要提取的数据。
/sys该目录下安装了内核中新出现的一个文件系统sysfs。sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
/tmptemporary,这个目录是用来存放一些临时文件的。
/usrunix shared resources,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
/varvariable,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下,包括各种日志文件。
/run是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。

Linux常用命令

adduser命令 – 创建用户

adduser atreus #增加用户

apt-get命令 – 安装软件

sudo apt-get remove gcc #卸载gcc
#对于Linux中的[Y/n],回车即表示选择Y,输入n表示选择n

cat命令 – 在终端设备上显示文件内容

cat -n file.txt #查看文件内容,同时显示行号
cat /dev/null > file.txt #清空文件内容
#concatenate[kɔn'kætəneit]

chmod命令 – 改变文件或目录权限

chmod u+r hello.c #对属主增加读权限
chmod g+w hello.c #对组用户增加写权限
chmod o+x hello.c #对其他用户增加执行权限
chmod a-r hello.c #对所有用户去掉读权限
chmod 655 hello.c #r:4、w:2、x:1

clear命令 – 清除屏幕

clear #清空屏幕

cp命令 – 复制文件或目录

cp file1.txt file2.txt file3.txt dir/ #多个文件复制到目录dir中
cp -r dir1/*.c dir2/ #将目录/dir1/中的所有.c文件复制到目录dir2中

deluser命令 – 删除用户

deluser atreus #删除用户

diff命令 – 比较文件的差异

diff test1.c test2.c -y -W 100
#-y:并列显示
#-w 100:在使用-y参数时,指定栏宽100
#"|"表示两行不同,"<"表示前面多一行,">"表示后面多一行

在这里插入图片描述
dpkg命令 – 管理deb包

dpkg -i code_1.63.2-1639562499_amd64.deb #安装软件包
#dpkg是Debian package的简写,是为Debian专门开发的套件管理系统,用于软件的安装、更新和移除
#所有源自Debian的Linux的发行版都使用dpkg,例如Ubuntu

echo命令 – 输出字符串或提取Shell变量的值

echo $PATH #查看PATH环境变量

file命令 – 识别文件类型

file test.c #查看文件类型

find命令 – 查找和搜索文件

find dir/ -name *.c #查找指定目录下的.c文件

gedit命令 – GNOME桌面的文本编辑器

gedit file.txt #使用gedit打开文件

grep命令 – 强大的文本搜索工具

grep str dir/text.txt #在指定文件中进行字符串模式匹配

在这里插入图片描述
ifconfig命令 – 显示或设置网络设备

ifconfig

在这里插入图片描述
kill命令 – 杀死进程

kill -9 4428 #以SIGKILL信号终止PID为4428的进程

ln命令 – 为文件创建链接

ln -s dir/ link-dir #为目录建立符号链接

ls命令 – 显示指定工作目录下的内容及属性信息
{ L i n u x 四 大 类 文 件 { − : 普 通 文 件 d : 目 录 文 件 c / b : 设 备 文 件 l : 链 接 文 件 L i n u x 三 小 类 文 件 { − s : 共 享 文 件 − f : 堆 栈 文 件 − p : 管 道 文 件 \begin{cases} Linux四大类文件\begin{cases} -:普通文件\\ d:目录文件\\ c/b:设备文件\\ l:链接文件\\ \end{cases}\\ Linux三小类文件\begin{cases} -s:共享文件\\ -f:堆栈文件\\ -p:管道文件\\ \end{cases} \end{cases} Linuxdc/blLinuxsfp
mkdir命令 – 创建目录

mkdir -m 666 dir/ #以666权限创建目录
mkdir -p dir1/dir2/dir3 #递归创建多级目录

mv命令 – 移动或改名文件

mv file1.txt file2.txt file3.txt -t dir/ #将三个文件同时移动到目标目录
mv file1.txt file2.txt #文件重命名

ping命令 – 测试主机间网络连通性

ping -c 5 120.78.188.0 #连续ping五次

ps命令 – 显示进程状态

ps -ef
#UID:进程拥有者
#PID:进程ID
#PPID:父进程ID
#C:进程所占CPU百分比
#STIME:进程开始时间
#TTY:该进程在哪个终端上运行,若与终端无关显示'?'。若为pts/0等,则表示由网络连接的主机进程
#TIME:进程启动到现在的时间
#CMD:命令的名称和参数

pwd命令 – 显示当前路径

pwd #默认显示逻辑路径
#-L:logical首字符缩写,表示显示逻辑路径(忽略软连接文件),取pwd系统环境变量的值
#-P:physical首字符缩写,表示显示物理路径时如果当前目录路径时软链接文件,则会显示软连接文件对应的源文件
#注意区分[逻辑路径-物理路径]与[绝对路径-相对路径]

在这里插入图片描述
rm命令 – 移除文件或目录

rm -r dir/ #递归删除,常用于目录
rm -i file.txt #删除前询问,防止误删

rmdir命令 – 删除空目录

rmdir dir #直接删除空目录
rmdir -p dir #递归删除非空目录

su命令 – 切换用户

su - root #切换至root用户

sudo命令 – 以系统管理者的身份执行指令

sudo ./test #以root身份执行文件

systemctl命令 – 管理系统服务

systemctl start ssh #启动ssh服务
#在主机中开启了openssh服务,那么就对外开放了远程连接的接口
#openssh的服务端:sshd
#openssh的客户端:ssh
#ssh---------->sshd
#client        server

在这里插入图片描述
tar命令 – 打包和备份的归档工具
{ 必 选 { − c : 建 立 压 缩 文 档 − x : 解 压 − t : 查 看 内 容 − r : 向 压 缩 归 档 文 件 末 尾 追 加 文 件 − u : 更 新 原 压 缩 包 中 的 文 件 可 选 { − z : 有 g z i p 属 性 的 − j : 有 b z 2 属 性 的 − Z : 有 c o m p r e s s 属 性 的 − v : 显 示 所 有 过 程 − O : 将 文 件 解 开 到 标 准 输 出 − f : 指 定 文 件 , 这 个 参 数 必 选 且 为 最 后 一 个 参 数 \begin{cases} 必选\begin{cases} -c:建立压缩文档\\ -x:解压\\ -t:查看内容\\ -r:向压缩归档文件末尾追加文件\\ -u:更新原压缩包中的文件\\ \end{cases}\\ 可选\begin{cases} -z:有gzip属性的\\ -j:有bz2属性的\\ -Z:有compress属性的\\ -v:显示所有过程\\ -O:将文件解开到标准输出\\ \end{cases}\\ -f:指定文件,这个参数必选且为最后一个参数 \end{cases} cxtruzgzipjbz2ZcompressvOf

tar -zcvf test.tar.gz test.c #压缩test.c文件为test.tar.gz
tar -ztvf test.tar.gz #列出压缩文件内容
tar -zxvf test.tar.gz #解压文件

touch命令 – 创建文件

touch file.txt #创建空文件

tree命令 – 以树状图列出目录内容

tree -L 1 #只显示第一层问案件及目录

在这里插入图片描述

编辑器vim

底线命令

底线命令对应操作
i,I进入输入模式:i为从目前光标所在处输入;I为在目前所在行的第一个非空格符处开始输入
a,A进入输入模式:a为从目前光标所在的下一个字符处开始输入;A为从光标所在行的最后一个字符处开始输入
o,O进入输入模式:o为在目前光标所在的下一行处输入新的一行;O为在目前光标所在的上一行处输入新的一行
r,R进入取代模式:r只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下ESC为止
:w将编辑的文件写入硬盘
:q离开
:q!强制离开不存储
:wq存储后离开
ZZ保存并退出
ZQ不保存强制退出
:w[filename]另存新文档
:v[filename]将目标文档写至光标后
:!command执行shell命令
dd剪切游标所在行
yy复制游标所在行
p,Pp为将已复制的数据粘贴在光标下一行,P则粘贴在游标当前行并将当前行下移
u撤销
.重复上一操作
gg移到第一行
G移到最后一行
nGn为数字,移动到这个档案的第n行
/word向光标之下寻找一个名称为 word 的字符串
?word向光标之上寻找一个字符串名称为 word 的字符串
n,Nn重复前一搜索,N重复前一搜索的反搜索
0移至行首
$移至行尾
x,X在一行字当中,x为向后删除一个字符,相当于[del]; X为向前删除一个字符,相当于[backspace]
:1,$s/word1/word2/g从第一行到最后一行寻找word1字符串,并将该字符串取代为word2
d鼠标选中后删除选中行

编译器gcc

gcc概述

gcc是GNU计划提供的编译器

交叉编译

交叉编译是在宿主机上生成目标机上的可执行代码
1.预处理:头文件展开(#include)、宏替换(#define)、条件编译(#ifdef)
2.编译:检查语法、转成汇编、生成汇编文件(.s/.S)
3.汇编:编译汇编文件、生成目标文件(.o)
4.链接:链接所有目标文件、生成符号表、生成可执行文件

gcc编译选项

1.-ogcc hello.c -o hello可执行文件重命名,生成ELF文件
2.-Egcc -E hello.c > hello.i预处理
3.-Idirgcc -I./mm/nn hello.c -o hello指定头文件第三方搜索路径
4.-Sgcc -S hello.c生成汇编文件

举报

相关推荐

0 条评论