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

shell高级(一)

[复制链接]

尚未签到

发表于 2018-8-21 11:29:16 | 显示全部楼层 |阅读模式
  Shell在/etc/shells中
DSC0000.png

  
  Bash:Bourne-again Shell的缩写
  GNU计划的一个组件
  与Unix的Bourne Shell完全兼容
  
  Bash优点
  Bash支持命令行输入、操作历史查询、快捷键、使用变量等功能。
  支持通配符、别名、串操作、文件测试、整形算术运算
  可以交互使用,或者作为脚本语言
  超过60个shell变量
  
  Bash缺点
  资源型敏感,对CPU负担重的程序
  复杂的大项目
  需要灵活的处理文件程序(逐行)
  需要图形用户界面的程序
  需要直接与系统硬件打交道的程序
  需要访问I/O端口和网络套接字的程序
  需要使用库或
  
  Bash快捷键
   Ctrl + d:输入已结束 在shell下相当于一个exit
   Ctrl + c:键盘中断请求
   Crtl + z:挂起
   Ctrl + s & Ctrl + q:暂停/恢复屏幕输出
   Ctrl + l:清屏 相当于clear
   Tab:自动补完命令行与文件名 列出所有可能的选
   Ctrl + a:光标移到行首
   Ctrl + e:光标移到行尾
   Ctrl + k:从光标所在处删除到行结尾
   Ctrl + u:删除整行
   Esc + f:光标移到下一个单词的开始处
   Esc + b:光标移到前一个或当前单词的开始处
  
  连续按TAB键,可以看现在可以使得命令
  
  Shell在/etc/shells中
  
  顺序
DSC0001.png

  
  Bash命令优先级
  Alias
  Keyword
  Functions
  Builtin
  $PATH
  builtin:BASH内置命令
  Help cd /man cd查看内置命令
  
  Bash的操作环境
  主要设置文件
  全局设置:/etc/profile
  /etc/bashrc
  用户设置:~/.bashrc
  ~/.bash_profile
  
  Bashrc
  定义别名
DSC0002.png

DSC0003.png

  其他设置文件
  ~/.bash_logout
  ~/.bash_history
  /etc/profile.d/*.sh
  .bash_logout离开系统时的操作
  一般会写history -c清除历史操作和clear操作
  
   Bash各设置文件的执行顺序
  Start /etc/profile
  Start /etc/profile.d/*.sh
  Stop /etc/profile.d/*.sh
  Stop /etc/profile
  Start ~/.bash_profile
  Start ~/.bashrc
  Start /etc/bashrc
  Stop /etc/bashrc
  Stop ~/.bashrc
  Stop ~/.bash_profile
  
  Env:用来列出环境变量
  Set:Bash还有与操作系统有关变量,以及用户自定义的变量。Set显示全部变量
  Stty:设置tty终端,控制backspace删除等功能
  
  
  Unset a删除SET中的项
  Stty intr ""取消Ctrl+C功能
  退出终端停止生效
  
  /etc/DIR_COLORS控制颜色
  
  
  Set选项
  -f 使路径名替换无效
  -n 读取命令,但不执行(用来对脚本进行语法检查)
  -o optionname 设置指定的选项:emacs,ignoreof,vi
  -v 在命令被读取时打印命令(调试脚本时有用)
  -x 在替换被应用之后打印命令(调试脚本和检查shell替换时有用)
  -C 不允许shell在重定向中损坏文件
  
  
  PS1命令提示符:
   \d 可显示出[星期 月 日]的日期格式,如:“Mon Feb 2”。
   \H 完整的主机名。
   \h 主机名在第一个小数点前的名字,如www后面省略。
   \t 显示时间,为 24 小时格式的[HH:MM:SS]。
   \T 显示时间,为 12 小时格式的[HH:MM:SS]。
   \A 显示时间,为 24 小时格式的[HH:MM]。
   \@ 显示时间,为 12 小时格式的[am/pm]样式 。
   \u 目前使用者的账号名称,如root。
   \v BASH的版本信息。
   \w 完整的工作目录名称,由根目录写起的目录名称,家目录会以~ 替代。
   \W 调用basename函数的工作目录名称,所以仅会列出最后一个目录名。
   \# 下达第几个指令。
   \$ 提示字符。root时是#,否则就是$。
  PS1='[\h]\$'
DSC0004.png

  \w带路径,比较常用
  Bash的启动
   Shell的自动启动
  无论何时登录或者打开终端,shell都会自动启动
   Shell的多层关系
  有时用户想运行一个不同的shell或者同一个shell的另外一个实例。由于shell“另外一个程序”,所以新的shell可以从现有的shell上启动。新的shell被看作是原有shell的子shell。当子shell退出时,就由原来的shell继续控制。
DSC0005.png

  
DSC0006.png

  
  Bash-locale
  Locale显示影响显示结果的语系变量
  /etc/sysconfig/i18n配置文件
  图形界面也可以修改
  
  System-config-language
  LANG=C 设置成英文
  LANG=en_US.UTF-8
  
  Bash - declare
   declare或typeset  就是宣告变量的类型,不加参数
  就是列出当前所有,和set命令输出一样。
   -a  将后面的变量定义成数组(array)类型
   -i  将后面的变量定义成整形(integer)类型
   -x  将后面的变量定义成环境变量
   -r  将后面的变量定义成readonly类型
  
DSC0007.png

  
  -x 使值成为环境变量
  或者
  
  Bash - export
   export 变量名  自定义变量转换成环境变量
   export  查看环境变量
  Bash - history
   在bash中输入history指令可以查询用户的过往操作
   history记录在内存中而定。
   history表在用户logout时会记录入用户主目录下的.bash_history文件中,在下次login时载入。
  
DSC0008.png

  写在/etc/profile中
DSC0009.png

  
DSC00010.png

  
  Bash – history  如何使用history?
   使用 ! 来调用历史命令
   !!:重复执行上一条命令
   !ex:重复执行上一条以ex为开头的命令
   !N:重复执行上一条在history表中记录号码为N的命令
   !-N:重复执行前面第N条命令
   可以用快捷键来调用历史命令
   Ctrl + r:在history表中查询某条历史命令
   fc命令:把之前的命令在编辑器中编辑,退出编辑器的时候执行
   Esc + .和Alt + .:之前被键入的命令行的最后一个标记可以用上面提到的2个组合键中的任何一个来恢复
  
  Bash - alias
   在shell下键入alias可以查询当前alias列表。
   用户可以alias来为一条命令取一个简单的别名
   用户也可以用unalias来取消一条别名记录。
   alias记录在shell中总是先执行。
DSC00011.png

  Bash - ulimit
  ulimit与文件系统及程序的限制相关
   -H hard limit
   -S sort limit
   -a 列出所有的限制额
   -f 可以建立的做大文件大小
   -u 点用户可以使用的最大进程数量
   -n 打开文件的最大个数
  Unalias vi
  Ulimit -n是必改项
DSC00012.png

  Bash欢迎信息
   进入系统时的:/etc/motd
   登录系统是的:/etc/issue  /etc/issue.net
DSC00013.png

  


运维网声明 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-554648-1-1.html 上篇帖子: shell编程之bash 下篇帖子: shell杂记
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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