linux错题记录

su是在用户间切换,可以是从普通用户切换到root用户,也可以是从root用户切换到普通用户。如果当前是root用户,那么切换成普通用户test用以下命令: 
su - test 
如果要切换回root用户,那么用以下命令: 
su或su - 
用户名root可以省略不写。 
切换回root用户时要输入root密码。一般直接输入exit命令来切换回root用户,这样就不用输入密码。


su和su -是有区别的,su - 会切换环境变量,su只是切换用户。

在命令行下使用 vi 编辑一个文件时, 如何复制当前行?(最佳选项)

正确答案: C   你的答案: A (错误)

cc
dd
yy
Ctrl + c


dd 删除光标所在的那一整行
yy 复制光标所在的那一整行
p 将已复制的数据在光标的下一行粘贴
P 将已复制的数据在光标的上一行粘贴

1)把光标移动到要复制的行上
2)按yy
3)把光标移动到要复制的位置
4)按p
 
 
安装命令:rpm -ivh 
卸载命令: rpm -e [package name] 
查看挂载状态: mount 
查看磁盘情况: df 
查看端口:netstat –anlp 
tar.gz的安装:
tar –zxvf tar.gz
安装命令:rpm -ivh 
卸载命令: rpm -e [package name] 
查看挂载状态: mount
磁盘空间:df
网络状态:netstat
 
 
cat /proc/cpuinfo:查看一台linux机器的CPU信息 du:查看该目录占用文件系统数据块的情况 
cat /proc/swaps:查看SWAP分区信息
df -lh:查看硬盘信息




Linux执行ls,会引起哪些系统调用()

正确答案: B C D   你的答案: B (错误)

nmap
read
execve
fork
 

本题知识点

共有11条讨论添加解析

  •  
    任何shell都会执行 exec 和 fork
    而    ls会执行read
    三个加起来
     
     
  •  
    BC 

    可以通过strace -o ls.txt ls进行查看:

    open(".", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3 ///打开当前目录这个文件(目录是一种特殊的文件),并返回文件句柄3
    fstat64(3, {st_mode=S_IFDIR|0755, st_size=4096, }) = 0   ///取得当前目录文件的属性,比如这里大小为4096
    fcntl64(3, F_GETFD)   = 0x1 (flags FD_CLOEXEC)
    getdents64(3, /* 33 entries */, 4096) = 1104     ///读取当前目录下的文件
    getdents64(3, /* 0 entries */, 4096)  = 0
    close(3)                        = 0        ///关闭当前目录文件的句柄
    。。。

    通过# cat ls.txt | awk -F '(' {'print $1'} | sort | uniq 可以看到所有的命令
    access
    arch_prctl
    brk
    close
    execve
    exit_group
    fstat
    futex
    getdents
    getrlimit
    ioctl
    mmap
    mprotect
    munmap
    open
    openat
    read
    rt_sigaction
    rt_sigprocmask
    set_robust_list
    set_tid_address
    statfs
    write


     
  •  
    BCD都应该对才是,shell命令执行机制就是 fork+exec 执行命令,虽然用strace查看引起的系统调用没有fork,不过我想是因为执行任何一个shell命令都会调用fork,所以它就没写了。。。。。
    发表于 2015-06-08 17:34:53回复(8)
 
 
 
 
 
 
 
 
 
 

猜你喜欢

转载自www.cnblogs.com/yuzhiboprogram/p/10009773.html