1. 怎么理解I/O重定向?

答:

I/O重定向可以改变命令输入/输出的位置,让命令不从键盘输入、不向屏幕输出,而是从指定文件中定向输入


2. /dev/null 是什么,有什么用途?

答:

/dev/null是空设备文,写入它的内容会被丢弃,从屏幕上读取不到,常用于丢弃命令输出、清空文件。


3. 解释下列命令的结果:&> /dev/null 、2>> file

答:

&> /dev/null:将命令的都正常结果和错误重定向丢弃到/dev/null。

2>> file:将命令的错误输出追加到file文件末尾,不覆盖原文件内容。


4. 怎么理解管道?管道和重定向有什么区别?

答:

(1)管道是将一个命令的输出作为另一个命令的输入,实现命令间数据传递。

         重定向是改变命令输入/输出的位置

(2)区别:管道是命令间的数据传递,重定向是命令与文件的数据传递。


5. 在什么情况下需要使用tee命令?举例说明如何使用。

答:

需要同时将命令输出保存到文件,且在屏幕上显示时用tee命令;三通

例:ls | tee file.txt,既在终端展示ls结果,又将结果写入file.txt。


6. vim是什么?vim和vi有什么关系?

答:

(1)vim是文本编辑器。

(2)vim兼容vi所有指令,新增语法高亮、多窗口、撤销恢复等功能,

         vi是Linux基础文本编辑器,vim是vi的升级替代。


7. vim里有几种运行模式,分别说明每种模式下的简单操作。

答:

vim有3种核心模式:

命令模式(默认),可执行复制(yy)、粘贴(p)、删除(dd)等操作;

输入模式,用于编辑文本,按i/a/o进入,按ESC退出;

末行模式,按:进入,可执行保存(:w)、退出(:q)、查找替换等命令。


8. shell会话是什么?一个用户可以启动多个shell会话吗?

答:

shell会话是用户与shell交互的一次完整过程,包含会话的启动、命令执行和退出;

一个用户可以同时打开多个终端窗口,每个窗口或连接都是一个独立的 Shell 会话。


9. 说明shell变量(或bash变量)和环境变量的区别。

答:

(1)shell变量:是一个局部变量,只在当前的 Shell 会话里有效。定义的变量只有这个窗口里的命令知道它;如果你在这个窗口里再打开一个新的 Shell,这个变量就不存在了。

(2)环境变量:是一个全局变量 ,它不仅对当前 Shell 有效,还会自动传递给它启动的任何子进程。所有环境变量都是 shell 变量,但所有 shell 变量并不一定都是环境变量。


10. PATH环境变量有什么重要作用?

答:

PATH 告诉 shell 在哪些目录里查找用户输入的可执行文件 。

例如输入 ls,shell 会搜索 PATH 中列出的目录,找到第一个匹配的 ls 就执行;若 PATH 没有包含某目录,需写绝对路径才能运行其中命令。


11. 分别在/etc/profile、~/.bash_profile 和 ~/.bashrc 设置环境变量时有什么区别?

答:

(1)/etc/profile:所有用户都有效,位于用户的家目录 (~) 下,是针对单个用户的配置文件 ,当该用户登录系统时,这个文件会被执行一次。

(2)~/.bash_profile:当前用户登录时生效,对单个用户的配置文件,位于用户的家目录 (~) 下 ,可以在这设置用户自己的专属环境变量。

(3)~/.bashrc:每次打开新终端窗口时就会执行一次,通常在这里设置每次开窗口都需要设置的环境变量,对单个用户的配置文件


Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐