shell

来源:互联网 发布:魔爪软件下载 编辑:程序博客网 时间:2024/05/23 14:20

 shell就是Linux中的交互界面;使外部程序和内核可进行交互

功能:命令解释器,让用户有操作界面,支持强大的编程语言的界面

1、vi  etc/shells

2、进入sh:sh    退出:exit


编写shell脚本

1、vi  hello.sh      加 sh  会有颜色标识

    所有的shell脚本第一行:#!/bin/bash    该句不是注释,是告诉我们这是shell脚本。必须写!

2、脚本执行

    赋予执行权限,直接执行:chmod 755 hello.sh           ./hello.sh

    通过Bash调用执行脚本     bash  hello.sh


Problem:注意bash是小写。若出现bash:command not found  则sudo进入root用户,再gedit  /etc/profile    在最末添加     PATH=$PATH:$HOME/bin:/sbin:/usr/bin:/usr/sbin



Bash基本功能


1、历史命令:history










2、命令补全:tab,tab键可以自动补全命令


3、设别名  alias

     alias  别名=‘原命令’,临时生效,永久生效则需写入:vi  /root/.bashrc 

    命令执行顺序:用绝对路径或相对路径执行的命令 > 别名 > bash内部命令


4、删除别名:unalias  别名


5、Bash常用快捷键



6、输出重定向       0输入   1输出    2错误输出   (标准)

     命令  > 文件     覆盖的方式输出到指定文件      >>   追加到...

7、正确输出和错误输出同时保存到同个文件

     命令&>文件    覆盖      &>>  追加


8、输入重定向

   wc  [选项] 文件名              返回行数  l、单词个数 w、字节数 c


9、多命令顺序执行

  命令1;命令2       互不影响

           &&        逻辑与   1对则2,1错2不执行

            ||          逻辑或   1错则2,1对2不执行

eg:命令 && echo yes || echo no


10、管道符

       命令1  |   命令2             1的输出作为2的操作对象

 

11、grep  [选项]   “搜索内容”  文件名

     -i   忽略大小写   -n 输出行号    -v  反向查找    --color=auto 搜索出的关键字用颜色显示

          

12、通配符

   ? 任意一个   *  0或多个任意字符    [ ]  匹配括号内任一个        [ - ] 如 [a-z] 匹配a-z的任意一个小写字母     [ ^0-9]   ^表 非,匹配不是数字的一个字符。

    eg:ls   [0-9]*


13、特殊符号



bash变量

1、变量名不能用数字开头;变量默认为字符串型;用等号连接值,等号不能有空格,可使用单双引号;变量中可使用“\”转义符,使特殊符号失去意义;标量可叠加;命令结果可赋予变量,如:name=$(date);环境变量名建议大写,便于区分。

2、变量分类



用户自定义变量--本地变量

1、只在当前shell中生效

name=‘Lucy’               echo=$name     输出 Lucy

aa=123     aa="$aa"456    echo=$aa 输出123456         变量的叠加    或者aa=${aa}456   一样的


2、set  查看系统中所有变量

3、unset 变量名   删除变量       eg:   unset  name


环境变量

1、对当前shell,子shell都有效,若写入配置文件,对一个系列的shell生效

     export   变量名=变量值

     eg:name=sc  本地变量  export  age=18  环境变量   sex=man    export name   将name上升为全局变量,可用set查看

2、查看环境变量:env

3、删除: unset  变量名


4、PATH:系统查找命令的路径     echo   $PATH

     PATH="$PATH":/root    比如hello.sh放在root 下的,这样改后,/root 就在PATH下了,就可以直接运行  hello.sh了,但临时生效,需写入配置文件


5、PS1   自定义系统提示符

pstree 确定进程数



数值运算与运算符

aa=11

bb=22    求aa与bb的和

1、declare  -i  cc=$aa+$bb

2、expr :   dd=$(expr  $aa + $bb)   加号“ + ”左右两侧必须由空格

3、$((运算式))    或   $[运算式]

     ff=$(($aa+$bb))

     gg=$[$aa+$bb]



4、运算符的优先级



变量测试与内容替换



环境变量配置文件

1、变量分类



配置文件

1、source 配置文件   或    . 配置文件      #是配置文件即刻生效

2、一些默认环境变量:PATH、HISTSIZE、PS1、HOSTNAME等

3、五个系统配置文件

 /etc/profile      /etc/profile.d/*.sh        /etc/bashrc        对所有用户都有效

~/.bash_profile     ~/.bashrc     对当前用户生效             “ .” 表示为隐藏文件

4、各配置文件的作用

                                                                

5、后面的配置路径会覆盖前面的,如先令a=1,再a=2,最终输出a=2


 /etc/bashrc  →   /etc/profile.d/*sh   表示no login shell ,不需要用户密码登录


其他配置文件

1、注销时生效的环境变量配置文件:~/.bash_logout

2、存放历史命令 : ~/bash_history


登录信息

1、远程终端欢迎信息: /etc/issue.net    转义符不能再该文件中使用

  欢迎信息由ssh的配置文件 /etc/ssh/sshd_config决定  vi 此文件,找到 Banner ,在下面,添加 “ Banner  /etc/issue.net ”,再重启SSH 服务器才能生效:service sshd restart

2、登陆后欢迎信息:/etc/motd    本地远程都可显示





















0 0
原创粉丝点击