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",二进制的意思) 存放的是一些基本的命令二进制文件,这些命令是系统启动以及普通用户和管理员在命令行操作时经常使用的工具。例如ls、cp、mv、rm等命令。

在 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

相关推荐
死磕音视频6 小时前
让小模型做选择题:限定候选项并读取 logits 概率的入门实践(附 Python 代码)
开发语言·python·大模型·文本分类·transformers
顽疲9 小时前
Java vue 养老系统源码详解:月账单 care_month_bill 与 Quartz 扣费 Job 实践
java·开发语言·vue.js·vue养老·springboot养老·java养老
Wang's Blog9 小时前
Java 项目实战: 交友项目 - 安装开发工具与环境准备
java·开发语言·交友
程序喵大人11 小时前
【C++入门】编译链接模型 - 07 链接器怎样把符号对上号
开发语言·c++·编译器·编译链接·链接器
微三云 - 廖会灵 (私域系统开发)11 小时前
供应链系统实战:多渠道订单聚合与分布式库存一致性方案总结
开发语言·分布式·php
学逆向的11 小时前
C 数据溢出与精度丢失
c语言·开发语言·网络安全
霸道流氓气质12 小时前
AgentFlow 入门与实战:Task-Based 并发、EWMA 动态调度与四道门禁的 Java 生产级编排
java·开发语言
释厄62313 小时前
错误无误公理——错误正确本同源都迭代定律——逆转有价值
android·开发语言·kotlin
2601_9628857213 小时前
如何用 Python计算 CR能量指标(中间意愿指标)?
开发语言·python
临床数据科学和人工智能兴趣组13 小时前
在R语言的生态系统中,字符串处理一直是一个重要且复杂的任务
开发语言·正则表达式·r语言·r语言-4.2.1