Linux系统编程

一、cmd命令

只记重点

1.文件类型

2.软连接和硬链接

硬链接:ln <name1> <name2>

相当于引用吧,所有硬链接的文件的Inode都一样,每次创建一次硬链接硬链接计数加一,每次删除硬链接计数减一,不会影响其他硬链接文件。当硬链接计数为0的时候,Inode被释放,文件彻底被删除。

软链接:ln -s <path> <name>

软连接链接相当于快捷方式,内部存放的是目标文件的路径,访问时根据存放的路径打开文件,创建的时候需要输入绝对路径,否则更换路径可能无法关联到目标文件导致无法打开。

3.所有者和执行权限

文字设定法

chmod <用户>+<权限> 文件名

数字设定法

chmod <u的权限和><g的权限和><o的权限和>

sudo adduser 创建新用户

sw <name>切换用户

sudo chown <新用户名> <filename>修改所有权限

sudo chown<username>:<groupname> <filename>一次性修改用户和组的权限

sudo addgrp <group name>创建用户组

sudo chgrp <new group name> <filename>修改文件用户组所有权限

4.查找文件

find <directory> -name/type <type/name>

-type 按文件类型搜索

-name 按文件名称搜索

-size 按文件大小搜索

-maxdepth n 搜索的递归层数

-exec命令 {} \; 将find搜索的结果集执行某一命令(直接映射全部结果集)

-ok 命令 {} \; 将find搜索的结果集执行某一命令并询问

| xagrs 指令 搭配管道+xargs使用(分片映射结果集)

5.查找文件内容

grep -r '<name>' <dir>

6.查看进程

ps(可交互进程)

ps aux(全部进程)

ps aux | grep 'name' (搜索相关进程)

将ps aux搜索的结果集 使用管道 | 交给grep

7.软件包安装

sudo apt update(本地软件列表与源列表同步)

sudo apt install (安装软件)

sudo apt remove(卸载软件)

sudo dpkg -i <debname>(使用deb包安装软件)

sudo dpkg -r <debname>(删除包)

sudo aptitude show 《软件名》 查看当前系统是否安装某种文件

8.压缩包

tar压缩

tar zcvf <压缩包名.tar.gz> <压缩材料> 多文件打包(使用gzip压缩打包)

tar jcvf <压缩包名.tar.gz> <压缩材料> 多文件打包(使用bzip2压缩打包)

gzip <文件名> 只能压缩一个文件 无法多文件打包

gunzip <压缩文件名> 解压缩

file <filename>查看文件详细属性

tar zxvf 《压缩包名.tar.gz》 解压缩

tar jxvf 《压缩包名.tar.gz》 解压缩

rar压缩

rar a -r 《名字.rar》 《压缩文件名》 压缩

unrar x 《名字.rar》 解压缩

ZIP压缩

zip -r 《名字.zip》 《压缩文件名》 压缩

unzip 《名字.zip》 解压缩

9.其他常用的指令

ifconfig 查看网卡信息

man 帮助手册

clear 清屏(ctrl+L)

alias 给组合操作起别名

9.Vim

基础操作见pdf。

二、gcc编译

三、静态库和动态库

静态库:随代码一起编译进可执行文件中,会占用空间,但是调用库中接口速度更快,对空间要求低,对时间要求告。

动态库:计算机只有一份共享的动态库,代码使用的时候访问共享的动态库,不会占用可执行文件的空间,但是调用的时候慢。对时间要求低,对空间要求高。

1.静态库制作

使用gcc -c完成预处理,编译,汇编,生成二进制.o文件

使用ar rcs lib<name>.a <内容> 制作.a静态库文件

编译制作的静态库到可执行文件中

gcc .c文件 .a文件 -o 生成的可执行文件名

这时会出现警告,说库中的函数未声明

可能会出现

相关推荐
lichenyang4535 分钟前
从一个按钮开始,理解 ASCF 框架到底在做什么
前端
古夕28 分钟前
第三方 SSO 接入实践:redirect_uri 编码、回调一致性与跨项目联调
前端·vue.js
朦胧之31 分钟前
页面白屏卡住排查方法
前端·javascript
用户5936087414031 分钟前
Playwright 黑魔法:用 ClipboardEvent 绕过 React 富文本编辑器
前端
Flittly31 分钟前
【AgentScope Java新手村系列】(16)从RAG到多路检索
java·spring boot·spring
小兔崽子去哪了37 分钟前
Java 生成二维码解决方案
java·后端
石山岭1 小时前
自己动手写了一个 Android 虚拟定位 App:GPSSimulate 技术实
android·前端
犇驫聊AI1 小时前
Chrome DevTools MCP + Claude Code 自定义skills生成接口代码生成器
前端·javascript
kyriewen1 小时前
别再这样写 async/await 了:我在 Code Review 中见过最多的 8 个错误
前端·javascript·面试
hoLzwEge2 小时前
node-linker VS shamefully-hoist
前端·前端框架