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

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

可能会出现

相关推荐
历程里程碑4 小时前
普通数组----合并区间
java·数据结构·python·算法·leetcode·职场和发展·tornado
执风挽^5 小时前
Python基础编程题2
开发语言·python·算法·visual studio code
梦帮科技5 小时前
Node.js配置生成器CLI工具开发实战
前端·人工智能·windows·前端框架·node.js·json
程序员泠零澪回家种桔子5 小时前
Spring AI框架全方位详解
java·人工智能·后端·spring·ai·架构
Z9fish5 小时前
sse哈工大C语言编程练习20
c语言·开发语言·算法
CodeCaptain5 小时前
nacos-2.3.2-OEM与nacos3.1.x的差异分析
java·经验分享·nacos·springcloud
VT.馒头5 小时前
【力扣】2695. 包装数组
前端·javascript·算法·leetcode·职场和发展·typescript
萧鼎5 小时前
Python 包管理的“超音速”革命:全面上手 uv 工具链
开发语言·python·uv
css趣多多5 小时前
一个UI内置组件el-scrollbar
前端·javascript·vue.js
C澒6 小时前
前端整洁架构(Clean Architecture)实战解析:从理论到 Todo 项目落地
前端·架构·系统架构·前端框架