2019年1月3日第1轮

  1. linux文件的权限 –rwxr-xr-x是什么意思,怎样变更文件夹以及下面所有文件的拥有者。
    解析:
    属主有读、写、执行权限;而属组用户和其他用户只有读、执行权限;chown [-R] [用户名称] [文件或目录]
    扩展:
    第一位是 - 代表是文件,第一位是d代表是目录
    第2~10个字符当中的每3个为一组,左边三个字符表示所有者权限,中间3个字符表示与所有者同一组的用户的权限,右边3个字符是其他用户的权限。这三个一组共9个字符,代表的意义如下:
    r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。代表数字为4。
    w(Write,写入):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。代表数字为2。
    x(eXecute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。代表数字为1。
    -:表示不具有该项权限。
    chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理员经常使用chown命令,在将文件拷贝到另一个用户的名录下之后,让用户拥有使用该文件的权限。
    命令格式:chown [选项]… [所有者][:[组]] 文件…
    -R 处理指定目录以及其子目录下的所有文件
  2. linux下给文件start.sh设置权限为自己可读可修改可执行,组内用户为可读可执行不可修改,其余用户没有任何权限,那么设置该文件权限的命令为:chmod start.sh 750
    解析:
    linux中权限有九位二进制数表示XXX YYY ZZZ,前一个XXX表示owner的权限,YYY表示group的权限(也就是同组用户的权限),ZZZ表示other的权限(非同组用户的权限)。根据本题要求,XXX=111,YYY=101,ZZZ=000,所以是750
  3. linux系统中某文件的组外成员的权限为只读;所有者有全部权限;组内的权限为读与写,则该文件的权限为:764
    解析:
    文件/文件夹有三种权限,读-写-执行,对应于,rwx,为了方便都会转成二进制 0 和 1 。只读为100,所有权限为111,读写为110,转换后为4,7,6
  4. 如果你使用一个普通账户telnet远程登录到linux系统中,如何改变身份以root权限管理系统? su命令
    解析:
    su和su -是有区别的,su - 会切换环境变量,su只是切换用户。
    su是在用户间切换,可以是从普通用户切换到root用户,也可以是从root用户切换到普通用户。如果当前是root用户,那么切换成普通用户test用以下命令:
    su - test
    如果要切换回root用户,那么用以下命令:
    su或su -
    用户名root可以省略不写。
    切换回root用户时要输入root密码。一般直接输入exit命令来切换回root用户,这样就不用输入密码。
  5. Linux crontab中* * * * * /usr/local/run.sh这句话5个*号分别代表什么?
    解析:
    分钟 小时 日 月 星期(分食日月粥)
  6. 下面选项关于linux下查看cpu,内存,swap,硬盘信息的命令描述正确的是?
    cat /proc/cpuinfo 查看CPU相关参数的linux系统命令
    cat /proc/meminfo 查看linux系统内存信息的linux系统命令
    fdisk -l: 查看硬盘信息
    cat /proc/swaps :查看所有swap分区的信息
    du -h:查看当前目录下所有目录以及子目录的大小
    hdparm命令可以查看硬盘信息
  7. 文件目录data当前权限为rwx — ---,只需要增加用户组可读权限,但不允许写操作,具体方法为:chmod+050data
    解析:
    别忘了,文件夹首先要可访问才行,因此不论干什么必须加上x权限!
  8. 不算 main 这个进程自身,创建了19个进程。
int main(int argc, char* argv[])
{
fork();
fork() && fork() || fork();
fork();
}

解析:

fork()是一个分叉函数, 返回值: 若成功调用一次则返回两个值,子进程返回0,父进程 返回子进程标记;否则,出错返回-1

每一次fork()就翻倍;

2.linux刷题_linux系统

  1. 进程间通讯方式有哪些?
    管道
    消息队列
    共享内存
    文件和记录锁定
    解析:
    UNIX中有如下的通信方式:
  2. 文件和记录锁定。
    为避免两个进程间同时要求访问同一共享资源而引起访问和操作的混乱,在进程对共享资源进行访问前必须对其进行锁定,该进程访问完后再释放。这是UNIX为共享资源提供的互斥性保障。
    2 )管道。
    管道一般用于两个不同进程之间的通信。当一个进程创建一个管道,并调用fork创建自己的一个子进程后,父进程关闭读管道端,子进程关闭写管道端,这样 提供了两个进程之间数据流动的一种方式。
    3 ) FIFO 。
    FIFO是一种先进先出的队列。它类似于一个管道,只允许数据的单向流动。每个FIFO都有一个名字,允许不相关的进程访问同一个FIFO。因此也成为命名管。
    4)消息队列。
    UNIX下不同进程之间可实现共享资源的一种机制;UNIX允许不同进程将格式化的数据流以消息形式发送给任意进程。对消息队列具有操作权限的进程都可以使用msget完成对消息队列的操作控制。通过使用消息类型,进程可以按任何顺序读消息,或为消息安排优先级顺序。
    5 )信号灯。
    作为进程间通讯的一种方法,它不是用于交换大批数据,而用于多进程之间的同步(协调对共享存储段的存取)。
    6 )共享内存。
    通过信号灯实现存储共享(类似“红灯停、绿灯行”)
  3. linux系统中的/var/log/lastlog日志记录了所有用户最后登录的记录,可以用lastlog命令查看。
    /var/run/utmp日志记录了正在登录本系统中的用户信息,可以用​​​last -f​​​命令查看
    解析:
    B. 执行last指令时,它会读取位于/var/log/wtmp的文件,并把该给文件的内容记录的登录系统的用户名单全部显示出来。
    C. wtmp是二进制文件,他们不能被诸如tail命令剪贴或合并,需要使用who、w、users、last和ac来使用这两个文件包含的信息。

2019年1月3日第2轮

  1. shell不仅仅是用户命令解释器,同时一种强大的编程语言,linux缺省的shell是:bash。
    解析:
    bash是Linux系统默认使用的shell,它由Brian Fox和Chet Ramey共同完成,是BourneAgainShell的缩写,内部命令一共有40个(可使用help命令查看)。Linux使用它作为默认的shell是因为它有诸如以下的特色:
    可以使用类似DOS下面的doskey的功能,用方向键查阅和快速输入并修改命令。
    自动通过查找匹配的方式给出以某字符串开头的命令。
    包含了自身的帮助功能,你只要在提示符下面键入help就可以得到相关的帮助。
  2. 写出完成以下功能的gdb命令。gdb查看线程信息:info thread
    扩展:
    backtrace bt 打印当前的函数调用栈的所有信息。
    info threads 显示当前可调试的所有线程,每个线程会有一个GDB为其分配的ID,后面操作线程的时候会用到这个ID。 前面有*的是当前调试的线程。
    set scheduler-locking 线程调试 显示线程状态,off 不锁定任何线程
    info break 可列出所有断点信息,info break 后也可设置要查看的break num
  3. linux下侦测主机到目的主机之前所经过的路由的命令:traceroute
    扩展:
    ping命令用来检测两部主机之间的信道是否畅通;
    route命令用来显示目前本机路由表的内容,并对路由表作相应的修改;
    tranceroute命令用来探测路由的经过;
    ifconfig命令用来检测和设置本机的网络接口;
  4. 你尝试登出时收到一个错误消息,显示你还有任务未完成,你需要使用下面哪个命令:kill PID-of-the-process
    扩展:
    kill pid让进程正常退出
    kill %job number 直接杀掉进程
  5. 什么命令用来查看硬盘被占用了多少空间和剩余多少空间:df
    扩展:
    A du(disk usage) 命令功能说明:统计目录(或文件)所占磁盘空间的大小
    B df(disk file) 命令功能说明: 用于显示文件系统的磁盘使用情况
    C free 命令功能说明: 可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区
    D vmstat 命令功能说明: 命令报告关于内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息
  6. tar命令用于解压的参数是:-x
    扩展:
    -c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。相当于打包。
    -x 从档案文件中释放文件。相当于拆包。
    -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩或解压? 一般格式为xx.tar.gz或xx. tgz
    -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩或解压?一般格式为xx.tar.bz2
    -v :压缩的过程中显示文件!这个常用
    -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加其他参数!
    -p :使用原文件的原来属性(属性不会依据使用者而变)
    –exclude FILE:在压缩的过程中,不要将 FILE 打包!
  7. 在Linux中,下列都是正确的:
    tar -czvf filename.tgz *可以压缩部分文件
    httpd.conf是apache的主配置文件
    tar -xzvf filename.tgz解压缩tar文件
    /etc/ld.so.conf 此文件记录了编译时使用的动态库的路径,也就是加载so库的路径。
  8. vi编辑器里面如何删除最后一行?G;dd
    解析:
    gg到顶部;G = shift + g到底部。dd删除行。
  9. 在RHEL5系统中使用vi编辑文件时,要将某文本文件第1行到5行的内容复制到文件中的指定位置,以下( )操作能实现该功能。
    解析:
    将光标移到第1行,在vi命令模式下输入5yy,然后将光标移到制定位置,按p键
    使用末行命令1,5y,然后将光标移到制定位置,按p键
    扩展:
    nyy:复制以下n行
    n,my:指定n到m行复制
    p:在光标下一行粘贴
    P(大写):在光标上一行粘贴(插入)
  10. Redhat 9所支持的安装方式有
    通过HTTP进行网络安装
    通过NFS进行网络安装
    从本地硬盘驱动器进行安装
    解析:
    光盘安装 (常规情况) 硬盘安装 (无光驱情况)
    网络安装-NFS方式 (适合于批量安装大量服务器,和kickstart自动安装一起使用)
    网络安装-FTP方式 (适合于批量安装大量服务器,和kickstart自动安装一起使
    网络安装-HTTP方式 (适合于批量安装大量服务器,和kickstart自动安装一起使

2019年1月3日第3轮

  1. 增加一个用户的命令是:useradd
  2. 在linux文件系统权限中(rwx),只读权限对应的数值为4,只写权限对应的数值为2,执行权限对应的数值为1.
  3. linux中su命令可以将普通用户转换成超级用户?
  4. int main()
    {
    char *p = “hello,world”;
    return 0;
    }
    p和"hello,world"存储在内存哪个区域?栈,只读存储区。
    解析:
    根据C语言中的特性和定义p是一个局部变量,而C语言中局部变量存在于栈中,"hello wrold"是一个字符串字面常量,因此存储于程序的只读存储区中,p在这里其实只是指向了"hello wrold"在只读存储区中的地址而已。局部变量存放在栈中,堆中存放的是new和malloc开辟出的,而程序中定义的常量存放在只读存储区。
    扩展:
    (1)从静态存储区域分配:
    内存在程序编译时就已经分配好,这块内存在程序的整个运行期间都存在。速度快、不容易出错,因为有系统会善后。例如全局变量,static变量等。
    (2)在栈上分配:
    在执行函数时,函数内局部变量的存储单元都在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。
    (3)从堆上分配:
    即动态内存分配。程序在运行的时候用malloc或new申请任意大小的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由程序员决定,使用非常灵活。如果在堆上分配了空间,就有责任回收它,否则运行的程序会出现内存泄漏,另外频繁地分配和释放不同大小的堆空间将会产生堆内碎块。
    一个C、C++程序编译时内存分为5大存储区:堆区、栈区、全局区、文字常量区、程序代码区。
  5. 查找当前目录一个月(30天)以前大于100M的日志文件(.log)并删除。
find  . -name "*.log" –mtime +30 –type f –size +100M |xargs rm –rf {} ;

解析:这个绝对学到了!!
find 查找
. 在当前目录查找
-name 指定文件名
-mtime 指定修改时间(以天为单位) +xx 修改时间大于xx天 -xx修改时间小于xx天
-type 应该是指定文件类型
-size 指定文件大小 +xx文件大小大于xx -xx文件大小小于xx
xargs 把前一命令输入当作后一命令输出,通常配合管道使用

  1. 下面对linux下mysqldump备份命令及参数描述正确的是:
mysqldump -h ip -uroot -p DBNAME >bck.sql

解析:
-h表示主机名或IP地址,所以BC错
-P表示数据库连接的TCP/IP端口号
-u表示用户名而不是数据库名,所以D错
-p表示数据库访问密码

  1. 下列不是Linux系统进程类型的是:就绪进程。
    解析: http://ixdba.blog.51cto.com/2895551/543737/
    按照进程的功能和运行的程序分类,进程可划分为两大类:
    (1) 系统进程:可以执行内存资源分配和进程切换等管理工作;而且,该进程的运行不受用户的干预,即使是root用户也不能干预系统进程的运行。
    (2) 用户进程:通过执行用户程序、应用程序或内核之外的系统程序而产生的进程,此类进程可以在用户的控制下运行或关闭。
    针对用户进程,又可以分为交互进程、批处理进程和守护进程三类。
    (1) 交互进程:由一个shell终端启动的进程,在执行过程中,需要与用户进行交互操作,可以运行于前台,也可以运行在后台。
    (2) 批处理进程:该进程是一个进程集合,负责按顺序启动其他的进程。
    (3) 守护进程:守护进程是一直运行的一种进程,经常在linux系统启动时启动,在系统关闭时终止。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。例如httpd进程,一直处于运行状态,等待用户的访问。还有经常用的crond进程,这个进程类似与windows的计划任务,可以周期性的执行用户设定的某些任务。
  2. 网络管理员查看进程时,发现有三个挂起进程,现继续运行作业号为2的进程,下列方式正确的有:fg 2
    解析:
    exec 使用vfork函数时,通常需要exec配合使用
    fg(Foreground) 将进程搬到前台运行的命令
    bg(Background) 将进程搬到后台运行的命令
    jobs 查看当前有多少在后台运行的命令
  3. 将文件file1复制为file2可以用下面哪些命令?
    解析:
    cp file1 file2
    cat file1 >file2
    cat < file1 >file2
    dd if=file1 of=file2
    cat file1 | cat >file2
    扩展解析:
    cp命令 :cp指令用于复制文件或目录。
    将文件file1复制成文件file2命令如下:cp file1 file2
    cat命令 :cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的。
    一次显示整个文件命令如下: cat filename
    “> : linux中的数据流重导向:输出导向,覆盖导向的文件内容。”
    < : linux中的数据流重导向:输入导向,理解为原本由键盘输入改为文本输入
    dd命令 : 作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
    参数:if 输入文件(或设备名称) of 输出文件(或设备名称)
    将文件file1拷贝到文件file2中命令如下: dd if=file1 of=file2
    | :管道命令操作符,处理经由前面一个指令传出的正确输出信息,然后,传递给下一个命令,作为标准的输入