Linux系统的基本知识
admin
2023-01-25 04:20:05
0

概述:

Linux是一种自由和开放源码的类UNIX操作系统。它能运行主要的Unix工具软件、应用程序和网络协议,支持32位和64位硬件。该操作系统的内核由林纳斯·托瓦兹于1991年10月5日首次发布。

Linux最初是作为支持英特尔x86架构的个人计算机的一个自由操作系统,现可运行在服务器和其他大型平台之上,如大型计算机和超级计算机。Linux也广泛应用在嵌入式系统上,如手机(Mobile Phone)、平板电脑(Tablet)、路由器(Router)、电视(TV)和电子游戏机等。

Linux中的基本指令:

1.rm指令:rm是删除指令,但是在删除文件夹的时候要加-r(递归删除)选项,-f表示的是强制删除,要慎用。
2.cp和mv指令:我个人喜欢把这两个指令放在一起记忆,cp是拷贝,mv是移动,他们的使用规则都是在指令后+【选项】【源文件】【目标文件】,所以当然也支持文件夹的操作啦,只需要加-r选项就可以啦。
3.压缩和解压:
①tar:
tar有两种方式,分别是gzip(常用)和bzip2
gzip:
压缩: tar -zcvf /tmp/etc.tar.gz /etc-->将etc文件夹下的内容压缩到/tmp/目录下,并命名为etc.tar.gz
解压缩:tar -zxvf etc.tar.gz
②zip和unzip
4.find指令:使用方法:find【路径】 -name(要查找的名字)  注:这里的名字可以使用通配符(*)。

Linux权限:
linux下有两种用户分别是普通用户和超级用户(root)
有两种从普通用户切换到超级用户的方式:su和su -,但是这两个方式是有区别的,使用su指令进入root后的路径依然是home/当前用户,也就是说虽然拥有超级用户的权利但实际上并不是真正的超级用户,而使用su -指令进入超级用户后的路径是/root这个时候就是真正的超级用户了。
1.文件访问者的分类:文件所有者、文件所有者所在的用户组、其他
2.文件类型和访问权限:
d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
基本权限:
i.读(4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
ii.写(2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
iii.执行(1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
通过chmod命令可以修改文件的权限。

文本编辑器vim:

普通模式、插入模式、底行模式
在普通模式下的一些重要命令:(七种类型:移删复替撤更跳)
1.$移动到行尾、^移动到行首、gg移动到文本的开头、G移动到文本的末尾
2.x删除光标位置的字符、dd删除整行
3.yy和p
4.r替换光标所在位置的字符、R替换光标所到之处的字符(sec停止)
5.u撤销、【ctrl+r】撤销的恢复
6.cw更改光标所在处到字尾处(不常用)
7.【ctrl+g】显示行号、【#G】跳到#行

Linux编译器中gcc/g++
首先要知道的是代码生成的四个阶段以及每个阶段所完成的任务:
1.预处理:宏替换和头文件的展开以及去掉注释
gcc -E test.c -o test.i
2.编译:检查语法并生成汇编代码
gcc -S test.i -o test.s
3.汇编:生成机器可识别的代码
gcc -c test.s -o test.o
4.链接:生成可执行文件(test)
gcc test.o -o test
当然,最常用的还是gcc test.c -o test直接将源代码生成可执行文件
注意:系统将大部分库函数的实现都放在libc.so.6的库文件中,在没有特别指明的情况下系统将在路径“user/lib”下查找就会链接到相应的库函数中,这也就是链接的作用,而库函数又分为静态库和动态库,这个我们后面再详细说明。
关于静态链接和动态链接
1.静态链接是指将所依赖的动态库链接到可执行程序中,所以会比较大,但是在不同的平台可以正常执行。
2.动态链接是指将所依赖的动态库中的函数加载到符号表中,在运行程序时动态链接动态库去执行动态库中的代码,所以在不同电脑上使用时必须将所依赖的动态库也给出否则找不到动态库是没法运行的。
3.编译器默认的链接方式是动态链接,如果想使用静态链接的话要在编译选项中加-static选项

关于Makefile:
使用make一键式编译,Makefile文件中的关键是根据依赖目标完成对生成目标的编译,但是写在最前面的依赖文件一旦被生成后面的就没用了(永远只为了生成第一个目标),一般想要通过一个makefile文件编译生成多个文件时就要用伪目标来确定,伪目标后的依赖文件则是要生成的文件,这样就解决了这个问题。
预定义变量:$^:所有的依赖对象
$@:所有的目标对象

相关内容

热门资讯

时隔一年,英国国防大臣斯特里廷... 一年前,当时还是英国卫生大臣的韦斯·斯特里廷(Wes Streeting)曾公开指责以色列犯下战争罪...
微软与Mistral宣布扩大战... 【CNMO科技消息】7月22日,据韩媒报道,微软与法国AI企业Mistral正式宣布大幅扩大双方战略...
东方空间引力一号(遥四)运载火... 本报讯 (记者袁传玺)北京时间7月22日10时54分,东方空间引力一号(遥四)·星联体号运载火箭在我...
“你的手上沾满鲜血”,美防长出... 当地时间21日,美国国防部长赫格塞思在出席国会参议院听证会时表示,根据最新估算,美国对伊朗战事的花费...
Kimi K3让美国羡慕又不甘... 北京时间7月17日凌晨,月之暗面公司发布开源大模型Kimi K3。据报道,该模型总参数规模达2.8万...
对话高正祺:AI五年内或接管芯... 2021 年,高正祺到 MIT 读博士时,ChatGPT 还没有发布。五年后,他已经可以把一份模拟电...
伊朗军方消息人士:若美袭击伊桥... △伊朗霍尔木兹甘省一座桥梁近日遭美军空袭总台记者当地时间22日获悉,一名伊朗军方消息人士针对美方最新...
外国男子在云南跳伞,半空迟迟不... 近日,有视频显示,一名外国男子背着降落伞从玻璃栈道上跳入峡谷,栈道上有游客拍照鼓掌。男子跳下后,以高...
美国人开始在直播间里“抢”东西... 作者 | 竹芒今年夏天,许多美国消费者的手机屏幕上,出现了这样一幅画面:倒计时十五秒,一件商品的价格...
伊朗连炸20座机库,造成数十名... 伊朗公布重大战果。伊朗WANA通讯社转引伊朗伊斯兰革命卫队第31号声明称,在“胜利2号行动”第21轮...