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

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

可能会出现

相关推荐
道尔柯南18 分钟前
C++ 面向对象编程入门:类和对象(上)
开发语言·c++·算法
楠楠子呀26 分钟前
英语、西语、阿语客户各开一个口:多语言获客的分流方案
开发语言·javascript·ecmascript·跨境电商·whatsapp·营销工具
tachibana234 分钟前
使用for range 的时候,它的地址会发生变化吗?
开发语言·后端·golang·go·语法
蜗牛互联网39 分钟前
GPT-6 与 Intelligent UI:从回答到可审计操作的产品迁移
java·人工智能·后端
weifont44 分钟前
自动化抓取和上架商品:能不动手,就少动手
运维·前端·自动化
米柆1 小时前
HTML5 audio /video 完整事件监听模板
前端·html·html5
临床数据科学和人工智能兴趣组1 小时前
正则表达式的基础语法的基本符号
开发语言·人工智能·python·正则表达式·r语言·r语言-4.2.1·workbudyy
王中阳Go1 小时前
Go 后端转 AI:非科班怎么补?一张 3 列路线表(可保存)
开发语言·人工智能·后端·python·golang·大语言模型
IT_陈寒1 小时前
Vite热更新失效?你可能也踩了这个坑
前端·人工智能·后端
SL_staff1 小时前
运维救火实录:钉钉考勤API变更引发工资计算异常,我们用JVS-Logic可视化逻辑引擎实现分钟级热修复
java·mysql·全栈