liunx 部分

 1、core 文件是什么,有什么用?

 core 是 unix 系统的内核。当你的程序出现内存越界的时候,操作系统会中止你的进程,并将当前内存状态倒出到 core 文件中,以便进一步分析。程序员可以通过 core 文件来找出问题所在。它记录了程序挂掉时详细的状态描述。
什么是 core dump Core 的意思是内存, Dump 的意思是扔出来, 堆出来。开发和使用 Unix 程序时, 有时程序莫名其妙的 down 了, 却没有任何的提示 (有时候会提示 core dumped). 这时候可以查看一下有没有形如 core. 进程号的文件生成, 这个文件便是操作系统把程序 down 掉时的内存内容扔出来生成的,它可以做为调试程序的参考.
    core dump 又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个 core 文件中, 叫 core dump。如何使用 core 文件 gdb -c core 文件路径 [应用程序的路径],进去后输入 where 回车, 就可以显示程序在哪一行当掉的, 在哪个函数中.
为什么没有 core 文件生成呢? core 文件的生成跟你当前系统的环境设置有关系, 可以用下面的语句设置一下, 然后再运行程序便成生成 core 文件.
ulimit -c unlimited core 文件生成的位置一般于运行程序的路径相同, 文件名一般为 core. 进程号

不用 core 文件,程序出了问题产生信号是否知道?答:内核向进程发信号嘛。

 

2、共享内存除了文件映射还有什么方式?

共享内存对象映射。

二者有什么区别:

区别:内存映射文件是由一个文件到一块内存的映射,使应用程序可以通过内存指针对磁盘上的文件进行访问,其过程就如同对加载了文件的内存的访问,因此内存文件映射非常适合于用来管理大文件。

 

3、请解释下列 10 个 shell 命令的用途
top、ps、mv、find、df、cat、chmod、chgrp、grep、wc

top:命令是 Linux 下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于 Windows 的任务管理器。 
ps:查看进程 
mv:移动或者更改文件 
find:在子目录中搜索匹配的文件 
df:linux 中 df 命令参数功能:检查文件系统的磁盘空间占用情况。

cat:把一个或多个文件内容显示到标准输出 

chmod:改变文件属性 

chgrp:改变用户分组 

grep:在文件内进行搜索 

wc:命令的功能为统计指定文件中的字节数、字数、行数, 并将统计结果显示输出。

 

4、Linux 文件属性有哪些?(共十位)

-rw-r--r-- 那个是权限符号,总共是 - --- --- --- 这几个位。

第一个短横处是文件类型识别符:- 表示普通文件;c 表示字符设备(character);b 表示块设备(block);d 表示目录 (directory);l 表示链接文件(link);后面第一个三个连续的短横是用户权限位(User),第二个三个连续短横是组权限位 (Group),第三个三个连续短横是其他权限位(Other)。每个权限位有三个权限,r(读权限),w(写权限),x(执行权限)。如果每个权限位都 有权限存在,那么满权限的情况就是:-rwxrwxrwx;权限为空的情况就是 - --- --- ---。

权限的设定可以用 chmod 命令,其格式位:chmod ugoa+/-/=rwx filename/directory。例如:

一个文件 aaa 具有完全空的权限 - --- --- ---。

chmod u+rw aaa(给用户权限位设置读写权限,其权限表示为:- rw- --- ---)

chmod g+r aaa(给组设置权限为可读,其权限表示为:- --- r-- ---)

chmod ugo+rw aaa(给用户,组,其它用户或组设置权限为读写,权限表示为:- rw- rw- rw-)

如果 aaa 具有满权限 - rwx rwx rwx。

chmod u-x aaa(去掉用户可执行权限,权限表示为:- rw- rwx rwx)

如果要给 aaa 赋予制定权限 - rwx r-x r-x,命令为:

chmod u=rwx,go=rx aaa

 
5、linux 查询命令
1:find / -name "文件名"    在目录结构中搜索文件,并执行指定的操作。
2:grep
3:local 文件名  --- 他是 'find -name' 的另一种写法,但要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含 有本地所有文件信息。Linux 系统自动创建这个数据库,并且每天自动更新一次,所以改命令查不到最新变动过的文件。为了避免这种情况,可以在使用 locate 之前,先使用 updatedb 命令,手动更新数据库。
4. whereis --- 是定位可执行文件、源代码文件、帮助文件在文件系统中的位置。whereis 命令只能用于程序名的搜索,而且只搜索二进制文件(参数 -b)、man 说明文件(参数 -m)和源代码文件(参数 -s)。如果省略参数,则返回所有信息。
5:which  作用是在 PATH 变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。