ARM+Linux Learning-Feedback

视频链接:第1讲 开发电脑的选择_哔哩哔哩_bilibili

P1

开发电脑要求

CPU要求

4核8线程,因为编译大工程时很耗费CPU,编译QT大概要很久。核心越多越好,主频越高越好

内存要求

最少16G内存

硬盘要求

1T以上硬盘,至少300G给Ubuntu用

其他要求

对显卡没有任何要求(除非想做一些加速计算)

开发电脑选择

开发电脑选择

CPU的选择

i7-7700HQ、i7-8700、9700等。在预算范围内,CPU性能越强越好

内存的选择

16G内存

硬盘的选择

1T 西数、希捷、东芝、日立等

其他的选择

显卡:能点亮屏幕就行

P2

VMware安装

为什么需要虚拟机

嵌入式Linux开发需要在Linux系统下进行

1.双系统安装

有问题,一次只能使用一个系统,Ubuntu基本只做编译用。

需求:能够同时运行Windows和Ubuntu -->虚拟机

2.虚拟机软件

VMware、Virtualbox

VMware是收费的,Virtualbox是免费的

虚拟机的创建

CPU分配

分配CPU的核数量,一般55分

内存分配

如果实际有16G以上,给虚拟机8G

硬盘分配

需要创建一个独立的分区(搜索windows压缩卷),专门给虚拟机用,一般最好300G以上。如图E盘所示

P3

Ubuntu安装

把下载的Ubuntu iso文件放入

流程中的一些建议

如果不在键盘输入法里面选择拼音的话是无法使用拼音查找城市的

姓名设置用缩写:进目录的时候少打点字

密码简单点:进root方便

最后将VMware开机后安装VMware Tools

P4

Ubuntu初次体验

分辨率

进入之后会发现Ubuntu特别小,到右上角的设置中进入系统设置,或控制台输入xrandr-s 1920x1080

找到显示设置,调整分辨率

设置完之后看不见确认按钮,是因为按钮在右下角,移过去就行了

Ubuntu中的文件,左上角/代表根目录

网络

连不上网

右键当前虚拟机,点击虚拟机设置,将网络连接设置为桥接模式

再到windows设置中找到网络和共享中心

点击更改适配器设置

将VMware Network设置为已启用就可以了

ip地址

当遇到路由器重启等问题时,虚拟机的ip地址会发生改变,如果不想变的话,点击右下角选项

先在windows的cmd中ping一个ip看看有没有用的

按图中所示设置成静态ip地址,然后重启Ubuntu

语言

第一次点击语言支持会显示语言支持没有安装完整

这里的密码是之前装系统设置的密码

P5

虚拟机连接USB

插入USB后会在VMware中弹出这个界面

避免每一次需要使用USB在主机和虚拟机切换时,拔了重插的问题,右键点击VMware右下角如图位置选择连主机还是虚拟机

若想默认直接接入虚拟机,则在编辑中打卡首选项,选择USB的连接到前台虚拟机

P6

Ubuntu终端操作与Shell命令

文件、目录操作命令

1、ls::显示文件和目录的信息

ls 以默认方式显示当前目录文件列表

ls -a 显示所有文件包括隐藏文件     例如: .file   文件名称前面带小数点为隐藏文件。

ls -l 显示文件属性,包括大小,日期,符号连接,是否可读写及是否可执行

ls -lh 显示文件的大小,以容易理解的格式印出文件大小 (例如 1K 234M2G)

ls -lt 显示文件,按照修改时间排序

2、cd:改名目录

cd dir 切换到当前目录下的dir目录

cd / 切换到根目录

cd .. 切换到到上一级目录

cd ../.. 切换到上二级目录

cd ~ 切换到用户目录,比如是root用户,则切换到/root下

根目录与家目录的区别:

根目录是系统的一级文件结构,家目录只是非root用户控制目录。相当于windows我的文档,非root用户只能完会控制家目录的文件,不能控制根目录下其它的文件。

根目录是设备的最顶层目录,用 / 表示
家目录是每个用户登录系统后所在的目录,通常在 /home 下,以用户名作为目录,可以用 ~ 表示。
cd / 进入根目录
cd ~/ 进入家目录
当然,也可以用 /home/someone 进入someone的家目录

3、cp:copy文件

cp source target 将文件source复制为target

cp /root /source . 将/root下的文件source复制到当前目录

eg:cp /home/open_038_dev/external_files/test/test.sh .

cp –av soure_dir target_dir 将整个目录复制,两目录完全一样

4、rm:删除文件或目录

rm file 删除某一个文件

rm -f file 删除时候不进行提示。可以于r参数配合使用

rm -rf dir 删除当前目录下叫dir的整个目录

5、mv:将文件移动走,或者改名

mv source target 将文件source更名为target

命令参数:

-b :若需覆盖文件,则覆盖前先行备份。 

-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;

-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

-u :若目标文件已经存在,且 source 比较新,才会更新(update)

-t  : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。

文件改名:mv test.log test1.txt

移动文件:mv test1.txt test3

将文件log1.txt,log2.txt,log3.txt移动到目录test3中:mv log1.txt log2.txt log3.txt test3

将文件log1.txt log2.txt  log3.txt移动到/opt/soft/test/test4目录下:mv -t /opt/soft/test/test4/ log1.txt log2.txt  log3.txt 

移动当前文件夹下的所有文件到上一级目录:mv * ../

6、diff:比较文件内容

diff dir1 dir2 比较目录1与目录2的文件列表是否相同,但不比较文件的实际内容,不同则列出

diff file1 file2 比较文件1与文件2的内容是否相同,如果是文本格式的文件,则将不相同的内容显示,如果是二进制代码则只表示两个文件是不同的

comm file1 file2 比较文件,显示两个文件不相同的内容

comm -12 file1 file2 就只显示在两个文件中都存在的行
comm -23 file1 file2 只显示在第一个文件中出现而未在第二个文件中出现的行
comm -13 file1 file2 只显示在第一个文件中未出现而出现在第二个文件中的行

其中参数意义:
  -1   不显示只在第1个文件里出现过的列。(suppress lines unique to FILE1)
  -2   不显示只在第2个文件里出现过的列。(suppress lines unique to FILE2)
  -3   不显示在第1和第2个文件里都出现过的列。(suppress lines that appear in both files)

7、ln:建立链接

ln source_path target_path 硬连接

ln -s source_path target_path 软连接

ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln –s 源文件 目标文件。
当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。例如:ln –s /bin/less /usr/local/bin/less

8、mkdir:创建文件夹

查看文件内容命令

1、cat:显示文件的内容

cat file

2、more:分页显示命令

more file

more命令也可以通过管道符(|)与其他的命令一起使用,例如:

ps ux|more

ls|more

3、tail:显示文件的最后几行

tail -n 100 aaa.txt 显示文件aaa.txt文件的最后100行

4、vi:编辑

vi file 编辑文件file

vi 原基本使用及命令:

输入命令的方式为先按[ESC]键,然后输入:w(写入文件),:w!(不询问方式写入文件),:wq保存并退出,:q退出,q!不保存退出

5、touch:创建一个空文件

touch aaa.txt  创建一个空文件,文件名为aaa.txt

6、find:查找文件

7、grep:查找文件里符合条件的字符串

基本系统命令

1、man:查看某个命令的帮助

例如:

man ls 显示ls命令的帮助内容

2、w:显示登录用户的详细信息

例如:

Sarge:~# w

22:06:51 up 43 min,  1 user,  load average: 0.00, 0.00, 0.00

USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

zhoulj   pts/0    10.140.0.109     21:24    0.00s  0.85s  0.09s sshd: zhoulj [priv]

3、who:显示登录用户

例如:

Sarge:~# who

zhoulj   pts/0        Mar 13 21:24 (10.140.0.109)

4、last:查看最近那些用户登录系统

例如:

Sarge:~# last

zhoulj   pts/0        10.140.0.109     Mon Mar 13 21:24   still logged in   

reboot   system boot  2.6.8-2-386      Mon Mar 13 21:23          (00:43)   

zhoulj   pts/0        10.140.0.105     Sun Mar 12 22:51 - down   (00:00)   

zhoulj   pts/0        10.140.0.105     Sun Mar 12 22:51 - 22:51  (00:00)   

root     tty1                          Sun Mar 12 22:50 - down   (00:01)   

root     tty1                          Sun Mar 12 22:46 - 22:48  (00:02)   

root     tty1                          Sun Mar 12 22:43 - 22:46  (00:02)   

reboot   system boot  2.6.8-2-386      Mon Mar 13 06:34          (-7:-41)   

wtmp begins Mon Mar 13 06:34:11 2006

5、date:系统日期设定

date 显示当前日期时间

date -s 20:30:30 设置系统时间为20:30:30

date -s 2002-3-5 设置系统时期为2003-3-5

date -s "060520 06:00:00" 设置系统时期为2006年5月20日6点整。

6、clock::时钟设置

clock –r 对系统Bios中读取时间参数

clock –w 将系统时间(如由date设置的时间)写入Bios

7、uname:查看系统版本

uname -R 显示操作系统内核的version

例如:

Sarge:~# uname -a

Linux Sarge 2.6.8-2-386 #1 Tue Aug 16 12:46:35 UTC 2005 i686 GNU/Linux

8、关闭和重新启动系统命令

reboot   重新启动计算机

shutdown -r now  重新启动计算机,停止服务后重新启动计算机

shutdown -h now  关闭计算机,停止服务后再关闭系统

halt   关闭计算机

一般用shutdown -r now,在重启系统是,关闭相关服务,shutdown -h now也是如此。

9、su:切换用户

su -  切换到root用户

su - zhoulj 切换到zhoulj用户,

注意:- ,很关键,使用-,将使用用户的环境变量

监视系统状态命令

1、top:查看系统cpu、内存等使用情况
2、free:查看内存和swap分区使用情况

例如:

Sarge:~# free -tm

                total       used       free     shared    buffers     cached

Mem:           187         42        145          0          6         16

-/+ buffers/cache:         19        167

Swap:          243          0        243

Total:         430         42        388

3、uptime:现在的时间 ,系统开机运转到现在经过的时间,连线的使用者数量,最近一分钟,五分钟和十五分钟的系统负载

例如:

Sarge:~# uptime

21:54:46 up 31 min,  1 user,  load average: 0.00, 0.00, 0.00

4、vmstat:监视虚拟内存使用情况

例如:

# vmstat

procs                      memory      swap          io     system         cpu

r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa

1  0      0  63704   8100  32272    0    0     8     3  103    17  0  1 98  1

5、ps:显示进程信息

ps ux 显示当前用户的进程

ps uxwww 显示当前用户的进程的详细信息

ps aux 显示所有用户的进程

ps ef 显示系统所有进程信息

6、kill:干掉某个进程

进程号可以通过ps命令得到

kill -9 1001 将进程编号为1001的程序干掉

kill all -9 apache 将所有名字为apapche的程序杀死,kill不是万能的,对僵死的程序则无效。

磁盘操作命令

1、df:检查文件系统的磁盘空间占用情况

可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

参数 功能

-a 列出全部目录

-Ta 列出全部目录,并且显示文件类型

-B 显示块信息

-i 以i节点列出全部目录

-h 按照日常习惯显示(如:1K、100M、20G)

-x [filesystype] 不显示[filesystype]

例如:

# df -Th

Filesystem    Type    Size  Used Avail Use% Mounted on

/dev/sda1     ext3    265M   64M  187M  26% /

tmpfs        tmpfs     94M     0   94M   0% /dev/shm

/dev/sda6     ext3    714M  8.1M  667M   2% /home

/dev/sda8     ext3    956M  215M  691M  24% /usr

/dev/sda7     ext3    714M   57M  619M   9% /var

2、du:检测一个目录和(递归地)所有它的子目录中的文件占用的磁盘空间。

参数  功能

-s [dirName] 显示目录占用总空间

-sk [dirName] 显示目录占用总空间,以k为单位

-sb [dirName] 显示目录占用总空间,以b为单位

-sm [dirName] 显示目录占用总空间,以m为单位

-sc [dirName] 显示目录占用总空间,加上目录统计

-sh [dirName] 只统计目录大小

例如:

# du -sh /etc

1.3M     /etc

3、mount:使用mount命令就可在Linux中挂载各种文件系统

格式:mount -t  设备名 挂载点

(1)mount /dev/sda1  /mnt/filetest

mount -t vfat /dev/hda  /mnt/fatfile

mount -t ntfs /dev/hda  /mnt/ntfsfile

mount -t iso9660 /dev/cdrom  /mnt/cdrom

mount -o  设备名 挂载点

(2)使用usb设备

modprobe usb-storage

mkdir /mnt/usb

mount -t auto /dev/sdx1 /mnt/usb

umount /mnt/usb

4、mkswap:使用mkswap命令可以创建swap空间

如:

debian:~# mkswap -c /dev/hda4

debian:~# swapon /dev/hda4      #启用新创建的swap空间,停用可使用swapoff命令

5、fdisk:对磁盘进行分区

fdisk /dev/xxx 格式化xxx设备(xxx是指磁盘驱动器的名字,例如hdb,sdc)

fdisk -l 显示磁盘的分区表

6、mkfs:格式化文件系统

可以指定文件系统的类型,如ext2、ext3、fat、ntfs等

格式1:mkfs.ext3 options /dev/xxx

格式2:mkfs -t ext2 options /dev/xxx

参数   功能

-b  块大小

-i   节点大写

-m   预留管理空间大小

例如:

debian:~#mkfs.ext3 /dev/sdb1

7、e2fsck:磁盘检测

e2fsck /dev/hda1 检查/dev/hda1是否有文件系统错误,提示修复方式

e2fsck -p /dev/hda1 检查/dev/hda1是否有错误,如果有则自动修复

e2fsck -y /dev/hda1 检查错误,所有提问均于yes方式执行

e2fsck -c /dev/hda1 检查磁盘是否有坏区

8、tune2fs:调整ext2/ext3文件的参数

参数  功能

-l  查看文件系统信息

-c  设置强制自检的挂载次数

-i  设置强制自检的间隔时间,单位天

-m  保留块的百分比

-j  将ext2文件系统转换成ext3格式

# tune2fs -l /dev/sda1

9、dd:把指定的输入文件拷贝到指定的输出文件中

在拷贝过程中可以进行格式转换

跟DOS下的diskcopy命令的作用类似。

dd if=/dev/fd0 of=floppy.img 将软盘的内容复制成一个镜像

dd if=floppy.img of=/dev/fd0 将一个镜像的内容复制到软盘,做驱动盘的时候经常用。

用户和组相关命令

1、groupadd:添加组

groupadd test1  添加test1组

groupadd -g 1111 test2  添加test2组,组id为1111

2、useradd:添加用户

useradd user1  添加用户user1,home为/home/user1,组为user1

useradd -g test1 -m -d /home/test1 test1 添加用户test1,home为/home/test1,组为test1

user list 显示已登陆的用户列表

3、passwd:更改用户密码

passwd user1 修改用户user1的密码

passwd -d root 将root用户的密码删除

4、userdel:删除用户

userdel user1 删除user1用户

5、chown:改变文件或目录的所有者

chown user1 /dir 将/dir目录设置为user1所有

chown -R user1.user1 /dir 将/dir目录下所有文件和目录,设置为user1所有,组为user1。-R递归到下面的每个文件和目录

6、chgrp:改变文件或目录的所有组

chgrp user1 /dir 将/dir目录设置为user1所有

7、chmod:改变用户的权限

chmod a+x file 将file文件设置为可执行,脚本类文件一定要这样设置一个,否则得用bash file才能执行

chmod 666 file 将文件file设置为可读写

chmod 750 file 将文件file设置为,所有者为完全权限,同组可以读和执行,其他无权限

8、id:显示用户的信息,包括uid、gid等

# id zhoulj

uid=500(zhoulj) gid=500(zhoulj) groups=500(zhoulj)

9、finger:显示用的信息

注意:debian下没有该命令。

# finger zhoulj

Login: zhoulj                           Name:

Directory: /home/zhoulj                 Shell: /bin/bash

On since Sun May 21 07:59 (CST) on pts/0 from 192.168.1.4

No mail.

No Plan.

压缩命令

1、gzip:压缩文件,gz格式的

注意:生成的文件会把源文件覆盖

gzip -v  压缩文件,并且显示进度

-d  解压缩

gunzip  -f  解压缩

例如:

# gzip a.sh

#ll

-rwxr-xr-x    1 root     root           71 12月 18 21:08 a.sh.gz

# gzip -d a.sh.gz

#ll

-rwxr-xr-x    1 root     root           48 12月 18 21:08 a.sh

2、zip:压缩和解压缩zip命令

zip   

unzip   

例如:

将/home/Blinux/html/这个目录下所有文件和文件夹打包为当前目录下的html.zip:

zip -q -r html.zip /home/Blinux/html
(-q:不显示指令执行过程     -r:递归处理,将指定目录下的所有文件和子目录一并处理)
# zip a.sh.zip a.sh

  adding: a.sh (stored 0%)

# ll

-rw-r--r--    1 root     root          188  5月 21 10:37 a.sh.zip

# unzip a.sh.zip

Archive:  a.sh.zip

replace a.sh? [y]es, [n]o, [A]ll, [N]one, [r]ename: r

new name: a1.sh

extracting: a1.sh                  

# ll

-rwxr-xr-x    1 root     root           48 12月 18 21:08 a1.sh

3、bzip2:bzip2格式压缩命令,

注意:生成的文件会把源文件覆盖

bzip2   

bunzip2

例如:

# bzip2 a.sh

# ll

-rwxr-xr-x    1 root     root           85 12月 18 21:08 a.sh.bz2

# bunzip2 a.sh.bz2

# ll

-rwxr-xr-x    1 root     root           48 12月 18 21:08 a.sh

4、tar:归档、压缩等

-cvf    压缩文件或目录

-xvf     解压缩文件或目录

-zcvf    压缩文件或,格式tar.gz

-zxvf    解压缩文件或,格式tar.gz

-zcvf     压缩文件或,格式tgz

-zxvf     解压缩文件或,格式tgz

举例:

# tar cvf abc.tar *.sh

# tar xvf abc.tar

# tar czvf abc.tar.gz *.sh

# ll

-rw-r--r--    1 root     root        20480  5月 21 10:50 abc.tar

-rw-r--r--    1 root     root         1223  5月 21 10:53 abc.tar.gz

# tar xzvf abc.tar.gz

网络相关命令

1、ifconfig:显示、修改网卡的信息

ifconfig  显示网络信息

ifconfig eth0 显示eth0网络信息

修改网络信息:

ifconfig eth0 192.168.1.1 netmask 255.255.255.0 设置网卡1的地址192.168.1.1,掩码为255.255.255.0

ifconfig eth0:1 192.168.1.2    捆绑网卡1的第二个地址为192.168.1.2

ifconfig eth0:x 192.168.1.n    捆绑网卡1的第n个地址为192.168.1.n

2、route:显示当前路由设置情况

route 显示当前路由设置情况,比较慢一般不用。

route add -net 10.0.0.0 netmask 255.255.0.0 gw 192.168.1.254  添加静态路由

route del -net 10.0.0.0 netmask 255.255.0.0 gw 192.168.1.254  添加静态路由

route add default gw 192.168.1.1 metric1    设置192.168.1.1为默认的路由

route del default       将默认的路由删除

举例:

# route add -net 10.0.0.0 netmask 255.255.0.0 gw 192.168.1.254

# netstat -nr

Kernel IP routing table

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface

192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0

10.0.0.0        192.168.1.254   255.255.0.0     UG        0 0          0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0

0.0.0.0         192.168.1.254   0.0.0.0         UG        0 0          0 eth0

# route del -net 10.0.0.0 netmask 255.255.0.0 gw 192.168.1.254   

# netstat -nr

Kernel IP routing table

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface

192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0

0.0.0.0         192.168.1.254   0.0.0.0         UG        0 0          0 eth0

3、netstat:显示网络状态

netstat -an  查看网络端口信息

netstat -nr 查看路由表信息,比route快多了,

4、启动网络的命令

redhat族的命令:

/etc/init.d/network

debian命令:

/etc/init.d/networking

例如:

/etc/init.d/network stop 停止网络,

/etc/init.d/network start 启动网络,

5、手工修改网络配置

(1)debian系统

配置文件位置为:/etc/network/interfaces

# The loopback network interface

auto lo

iface lo inet loopback

# The primary network interface

auto eth0 eth1

iface eth0 inet static

        address 10.4.5.6

        netmask 255.255.255.0

        network 10.4.5.0

        broadcast 10.4.5.255

iface eth1 inet static

        address 219.25.5.60

        netmask 255.255.255.192

        network 219.25.5.0

        broadcast 219.25.5.63

        gateway 219.25.5.30

修改后保存配置后,运行

/etc/init.d/networking restart

网络配置就改变了

(2)、redhat系统

配置文件位置为:/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=static

BROADCAST=192.168.1.255

IPADDR=192.168.1.5

NETMASK=255.255.255.0

NETWORK=192.168.1.0

GATEWAY=192.168.1.254

ONBOOT=yes

TYPE=Ethernet

修改后保存配置后,运行

/etc/init.d/network restart

或者

service network restart

网络配置就改变了。

默认DNS的文件的位置为:/etc/resolv.conf  

#cat /etc/resolv.conf

search test.com.cn

nameserver 192.168.1.11

6、网络排错
(1)ping:用于检测与另一个主机之间的网络连接
(2)、traceroute:路由跟踪

traceroute 207.68.173.7

(3)、nslookup:域名解析排错

例如:

$ nslookup

Note:  nslookup is deprecated and may be removed from future releases.

Consider using the `dig' or `host' programs instead.  Run nslookup with

the `-sil[ent]' option to prevent this message from appearing.

>

Server:         192.168.1.11

Address:        192.168.1.11#53

Non-authoritative answer:

Name:   

Address: 202.118.66.66

> server 202.118.66.6

Default server: 202.118.66.6

Address: 202.118.66.6#53

>

Server:         202.118.66.6

Address:        202.118.66.6#53

Non-authoritative answer:   canonical name =

.

Name:   

Address: 202.108.22.5

其他命令

1、ssh:远程登陆到其他UNIX主机

ssh -l user1 192.168.1.2 使用用户名user1登陆到192.168.1.2

2、scp:安全copy

例如:

scp abc.tar.gz

:~ 将本地的abc.tar.gz 复制到 192.168.1.5的user1用户的根(/home/user1)下。

3、telnet:登陆到远程主机

例如:

telnet 192.168.1.5

P7

Ubuntu软件安装

APP Store

APT工具

需要root权限

安装依赖:

安装软件:

deb软件包

在windows下我们有.exe文件,在Ubuntu下就有一个.deb

双击deb文件

点击安装

或者使用命令安装

如果想要在桌面放上快捷方式,可以到 /user/share/application中复制到桌面

源码

下载程序源码

阅读Readme找编译方式

转到INSTALL看看

开始编译

P8

Ubuntu文件系统结构

P9

Ubuntu磁盘管理

在Linux开发时,一定要用FAT32的U盘

磁盘文件:/dev/sd* 开头的文件是磁盘设备文件,并不能直接访问磁盘,需要将磁盘挂载到某一目录下才可以访问

通过拔插U盘找到是哪一个

sdb表示U盘,sdb1表示U盘的第一个分区

磁盘和目录的容量查询命令

磁盘挂载与卸载

卸载时如果遇见卸载失败的情况,是因为磁盘正在被其他东西使用

挂载:

解决上图中文乱码:

磁盘分区

分区1GB

磁盘格式化

P10

Ubuntu压缩与解压缩

因为Linux下很多压缩文件都是 .gz .bz2结尾,因此需要在windows下安装7-zip软件

gzip压缩工具

压缩文件夹就是将其中所有文件压缩

bzip2压缩工具

tar打包工具

常用的参数:

其他压缩工具

P11

用户与用户组

Linux用户

Linux用户组

创建用户与用户组

图形化界面创建

命令创建用户与用户组

P12

Ubuntu文件权限管理

文件左边的字符串每三位代表一个意思

由上图可知:对于a.c文件,用户具有读写权限,无可执行权限;组内其他用户也是;其他用户仅有可读权限

修改文件权限

chmod命令:文件权限

chown命令:所属用户

P13

Linux连接文件

ln命令

硬连接

类似于python多个变量指向同一个值

左边都是525929(inode)

删掉原文件也不会影响硬连接的其他文件

在hello1.c中添加printf语句,hello.c中也会做相应的修改

符号连接(软连接)

windows的快捷方式:

P14

vim编辑器

windows下的常用编辑器是记事本,Linux下的常用编辑器是gedit,但在做嵌入式开发的时候可能更多的会使用命令行而非图形界面

自带的vi编辑器太难用了,推荐使用vim编辑器:sudo apt-get install vim

vim的三种编辑模式

其他操作方式

P15

Linux C编程

设置TAB为4个空格

VI编辑器默认TAB为8个空格,用vi打开文件/etc/vim/vimre,在此文件最后面输入set ts=4

VIM编辑器显示行号

用vi打开文件/etc/vim/vimre,在此文件最后面输入set nu

gcc编译

编译流程:

P16

make工具和Makefile的引入

main.c:

input.c:

calcu.c:

input.h:

calcu.h:

结果:

Makefile语法

Makefile文件:

使用make和Makefile:

如果此时对input.c进行修改:

P17

Makefile基本语法

Make的执行过程:

Makefile变量

赋值符=

不加@:

加@

赋值符:=

结果:

不会向下取zouzhongkai

赋值符?=

变量追加+=

Makefile模式规则

Makefile自动化变量

Makefile伪目标

更改后:

P18

Shell脚本入门

使用方法:

Shell脚本语法

交互式脚本

数值计算

test命令

用于查看文件是否存在、权限等信息,可以进行数值、字符、文件三方面的测试

中括号判断符

变量也需要加 "" 是因为如果输入a b,此会认为输入变量其实是"b"

 默认变量

Shell条件判断

Shell函数

Shell循环

文章内容部分引用自:

LINUX Shell常用命令_shell脚本基本命令-CSDN博客

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值