shell基础

shell基础
shell作用:把用户输入命令编译成0101给机器,机器反馈回来的0101再编译成英文来显示
1.shell什么
       1.命令行解释器
       2.功能相当强大的编程语言,易编写,易调试,灵活性强。shell是解释执行的脚本语言,
在shell中可以直接调用Linux系统命令。
2.shell的分类
Bourne shell  C shell   Bash用的最多   Unix用的是csh


查看当前调用的shell   echo $SHELL




                                 脚本的执行方式
1.echo 输出命令  作用:把指定内容输出到屏幕上
  echo [选项] [输出内容]
  选项:
      -e :支持反斜线控制的字符转换   \ 空格  \t换行
   echo "hello world" #有空格就得加双引号




2.第一个脚本   要加注释
vi hello.sh
#!/bin/bash
#这是第一个脚本
echo -e "\e[1;32m 天上掉下个林妹妹 \e[0m "




3.脚本执行  一般用赋予权限  习惯用法
         两种方法:1.赋予执行权限,直接运行   chmod 755 hello.sh   ./hello.sh 输入准确路径
                   2.通过Bash调用执行脚本    bash hello.sh




                                  Bash的基本功能
1.命令的别名与快捷键   长明令的缩写
2.历史命令
3.输出重定向
4.多命令顺序执行
5.shell中特殊符号
   
1.查看设定删除别名
查看:   alias  查看系统中拥有的别名  
设定:   设定自己的别名  alias格式类似就可  alias vi=‘vim’ 只可当次有效


别名永久生效与删除别名
vi ~/.bashrc   #写入环境变量配置文件       unalias 别名  #删除别名


                                命令生效顺序
第一顺位执行用绝对路径或相对路径执行的命令。
第二顺位执行别名。
第三顺位执行Bash的内部命令。
第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令。


                                 常用快捷键
Ctrl + c    强制终止当前命令
ctrl + l    清屏
ctrl + a    光标移动到命令行首
ctrl + e    光标移动到命令行尾
ctrl + u    从光标所在位置删除到行首
ctrl + z    把命令放入后台
ctrl + r    在历史命令行中搜索
21:54 2016/10/22


2.历史命令
history [选项] [历史命令保存文件]
   选项:
       -c :清空历史命令
       -w :把缓存中的历史命令写入历史命令保存文件~/.bash_history






                                 输出重定向
输出输入重定向
1.标准输入输出
标准输入设备:键盘    设备文件名:/dev/stdin   文件描述符号:0
标准输出设备:显示器  设备文件名:/dev/sdtout  文件描述符号:1
标准错误输出:显示器  设备文件名:/dev/sdterr  文件描述符号:2


2.输出重定向
把输出到屏幕上的结果保存到文件中  相当与日志 (凌晨四五点时,人不在电脑跟前)
ifconfig > text.log  到时候查看文件  cat text.log   text.log不存在会新建,存在会覆盖
到时候再定时执行脚本 (脚本就是命令的集合) 
ifconfig >> text.log   双大于号是追加  不会覆盖  只会保存命令的正确输出
ifconfig 2>> text.log  可以把错误的命令保存到文件当中   2和》不加空格




命令 >> 文件名 2>&1  以追加方式把正确和错误的命令都写在文件当中
命令 &>> 文件名  用法同上
命令 &> /dev/null 把命令扔进空洞   都不会显示  不看过程
命令>>文件1 2>>文件2  把正确命令放进文件一中  把错误命令放进文件二中


                                     输入重定向
wc [选项][文件名]  有空格就当另一个单词
选项:
   -c统计字节数
   -w统计单词数
   -l统计行数


wc << words            基本不用  
kluahlfd,vbfamshgdfasjgf
akjfdhakhf words
行 个数  字节 (在单词words 和words 之间的内容进行统计)任意两个相同的单词之间




grep  字符串  #查询文件中的字符串 那一行




                                    管道符
1.多命令顺序执行
:    命令1:命令2   多个命令顺序执行,命令之间没有任何逻辑联系
&&    命令1&&命令2   逻辑与  当命令1正确执行,命令2才会执行;当命令1执行不正确,则命令2不会执行
||    命令1||命令2   逻辑或  当命令1执行不正确,则命令2才会执行;当命令1正确执行,则命令2不会执行
用分号 当文件报错时 后面还会执行
检测命令正确还是错误   命令 && echo yes || echo no


2.管道符 |
命令1 | 命令2  #命令1的输出结果作为命令2的操作对象 
命令1正确执行后,会把结果传给命令2,去操作
例如:ls home | more




netstat #查看系统中的所有端口连接
应用:
    netstat -an | grep ESTABLISHED | WC -l   #查看有多少个端口连接电脑/服务器有多少人登陆




                                   通配符   
1.通配符   常用前三个
?    匹配任一个字符
*     匹配0个或任意多个字符,也就是可以匹配任何内容
[]    匹配中括号中任意一个字符,例如:[abc]代表一定匹配一个字符,或者是a或者是b或者是c.
[-]   匹配中括号中任意一个字符,-代表一个范围。例如:[a-z]代表匹配一个小写字母
[^]   逻辑非,表示匹配不是中括号内的一个字符。例如:[^0-9]代表匹配一个不是数字的字符




变量  赋值  abc=34   查看 在变量明前加$  echo $abc


2.Bash中其他特殊符号


''  单引号,在单引号中所有的特殊符号都没有意义。如$


""  双引号,在双引号中特殊字符号都没有特殊含义,但是$ ’\是例外


``  反引号,反引号括起来的内容是系统命令,在Bash中会先执行它


$() 和反引号作用一样,用来引用系统命令  aaa=`ls` 先执行ls 再赋值


#   在shell脚本中,#开头代表注释


$   用于调用变量的值,如需要调用变量name的值是,需要用$name的方式得到变量的值。


\   转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。如\$ 将输出$符号,而不当做是变量引用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值