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

4、Bash基础及配置、标准I/O、管道及shell编程基础;

[复制链接]

尚未签到

发表于 2018-8-29 13:42:18 | 显示全部楼层 |阅读模式
  1、Bash基础及配置
  站在用户的角度来讲,SHELL的类型:
  登录式shell
  正常通过某终端登录
  su - USERNAME
  su -l USERNAME
  非登录式shell
  su USERNAME
  图形终端下打开的虚拟终端
  自动执行的shell脚本
  bash的配置文件:
  全局配置:
  /etc/profile, /etc/profile.d/*.sh , /etc/bashrc
  个人配置:
  ~/.bash_profile, ~/.bashrc
  profile类的文件
  1、设定环境变量
  2、运行命令或脚本
  bashrc类的文件
  1、定义本地变量
  2、定义命令别名
  登录式shell如何读取配置文件:
  /etc/profile ----> /etc/profile.d/*.sh ----> ~/.bash_profile ----> /etc/bashrc
  非登录式shell如何读取配置文件:
  ~/.bashrc ---> /etc/bashrc  ----> /etc/profile.d/*.sh
  完全切换 su - USERNAME 或 su -l USERNAME
  半切换:su USERNAME
  作用范围越小,越是最终生效的。
  如何配置一个永久的别名命令?个人的?全局的?
  如何配置一个永久的全局提示语?个人的?全局的?
  2、管道及IO重定向
  
  
  运算器、控制器 ----> CPU
  存储器:RAM
  输入设备/输出设备
  程序:指令+数据
  控制器:指令
  运算器:
  存储器:
  地址总线:内存寻址
  数据总线:数据传输
  控制总线:控制指令
  实际上,是一根总线,三种功能
  寄存器:CPU暂时存储器
  I/O:硬盘,
  程序:
  INPUT设备:
  OUTPUT设备:
  系统设定:
  默认输出设备:标准输出,STDOUT,1
  默认输入设备:标准输入,STDIN,0
  默认错误输出:标准错误,STDERR,2
  标准输入设备:键盘
  标准输出和错误输出:显示器(廉价)
  I/O重定向:
  Linux
  输出重定向(大于号):> 覆盖输出
  >> 追加输出
  set -C 禁止对已经存在文件使用覆盖重定向
  若要强制覆盖输出:则使用>|
  set +C 关闭上述功能
  2> 重定向错误输出
  2>>追加方式
  &> :重定向标准输出或错误输出至同一个文件,覆盖方式
  输入重定向(小于号):<
  root
  单词:只要是以字母开始,字母结束,中间不出现特殊字符即可;r55t
  分组:
  \(\)
  \(ab\)*
  后向引用
  \1:引用第一个左括号以及与之对应的右括号所包括的所有内容
  \2:
  \3:
  练习:
  1、显示/proc/meminfo文件中以不区分大小的s开头的行;
  grep -i '^s' /proc/meminfo
  grep '^[sS]' /proc/meminfo
  2、显示/etc/passwd中以nologin结尾的行;
  grep 'nologin$' /etc/passwd
  取出默认shell为/sbin/nologin的用户列表
  grep "nologin$' /etc/passwd | cut -d: -f1
  取出默认shell为bash,且其用户ID号最小的用户的用户名
  grep 'bash$' /etc/passwd | sort -n -t: -k3 | head -1 | cut -d: -f1
  3、显示/etc/inittab中以#开头,且后面跟一个或多个空白字符,而后又跟了任意非空白字符的行;
  grep "^#[[:space:]]\{1,\}[^[:space:]]" /etc/inittab
  4、显示/etc/inittab中包含了:一个数字:(即两个冒号中间一个数字)的行;
  grep ':[0-9]:' /etc/inittab
  5、显示/boot/grub/grub.conf文件中以一个或多个空白字符开头的行;
  grep '^[[:space:]]\{1,\}' /boot/grub/grub.conf
  6、显示/etc/inittab文件中以一个数字开头并以一个与开头数字相同的数字结尾的行;
  grep '^\([0-9]\).*\1$' /etc/inittab
  练习:
  1、找出某文件中的,1位数,或2位数;
  grep '[0-9]\{1,2\}' /proc/cpuinfo
  grep --color '\' /proc/cpuinfo
  2、找出ifconfig命令结果中的1-255之间的整数;
  3、查找当前系统上名字为student(必须出现在行首)的用户的帐号的相关信息, 文件为/etc/passwd
  grep '^student\>' /etc/passwd | cut -d: -f3
  id -u student
  student1
  student2
  练习:分析/etc/inittab文件中如下文本中前两行的特征(每一行中出现在数字必须相同),请写出可以精确找到类似两行的模式:
  l1:1:wait:/etc/rc.d/rc 1
  l3:3:wait:/etc/rc.d/rc 3
  grep '^l\([0-9]\):\1.*\1$' /etc/inittab


运维网声明 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.yunweiku.com/thread-558232-1-1.html 上篇帖子: shell写的俄罗斯方块游戏 下篇帖子: shell 自动登录脚本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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