设为首页 收藏本站
查看: 1539|回复: 0

第13章 学习 shell脚本之前的基础知识

[复制链接]

尚未签到

发表于 2018-8-27 09:38:45 | 显示全部楼层 |阅读模式
  1. 设置环境变量 HISTSIZE , 使其能够保存10000条命令历史。
  vim /etc/profile
  把 HISTSIZE=1000 改为 HISTSIZE=10000
  2. 为什么如果这样设置PS1 (PS1="[\u@\h \W]\$ ")  显示的结果和我们预想的不一样,那要如何设置才能恢复原来默认的?
  应该是 PS1='[\u@\h \W]$  '     (要用单引号)
  3. 想办法把当前目录下的文件的文件名中的小写字母全部替换为大写字母。
  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 -t: -k5 /etc/passwd
  5. 使用cut以":"为分隔符,截出/etc/passwd的第三段字符。
  cut -d: -f 3 /etc/passwd
  6. 简述这几个文件的作用: /etc/profile, /etc/bashrc, .bashrc, .bash_profile.
  a、   /etc/profile :  设置系统全局环境变量和启动程序,当用户登录Linux时,该文件被执行,并从/etc/profile.d目录的配置文件中搜集shell的设置。预设的系统全局变量包括PATH、USER、LOGNAME、MAIL、INPUTRC、HOSTNAME、HISTSIZE、umask等。
  b、   /etc/bashrc : 为每一个运行bash shell的用户执行此文件。当bash shell被打开时,该文件被读取。默认情况下,这个文件主要预设umask以及PS1等。
  c、    .bash_profile : 定义用户专有的环境变量和启动程序。当用户登录时,该文件仅仅执行一次。 默认情况下,它设置了一些环境变量,执行用户的.bashrc文件。
  d、    .bashrc :该文件包含专用于用户的shell的bash信息,当用户登录时以及每次打开新的shell时,该该文件被读取。可以将用户自定义的alias和变量写到这个文件中。
  7. export 的作用是什么?
  export 用来全局声明变量,可以使声明的变量在子shell中生效
  8. linux下自定义变量要符合什么样的规则呢?
  (1) 设定变量的格式为“a=b”, 其中a为变量名,b为变量的内容,等号两边不能有空格;
  (2)变量名只能由英、数字以及下划线组成,而且不能以数字开头;
  (3)当变量内容带有特殊字符(如空格)时,需要加上单引号,变量内容中本身带有单引号的情况则使用双引号;
  (4)如果变量内容中需要用到其他命令运行结果则可以使用反引号;
  (5)变量内容可以累加其他变量的内容,需要加双引号。
  9. 如何把要运行的命令丢到后台跑?又如何把后台跑的进程给调到前台?
  a、要将运行的命令丢到后台,可以先按CTRL+Z让其暂停,然后使用bg命令将其丢到后台运行;或者执行命令时添加&后台标识,格式为“命令+空格+&”。
  b、将后台运行的进程调到前台,可以输入fg快捷键。
  10.  列出当前目录下以"test"开头的文件和目录。
  ls -d  test*
  11.  如何把一个命令的输出内容不仅打印到屏幕上而且还可以重定向到一个文件内?
  使用tee命令,如 cat /etc/passwd |tee 2.txt
  12. 假如有个命令很长,我们如何使用一个简单的字符串代替这个复杂的命令呢?请举例说明。
  使用alias  如 alias abc="/usr/local/apache/bin/apachectl -t"
  13. 我如何实现这样的功能,把一条命令丢到后台运行,而且把其正确输出和错误输出同时重定向到一个文件内?
  vmstat 1  > /tmp/1.log 2>&1 &
  14. 如何按照大小(假如按照10M)分隔一个大文件,又如何按照行数(假如10000行)分隔?
  split -b 10M  file   ;
  split -l 10000 file
  15. 做实验,搞明白 ; && || 这三个符号的含义。
  ;  只是用来分割多个命令,各条命令相互独立运行,没有任何关联性。
  &&   只有前面的命令成功执行后,后面的命令才会执行。如果前面的命令执行失败,则忽略后面的命令。
  ||   多条命令中只要一条命令执行成功,则忽略后面的命令,否则运行后面的命令。
  16. 如果只想让某个用户使用某个变量如何做?
  vim  /home/username/.bashrc  增加一行  export  abc=123
  然后再 source  /home/username/.bashrc
  17. 使用哪个命令会把系统当中所有的变量以及当前用户定义的自定义变量列出来?
  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


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-557127-1-1.html 上篇帖子: shell 编程入门,一些简单符合命令 下篇帖子: shell中的 中文和英文 双引号
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表