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 生成的可执行文件名

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

可能会出现

相关推荐
十五年专注C++开发1 分钟前
Oat++: 一个轻量级、高性能、零依赖的 C++ Web 框架
开发语言·c++·web服务·oatpp
yaaakaaang2 分钟前
六、适配器模式
java·适配器模式
竹林8182 分钟前
从“连接失败”到丝滑登录:我用 ethers.js v6 搞定 MetaMask 钱包连接的全过程
前端·javascript
陈天伟教授2 分钟前
心电心音同步分析-案例:原型设计一
开发语言·人工智能·python·语言模型·架构
Allen_LVyingbo5 分钟前
量子计算Dirac Notation基本教学—从零基础到读懂量子信息论文(下)
开发语言·人工智能·python·数学建模·量子计算
oi..5 分钟前
《Web 安全入门|XSS 漏洞原理、CSP 策略与 HttpOnly 防护实践》
前端·网络·测试工具·安全·web安全·xss
bobasyu8 分钟前
Claude Code 源码笔记 -- queryLoop
java·笔记·spring
wjs202413 分钟前
Ruby File 类和方法
开发语言
UXbot15 分钟前
2026年AI全链路产品开发工具对比:5款从创意到上线一站式平台深度解析
前端·ui·kotlin·软件构建·swift·原型模式
xyq202416 分钟前
API 类别 - UI 核心
开发语言