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

shell破冰

[复制链接]

尚未签到

发表于 2018-8-23 11:38:56 | 显示全部楼层 |阅读模式
  以前写过C++代码,一直没有系统的学习过shell的语法,每次写脚本的时候都是用到什么就查什么,很不方便,所以决定在此全面的学习一下shell。
  ------------------------------------------------------------------------------------------------------
  常用命令行下的快捷键:
  ctrl d 退出当前shell 同exit
  bash 打开一个子shell
  ctrl a 光标移动到本行最前
  ctrl e 光标移动到本行最后
  ctrl z 命令转到后台
  ctrl s 暂停屏幕输出
  ctrl q 恢复屏幕输出
  ctrl k 从光标所在处删除到结尾
  ctrl u 删除整行
  esc f 光标移到下一个单词的开始处
  esc b 光标移到当前单词的开始处
  -----------------------------------------------------------------------------------------------------
  查看终端支持哪些shell类型:cat /etc/shells
  查看当前使用的bash类型:which bash
  locale -a 查看支持的语言
  locale -a | grep zh 查看中文语言的支持
  将英文界面改成中文:
  1.安装中文包 必须用yum安装
  2.vim /etc/sysconfig/i18n 或者 system-config-language(要有图形界面)
  ----------------------------------------------------------------------------------------
  bash环境设置文件:
  全局
  /etc/profile 为系统的每个用户设置环境信息,当用户第一次登陆时,该文件被执行。并从/etc/profile.d目录的配置文件中搜索shell的设置。
  /etc/bashrc 每个运行bash shell的用户都会执行此文件,当bash shell被打开时,该文件被读取。继承/etc/profile文件中的变量。
  用户
  ~/.bashrc 包含专用于你的bash shell的bash信息,当登陆时以及每次打开新的shell时,该文件被读取。交互式non-login方式进入bash运行。
  ~/.bash_profile 交互式login的方式进入bash运行。通常会先执行调用 ~/.bashrc文件。
  Bash其他设置文件:
  ~/.bash_logout 每次退出bash shell时执行
  ~/.bash_history 记录bash shell的历史记录,及时执行了history -c后文件中也仍然存在
  /etc/profile.d/*.sh
  环境变量
  查看环境变量: env
  查看环境变量和局部变量:set
  设定执行脚本的环境变量:
  PATH=$PATH:/tmp 在原来路径的基础上加上目录就可以 这样执行tmp下的脚本的时候 就不用指定绝对路径或者切换到tmp下就可以执行脚本
  set常见用法:
  -f 使路径名替换(匹配)无效
  -n 读取命令,但不执行(多用于脚本语法检查)
  -o option
  emacs 使用emacs风格命令行的快捷键
  ignoreeof当EOF(ctrl+d)被读取时,不退出shell
  vi 使用vi风格命令行的快捷键
  -v 在命令被读取时,打印命令(用于调试脚本)
  -x 在替换被应用之后打印命令(用于调试脚本和检查shell替换)
  -C 不允许shell在重定向中损坏文件
  系统变量都是在用户登录的时候创建的
  登录shell 环境变量都是存在于以下几个文件中的
  /etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc
  即 su - 用户
  每个用户的家目录里面都有一个logout文件在退出bash shell时执行
  非登录shell
  ~/.bash_profile --> ~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh
  即 su 用户
  ------------------------------------------------------------------------------------------------------
  别名
  定义别名:alias la="ls -a" 这样在终端输入la就相当于输入ls -a
  取消别名:unalias la
  hash 用来显示,添加和清除哈希表
  hash table是shell在解释命令的时候首先会查找的对象,当指令表不在hash table中时,才会去PATH中设定的路径寻找命令,然后加以解释执行。同时也会将之放入hash table中,当下次执行同名命令时。不需要寻找PATH,shell以此来提高命令的执行效率。
  hash命令常用参数:
  -l 显示记忆的命令
  -r 清除记忆的命令包括路径
  -p filename 向哈希表中增加内容
  -d filename 从哈希表中删除内容
  -t command 显示指定命令的完整路径
  在启动服务的时候/etc/init.d/sshd start 太过于麻烦 可以hash -p /etc/init.d/sshd bbb
  这样启动的时候就可以bbb start hash的优先级是最高的(高于别名)
  优先级:hash --> 别名 --> 关键字


运维网声明 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-555509-1-1.html 上篇帖子: shell 变量 下篇帖子: shell %% , ##,#,% 用法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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