您的位置:首页 > 运维架构 > Shell

练习题,shell入门知识

2016-10-29 22:47 253 查看
1. 设置环境变量 HISTSIZE , 使其能够保存10000条命令历史。答:#vim /etc/profile,搜索到HISTSIZE,将1000改为10000,然后保存退出, 再执行 #source /etc/profile 使其生效2. 为什么如果这样设置PS1 (PS1="[\u@\h \W]\$ ") 显示的结果和我们预想的不一样,那要如何设置才能恢复原来默认的?答: 变量内容带有特殊字符,需要加上单引号。3. 想办法把当前目录下的文件的文件名中的小写字母全部替换为大写字母。答: #tr '[a-z]' '[A-Z]'

for f in `ls`; do if echo $f |grep -q '[a-z]'; then mv $f `echo $f|tr '[a-z]' '[A-Z]'`;fi; done

4. 使用sort以":"为分隔符,对/etc/passwd文件的第5段排序。
答: #sort -f: -k5 /etc/passwd
5. 使用cut以":"为分隔符,截出/etc/passwd的第三段字符。答: #cut -d: -f 3 /etc/passwd6. 简述这几个文件的作用: /etc/profile, /etc/bashrc, .bashrc, .bash_profile.答:/etc/profile 这个文件预设了几个重要变量,例如PATH, USER ,LOGNAME, MAIL ,INPUTRC , HOSTNAME , HISTSIZE ,umask 等 /etc/bashrc 这个文件主要预设umask以及 PS1 .bashrc 该文件包含专用于你的shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取,例如你可以将用户自定义的alias或者自定义变量写到这个文件中。
.bash_profile 定义了用户的个人化路径与环境变量的文件名称。每个用户都可以使用该文件输入专用于自己使用的shell信息, 当用户登录时,该文件使用一次

7. export 的作用是什么?

声明变量。如果后面不加任何变量,则会声明所有的变量。
1,可以使系统内所有用户登录后都能使用该变量
需在/etc/profile 文件最末加入变量, export myname=zhangzhen 然后source /etc/profile 即可生效. (将目前的变量刷新)
2,只让当前用户使用该变量,需在用户主目录下的 .bashrc 文件最末加入 export myname=zhangzhen 然后运行
source .bashrc

8. linux下自定义变量要符合什么样的规则呢?
a=b a与b 之间不能有空格 变量可以字母、数字和下划线组成,但是不能以数字开头 变量内容带有特殊字符,需要加上单引号,如果变量内容本身带有单引号,则需要双引号。如果变量内容中需要用到其他命令 运行结果则可以使用反引号。变量内容可以累加其他变量内容,需要加双引号9. 如何把要运行的命令丢到后台跑?又如何把后台跑的进程给调到前台? #bg 丢到后台 #fg 调动前台10. 列出当前目录下以"test"开头的文件和目录。 #ls -d test*11. 如何把一个命令的输出内容不仅打印到屏幕上而且还可以重定向到一个文件内? 答: #echo "ddddd0" |tee 1.txt12. 假如有个命令很长,我们如何使用一个简单的字符串代替这个复杂的命令呢?请举例说明。 答:#alias zh='vi /etc/passwd' zh可以表示 vi /etc/passwd #unalias 解除
13. 我如何实现这样的功能,把一条命令丢到后台运行,而且把其正确输出和错误输出同时重定向到一个文件内?

答:vmstat 1 > /tmp/1.log 2>&1 &
/tmp/1.log
14. 如何按照大小(假如按照10M)分隔一个大文件,又如何按照行数(假如10000行)分隔?
#split -b10M #split -l 10000
15. 做实验,搞明白 ; && || 这三个符号的含义。 答:; 在一行中运行多个命令 #ls -d text*; touch test.111; ls -d test* ; 只是用来分割多个命令,各条命令相互独立运行,没有任何关联性。
&& 只有前面的命令成功执行后,后面的命令才会执行。如果前面的命令执行失败,则忽略后面的 命令。
|| 多条命令中只要一条命令执行成功,则忽略后面的命令,否则运行后面的命令。

16. 如果只想让某个用户使用某个变量如何做?
答:只让当前用户使用该变量
需在用户主目录下的 .bashrc 文件最末加入 export myname=zhangzhen 然后运行 source .bashrc 即: vim /home/username/.bashrc 增加一行 export abc=123 然后再 source /home/username/.bashrc17. 使用哪个命令会把系统当中所有的变量以及当前用户定义的自定义变量列出来? #set
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息