Linux C基础 (1)

本文介绍了Linux编程环境的选择,尤其是为何选择LinuxOS(如Ubuntu18.04)的原因,包括其开源特性、稳定性以及针对嵌入式系统的裁剪灵活性。此外,文章还详细讲解了Linux的目录结构、常用命令、vim和gedit编辑器以及gcc编译器的基础使用。
摘要由CSDN通过智能技术生成

1、编程环境介绍

虚拟机:虚拟出来的一台PC机

为什么要使用LinuxOS系统?

1.开源,我想很多小公司用它的原因之一也是这个,不会涉及到专利和产权纠纷。

2.功能齐全,对于很多硬件设备都有丰富的驱动程序,只需要移植一下,不需要改动太多

3.稳定,这个用过Linux做服务器的人都知道,windows越来越慢,产生的垃圾会很多。

4.对于大多数芯片,都有裁剪的配置文件,在Linux内核源代码下,arch/arm/configs中有许多芯片的配置文件,比如笔者用的是at91的芯片,里面有个文件叫做 at91sam9260ek_defconfig,那我如果不想裁剪的话,就只要在内核源代码下执行 make at91sam9260ek_defconfig,就可以,然后编译出来的内核就可以直接用了。

5.Linux分而治之的思想,可以使得驱动和应用程序并行开发,加快开发速度
嵌入式:以计算机技术为基础,软硬件可裁剪(修改)-->通过软件控制硬件

为什么需要裁剪?
根据用户对产品的需求

软件裁剪:LinuxOS
ubuntu-18.04-64bit
系统名字-版本-位数(存储)
 16.04之前都有32位
 LinuxOS其中的一个发行版本:18.04,就像Windows一样,比如win7、win8、win10
 市场一般以32bit为主,64bit会进行强调

2、linux常用命令

2.1 Linux目录结构

Windows目录结构犹如一片森林
 ​
Linux目录结构犹如一颗倒置的树
 
 根目录(/):LinuxOS的顶层目录,所有的东西都在它之下,也从它开始
 ​
 家目录(主目录 or 工作目录 or HOME or ~):用户工作目录 
 ​
 ~ 代表的就是 /home/chen/
 /home/用户名,假设是以linux用户登录,这个路径就是/home/linux
 ​
 注意:HOME是家目录(HOME在home目录下),而home不是家目录(home在根目录下),但是我们的家目录是在home目录之下的,linux(HOME)才是家目录。
 什么叫做工作目录:正常情况下我们只能在linux目录下进行操作(以上的目录不能操作,没有权限),可以通过管理员命令进行操作。
 文件颜色:蓝色-文件夹(目录) 白色-文件 绿色-可执行文件

2.2 Linux常用命令

2.2.1 命令格式

 命令 [选项] [参数]
 注意:
 (1)[]表示可以省略
 选项:功能 参数:操作的对象
 (2)以上三者之间必须有空格

在哪里输入命令-->终端(terminal)

终端:人机交互的界面

打开终端

 (1)双击terminal
 (2)ctrl alt + 't'(始终在家目录)
 (3)ctrl shift + 'n'(当前路径下)

清屏

 (1)ctrl + 'l'
 (2)clear

Table键:自动补全键,两次tab,显示所有符合条件的选项

放大or缩小终端

 放大终端:ctrl shift + '+'
 缩小终端:ctrl + '-'

上下箭头:查看历史命令

su切换权限

 su  后面不加用户是默认切到 root
 su  是不改变当前变量
 su - 是改变为切换到用户的变量 
 exit 命令退出
 sudo:增加临时管理员的权限(当前命令以root用户的权限去执行)
 也就是说su只能获得root的执行权限,不能获得环境变量
 而su -是切换到root并获得root的环境变量及执行权限

命令提示行

linux@ubuntu:~$
用户名@主机名:当前路径$:普通用户 #:超级用户
绝对路径:从根目录开始的路径(/home/linux/23101)

相对路径:ls aa:从当前目录下查找一个叫做aa的目录,然后将该目录下的内容显示出来
pwd:显示当前目录的绝对路径
(1)ls:显示当前路径下的内容
蓝色:文件夹(目录)	白色:文件	绿色:可执行文件
ls 路径:显示该路径下的内容
注意:路径必须是存在的,可以是相对路径,也可以是绝对路径
(2)ls -l:显示当前目录下的详细属性
(3)ls -a:显示当前路径下的所有文件,包含隐藏文件(配置文件,防止修改,误删)
.:当前目录
..:上一级目录
man ls:可以查看ls英文文档
mkdir 文件夹名:新建文件夹,提示新建多个文件夹
mkdir -p d2/d22 级联创建,可以创建多层文件夹
rmdir 文件夹:删除文件夹,删除空文件夹
rm -r 文件夹:删除文件夹,空和非空文件夹都能删除
touch 文件名/文件路径:新建文件,可以同时新建多个
rm 文件名/文件路径:删除文件,可以同时删除多个文件,数据不可恢复(通过rm删除的文件不可恢复)
rm -r 删除空/非空文件夹
cd 路径:切换工作路径
cd:直接回到家目录
cd -:回到上次操作的目录
cp (源文件/-r 源文件夹) 目前路径;拷贝
 
mv 源文件/源文件夹 目前路径:移动
mv 原来的名字 现在的名字:改名字
sudo:增加临时的管理员权限(当前命令以root用户的权限去执行)

3、vim和gedit编辑器

vim:最经典的编辑器,没有菜单,只有命令

vim 文件名

如果文件存在,直接打开,进行编辑

如果文件不存在,则创建并打开,进行编辑

vim -p 1.c 2.c 同时打开两个文件

3.1 三种模式

命令行模式

(1)命令行模式(刚进入/初始状态)
(2)插入模式
(3)底行模式

底行模式下

w:保存
q:退出
wq(x):保存并退出
q!:强制退出
wq!:保存并强制退出
:vsp 2.c:打开在同一窗口上

命令行模式下

set nu(set number):显示行数
set nu!:取消显示
yy:复制光标所在那一行
nyy:复制光标所在行以下n列
p:粘贴
u:撤销
ctrl + r:反撤销 
dd:剪贴光标所在行
:行数:跳转到指定行
从开头处开始搜索:/port
从结尾处开始搜索:?port
gg:跳转到第一行
shift + g:跳转到最后一行
shift + 4:跳转到最后一列
0:跳转到第一列
d+shift g:删除光标及其以下所有内容
:1,$d:清屏
:%d:清屏
替换
0:%s/string1/string2/g:
0:表示从第0行到最后一行搜索一个叫string1的字符串
%s : s表示切换到替换模式下去 
string1/string2,即把string1替换成string2
g : 强制替换不用提示

gedit编辑器

操作类似windows。

4、gcc编译器

编辑器:vim
编译器:gcc
调试器:gdb
(1)
int main(void)
{
	//函数体
	return 0;
}
(2)
int main(int argc,char *argv[])
{
	//函数体
	return 0;
}
(3)
void main(void)
{
	//函数体
}
(4)
main(void)//默认返回的是int
{
	//函数体
	return 0;
}
 
方式1:
编译:gcc hello.c,生成的可执行文件名叫做a.out
运行:./a.out
方式2:
编译:gcc hello.c -o hello,生成的可执行文件名叫做hello
运行:./hello

作业:

1、请在/tmp目录下新建一个名为vitest目录。
    mkdir /tmp/vitest  
2、进入vitest目录。
    cd vitest
3、将/etc/manpath.config复制到本目录下。
    cp /etc/manpath.config .
4、使用vim打开本目录下manpath.config文件。
    vim manpath.config
5、在vim中设置行号。
    :set nu
6、移动到第58行。
    :58
7、移动到第一行,并向下查找一个“bzip2”这个字符串,请问它在第几行
    :gg	/bzip2
8、接下来,将50到100行之间的man改为MAN。
    :50,100s/man/MAN/
9、修改完之后,突然反悔,要复原,该怎么办。
    :u
10、复制65到73者9行内容并且粘贴在最后一行之后。
    :65	9yy	shift+g	p
11、21行到42行之间数据不要了,应如何删除。
    :21 22,42dd
12、将这个文件另存为一个man.test.config文件名
    :w man.test.config
13、删除第27行。
    :27	dd
14、在第一行新增一行,输入“I am a student”
    gg	O	I am a student…
15、	保存后离开。
    :wq

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值