程序员的50大Linux面试问题及答案(一):https://developer.aliyun.com/article/1416673
31.修改权限?
chmod options mode file
比如给文件附加可以执行权限:
[root@xiaoka ~]# chmod +x filename
32.如何执行可以执行文件?
[root@xiaoka ~]# sh sleep.sh hello,xiaoka [root@xiaoka ~]# ./sleep.sh hello,xiaoka
33.列出已经安装的包?安装软件?更新软件?卸载?
列出已经安装的包: yum list installed
安装软件: yum install package_name
更新软件: yum update package_name
卸载软件:yum remove package_name //只删除软件包保留数据文件和配置文件
如果不希望保留数据文件和配置文件
可以执行:yum erase package_name
34.源码安装通常的路子?
tar -zxvf xx.gz //解包 cd xx ./configure make make install
35.vim编辑器几种操作模式?基本操作?
操作模式:
- 普通模式
- 插入模式
基础操作:
- h:左移一个字符。
- j:下移一行(文本中的下一行)。
- k:上移一行(文本中的上一行)。
- l:右移一个字符。
vim提供了一些能够提高移动速度的命令:
- PageDown(或Ctrl+F):下翻一屏
- PageUp(或Ctrl+B):上翻一屏。
- G:移到缓冲区的最后一行。
- num G:移动到缓冲区中的第num行。
- gg:移到缓冲区的第一行。
退出vim:
- q:如果未修改缓冲区数据,退出。
- q!:取消所有对缓冲区数据的修改并退出。
- w filename:将文件保存到另一个文件中。
- wq:将缓冲区数据保存到文件中并退出。
36.查看设备还有多少磁盘空间?
df 可以查看所有已挂在磁盘的使用情况。
-m 用兆字节,G代替g字节
[root@iz2ze76ybn73dvwmdij06zz ~]# df 文件系统 1K-块 已用 可用 已用% 挂载点 devtmpfs 1931568 0 1931568 0% /dev tmpfs 1940960 0 1940960 0% /dev/shm tmpfs 1940960 720 1940240 1% /run tmpfs 1940960 0 1940960 0% /sys/fs/cgroup /dev/vda1 41152812 9068544 30180560 24% / tmpfs 388192 0 388192 0% /run/user/0
快速判断某个特定目录是否有超大文件?
默认情况,du会显示当前目录的所有文件、目录、子目录的磁盘使用情况。
[root@iz2ze76ybn73dvwmdij06zz src]# du 4 ./debug 4 ./kernels 12
37.默认进程信息显示?
ps它能输出运行在系统上的所有程序的许多信息。
默认情况下ps值显示运行在当前控制台下的当前用户的进程。
[root@iz2ze76ybn73dvwmdij06zz ~]# ps PID TTY TIME CMD 10102 pts/0 00:00:00 bash 10131 pts/0 00:00:00 ps
38.实时监测进程
与ps相比,top可以实时监控进程信息。
平均负载有3个值:最近1分钟的、最近5分钟的和最近15分钟的平均负载。值越大说明系统 的负载越高。由于进程短期的突发性活动,出现最近1分钟的高负载值也很常见,但如果近15分 钟内的平均负载都很高,就说明系统可能有问题。
39.如何中断一个进程?
在一个终端中, Ctrl + c
通过这个命令许多(不是全部)命令行程序都可以被中断。
40.如何把一个进程放到后台运行?
[root@iz2ze76ybn73dvwmdij06zz ~]# ./sleep.sh &
此时,进程并不能被Ctrl + c 中断。
41.如何停止一个进程?
kill命令被用来给程序发送信号。如果没有指定信号,默认发送TERM(终止)信号。
语法 : kill [-signal] PID …
42.验证网络可链接命令是什么?什么原理?
ping。这个 ping 命令发送一个特殊的网络数据包(叫做 IMCP ECHO REQUEST)到一台指定的主机。大多数接收这个包的网络设备将会回复它,来允许网络连接验证。
一旦启动,ping会持续在特定时间(默认1秒)发送数据包。
43.查看某端口是否被占用?
netstat -ntulp|grep 8080
[root@iz2ze76ybn73dvwmdij06zz ~]# netstat -ntulp|grep 8080 tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 4517/jav
参数说明:
- -t (tcp) 仅显示tcp相关选项
- -u (udp)仅显示udp相关选项
- -n 拒绝显示别名,能显示数字的全部转化为数字
- -l 仅列出在Listen(监听)的服务状态
- -p 显示建立相关链接的程序名
44.如何查找匹配的文件?基于文件属性?
find 程序能基于各种各样的属性,搜索一个给 定目录(以及它的子目录),来查找文件。
find 命令的最简单使用是,搜索一个或多个目录。
普通查找,按照name查找:
[root@iz2ze76ybn73dvwmdij06zz ~]# find -name xiaoka ./xiaoka
文件类型查找:
比如,输出我们的家目录文件数量
[root@iz2ze76ybn73dvwmdij06zz ~]# find ~|wc -l 17130
根据文件类型查:
[root@iz2ze76ybn73dvwmdij06zz ~]# find ~ -type d | wc -l 7340
find支持的类型: b 块设备文件、 c 字符设备文件、d 目录、f 普通文件、l 符号链接
45.如何查看当前主机名?如何修改?如何重启后生效?
[root@iz2ze76ybn73dvwmdij06zz ~]# hostname//查看当前主机名 iz2ze76ybn73dvwmdij06zz [root@iz2ze76ybn73dvwmdij06zz ~]# hostname xiaoka//修改当前主机名 [root@iz2ze76ybn73dvwmdij06zz ~]# hostname xiaoka
大家知道一般来讲命令重启就会失效,目前基本上用的centos7的比较多,两种方式可以支持重启生效。
一、命令
[root@iz2ze76ybn73dvwmdij06zz ~]# hostnamectl set-hostname xiaoka [root@iz2ze76ybn73dvwmdij06zz ~]# hostname xiaoka [root@xiaoka ~]#
二、修改配置文件:/etc/hostname
[root@xiaoka ~]# vim /etc/hostname
46.如何写一条规则,拒绝某个ip访问本机8080端口?
iptables -I INPUT -s ip -p tcp —dport 8080 -j REJECT
47.哪个文件包含了主机名和ip的映射关系?
/etc/hosts
48.如何用sed只打印第5行?删除第一行?替换字符串?
只打印第5行:
➜ apache sed -n "5p" tomcat stop
删除第一行:
[root@xiaoka ~]# cat story Long ago a lion and a bear saw a kid. They sprang upon it at the same time. The lion said to the bear, “I caught this kid first, and so this is mine.” [root@xiaoka ~]# cat story They sprang upon it at the same time. The lion said to the bear, “I caught this kid first, and so this is mine.”
替换字符串:
➜ apache cat story Long ago a lion and a bear saw a kid. They sprang upon it at the same time. The lion said to the bear, “I caught this kid first, and so this is mine.” ➜ apache sed 's#this#that#g' story Long ago a lion and a bear saw a kid. They sprang upon it at the same time. The lion said to the bear, “I caught that kid first, and so that is mine.”
49.打印文件第一行到第三行?
文件tomcat中内容:
➜ apache cat tomcat text21 text22 text23 start stop restart end ➜ apache head -3 tomcat text21 text22 text23 ➜ apache sed -n '1,3p' tomcat text21 text22 text23 ➜ apache awk 'NR>=1&&NR<=3' tomcat text21 text22 text23
50.如何用awk查看第2行倒数第3个字段?
➜ apache awk 'NR==3{print $(NF-2)}' story this ➜ apache cat story Long ago a lion and a bear saw a kid. They sprang upon it at the same time. The lion said to the bear, “I caught this kid first, and so this is mine.”
人与人的羁绊就薄如蝉翼