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

2015.4.8 Shell基础知识

[复制链接]

尚未签到

发表于 2018-8-29 09:35:07 | 显示全部楼层 |阅读模式
  1、Shell特性
  命令历史 history  !!  !$  !n  !字符
  Tab键可以补全文件路径或者命令
  alias a="b"  unalias a
  通配符 *匹配零个或多个字符  ?匹配一个字符
  输入输出重定向>,>>,,2>>
  管道符
  作业控制  ctrl+z   jobs   fg    bg
  2、变量
  系统变量名都是大写,echo可以查看变量名
  env 可以列出当前用户的所有环境变量以及用户自定义全局变量
  set 命令可以把所有变量列出来包括系统的和自定义的全局变量以及当前shell自定义变量
  linux下设置自定义变量规则:(1)格式为“a=b”,其中a为变量名,b为变量的内容,等号两边不能有空格;(2)变量名只能由英、数字以及下划线组成,而且不能数字开头;(3)当变量内容带有特殊字符(如空格)时,需要加上单引号;(4)如果变量内容中需要用到其他命令运行结果则可以使用反引号;(5)变量内容可以累加其他变量的内容,需要加双引号。
  系统所有用户使用变量:export myname=Aming 全局变量,加入/etc/profile并source /etc/profile永                                                 久生效
  系统某个用户使用变量:export myname=Aming加入当前用户家目录下的.bashrc中并source .bashrc
  export myname=Aming 全局变量,export不加任何选项表示,声明所有的环境变量以及用户自定义变量
  用户自定义变量,可以使用unset 变量名 进行解除变量设置
  3、系统和个人环境变量的配置文件
  /etc/profile  PATH,USER,LOGNAME,MAIL,INPUTRC,HOSTNAME,HISTSIZE,umask等
  /etc/bashrc   $PS1 umask 以后如果设置umask修改/etc/profile,不要改这个文件
  .bash_profile 用户自己的环境变量
  .bashrc       当用户登录时以及每次打开新的shell时,执行该文件
  .bashrc_history  记录命令历史用的
  .bash_logout   当退出shell时,会执行该文件
  4、shell中的特殊符号
  * 匹配符号,0个或多个任意字符
  ?匹配字符,1个任意的字符
  # 注释说明用的,使后面的内容失去原本的意义
  \ 脱义字符,将特殊字符还原为普通字符
  | 将符号前面命令的结果丢给符号后面的命令,一般针对文档操作的命令比较常用,如cat,less,head
  cut,sort,wc,uniq,tee,tr,split,sed,awk等等
  $ 引用变量,还有!$
  ; 分号,多条命令写一行时,分隔命令
  ~ 用户家目录
  & 放到命令最后面,让命令在后台运行
  >,>>,2>,2>> [错误]重定向,追加[错误]重定向
  []中括号,中间为字符组合,代表中间字符中的任意一个   ls 1[23a].txt
  5、常用命令:
  1)cut
  语法:cut -d '分隔字符' [-cf] n  这里的n是正整数
  -d 后面指定分隔符,用单引号括起来,-f指定第几段  cut -d ':' -f 1 /etc/passwd |head -n 5
  -c 后面只有一个数字表示截取第几个字符 head -n2 /etc/passwd|cut -c2
  -c 后面跟一个数字区域,表示截取从几到几   head -n2 /etc/passwd|cut -c2-5
  2)sort
  语法:sort [-t 分隔符] [-kn1,n2] [-nru] (n1,比重定向多一个功能,在把文件写入后面所跟的文件中的同时,还显示在屏幕
  6)tr用来替换字符
  最常用的就是大小写转换  head -n2 /etc/passwd |tr '[a-z]''[A-Z]'
  tr也可以替换一个字符   grep 'root' /etc/passwd |tr 'r''R'
  7)split切割大文件
  -b 按大小来分割单位为byte   split -b50 1.txt
  默认会以xaa,xab,...这样的形式定义分隔后的文件名,也可以指定文件名split -b50 1.txt 123
  -l 按行数分隔,split -110 file
  6 &&和||
  command1;command2前面命令是否执行完成都会执行后面的命令
  command1&&command2只有前面命令执行成功才会执行后面命令
  command1||command2只有前面命令不成功再去执行后面命令


运维网声明 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-558009-1-1.html 上篇帖子: Linux shell管道与重定向及实例分析 下篇帖子: 用expect跳过密码验证的shell范例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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