目录
一、前言
欢迎大家前来围观,本人将在十章内为大家捋清楚C基础的大概内容,以及一小部分的Liunx知识点,本人为大学生自学,有不正确之处,还望大佬多多批评指正,点个关注不迷路,速度上车!
在当今就业前景尚未回暖,在空闲之余学习一门“手艺”,算是针对自己不错的投资,对于C语言来说我有一下看法
-
广泛应用:C语言是一种通用的高级编程语言,广泛应用于系统软件、嵌入式系统和各种应用程序开发中。因此,学习和掌握C语言能够为就业提供更多的机会。
-
高效性能:C语言以其高效的执行速度和较低的资源消耗而著名。这使得C语言在需要处理大量数据、对性能要求较高的应用中非常有用,如游戏开发、图像处理和嵌入式系统等领域。
-
跨平台:C语言具有良好的跨平台性,可以在多个操作系统上运行。这使得C语言程序可以在不同的平台上开发和部署,为开发人员提供更多的选择和机会。
-
与底层硬件接口:C语言提供了直接访问计算机硬件的能力,可以编写底层驱动程序和操作系统代码。这对于嵌入式系统和系统级开发非常重要。
-
相对简单易学:相对于其他高级编程语言,C语言语法相对简单且清晰易懂。这使得初学者能够更快地入门,并且在工作中能够更容易理解和修改现有的C语言代码。
总之,C语言在当下就业环境中具有广泛的应用、高效的性能、跨平台的能力以及与底层硬件接口的能力等优势,这使得掌握C语言对于就业有着很大的帮助。
二、大纲
linux命令
基础内容:进制转换、词法符号(关键字、运算符、标识符、分隔符、标点符号)、变量常量、输入输出 分支语句(if_else,switch_case)、循环语句(for,while,do_while)、循环控制语句(break,continue)
数组:一维数组、字符数组、冒泡排序、选择排序、二维数组
指针:一级指针、二级指针、指针数组、数组指针、指针和数组
函数:函数基本用法、string函数族、开辟堆区空间、递归函数
结构体:结构体变量、结构体数组、结构体指针、共用体、枚举
三、Linux命令
相信大家,或多或少接触过Linux的话都听过这样一段话:“Linux中一切皆文件”。
在Linux中有两大特殊目录(划重点!):根目录、家目录
1.根目录 /
2.家目录 ~ :/home/wr
快捷键
放大终端:ctrl shift +
缩小终端:ctrl -
清屏:ctrl L
wr:用户名 可以用whoami这个指令查询
ubuntu: 主机名 可以用hostname这个指令查询
:$中间位置:当前路径 可以用pwd这个指令查询
pwd命令用于显示用户在文件系统中的当前位置,该命令没有任何选项和参数,命令执行结果显示为绝对路径名。
linux@ubuntu:~$ pwd
/home/linux
绝对路径: 从根目录开始 /home/wr/a/b/c
相对路径: 以当前位置为参照 a/b/c
$:普通用户
#:超级用户
新建
新建文件夹 mkdir +文件夹名 例如:mkdir csdn
新建文件 touch + 文件名 例如:touch test.c
注意:
相同路径下:
不能创建同名文件夹
对于文件来说,更新时间戳
同时新建多个文件/文件夹:
mkdir aa bb cc(文件夹名字中间必须空格隔开)
touch test1.c test2.c test3.c
新建多层嵌套文件夹:
mkdir -p a/b/c
查看
利用 ls 命令查看当前路径下所有内容
ls [options] [files_or_dirs]
Example:
ls -a //不忽略以“.”开头的文件
ls -l //以长格式的方式显示,显示信息更为全面
ls -R //文件以递归形式呈现
文件类型7种:bcd-lsp
b:块设备文件 /dev
c:字符设备文件 /dev/input
d:目录文件 文件夹
-:普通文件 .c .h .txt
l:软链接文件 <LinuxC高级>
s:套接字文件 <网络编程>
p:管道文件 <IO>
文件权限
权限类型 | 应用于目录 | 应用于任何其他类型的文件 |
读(r) | 授予读取目录或子目录内容的权限 | 授予查看文件的权限 |
写(w) | 授予创建、修改或删除文件活子目录的权限 | 授予写入权限、允许修改文件 |
执行(x) | 授予进入目录的权限 | 允许用户运行程序 |
- | 无权限 | 无权限 |
rwx:可读可写可执行
r--:可读不可写不可执行
文件权限分为三组,每组最高都为rwx
rwx | rwx | rwx |
用户权限(User) | 组权限(Group) | 其他权限(Others) |
权限用数字表示,每组最高为7(rwx),rwx:r——4 w——2 x——1
在Linux中使用chmod命令后跟上相应的数字组合,即可设置文件活目录权限。
例如,chmod777 文件名 会将指定文件的权限设置为用户、组、其他均为可读可写可执行
更改权限命令:chmod
来几个题看看
1.更改文件权限为"- rwx rw- r-x"的命令
chmod 765
2.某文件的权限为:d rw- r-- r--,用数值形式表示该权限
64
3.linux中一切皆____,有____种。
文件 7
切换
下一级: cd aa
上一级: cd ..
当前: cd .
根目录: cd /
家目录: cd ~ 或者 cd 或者 cd /home/wr
cd太多了,终端满了怎么办:清屏快捷键:Ctrl+L
复制
文件: cp 要复制的文件 目标位置
文件夹:cp -r 要复制的文件夹 目标位置
移动
mv 要移动的文件/文件夹 目标地址
重命名:mv 要移动的文件/文件夹 目标地址/新名字
注意!
cp和mv区别:
cp后原文件还在
mv后原文件不存在
删除
文件: rm 文件名
文件夹: rm -r 文件夹名字
-选项 -f 强制删除
打开终端
1.直接点击
2.ctrl shift n 当前路径
3.ctrl alt t 家目录
四、vi编辑器
1、vi编辑器的使用
vi有以下三种模式
命令行模式
- 用户在用vi编辑文件时,最初进入的为该模式。可以进行复制、粘贴等操作。
插入模式
- 进行文件编辑,按ESC键可以回到命令行模式。
底行模式
- 光标位于屏幕的底行。可以进行文件的保存、退出、查找、替换、列出行号等
使用步骤
1.vi test.c (新建) 命令行模式
2.切换到插入模式
#include <stdio.h>
int main()
{
printf("eat\n");
return 0;
}
3.切换到底行 w保存 wq保存并退出 wq!强制保存并退出
2.vi模式切换命令
命令 | 功能 |
A a | (Append)进入编辑状态,a从当前光标之后的位置开始插入键盘输入的字符;A从当前光标之前的位置开始插入键盘输入的字符 |
I i | (Insert)进入编辑状态,从当前光标之后的位置开始插入键盘输入的字符 |
O o | (Open)进入编辑状态,并插入一新行,光标移到该新行的行首,以后键盘输入的字符将插入到光标位置 |
ESC | 进入命令状态 |
:! Command | 在vi中执行外部命令Command,按回车键可以返回vi继续工作 |
3.vi拷贝与粘贴命令
命令 | 功能 |
[N]x | (Expurgate)删除从光标位置开始的连续N个字符(并复制到编辑缓冲区) |
[N]dd | (Expurgate)删除从光标位置开始的连续N个字符(并复制到编辑缓冲区) |
[N]yy | (Yank)复制从光标位置开始的连续N行到编辑缓冲区 |
p或P | (Put)从编辑缓冲区复制文本到当前光标位置(即粘贴) |
u | (Undo)取消上一次操作(即恢复功能) |
4.vi保存和退出命令
命令 | 功能 |
:q | (Quit)退出没有修改的文件(若文件被修改了而没有保存,则此命令无效) |
:q! | 强制退出,且不保存修改过的部分 |
:w | (Write)保存文件,但不退出 |
:x | (Exit)保存文件并退出 |
:w File | 另存为File给出的文件名,不退出 |
:r File | (Read)读入File指定的文件内容插入到光标位置 |
5.vi光标命令
命令 | 功能 |
h | 方向键,向左移动光标一个字符的位置,相当于键“←” |
j | 方向键,向下移动光标到下一行的位置,相当于键“↓” |
k | 方向键,向上移动光标到上一行的位置,相当于键“↑” |
i | 方向键,向右移动光标一个字符的位置,相当于键“→” |
:N | 移动光标到第N行(N待定) |
1G | 移动光标到文件的第1行 |
G | 移动光标到文件的最后1行 |
:set number | 设置显示行号 |
:set nonumber | 取消显示行号 |
6.vi的查找命令
/string 查找字符串
- n 继续查找
- N 反向继续查找
- 支持正则表达式比如:/^the(以所加单词为开头的代码) /end$(以所加单词为结尾的代码)
7.vi替换命令
利用:s 命令可以实现字符串的替换。
- :s/str1/str2/
- :s/str1/str2/g
- :.,$ s/str1/str2/g g全部替换(默认换第1个)
- :1,$ s/str1/str2/g
- :%s/str1/str2/g
8.vi复制和剪切命令
- y0-将光标至行首的字符拷入剪贴板
- y$-将光标至行尾的字符拷入剪贴板
- d0-将光标至行首的字符剪切入剪贴板
- d$-将光标至行尾的字符剪切入剪贴板
- range y-块复制
- range d-块剪切