参考博客:linux的命令行操作和shell的区别
linux系统下可以在命令行进行操作,而shell是linux命令集的概称,是属于命令行的人机界面。
Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。通常我们说的Shell都是Shell Script也就是Shell脚本(.sh文件)。
Shell相当于经过装饰的命令行,和命令行一样,都能操作linux。但是shell是面向过程的,相当于有了一定的逻辑和过程,而命令行只是单一的操作。
Linux常用命令:
cd:切换目录
ls:显示指定工作目录下的内容,列出文件系统中的所有文件和目录
rm:删除
mv:移动文件
pwd:查看当前工作目录的完整路径
ps:显示命令运行的进程,并显示进程ID和其他一些相关数据
top:来查看系统进程,top也能显示系统内存。
free:查看系统内存
kill:终止进程
sudo:已其他身份来执行,预设的身份是root
vi/vim:使用vi编辑器
touch: 如果文件不存在的话,将会创建一个 0KB 的空文件
mkdir xxx:创建一个名为xxx的文件夹
cat:连接文件或标准输入并打印
grep:是一个过滤器,用于全局搜索正则表达式(在文件中查找字符串)
find:查找位置 文件名或目录名
env: 允许用户设置或打印环境变量
常见面试题:
1.什么是BASH?
回答: Bash是Unix shell和命令处理器。它是免费软件,可以代替Bourne Shell。这是一个解释后的未编译过程,也可以在终端窗口中运行。这使用户可以编写命令并引起动作。Bash能够从Shell脚本读取命令。
2.什么是Shell?
回答: Shell是一个命令解释器,充当用户和内核之间的接口。用户可以通过在Shell上编写程序,命令和脚本来与内核进行通信。它接受人类可读的命令,并将其转换为内核可理解的语言。
3. Linux中有几种类型的Shell?
回答:Shell脚本语言是弱类型语言(无需定义变量即可使用),Linux中主要有两大类shell:
一类是Bourne shell,另一类是C shell:
- Bourne shell包括Bourne shell(sh)、Korn shell(ksh)、Bourne Again Shell三种类型
- C shell包括csh、tcsh两种类型
补充:
查看系统默认的shell:echo $SHELL
查看系统支持的shell:cat/etc/shells
一个规范的Shell脚本在第一行会指出由哪个程序(解释器)来执行脚本中的内容,这一行内容在Linux bash的编程一般为:#!/bin/bash
或 #! /bin/sh
。
bash 与 sh 的区别 :sh 为 bash的软连接,大多数情况下,脚本使用#!/bin/bash
和#!/bin/sh
是没有区别的,但更规范的写法是在脚本的开头使用 #!/bin/bash
。
2、在shell脚本中,跟在 # 后面的内容表示注释
4.发出命令时如何打开命令提示符?
回答:通过按CTRL + ALT + T或在菜单搜索栏中提供终端来启动终端。
5.解释Linux中的文件权限类型?
回答:每个文件或目录都具有3个权限:
Read
只可以读取该文件。Write
可以写入文件或修改目录的文件。Execute
影响用户执行文件或查看目录文件的能力。
6. Linux中的进程状态是什么?
回答: Linux中的五个过程状态。
新建/就绪:已创建一个新进程并准备运行。
正在运行:正在执行该进程。
阻止/等待:进程正在等待用户输入。
终止/完成:进程已完成执行或被操作系统终止。
僵尸:进程已删除,但仍在进程表中存在有关该进程的信息。
7. 解释Linux中的流程管理系统调用吗?
回答: Linux中的流程管理系统调用:
fork():用于创建新进程。
exec():执行新进程。
wait():等到进程执行。
exit():退出进程。
系统调用以获取进程ID:
getpid():查找唯一的进程ID。
getppid():查找唯一的父进程ID。
8为什么我们使用LINUX?
回答:
- 高稳定性:非常稳定,不会导致崩溃,它可以像首次安装时一样快速运行。
- 安全性:这是一台可靠的服务器,可以为用户提供高安全性。在系统上使用Linux很容易避免病毒和恶意软件。攻击者无法更改系统中的任何更改,除非该用户以root用户身份登录。
- 易于操作: Linux易于操作,并且我们可以轻松地安装到系统上,因为Linux的所有变体都有自己的软件存储库。您可以单击几次以定期更新系统,也可以设置自动更新。
- 硬件兼容性: Linux可以在任何硬件上使用,它没有任何硬件限制。它有效地使用了所有系统资源。
- 开源:源代码可用,因为它位于免费和开源软件(FOSS)下。
9. 描述父子进程如何相互通信?
回答: 父进程通过使用管道,套接字,消息队列等与子进程进行通信。
10.什么是僵尸进程?
回答: 这是一个执行已完成但进程表中甚至存在信息的进程。由于子进程需要读取子进程的状态,因此发生在子进程中。一旦使用wait系统调用完成了该任务,则僵尸进程将从进程表中删除。这被称为僵尸进程。
11.什么是Linux中的top命令?
回答: top命令显示和更新排序的过程信息。使用此top命令来确定正在运行的进程以及它们消耗了多少内存和CPU。
12. Linux中的netstat命令是什么?
回答: Linux中的netstat命令显示网络状态。此netstat命令显示正在使用的网络端口及其传入连接。
13.在Linux中,lsof命令是什么?
回答:命令ls列出了与您的应用程序关联的打开文件。
14.在Linux中df命令是什么?
回答: 用户可以使用df命令对磁盘空间问题进行故障排除。此处df表示显示可用磁盘空间。
df命令示例:
df -h
15.在Linux中du命令是什么?
Linux中的Ans: du命令用于检索有关哪些文件使用目录中磁盘空间的更多详细信息。