目录
3.解释下列命令的结果,& > /dev/null 、2 >> file。
8.shell会话是什么?一个用户可以启动多个shell会话吗?
11.分别在/etc/profile、~/.bash_profile、/etc/bashrc、~/.bashrc设置环境变量时有什么区别
1.怎么理解I/O重定项?
I/O重定项就是可以不从键盘获取输入,也不将输出和错误消息发送到终端,而将这些消息保存在一个文件中,或者丢弃。
好处是可以自动化任务、备份数据、调试错误、提高效率,并且让数据处理更加灵活和强大。
2./dev/null 是什么,有什么用途?
是一个特殊文件,他会丢弃重定项到该文件的消息。
3.解释下列命令的结果,& > /dev/null 、2 >> file。
& > /dev/null:将标准输出和标准错误都丢弃。
2 >> file:将标准错误追加到file文件。
4.怎么理解管道?管道和重定项有什么区别?
管道会将一个命令的标准输出作为下一个命令的标准输入。
区别:管道会将一个进程(命令)的标准输出作为另一个进程的标准输入;重定项会向文件发送标准输出,或从文件获取标准输入。
(需要管道传输标准错误,可以使用2>&1 | 将标准错误重定项到标准输出。但不能使用&>或&>>。)
5.在什么情况下需要使用tee命令?举例说明如何使用。
tee命令能同时实现管道和重定项的功能。当需要命令的输出既发送到文件,又作为下一个命令的输入时使用tee命令。因为当重定项和管道组合时,重定项的优先级高于管道。
举例:Tee命令与管道一起使用。| tee file 会将输出既发送到终端,又发送到file文件中。
6.vim是什么?vim和vi有什么关系?
Vim是随Linux和Unix系统分发的vi编辑器的改进版本。Vim具有很高的可配置性和效率,提供分屏编辑、颜色格式和突出显示编辑文本等功能。
7.vim有几种运行模式,分别说明每种模式下的简单操作。
四种运行模式:命令模式、扩展命令模式、编辑模式和可视模式。
- 命令模式:第一次打开vim时,它会以命令模式启动,(按Esc键)可进行复制y,粘贴p,撤销u,删除单个字符x;
- 扩展命令模式:按:键进入该模式,可执行保存、退出等工作,:w保存文件,:wq保存并退出,:q!强制退出不保存。
- 编辑模式:按i,可以键入文本
- 可视模式:按v,可以选择多个字符进行文本操作。使用shift+v选择多行;ctrl+v可以选择文本块,退出可视模式按v、shift+v、ctrl+v。
8.shell会话是什么?一个用户可以启动多个shell会话吗?
Shell会话是你与计算机(的操作系统)进行对话的一种方式,打开一个终端窗口,就是开启了与计算机的“对话”,这就是shell会话。
一个用户可以启动多个shell会话,即可以打开多个终端窗口,每个终端窗口代表一个独立(独立的环境变量、独立的历史命令、独立的工作目录、独立的运行进程或设置等等)的shell会话。
9.说明shell变量(或bash变量)和环境变量的区别。
- Shell变量只在当前shell会话中有效,生命周期与shell会话相同,不会被子进程继承,使用普通的变量赋值方式定义。
- 环境变量在整个操作系统中有效,生命周期与系统会话相同,可以被子进程继承,使用export命令定义。
10.PATH环境变量有什么重要作用?
PATH变量是一个包含多个目录路径的字符串,每个路径代表一个文件夹,当我们输入一个命令时,操作系统会按顺序在这些文件夹里查找可执行程序或脚本,这样我们就可以在任何位置直接运行命令,而不需要输入完整的文件路径。
(如果一个命令的可执行文件不在PATH环境变量中,那么就必须的使用完整路径来执行该命令,或者把他的路径添加到PATH环境变量中,使用export PATH=$PATH:/路径/)
11.分别在/etc/profile、~/.bash_profile、/etc/bashrc、~/.bashrc设置环境变量时有什么区别?
/etc/profile:交互式登录shell(通过登录启动的第一个shell),在该文件中定义环境变量,登录时,该文件会被重新读取,环境变量重新设置。适用于整个系统,对所有用户有效。
~/.bash_profile交互式登录shell,在该文件中定义环境变量,登录时,该文件会被重新读取,环境变量重新设置。适用于特定用户。
/etc/bashrc:交互式非登录shell(在交互式登录shell启动的其他会话,使用su切换用户、通过bash命令启动bash等), 在该文件中定义环境变量,登录时,该文件会被重新读取,环境变量重新设置。适用于整个系统,对所有用户有效。
~/.bashrc:交互式非登录shell,在该文件中定义环境变量,登录时,该文件会被重新读取,环境变量重新设置。适用于特定用户。