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

Linux学习篇之shell编程基础

[复制链接]

尚未签到

发表于 2018-8-27 12:08:51 | 显示全部楼层 |阅读模式
  设置环境变量:
  ① export 变量名=变量值   #设置环境变量
  ② 变量名=变量值    #设置环境变量
  export 变量名
  set   #显示当前shell所有变量
  env   #查看环境变量
  unset 变量名  #删除变量
  常用环境变量:
  PATH变量:系统查找命令的路径
  echo $PATH    #查看PATH的值
  PATH="$PATH":/root/sh   #将/root/sh目录加到PATH变量中(临时生效)
  PS1变量:命令提示符变量
  当前语系查询:
  locale   #查询当前语系(en_US.UTF-8/zh_CN.UTF-8)
  LANG:定义系统主语系的变量
  LC_ALL:定义整体语系的变量
  /etc/sysconfig/i18n   #语系配置文件
  位置参数变量:
  $n   #n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要大括号包含,如${10}
  $*   #这个变量代表命令行中所有参数,$*把所有的参数看成一个整体
  $@   #这个变量也代表命令行所有参数,不过$@把每个参数区分对待
  $#   #这个变量代表命令行所有参数个数
  预定义变量:
  $?   #最后一次执行的命令的返回状态,上一个命令正确执行变量值为0,上一个命令执行不正确变量值为非0
  $$   #当前进程的进程号(PID)
  $!   #后台运行的最后一个进程的进程号(PID)
  接收键盘输入:
  read [选项] [变量名]
  -p:提示信息
  -t:秒数,指定等待时间
  -n:字符数,接收指定字符数就会执行
  -s:隐藏输入的数据,适用于机密信息输入
  read -p "please input your name:" -t 30 name
  echo $name
  declare声明变量类型:
  declare [+/-][选项] 变量名
  -:给变量设定类型属性
  +:取消变量的类型属性
  -a:将变量声明为数组型
  -i:将变量声明为整数型
  -x:将变量声明为环境变量
  -r:将变量声明为只读变量
  -p:显示指定变量的被声明的类型
  数值运算:
  ① aa=11;bb=22;dd=$(expr $aa + $bb);echo $dd    #dd为33
  ② aa=11;bb=22;dd=$(($aa+$bb));echo $dd    #dd为33
  ③ aa=11;bb=22;dd=$[$aa+$bb];echo $dd    #dd为33
  环境变量配置文件:
  ~/.bash_logout    #注销时执行的配置文件
  ~/.bash_history   #历史命令保存文件
  /etc/issue   #本地终端登录信息显示文件
  /etc/motd   #本地登录、远程登录,只有登录成功便会显示此文件内容
  正则表达式:
  正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配,grep、awk、sed、等命令可以支持正则表达式
  通配符用来匹配符合条件的文件名,通配符是完全匹配,ls、find、cp、这些命令不支持正则,可用通配符
  *:前一个字符匹配0次或任意多次
  .:匹配除了换行符外任意一个字符
  ^:匹配行首,例如^hello匹配以hello开头的行
  $:匹配行尾
  [ ]:匹配括号中任意一个字符,只匹配一个字符
  [^ ]:匹配除中括号的字符以外的任意一个字符
  \{n\}:表示其前面的字符恰好出现n次,例如[0-9]\{4\}匹配4位数字
  \{n,\}:表示前面的字符出现不小于n次,例如[0-9]\{2,\}表示两位及以上数字
  \{n,m\}:表示前面的字符至少出现n次,最多出现m次[a-z]\{6,8\}匹配6到8位的小写字母
  字符截取命令:
  cut命令:
  cut [选项] 文件名
  -f 列号:提取第几列
  -d 分隔符:按照指定分隔符分割列(默认分隔符tab键)
  grep "/bin/bash" /etc/passwd | grep -v "root" | cut -f 1 -d ":"   #查询系统中的普通用户
  cut -d ":" -f 1,3 /etc/passwd
  awk命令:
  awk '条件1{动作1}条件2{动作2}...' 文件名
  df -h | awk '{print $1 "\t" $3}'   #截取第一和第三列
  cat /etc/passwd | grep /bin/bash | awk 'BEGIN{FS=":"}{print $1 "\t" $3}'
  #FS为指定分割符
  sed命令:(对文件进行追加、插入、替换、删除、显示)
  字符处理命令:
  sort [选项] 文件名    #排序命令
  -f:忽略大小写
  -n:以数值型进行排序,默认使用字符串型排序
  -r:反向排序
  -t:指定分割符,默认分隔符为制表符
  -k n[,m]:按照指定的字段范围排序,从第n字段开始,m字段结束(默认到行尾)
  sort -n -t ":" -k 3,3 /etc/passwd   #按照第3个字段以数值型排序
  wc [选项] 文件名
  -l:只统计行数
  -w:只统计单词数
  -m:只统计字符数
  wc -l /etc/passwd   #统计行数


运维网声明 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-557300-1-1.html 上篇帖子: []和[[]]的示例_shell脚本 下篇帖子: shell脚本学习整理(一)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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