嵌入式操作实践中遇到的问题
1.gcc编译器用不了
利用gedit编写好代码后需要用gcc编译,但编译不了,原因可能是由于第一次用没有安装gcc。解决办法:用apt-get install gcc(如果用的不是高级权限,要在开头加sudo)
2.studio.h:No such file or directory解决方法
gcc安装后仍然编译不了,出现下面的情况:
一直怀疑是自己的代码写错了,但反复都是出现这个情况,所以上网搜索了解决方法,试了很多次最终成功了。
原因可能是安装ubantu时有些地方没有设置安装好,缺少libc6-dev
依次输入命令sudo apt-get update
sudo apt-get upgrade
sudo apt-get install libc6-dev
装完后就能使用了
期间我还遇过其他问题,比如安装build-essential时出现无法获得锁的情况
当时没有截图,所以借用的图。
要使用如下命令解除占有:
sudo rm/var/lib/dpkg/lock-frontend
如果是/var/lib/dpkg/lock-open(11:资源暂时不可用)
则使用如下命令解除占有:
sudo rm/var/lib/dpkg/lock
3.绝对路径相对路径
绝对路径:从根目录开始
相对路径:从当前路径开始的路径
举例:home目录下的0303目录,kk目录,hello.c文件
将hello.c拷贝到mm目录(相对路径):cp hello.c mm 【当前为home目录】
将mm目录拷贝到0303目录(绝对路径):cp -r /home/mm /home/0303
4.拷贝到一个目录下的文件如何拷贝回来?
使用绝对路径拷贝
5.如何修改权限?
使用chmod
例子chmod u-w hello.c (u是当前用户,w是可写权限,hello.c为要修改文件)
r的权重为4,w的权重为2,x的权重为1
另一种方法:chmod 655 hello.c来实现修改权限
6.20个自学命令
①find:用来在指定目录下查找文件/目录。
如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
-path p : 路径名称符合 p 的文件
-name name:文件名称符合 name 的文件
find /home/yangweiran -name demo.c在yangweiran目录下虚招名字为demo.c的文件
-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
-type c : 文件类型是 c 的文件。d: 目录c: 字型装置文件b: 区块装置文件p: 具名贮列f: 一般文件l: 符号连结s: socket
-pid n : process id 是 n 的文件
②chattr:改变文件属性
chattr +a file1 只允许以追加方式读写文件
chattr +c file1 允许这个文件能被内核自动压缩/解压
chattr +d file1 在进行文件系统备份时,dump程序将忽略这个文件
chattr +i file1 设置成不可变的文件,不能被删除、修改、重命名或者链接
chattr +s file1 允许一个文件被安全地删除
chattr +S file1 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘
chattr +u file1 若文件被删除,系统会允许你在以后恢复这个被删除的文件
lsattr 显示特殊的属性
③du:查看目录大小
du /home
④pwd:显示当前工作目录的绝对路径
⑤groupadd:添加用户组
groupdel:删除用户组
⑥gzip:压缩文件gzip -d:解压文件(经其解压后会出现.gz的后缀名)
bzip2:压缩文件bzip2 -d:解压文件(经其解压后会出现.bz2的后缀名)
若没有加上任何参数,bzip2压缩完文件后会产生.bz2的压缩文件,并删除原始的文件。
⑦grep:用于查找文件里符合条件的字符串
grep “hello.c” /home:在home下寻找包含字符串"hello"的文件
⑧ps:用于显示当前进程 (process) 的状态。
-aux 显示所有包含其他使用者的行程
⑨kill:用于删除执行中的程序或工作。程序或工作的编号可利用ps指令或jobs指令查看。
⑩free:用于显示内存状态
11.shutdown -c 取消按预定时间关闭系统
shutdown -r now 重启(1)
reboot 重启(2)
logout 注销
12.gcc编译程序后得到a.out用./a.out执行查看结果
13.用apt-get install安装程序
14.file:用于辨识文件类型。
15.locate *.ps 寻找以 ‘.ps’ 结尾的文件 - 先运行 ‘updatedb’ 命令
16.whereis halt 显示一个二进制文件、源码或man的位置
which halt 显示一个二进制文件或可执行文件的完整路径
17.chown user1 file1 改变一个文件的所有人属性
chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性
18.rpm:用于管理套件。
19.dump:用于备份文件系统。
20.dd:用于读取、转换并输出数据。
来源:CSDN
作者:Ywr-518
链接:https://blog.csdn.net/Sarah20/article/details/104733656