程序员的50大Linux面试问题及答案(二)

简介: 程序员的50大Linux面试问题及答案(二)

程序员的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.”

人与人的羁绊就薄如蝉翼

相关文章
|
18天前
|
缓存 Linux 程序员
老程序员分享:linux下netlink的使用简介
老程序员分享:linux下netlink的使用简介
|
11天前
|
Linux 编译器 Shell
拼多多面试 Linux下一个应用程序开始执行到main被调用之间经历了什么?
在Linux中,程序启动到`main`调用涉及加载器、内核、动态链接器和C运行时。`execve`系统调用加载ELF文件,内核创建进程,加载段,设置栈和调用动态链接器。动态链接器解析符号,重定位,执行初始化。C运行时初始化堆栈,调用`main`。从`_start`到`main`的流程包括环境设置和函数调用。
28 0
|
18天前
|
前端开发 应用服务中间件 程序员
老程序员分享:Nginx相关面试题
老程序员分享:Nginx相关面试题
22 2
|
18天前
|
机器学习/深度学习 关系型数据库 Shell
老程序员分享:Linux之pushd、popd和dirs的使用讲解,比cd
老程序员分享:Linux之pushd、popd和dirs的使用讲解,比cd
11 1
|
10天前
|
存储 Java Linux
Java面试之Linux和docker
Java面试之Linux和docker
13 0
|
17天前
|
开发工具 git Docker
老程序员分享:linux试题
老程序员分享:linux试题
15 0
|
18天前
|
移动开发 程序员 Linux
老程序员分享:linux驱动开发笔记_ioctl函数
老程序员分享:linux驱动开发笔记_ioctl函数
|
18天前
|
网络协议 程序员 Linux
老程序员分享:linux基础
老程序员分享:linux基础
|
19天前
|
域名解析 网络协议 程序员
程序员必知:【转】adns解析库——域名解析实例(C++、linux)
程序员必知:【转】adns解析库——域名解析实例(C++、linux)
22 0
|
10天前
|
存储 算法 Java
Java面试之SpringCloud篇
Java面试之SpringCloud篇
29 1