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