shell命令及运行原理:
shell是什么?—命令行解释器
用户为什么不能直接使用shell:
解释用户功能–解释操作系统执行结果
shell命令是什么?
大佬们对操作系统常用操作的封装,一个个的程序
用户输入ls字符串,shell捕捉用户输入,得到ls字符串,
认为用户想要浏览目录,执行shell命令ls这个程序,完成
目录浏览功能
权限:
linux下的用户分类:管理员–root,普通用户
useradd 添加用户 su 切换用户 passwd 修改密码
系统级参数的修改需要root用户权限
文件权限:
所有者可读可写可执行,所属组成员可读可写可执行
其它用户可读,可执行,但是不具备修改权限
在操作系统中使用二进制比特位存储权限信息
111 111 101 -----775
例, 634文件所属组什么权限? 3-011
权限命令
umask 文件默认的创建权限掩码
最终权限=给定权限&(~掩码)
643 - 022 621
110 100 011 &
111 101 101 641
chmod 修改文件权限
777 通过八进制数字修改
chmod 777 file (意为给与所有权限)
a/u/g/o +/- r/w/x 加减意为添加或者移除权限
chmod a+x file
chmod u-x file
沾滞位权限:
沾滞位主要针对的是其它用户在目录下的操作
其它用户在设置了沾滞位权限的目录下可以创建文件
也可以删除自己的文件,但是不能删除别人的文件
这个目录下的文件,目录所有者和root用户可以删除
chmod +t file 设置沾滞位
常见工具
软件包管理器yum
查看软件包 yum list
例: yum list | grep lrzsz(软件名)
安装软件包 yum install lrzsz(软件名)
移除软件包 yum remove lrzsz(软件名)
vim编辑器
因为vim默认不能使用鼠标,为了完成插入,删除,复制,粘贴
vim将操作分为了很多模式:12种,常用的有三种:
vim filename 默认先进入普通模式i->插入模式esc->普通模式:->底行模式wq->出来
连按esc 从其他模式切回默认模式
插入模式:插入数据
i的意思是从光标所在位置开始插入
I的意思是光标移动到行首进行插入
a的意思是光标移动到下一个字符处开始插入
A的意思是光标移动到行尾进行插入
o的意思是在光标所在行的下一行新建一行开始插入
O的意思是在光标所在行的上一行新建一行开始插入
普通模式:完成命令操作(移动光标,复制,粘贴,删除,撤销)
光标移动:hjkl左上下右
wb按单词移动光标上一个下一个
ctrl +向上向下翻页
gg/G 头尾
复制: yy 从光标所在行向下复制
nyy 从光标所在行向下复制n行
粘贴: p 向光标所在行下方粘贴
P 想光标所在行上方粘贴
删除: dd 删除光标所在行
ndd 从光标所在行向下删除n行(包含光标所在行)
x 删除光标所在字符
dw 删除单词
D 删除光标后边的数据(行为单位)
撤销: u
恢复撤销:Ctrl+r
底行模式:保存文件,退出编辑
:w保存 :q退出 :wq保存并退出 :q!不保存强制退出
/字符串 如/abc 查找字符串abc
gcc编译器
将高级语言变异成机器可以识别的语言
预处理:去掉注释,展开代码
编译: 语法语义纠错,将C语言代码解释称汇编代码
汇编: 将汇编代码解释称机器指令
链接: 链接库文件中的代码
静态链接:链接静态库,将库中的代码拷贝到程序中,程序比较大,运行时不需要依赖静态库的存在
动态链接:链接动态库,记录函数位置符号信息,程序比较小,但运行时依赖动态库的存在
静态库如果多个程序使用了相同的静态库,运行时UI加载到内存中,造成资源浪费
动态库
gcc常用选项
-E 只进行预处理 -S 只进行编译 -c 只进行汇编
-static 使用静态链接 -o 制定生成的文件名称
!gcc 执行最近的一次程序