![](https://i-blog.csdnimg.cn/blog_migrate/e5a5cda1131585998ba518ee7bfc93c5.jpeg)
作业题:
1. 设置环境变量 HISTSIZE , 使其能够保存10000条命令历史。
修改/etc/profile 这个配置文件,修改HISTSIZE=10000,最后执行source /etc/profile让他完全生效
2. 为什么如果这样设置PS1 (PS1="[\u@\h \W]\$ ") 显示的结果和我们预想的不一样,那要如何设置才能恢复原来默认的?
退出当前终端重新打开就可以了,如果需要永久生效的话,需要/etc/profile中输入 export PS1="[\u@\h \W]"\$
3. 想办法把当前目录下的文件的文件名中的小写字母全部替换为大写字母。
# find . -type f -name "*" |tr '[a-z]' '[A-Z]'
如果用ll命令替换的话他就会连目录都一起替换
4. 使用sort以":"为分隔符,对/etc/passwd文件的第5段排序。
sort -t: -k5 /etc/passwd
5. 使用cut以":"为分隔符,截出/etc/passwd的第三段字符。
cat /etc/passwd |cut -d ":" -f 3
6. 简述这几个文件的作用: /etc/profile, /etc/bashrc, .bashrc, .bash_profile.
/etc/profile ##所有用户共同的环境变量,当用户登录时总是会首先读取这个文件
/etc/bashrc ##每一个运行bash shell的用户都执行此文件,此外还有PS1,umask的设置
.bashrc ##每个用户的bash设置,用户登录shell或者新打开shell时都会读取此文件,以no-login的方式交互
.bash_profile ##用户自己的环境变量,可以在其中设置一些自己使用shell信息,是以login的交互方式进行的
7. export 的作用是什么?
export 用于显示和设置全局变量
8. linux下自定义变量要符合什么样的规则呢?
类似于a=1 这样a为变量名1位内容两者间不能有空格,变量名只能有数字下划线英文字母组成,不能以数字开头有特殊符号要用单引号引起来
9. 如何把要运行的命令丢到后台跑?又如何把后台跑的进程给调到前台?
ctrl+z 暂停任务然后bg 任务编号放到后台运行或者 可以在命令后面加一个&,意思是在后台执行
fg 任务编号,
10. 列出当前目录下以"test"开头的文件和目录。
find . -name "test*" 或者ls test*
11. 如何把一个命令的输出内容不仅打印到屏幕上而且还可以重定向到一个文件内?
# cat /etc/passwd |tee 1.log
12. 假如有个命令很长,我们如何使用一个简单的字符串代替这个复杂的命令呢?请举例说明。例如我们要把/etc/目录下的所有.conf结尾的配置文件里面的内容重定向到1.txt我们需要运行的命令是find /etc -type f -name "*.conf" -exec cat {} >>1.txt \;
这个时候我们做alias别名,就只要输入一个a就可以了
alias a=“find /etc -type f -name "*.conf" -exec cat {} >>1.txt \;“
13. 我如何实现这样的功能,把一条命令丢到后台运行,而且把其正确输出和错误输出同时重定向到一个文件内?
ls 1.txt a.txt &>1.txt &
14. 如何按照大小(假如按照10M)分隔一个大文件,又如何按照行数(假如10000行)分隔?
split -b 10m name
split -l 10000 name
15. 做实验,搞明白 ; && || 这三个符号的含义。
&& 只有前面命令执行成功才会后面才会执行
|| 前一条命令如果执行成功了后面不执行,用法[ -d 123 ] || mkdir 123
16. 如果只想让某个用户使用某个变量如何做?
可以写入用户家目录下的.bashrc
17. 使用哪个命令会把系统当中所有的变量以及当前用户定义的自定义变量列出来?
env 或者set