暑假留校生活已经开始整整两天了,感觉鸭鸭还没有完全适应这样的学习方式,虽然学长学姐一再叮嘱我们要把心态调整好,但还是觉得压力特别大。因为鸭鸭本来就比别人基础差,再加上小组要求暑假前看完的章节还没有完成,就有点慌,所以学习效率明显低下,总是静不下来。调整心态,找到属于自己的学习方法是现在的重中之重。按照周一定的计划,这两天应该是把鸟哥8-9章也要看完的,但是目前还没有开始,得抓紧了。
所以鸭鸭这两天主要是把暑假前看过的鸟哥5–7章又过了一遍,LinuxC编程3–5章的C语言知识再复习了一下,发现了很多之前没有注意到的细节和看了又遗忘的东西,还有一些重要的知识点,比较杂乱,各方面都有涉及到,在这里做笔记。
1、开机时进入文字界面命令行模式
按Crtl+Alt+F1~F6
2、man page
当我们不知道一个命令该怎么使用时,可以执行man来查看该命令的详细信息,在第一行会看到,比如LS(1),后面1–9不同的数字代表不同的基本意义,尤其要记住以下三个(背):
(1)——用户在shell环境中可以操作的命令或可执行文件
(5)——配置文件或者是某些文件的格式
(8)——系统管理员可用的管理命令
3、ls -l
显示信息依次为文件权限,连接数,所有者,用户组,文件容量,修改日期,文件名
4、chgrp users install.log
——users必须要在/etc/group中可以找到
5、chown bin install.log
——bin必须要在/etc/passwd中可以找到
chown root:root install.log
——同时修改文件所有者和用户组
-R:递归更改,连同子目录下的所有文件
使用cp的话,会同时复制属性与权限
6、rwx
文件记录的是实际的数据,目录记录的是文件名列表
对于目录来说,能不能进入某一个目录,只与x有关,x代表的是用户能否进入该目录成为工作目录。
7、文件种类
regular,directory,link,device(block,character),sockets,FIFO
8、开机过程中仅有根目录被挂载,其他分区是在开机完成之后才会持续进行挂载的行为。
9、必须和根目录放在同一分区的目录:
/etc:配置文件
/bin:重要执行文件
/dev:所需要的设备文件
/lib:执行文件所需的函数库与内核所需的模块
/sbin:重要的系统执行文件
10、/bin,/usr/bin 是否与开机过程有关
usr==UNIX Software Resource 可分享不可变动
11、/bin/sbin 是否是系统执行
12、/etc/init.d 放置所有服务的默认启动脚本
/boot 放置开机会使用到的文件
/var/log 放置登录文件
13、为什么根目录要小一点好?
因为越大的分区存放的数据更多,根目录所在的分区就有更多机会发生错误,所以为了减少错误,要小一点。
14、pwd 显示目前所在的目录
pwd -P 显示完整的路径,不以连接文件的数据显示
15、ifconfig
用于显示或配置网络设备
16、PATH
环境变量由一堆目录组成
不同身份默认的PATH不同,能够随意执行的命令也不同
本目录最好不要放到PATH中
17、cp
不同身份者执行会有不同的结果产生
不加参数时,文件的某些属性或权限会改变
加参数-a是将文件的所有特性复制
加参数-d是将连接文件复制,不加复制的是源文件
18、取得路径的文件名和目录名称使用什么命令?
basename和dirname
19、如何设置和查看文件的隐藏属性?
chattr和lsattr
20、SUID==Set UID 4
s出现在文件所有者的x权限上
当我们想要修改密码的时候,要执行/usr/bin/passwd,但是存放密码的文件/etc/shadow的所有者权限尾root用户,一般用户不能读取,那为什么我们还能修改密码呢?因为s,一般用户在执行passwd的过程中,会暂时获取root权限,所以/etc/shadow可被修改
21、SGID==Set GID 2
s出现在文件所属组的x权限上
22、SBIT==Sitcky Bit 1
当用户在该目录下创建文件或目录时,仅有自己与root可以删除该文件
23、权限与命令间的关系
①让用户进入某目录成为“可工作目录”(cd等)的基本权限:目录至少有x权限
②用户在某个目录内读取一个文件(cat,more,less)的基本权限:目录至少x,文件至少r
③用户修改一个文件的基本权限:目录至少x,文件至少rw
④用户创建一个文件的基本权限:目录有wx
⑤用户进入某目录并执行该目录下的某个命令的基本权限:目录至少x,文件至少x
24、umask的用处与优点
适当定义umask有助于系统安全,可用来建立预设的目录或档案的权限
25、gdb调试命令
在linux上写代码最头疼的就是段错误,由于没有提示信息所以很难知道代码到底是哪里出了问题,这时候应该使用gdb调试命令:
①gdb:程序文件名
②(gdb) list 4,9:显示5-10行代码
③(gdb) run:执行程序
④(gdb) break 行号:以行设置断点
(gdb) break 函数名:以函数名设置断点
(gdb) break 行或函数名 if条件:以条件表达式设置断点
⑤(gdb) watch 条件表达式:运行过程中当条件表达式的值发生改变时程序暂停
⑥(gdb) info breakpoints:查看当前设置的断点
⑦(gdb) disable 断点编号:时某断点暂时失效,程序运行到该点会继续运行,但是断点不会消失
⑧(gdb) clear 行号:删除断点
⑨(gdb) delete 断点编号:用于清除断点和自动显示的表达式的命令
与clear的不同之处:clear要给出断点的行号,delete要给出断点的编号;用clear命令清除断点时,gdb会给出提示,而用delete清除断点时,gdb不会给出任何提示
⑩ (gdb) print 变量或表达式:打印变量或表达式的值
等等等…
26、共用体union
共用体中的变量共享同一块内存,共用体变量的长度取决于其成员的最大长度。共用体和结构体一样,为了提高访问效率,还要进行内存对齐,所以实际占的内存有时会大一些。不能把共用体变量作为函数参数,也不能使函数返回共用体变量,但可以使用指向共用体变量的指针。
比较零碎的点,就总结了这么多,方便以后用来复习回顾。留校第三天开始辣,不能松懈一点点,鸭鸭要更努力,SillyDuck加油~
2017.7.19 9:34