必知必会,程序员都应该会的 Linux 的 50 个知识点!
>不管是前端或者后端,我觉得都是必备的,或者是说日常知识点,或者学会了不会吃亏的。小在这里给大家准备了 50 道 Linux 面试题,建议收藏。
1.什么是 Linux?
是一套免费使用和自由传播的类 UNIX 操作系统,其内核由林纳斯·本纳第克特·托瓦兹于 1991 年第一次释出,它主要受到 Minix 和 Unix 思想的启发,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。
2.Linux 内核主要负责哪些功能
系统内存管理
软件程序管理
硬件设备管理
文件系统管理
3.交互方式
控制台终端、图形化终端
4.启动 shell
GNU bash shell 能提供对 linux 系统的交互式访问。作为普通程序运行,通常在用户登陆终端时启动。登录时系统启动的 shell 依赖与用户账户的配置。
5.bash 手册
大多数 linux 发行版自带以查找 shell 命令及其他 GNU 工具信息的在线手册。man 命令用来访问 linux 系统上的手册页面。当用 man 命令查看手册,使用分页的程序来现实的。
6.登陆后你在的位置?
一般登陆后,你的位置位于自己的主目录中。
7.绝对文件路径?相对文件路径?快捷方式?
绝对文件路径:描述了在虚拟目录结构中该目录的确切位置,以虚拟目录跟目录开始,相当于目录全名。
以正斜线(/)开始,比如 /usr/local。
相对文件路径:允许用户执行一个基于当前位置的目标文件路径。
比如:当前在/usr/local
快捷方式(在相对路径中使用):
单点符(.) : 表示当前目录;
双点符(..) : 表示当前目录的父目录。
8.迷路,我的当前位置在哪?
pwd 显示当前目录
9.如何切换目录?
语法: cd destination
destination : 相对文件路径或绝对文件路径
可以跳到存在的任意目录。
10.如何查看目录中的文件?区分哪些是文件哪些是目录?递归查?
ls 命令会用最基本的形式显示当前目录下的文件和目录:
可以看出默认是按照字母序展示的
一般来说,ls 命令回显示不同的颜色区分不同的文件类型,如果没有安装颜色插件可以用 ls -F 来区分哪些是目录(目录带/),哪些是文件(文件不带/)
ls -R 递归展示出目录下以及子目录的文件,目录越多输出越多
11.创建文件?创建目录?批量创建?
创建文件:touch 文件名
批量创建文件: touch 文件名 文件名 …
创建目录:mkdir 目录名
批量创建目录: mkdir 目录名 目录名 …
12.删除文件?强制删除?递归删除?
语法: rm destination
-i 询问是否删除,-r 递归删除,-f 强制删除。
rm 不能删除有文件的目录,需要递归删除。
rm -i 询问删除,建议大家平时删除多用 -i,确定一下再删除。
rm -rf 会直接删除,没有警告信息,使用必须谨慎**。
13.制表符自动补全?
有的时候文件的名字很长,很容易拼出错即使拼写对了也很浪费时间。
比如操作 javaxiaokaxiu 这个文件时,输入到 java 的时候,然后按制表键(tab)就会补全成 javaxiaokaxiu,是不是方便多了。
14.复制文件
语法: cp source target
如果 target 不存在则直接创建,如果存在,默认不会提醒你是否需要覆盖,需要加-i 就会询问你是否覆盖,n 否 y 是。
15.重新命名文件?移动文件?
语法 : mv soucre target
重命名:
移动文件:
新建 jdk 目录把 java1.8 文件移动到 jdk 目录下。
16.什么是链接文件?
如过需要在系统上维护同一文件的两份或者多份副本,除了保存多分单独的物理文件副本之外。还可以采用保存一份物理文件副本和多个虚拟副本的方法,这种虚拟的副本就叫做链接。
17.查看文件类型?字符编码?
语法: file destination
可以看出,file 命令可以显示文件的类型 text 以及字符编码 ASCII
18.查看整个文件?按照有文本显示行号?无文本显示行号?
语法 : cat destination
-n 显示行号,-b 有文本的显示行号。 (默认是不显示行号的)
19.查看部分文件
语法 : tail destination
默认情况会展示文件的末尾 10 行。 -n 行数,显示最后 n 行。
语法: head destination
默认情况会展示文件的开头 10 行。 -n 行数,显示开头 n 行。
20.数据排序?对数字进行排序?对月份排序?
默认情况下,文件的数据展示是按照原顺序展示的。sort 命令可以对文本文件中的数据进行排序。sort 默认会把数据当成字符处理。
语法: sort destination
sort -n 所以排序数字时需要用-n,它的含义是说当前排序是的数字。
sort -M 比如月份 Jan、Feb、Mar,如果希望它按照月份排序,加入-M 就会按照月份的大小来排序。
21.查找匹配数据?反向搜?
语法: grep [options] pattern [file]
该命令会查找匹配执行模式的字符串的行,并输出。
-v 反向搜
-n 显示行号
-c 显示匹配的行数
22.压缩工具有哪些?
23.如何压缩文件?如何解压文件?
比如以.gz 的格式举例。
压缩语法: gzip destination
解压语法: gunzip destination
24.Linux 广泛使用的归档数据方法?
虽然 zip 命令能压缩和解压单个文件,但是更多的时候广泛使用 tar 命令来做归档。
语法: tar function [options] obj1 obj2
25.如何查看命令历史记录?
history 命令可以展示你用的命令的历史记录。
26.查看已有别名?建立属于自己的别名?
alias -p 查看当前可用别名
alias li = 'ls -li' 创建别名
27.什么是环境变量?
bash shell 用一个叫作环境变量(environment variable)的特性来存储有关 shell 会话和工作环境的信息。这项特性允许你在内存中存储数据,以便程序或 shell 中运行的脚本能够轻松访问到它们。这也是存储持久数据的一种简便方法。
在 bash shell 中,环境变量分为两类:
全局变量:对于 shell 会话和所有生成的子 shell 都是可见的。
局部变量: 只对创建他们的 shell 可见。
28.储存用户的文件是?包括哪些信息?
/etc/passwd 存储来一些用户有关的信息。
文件信息包括如下内容。
登录用户名
用户密码
用户账户的 UID(数字形式)
用户账户的组 ID(GID)(数字形式)
用户账户的文本描述(称为备注字段)
用户 HOME 目录的位置
用户的默认 shell
29.账户默认信息?添加账户?删除用户?
30.查看组信息?如何创建组?删除组?
31.文件描述符?每个描述符的含义?
1、文件类型:
-代表文件
d 代表目录
l 代表链接
c 代表字符型设备
b 代表块设备
n 代表网络设备
2、访问权限符号:
r 代表对象是可读的
w 代表对象是可写的
x 代表对象是可执行的
若没有某种权限,在该权限位会出现单破折线。
3、这 3 组权限分别对应对象的 3 个安全级别:
对象的属主
对象的属组
系统其他用户
31.修改权限?
chmod options mode file
比如给文件附加可以执行权限:
32.如何执行可以执行文件?
33.列出已经安装的包?安装软件?更新软件?卸载?
列出已经安装的包: yum list installed
安装软件: yum install package_name
更新软件: yum update package_name
卸载软件:yum remove package_name //只删除软件包保留数据文件和配置文件
如果不希望保留数据文件和配置文件
可以执行:yum erase package_name
34.源码安装通常的路子?
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 字节
###### 快速判断某个特定目录是否有超大文件?
默认情况,du 会显示当前目录的所有文件、目录、子目录的磁盘使用情况。
37.默认进程信息显示?
ps 它能输出运行在系统上的所有程序的许多信息。
默认情况下 ps 值显示运行在当前控制台下的当前用户的进程。
38.实时监测进程
与 ps 相比,top 可以实时监控进程信息。
平均负载有 3 个值:最近 1 分钟的、最近 5 分钟的和最近 15 分钟的平均负载。值越大说明系统 的负载越高。由于进程短期的突发性活动,出现最近 1 分钟的高负载值也很常见,但如果近 15 分 钟内的平均负载都很高,就说明系统可能有问题。
39.如何中断一个进程?
在一个终端中, Ctrl + c
通过这个命令许多(不是全部)命令行程序都可以被中断。
40.如何把一个进程放到后台运行?
此时,进程并不能被 Ctrl + c 中断。
41.如何停止一个进程?
kill 命令被用来给程序发送信号。如果没有指定信号,默认发送 TERM(终止)信号。
语法 : kill [-signal] PID …
42.验证网络可链接命令是什么?什么原理?
ping。这个 ping 命令发送一个特殊的网络数据包(叫做 IMCP ECHO REQUEST)到一台指定的主机。大多数接收这个包的网络设备将会回复它,来允许网络连接验证。
一旦启动,ping 会持续在特定时间(默认 1 秒)发送数据包。
43.查看某端口是否被占用?
netstat -ntulp|grep 8080
参数说明:
-t (tcp) 仅显示 tcp 相关选项
-u (udp)仅显示 udp 相关选项
-n 拒绝显示别名,能显示数字的全部转化为数字
-l 仅列出在 Listen(监听)的服务状态
-p 显示建立相关链接的程序名
44.如何查找匹配的文件?基于文件属性?
find 程序能基于各种各样的属性,搜索一个给 定目录(以及它的子目录),来查找文件。
find 命令的最简单使用是,搜索一个或多个目录。
普通查找,按照 name 查找:
文件类型查找:
比如,输出我们的家目录文件数量
根据文件类型查:
find 支持的类型: b 块设备文件、 c 字符设备文件、d 目录、f 普通文件、l 符号链接
45.如何查看当前主机名?如何修改?如何重启后生效?
大家知道一般来讲命令重启就会失效,目前基本上用的 centos7 的比较多,两种方式可以支持重启生效。
一、命令
二、修改配置文件:/etc/hostname
46.如何写一条规则,拒绝某个 ip 访问本机 8080 端口?
47.哪个文件包含了主机名和 ip 的映射关系?
/etc/hosts
48.如何用 sed 只打印第 5 行?删除第一行?替换字符串?
只打印第 5 行:
删除第一行:
替换字符串:
49.打印文件第一行到第三行?
文件 tomcat 中内容:
50.如何用 awk 查看第 2 行倒数第 3 个字段?
参考:
《鸟哥 Linux 私房菜》
《快乐的命令行》
《Linux 命令行与 shell 脚本编程大全(第 3 版)》
《Linux 从入门到精通》
百度百科
公众号:《Java 面试进化论》
新人博主求 3 连🙏🙏🙏。
版权声明: 本文为 InfoQ 作者【Java小咖秀】的原创文章。
原文链接:【http://xie.infoq.cn/article/0985f33b4a4760973415cdc4c】。文章转载请联系作者。
评论