bash相关习题复习

1、由于 ~/.bash_history 仅能记录指令,我想要在每次注销时都记录时间,并将后续的指令 50 笔记录下来, 可以如何处理?

cs 复制代码
[root@ptivitic ~]# vim ~/.bash_logout 
date >> ~/.myhistory
history 50 >> ~/.myhistory

2、 在 Linux 上可以找到哪些 shell(举出三个) ?哪个文件记录可用的 shell ?而 Linux 预设的 shell 是?

  • /bin/shell、/bin/sh、/usr/bin/sh、/usr/bin/bash
  • /etc/shells
  • bash(/bin/bash)

在 CentOS 7 中,/bin目录(全称是 "binary",二进制的意思) 存放的是一些基本的命令二进制文件,这些命令是系统启动以及普通用户和管理员在命令行操作时经常使用的工具。例如lscpmvrm等命令。

在 CentOS 7 中,/usr目录(全称是 "Unix System Resources",即 Unix 系统资源)用于存放系统中共享的、只读的用户数据和程序。

3、你输入一串指令之后,发现前面写的一长串数据是错的,你想要删除游标所在处到最前面的指令串内容, 应该如何处理?

按下ctrl+u

4、在 shell 环境下,有个提示字符 (prompt),他可以修改吗?要改什么?默认的提示字符内容是?

可以修改,只需要修改PS1这个变量即可。

用户如果想要每次登录都自动更改PS1:在~/.bash_profile中对PS1进行初始化操作

默认的字符提示内容是:

cs 复制代码
[root@localhost ~]# echo $PS1
[\u@\h \W]\$
 
\u是当前用户名
\h是主机名
\W是当前工作目录(最后的目录名)---\w可显示完整路径

5、如何显示 HOME 这个环境变量?

cs 复制代码
[root@ptivitic ~]# echo ${HOME}
/root

6、 如何得知目前的所有变量与环境变量的设定值?

  • 环境变量用 env 或 export
  • 所有变量用 set 即可显示

7、 我是否可以设定一个变量名称为 3myhome ?

不行,变量名称的开头不能为数字

8、 在这样的练习中『A=B』且『B=C』,若我下达『unset $A』,则取消的变数是 A 还是 B?

是B,因为变量A的值是B(值而已),所以unset的是B这个名字的变量

9、如何取消变量与命令别名的内容?

使用 unset 及 unalias 即可

10、如何设定一个变量名称为 name 内容为 It's my name ?

[root@ptivitic ~]# name="It's my name"

或者
[root@ptivitic ~]# name=It\'s\ my\ myname

11、bash 环境配置文件主要分为哪两种类型的读取?分别读取哪些重要文件?

  • login和non-login
  • login:读取/etc/profile以及~/.bash_profile
  • non-login:读取~/.bashrc

12、CentOS 7.x 的 man page 的路径配置文件案?

/etc/man_db.conf

13、试说明 ', ", 与 ` 这些符号在变量定义中的用途?

  • " 可以具有变量的上下文属性
  • ' 则仅有一般字符
  • ` 之内则是可先被执行的指令。

14、 跳脱符号 \ 有什么用途?

用来跳脱特殊字符,例如 Enter, $ 等等,使成为一般字符!

15、连续命令中, ;, &&, || 有何不同?

  • 分号可以让两个 command 连续运作,不考虑 command1 的输出状态
  • && 则前一个指令必需要没有错误讯息,亦即回传值 需为 0 则 command2 才会被执行
  • || 则与 && 相反!

16、 如何将 last 的结果中,独立显示用户名并删除冗余,并且印出曾经登入过的账号?

cs 复制代码
[root@ptivitic ~]# last | cut -d ' ' -f 1 | sort |uniq

admin
langxi
reboot
root
wtmp

17、请问 foo1 && foo2 | foo3 > foo4 ,这个指令串当中, foo1/foo2/foo3/foo4 是指令还是文件? 整串指令的意义为?

  • foo1是指令,失败就直接结束
  • foo2是指令,foo1没有错误才执行foo2 | foo3 > foo4
  • foo3是指令
  • foo4是文件
  • 执行foo1,若成功则执行foo2,将foo2的STDOUT作为foo3的STDIN,将foo3的STDOUT重定向至文件foo4
cs 复制代码
[root@ptivitic ~]# echo 1:2 && echo 3:4 | cut -d ':' -f 2
1:2
4
[root@ptivitic ~]# echo 1:2 | cut -d ':' -f 2 && echo 3:4 | cut -d ':' -f 2
2
4

### 管道只会接收前一命令的STDOUT

18、 如何秀出在 /bin 底下任何以 a 为开头的文件文件名的详细资料?

ls -ld /bin/a*

19、如何秀出 /bin 底下,文件名为四个字符的文件?

ls -ld /bin/????

20、如何秀出 /bin 底下,档名开头不是 a-d 的文件?

ls -ld /bin/[^a-d]*

21、我想要让终端机接口的登入提示字符修改成我自己喜好的模样,应该要改哪里?(filename)

/etc/issue

22、承上题,如果我是想要让使用者登入后,才显示欢迎讯息,又应该要改哪里?

/etc/motd

相关推荐
Thomas_YXQ12 分钟前
Unity3D中基于ILRuntime的组件化开发详解
开发语言·网络·游戏·unity·unity3d
星迹日1 小时前
数据结构:包装类和泛型
java·开发语言·数据结构·笔记·泛型·通配符·包装类
鲤籽鲲2 小时前
C# 整型、浮点型 数值范围原理分析
开发语言·c#
重生之绝世牛码3 小时前
Java设计模式 —— 【行为型模式】命令模式(Command Pattern) 详解
java·大数据·开发语言·设计模式·命令模式·设计原则
晚风_END4 小时前
node.js|浏览器插件|Open-Multiple-URLs的部署和使用,实现一键打开多个URL的强大工具
服务器·开发语言·数据库·node.js·dubbo
_周游6 小时前
【C语言】_指针与数组
c语言·开发语言
SyntaxSage7 小时前
Scala语言的数据库交互
开发语言·后端·golang
疯狂小料7 小时前
Python3刷算法来呀,贪心系列题单
开发语言·python·算法
码力全開7 小时前
C 语言奇幻之旅 - 第14篇:C 语言高级主题
服务器·c语言·开发语言·人工智能·算法
lsx2024067 小时前
PHP Array:精通数组操作
开发语言