《跟阿铭学Linux》第10章 shell基础知识:课后习题与答案

简介:

1. 设置环境变量 HISTSIZE , 使其能够保存10000条命令历史。

1
2
vim  /etc/profile  
把 HISTSIZE=1000 改为 HISTSIZE=10000


2. 为什么如果这样设置PS1 (PS1="[\u@\h \W]\$ ")  显示的结果和我们预想的不一样,那要如何设置才能恢复原来默认的?

1
应该是 PS1= '[\u@\h \W]\$ '


3. 想办法把当前目录下的文件的文件名中的小写字母全部替换为大写字母。

1
for  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段排序。

1
sort  -t: -k5   /etc/passwd


5. 使用cut以":"为分隔符,截出/etc/passwd的第三段字符。

1
cut  -d: -f3  /etc/passwd


6. 简述这几个文件的作用: /etc/profile, /etc/bashrc, .bashrc, .bash_profile.

  • /etc/profile :  设置系统全局环境变量和启动程序,当用户登录Linux时,该文件被执行,并从/etc/profile.d目录的配置文件中搜集shell的设置。预设的系统全局变量包括PATH、USER、LOGNAME、MAIL、INPUTRC、HOSTNAME、HISTSIZE、umask等。

  • /etc/bashrc : 为每一个运行bash shell的用户执行此文件。当bash shell被打开时,该文件被读取。默认情况下,这个文件主要预设umask以及PS1等。

  • .bash_profile : 定义用户专有的环境变量和启动程序。当用户登录时,该文件仅仅执行一次。 默认情况下,它设置了一些环境变量,执行用户的.bashrc文件。

  • .bashrc :该文件包含专用于用户的shell的bash信息,当用户登录时以及每次打开新的shell时,该该文件被读取。可以将用户自定义的alias和变量写到这个文件中。


7. export 的作用是什么?

1
export  用来声明变量,可以使声明的变量在子shell中生效。


8. linux下自定义变量要符合什么样的规则呢?

(1) 设定变量的格式为“a=b”, 其中a为变量名,b为变量的内容,等号两边不能有空格;

(2)变量名只能由英、数字以及下划线组成,而且不能以数字开头;

(3)当变量内容带有特殊字符(如空格)时,需要加上单引号,变量内容中本身带有单引号的情况则使用双引号;

(4)如果变量内容中需要用到其他命令运行结果则可以使用反引号;

(5)变量内容可以累加其他变量的内容,需要加双引号。


9. 如何把要运行的命令丢到后台跑?又如何把后台跑的进程给调到前台?

要将运行的命令丢到后台,可以先按CTRL+Z让其暂停,然后使用bg命令将其丢到后台运行;或者执行命令时添加&后台标识,格式为“命令+空格+&”。

将后台运行的进程调到前台,可以输入fg快捷键。


10.  列出当前目录下以"test"开头的文件和目录。

1
ls  test *


11.  如何把一个命令的输出内容不仅打印到屏幕上而且还可以重定向到一个文件内?

1
使用 tee 命令,如  cat  /etc/passwd  | tee  2.txt


12. 假如有个命令很长,我们如何使用一个简单的字符串代替这个复杂的命令呢?请举例说明。

1
使用 alias   如  alias  abc= "/usr/local/apache/bin/apachectl -t"


13. 我如何实现这样的功能,把一条命令丢到后台运行,而且把其正确输出和错误输出同时重定向到一个文件内?

1
2
vmstat 1  >  /tmp/1 .log 2>&1 &
叶子百度备注:2>&1 指将标准信息输出路径指定为错误信息输出路径(也就是都输出在一起)。


14. 如何按照大小(假如按照10M)分隔一个大文件,又如何按照行数(假如10000行)分隔?

1
2
split  -b 10M bigfile
split  -l 10000 bigfile


15. 做实验,搞明白 ; && || 这三个符号的含义。

  • ;:只是用来分割多个命令,各条命令相互独立运行,没有任何关联性。

  • &&:只有前面的命令成功执行后,后面的命令才会执行。如果前面的命令执行失败,则忽略后面的命令。

  • ||:多条命令中只要一条命令执行成功,则忽略后面的命令,否则运行后面的命令。


16. 如果只想让某个用户使用某个变量如何做?

1
2
vim   /home/username/ .bashrc  增加一行   export   abc=123
然后再  source   /home/username/ .bashrc


17. 使用哪个命令会把系统当中所有的变量以及当前用户定义的自定义变量列出来?

1
set




本文转自 xpleaf 51CTO博客,原文链接:http://blog.51cto.com/xpleaf/1893506,如需转载请自行联系原作者
相关文章
|
4月前
|
Java Shell Linux
【Linux入门技巧】新员工必看:用Shell脚本轻松解析应用服务日志
关于如何使用Shell脚本来解析Linux系统中的应用服务日志,提供了脚本实现的详细步骤和技巧,以及一些Shell编程的技能扩展。
70 0
【Linux入门技巧】新员工必看:用Shell脚本轻松解析应用服务日志
|
4月前
|
Shell Linux 程序员
详解shell 运行原理及Linux权限
详解shell 运行原理及Linux权限
|
5月前
|
Shell Linux C语言
|
5月前
|
Shell Linux
Linux Shell 脚本入门教程:开启你的自动化之旅
Shell是一种计算机程序,它充当了用户与操作系统之间的接口。在Linux系统中,Shell允许用户通过命令行界面(CLI)来控制计算机。Shell脚本则是一种使用Shell语言编写的脚本,它可以自动执行一系列的命令,帮助用户实现任务自动化,提高工作效率。
150 2
|
6月前
|
安全 Shell Linux
探索Linux命令chsh:更改用户的默认shell
`chsh`是Linux命令,用于更改用户的默认登录shell。它涉及用户环境配置和系统安全,允许用户选择更适合自己的shell以提升效率。命令有交互式选项和参数如`-s`来指定新shell。在使用时要注意新shell的可执行性、权限问题及选择合适的shell。例如,要更改为bash,用户可运行`chsh`后按提示操作,而root用户能用`sudo chsh -s /bin/zsh john`为用户`john`设定zsh。在更改前,确认shell路径、权限,并了解不同shell的特点。
|
6月前
|
监控 Shell Linux
Linux的Shell脚本详解
Linux的Shell脚本详解
|
5月前
|
Java Shell Linux
【Linux】手把手教你做一个简易shell(命令行解释器)
【Linux】手把手教你做一个简易shell(命令行解释器)
98 0
|
6月前
|
Linux 芯片
Linux 驱动开发基础知识——查询方式的按键驱动程序_编写框架(十三)
Linux 驱动开发基础知识——查询方式的按键驱动程序_编写框架(十三)
78 2
|
6月前
|
Ubuntu Java Linux
Linux centos7 ubuntu 一键安装Java JDK 脚本 shell 脚本
Linux centos7 ubuntu 一键安装Java JDK 脚本 shell 脚本
141 2
|
6月前
|
Shell Linux
shell linux中shell脚本编写俄罗斯方块
shell linux中shell脚本编写俄罗斯方块
66 1