Linux第一课:c语言 学习记录day01

0、大纲

1、Linux命令

2、基础内容:进制转换、词法符号、变量常量、输入输出

3、语句:分支语句、循环语句、循环控制语句

4、数组:一维数组、字符数组、排序、二维数组

5、指针:一级指针、二级指针、指针和数组、指针数组、数组指针

6、函数:函数基本用法、string函数族、开辟堆区空间、递归函数

7、结构体:结构体变量、结构体数组、结构体指针

8、共用体

9、枚举

一、Linux命令

Linux一切皆文件,两大特殊位置:

        ①根目录:\        ②家目录: ~ /home/hq

1、快捷方式

       放大终端:ctrl shift +               

       缩小终端:ctrl -

2、命令行

55fb8d264af24e2d8e109f2a9758c61f.png

        hq :用户名       

        ubuntu :主机名       

        :和$中间的部分:当前路径       

        $:普通用户

3、新建与删除

3.1、新建

文件夹: 

        mkdir 文件夹名

        mkdir 文件夹1 文件夹2 文件夹3

文件夹的嵌套创建:

        mkdir -p 文件夹1/文件夹2/文件夹3

文件:

        touch 文件名(文件名要有后缀!!)

同名问题:
        文件夹不允许同名;

        文件同名创建或复制粘贴或移动时,相当于更新该文件的时间戳,会覆盖原文件

3.2、删除

        rm                   删除文件

        rm -r                删除文件夹

        rm -rf               强制删除文件夹和文件

4、查看

4.1、ls命令

        ls                    查看当前路径下的所有内容

        ls -a                查看当前路径下所有内容,包括隐藏文件

        ls -l                 查看当前路径下所有内容的详细信息

        ls -l 文件名     查看该文件的详细信息

        ls -al               查看当前路径下所有内容的详细信息,包括隐藏文件

4.2、详细信息

6235c173236844a1a15b432ccf3d1eee.png

        -                                   文件类型

文件类型一共有7种:bcd-lsp

bcd-lsp

块设备文件

字符设备文件

目录文件

普通文件软连接文件套接字文件管道文件
/dev

键盘,鼠标

/dev/input

文件夹.c  .h  .txt

<LinuxC 高级>

<网络编程>

<IO>

        rw-rw-r--                        文件权限

标记rwx-
含义可读可写可执行禁止
权重4210

修改权限: chmod  777  文件/文件夹

权限一共9个字符,共分三组,分别表示自己,组内,组外成员的权限高低

        1                                  连接数

        hq                                用户名

        hq                                组名

        538                              字节大小

        Dec 26 20:00            修改时间

        bit.c                              文件名

5、路径切换

5.1、路径格式

        绝对路径:从根目录开始逐层向下

        相对路径:以当前位置为参考

5.2、路径切换

        下一级 cd 文件夹

        上一级 cd ..

        上一次 cd -

        家目录 cd ~或cd 或 cd /home/hq

6、复制,移动,重命名

6.1、复制

        文件            cp 要复制的文件 目标地址

        文件夹        cp -r 要复制的文件夹 目标地址

6.2、移动

        mv               要移动的文件/文件夹 目标地址

6.3、重命名

        cp 目标文件 新名字

        mv 目标文件/文件夹 目标地址/新名字

        mv 目标文件/文件夹 新名字

6.4、mv和cp的区别

对于储存:

        cp        原文件还在

        mv        原文件不在

对于重命名:

        cp        相当于另存为

        mv        只是重命名

7、打开关闭终端

7.1、打开终端

1、常规方法

2、ctrl shift n:

        打开终端,路径为当前文件夹内

3、ctrl alt t:

        打开终端,路径为home

7.2、关闭终端

1、常规方法

2、exit

8、vi编辑器和vscode编辑器

8.1、vi编辑器

命令行模式(默认)

        复制,粘贴,撤销,光标移动

        复制 yy nyy(光标选中y n:行数 复制几行)
        删除(剪切) dd ndd
        粘贴 p
        撤销 u
        反撤 ctrl r
        光标移动首行 gg
        光标移动最后一行首行 G
        光标移动行首 0
        光标移动行尾 $

插入模式

        写代码

底行模式

        保存,查找,替换,退出

指定行复制 5,10y 复制5-10行
指定行删除 5,10d
保存 w
退出 q
保存并退出 wq
强制 !
vsp 分屏本文件
vsp 文件名 分屏打开另外一个文件
查找 /找的东西
替换 s/a1/a2 光标所在行的第一个a1替换成a2
s/a1/a2/g 光标所在行的所有a1替换成a2
%s/a1/a2/g 改变全文
1,$s/a1/a2/g 改变全文
设置行号 set nu
取消 set nonu
取消高亮 nohl

b36212acfd7a49b0966aff92c3ae4a78.jpeg

8.2、vscode编辑器

        打开文件夹:code 文件夹

        创建文件:**.c

        编译运行:在终端进行

9、gcc编译器

9.1、简写

gcc 文件:

        会生成一个a.out文件,运行即可,一个文件夹下只有一个a.out,后面的会覆盖前面的

gcc 文件 -o 名字:

        会生成一个指定名字的可执行文件

9.2、完整过程

预处理

        展开头文件,替换宏定义,删除注释等

        gcc -E test.c -o test.i

编译

        检查语法,有错报错,没错则生成汇编文件

        gcc -S test.i -o test.s

汇编

        生成不可执行的二进制文件

        gcc -c test.s -o test.o

链接

        链接库文件,最终生成机器可以识别的二进制的可执行文件

        gcc test.o -o test(可执行文件名)

运行

        ./test

二、 基础内容

1、基础常识

1.1、 计算机数据的表现形式

1.1.1、 数值型数据

1、 进制

1、二进制:

        由0和1组成,逢2进1,2:10

2、八进制:

        由0到7组成,逢8进1,8:010,0是标志

3、十进制:

        由0到9组成,逢10进1

4、十六进制:

        由0到9,a到f组成,逢16进1,16:0x10,0x是标志

abcdef
10

11

12131415

2、进制转换(计算器,程序员模式)

1、十进制转二进制,十进制转八进制,十进制转十六进制

方法一:短除法:

        十进制转二进制时除以2,十进制转八进制则除以8,十进制转十六进制除以16

f88a9e36fe3240e2a33c68bd7b5d573f.jpeg

方法二:拆分法:

        转成二进制:拆成2的次幂进行计算,最后按照2的降幂排序,系数提取出来就是结果:

eq?24%3D16&plus;8&plus;0&plus;0&plus;0%3D1*2%5E4&plus;1*2%5E3&plus;0*2%5E2&plus;0*2%5E1&plus;0*2%5E0%20%5CRightarrow%2011000

        转成八进制:同理,只是将目标拆成8的次幂计算:

eq?24%3D3*8&plus;0%3D3*8%5E1&plus;0*8%5E0%5CRightarrow%2030

        转成十六进制也同理:eq?24%3D16&plus;8%3D1*16%5E1&plus;8*16%5E0%5CRightarrow%2018

2、二进制转八进制,二进制转十六进制

        三换一:eq?8%3D2%5E3,例如:eq?1100101%5Crightarrow%201%5C%3A%20100%5C%3A101%5Crightarrow0%5C%3A1%5C%3A4%5C%3A5%5Crightarrow0145

        四换一:eq?16%3D2%5E4,例如:eq?11%200010%201011%5Crightarrow11%5C%3A0010%5C%3A1011%5Crightarrow0x32b

3、二进制转十进制,八进制转十进制,十六进制转十进制

        二进制:二进制的每一位都看成系数,这些系数分别乘2的次幂,次幂按照降幂排序,最右边是2的0次幂。

        八进制同理,十六进制同理。

1.1.2、非数值型数据——字符

        字符由' '引用,多个字符可组成字符串,字符串由" "引用。

1、ASCII码的使用

man手册:查看函数和命令的用法

        可执行程序或shell命令

        系统调用(内核提供的函数)

        库调用(程序库中的函数)

ASCII码表

\0\n' '09AZaz
010324857659097122
字符串结束的标志换行空格字符0字符9

2、'\'转义字符

        'n'-->n                '\n'-->换行

printf("%c\n",'n');    //n
printf("%c\n",'\\');    // \
printf("%c\n",'\n');   //换行

1.2、计算机存储单位

位 bit        字节 byte

1B=8bit        1KB=1024B

1MB=1024KB        1GB=1024MB

1.3、c语言编程基本结构

#include<stdio.h>      
//#预处理的标志  <>头文件
int main()      //主函数,有且只有一个,程序的入口
{
    printf("hello world\n");      //标准的输出语句
    return 0;      //返回值  main中,表示程序的结束
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值