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) = 0close(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)
- 行走:
这个点很难想到,但是我觉得不是面试官想要考察的吧
- 笑颜如玉
回复 行走:我觉的没问题呀.......
- 逍遥小章:
为什么会调用read啊?
- 笑颜如玉
回复 逍遥小章:计算机屏幕是字符设备吧,字符设备是文件吧,要把执行结果写到一个文件中,肯定要调用read啊
- 王智宏基:
如果一个指令是build-in的话,就不会调用fork。
- 笑颜如玉
回复 王智宏基:大兄弟所言甚是,内建命令不需要调用fork,外建命令才需要调用fork
- starnight_cyber
回复 逍遥小章:我想ls命令可以认为是读一个目录吧(文件列表)!
- 牛客375256号
回复 王智宏基:ls 好像是外键命令吧 毕竟功能还是挺多的。
2016-08-15 11:36:15
- 行走:
原文地址:https://www.cnblogs.com/yuzhiboprogram/p/10009773.html