Linux--概念+常用工具

基础命令在之前已经展示,从这里开始就是对各种概念的理解,在面试中有很大概率会问到的问题。

操作系统的构成 = 系统内核 + 外部应用
外部应用就要看开发人员对系统的支持了,但是我们知道Linux下的游戏并不是很多,主要就是因为Linux为开源系统,大家都可以在内核的基础上,开发自己的特色上去,导致Linux的版本各有不同,很难统一,导致应用的支持很难实现。

权限
用户:普通用户,超级管理员(root)

权限是什么?
对用户权力的限制,不允许用户随意操作文件

权限的分类:rwx(可读,可写,可执行)
用八进制的数字表示:7
用二进制的数字表示:111,刚好可以对应可读可写可执行的每一位。
权限会限制三个不同的用户:文件的所有者,文件的所属组,其他用户;所以权限由三个八进制的数字组成
权限相关的命令

umask	设置或查看文件的创建权限掩码
	规则:实际权限 = 给定权限 & (~umask)
	例如: 777 & (~umask)
		如果给定umask的掩码为002,那么文件创建之后的权限为775
chmod	修改文件的权限,相关命令chown(更改所有人) chgrp(更改所属组)
	例:chmod 0777 file更改file文件的权限为777
		还可以使用chmod u+x file(g-x o-x)

粘滞位
主要针对目录的一个权限位,所有人都可以在目录下创建文件,可以删除自己的文件,但是不能删除其他人的文件。(Linux是一个多用户访问的操作系统,支持多个用户同时访问,所以粘滞位的使用是非常有必要的)
管道符:|
作用:连接两个命令,将前一个命令的输出结果当作后一个命令的输入,做处理

例:如何查看/etc/passwd文件的第二十行的内容
	head -n /etc/passwd | tail -n 1

Linux下的常用工具

1. yum软件包管理器
	为什么不用源码安装呢?yum有什么好处呢?
		答:不需要用户解决第三方库的依赖关系,在yum安装中会先把依赖库下载。
	查看可以安装的软件包:yum list
	安装软件包:yum install
	移除软件包:yum remove
	查看安装的软件包:yum list installed
	安装特定软件时,使用管道yum list | grep **
2.vim文本编辑器
	vim为了实现所有的操作,因此有很多种操作模式,每个模式下的功能各有不同
	vim共有12种模式,6种基本模式,6种条件模式。最常用3种:插入模式(ESC)->,<-(i)普通模式(:)->,底行模式
		i	从光标所在位置插入
		a	从光标所在位置下一个字符位置插入
		o	向光标所在行的下一行添加新行,插入
		I	光标移动到行首进行插入
		A	光标移动到行尾进行插入
		O	向光标所在行的上一行添加新行,插入
	底行模式:w保存	q退出	q!强制退出	wq保存并退出	!pwd临时执行命令,回车返回
	普通模式下的操作:
		指定编辑位置(移动光标):kjhl	上下左右操作	w b		按单词左右移动
		ctrl+f +b 上下翻页	G gg	光标移动到文档的尾行或首行
		复制:yy	复制光标所在行
			复制一个单词:1.v进入选中模式	2.移动光标选中	3.y 复制 4.p粘贴
			nyy		复制n行数据
		粘贴:p		向光标所在行的下一行添加新行,粘贴
				  P		向光标所在行的上一行添加新行,粘贴
		剪切:dd	剪切光标所在行
				ndd	剪切光标所在行向下n行
			  dw	删除光标位置开始的单词
			  D		删除到尾行
			  x		剪切光标所在的字符
			  s		删除光标所在字符,并进入插入模式
				  
		其他操作:
			u	撤销
			ctrl+r	还原
			gg=G	全文对齐
			v	ctrl + v 进入视图选中模式
	3.gcc编译器:将高级语言代码编译成为机器语言可识别的指令代码
	编译步骤:
		1.预处理:展开所有代码
		2.编译:纠错,没有错误则将c语言代码编译成汇编代码
		3.汇编:将汇编代码编译为机器语言
		走完汇编只是将当前的.c编译成了自己的机器指令。其他文件还没有拿过来,这个文件虽然是机器指令但是不能执行
		4.链接:将所有调用的代码实现都拿来生成可执行程序
		
		库:存放函数实现代码的文件
			动态库:链接生成可执行程序,链接动态库称为动态链接
			lib***.so
			动态链接,只记录动态库的位置符号信息,代码冗余量小,占用资源少,但对库的依赖程度高。
			静态库:链接生成可执行程序,链接静态库称为静态链接
			lib***.a
			静态链接,拷贝库中的代码,代码冗余量大,占用资源多,对库的依赖程度低
		gcc编译器默认链接的是动态链接
		gcc常用选项:-E	仅预处理	
				 -S	仅编译
				 -C	仅汇编
				 -o 指定输出文件名
				 -static 链接静态库
	4.Makefile:文本文件,但是有一个make命令,逐步记录makefile中记录的编译规则
		Makefile就是用来记录项目的编译规则的,辅助项目的自动化编译
		命名:Makefile makefile
		编写:[table] 执行命令
		执行:make
		make解释执行规则:
			1.到当前目录下查找makefile文件,找不到报错。有多个makefile时(makefile/Makefile)优先执行Makefile。
			2.到文件中找第一个目标对象,,并把这个对象当作终极目标
			3.检测这个文件对象和依赖对象的最后一次修改时间,判断是否需要重新编译,修改时间一样则不重新编译,退出
			4.如果目标对象不存在则直接生成,但依赖对象可能不存在
			5.为了生成终极目标,首先要保证依赖都存在,所以会先去生成所有的依赖关系(依赖对象生成的依赖关系也是用户在下边定义的)
		预定义变量:$@ $^ $<
		区别: =非即时赋值 :=直接赋值 ?=有变量不赋值 +=追加赋值
		伪对象:不管对象是否最新,是否存在,每次都生成。(.PHONY: a)
	6.git
		svn项目版本控制工具:集中式管理
		git项目版本控制工具:分布式管理
		
		git clone (url)	从github上克隆代码到当前路径
		git add ./*		添加要提交的文件
		git commit -m "modify"	"desc" 本地提交
		git push origin master	上传代码
		了解git的分支管理(git的精华)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值