http://ask.apelearn.com/question/5437
第十三章教程地址: http://study.lishiming.net/chapter13.html
我的答案 追加回答
作业题:
1. 设置环境变量 HISTSIZE , 使其能够保存10000条命令历史。
vim /etc/profile 搜索/HISTSIZE 设置HISTSIZE=10000
2. 为什么如果这样设置PS1 (PS1="[\u@\h \W]\$ ") 显示的结果和我们预想的不一样,那要如何设置才能恢复原来默认的?
默认的PS1内容为: PS1='[\u@\h \W]\$ ' ,在PS1的设置中,因为中间有空格,所以我们需要用单引号,没有与需要用到命令的结果,所以不需要引用。
3. 想办法把当前目录下的文件的文件名中的小写字母全部替换为大写字母。
ls |tr '[a-z]' '[A-Z]' ??? ls -a | tr 'a-z' 'A-Z'
for i in `ls`;do mv $i `echo $i|tr '[a-z]' '[A-Z]'`;done
4. 使用sort以":"为分隔符,对/etc/passwd文件的第5段排序。
??? cat /etc/passwd |head -5 |tail -1 |cut -d ":" 1 |sort
sort -t: -k5 filename
cat /etc/passwd | sort -t: -k5
5. 使用cut以":"为分隔符,截出/etc/passwd的第三段字符。
??? cat /etc/passwd |cut -d '\n'
cut -d: -f3 filename
cat /etc/paswwd | cut -d ':' -f 3
6. 简述这几个文件的作用: /etc/profile, /etc/bashrc, .bashrc, .bash_profile.
/etc/profile #主要参数配置文件
/etc/bashrc #初始化文件目录,可添加变量sh文件
.bashrc #初始化文件,可添加变量和alias
.bash_profile #初始化文件,可添加变量和alias
/etc/profile 所有用户共同的环境变量,登陆时都会首先读取该文件。
/etc/bashrc 每一个运行bash shell的用户都执行此文件,此外还有PS1,umask的设置
.bashrc 每个用户的bash设置,用户登录shell或者新打开shell时都会读取此文件,以no-login的方式交互
.bashrc_profile 用户自己的环境变量,可以在其中设置一些自己使用shell信息,是以login的交互方式进行的
7. export 的作用是什么?
设置全部变量,子shell可用
8. linux下自定义变量要符合什么样的规则呢?
设置变量的格式类似"a=b"这样,a是变量名,b是内容,两者中间不能有空格,变量名只能由英文字母,数字和下划线组成,不能以数字开头,有特殊字符需要有单引号括起来
9. 如何把要运行的命令丢到后台跑?又如何把后台跑的进程给调到前台?
bg后台 fg前台
可以按ctrl+z暂停进程,然后按bg 编号放到后台执行
可以在命令后面加一个&,意思是在后台执行
10. 列出当前目录下以"test"开头的文件和目录。
ls -d |grep 'test*' #-d:仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表;
ls test*
ls -al test*
11. 如何把一个命令的输出内容不仅打印到屏幕上而且还可以重定向到一个文件内?
???cat /etc/passwd | tee 1.log
12. 假如有个命令很长,我们如何使用一个简单的字符串代替这个复杂的命令呢?请举例说明。
$(command)
head /etc/passwd | cut -d ':' -f 5 | tee 1.txt
可以这样来赋值变量, a=`head /etc/passwd | cut -d ':' -f 5 | tee 1.txt`
echo $a
alias short=long
13. 我如何实现这样的功能,把一条命令丢到后台运行,而且把其正确输出和错误输出同时重定向到一个文件内?
??? 2&>1.txt
14. 如何按照大小(假如按照10M)分隔一个大文件,又如何按照行数(假如10000行)分隔?
cut
split -b10M filename
split -l10000 filename
15. 做实验,搞明白 ; && || 这三个符号的含义。
多行命令符;&&前者成功,继续执行 ||按顺序执行,直到执行成功为止
16. 如果只想让某个用户使用某个变量如何做?
设置某个用户的.bashrc
17. 使用哪个命令会把系统当中所有的变量以及当前用户定义的自定义变量列出来?
alias
env环境变量 set系统预设变量
扩展阅读:
Linux环境变量之“PS1" http://www.lishiming.net/thread-5364-1-1.html
Linux支持中文 http://www.lishiming.net/thread-5360-1-1.html
让命令历史永久保存并加时间戳 http://www.lishiming.net/thread-283-1-1.html
linux 下/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc 干啥的 http://www.lishiming.net/thread-909-1-1.html