linux之shell(一)

来源:互联网 发布:万网域名怎么转入 编辑:程序博客网 时间:2024/06/14 18:41

       type cmd:判断shell的命令是外部命令还是内建的命令,cd是内建的命令。

       shell中定义变量规则:不能以数字开头;等号左右两边不能有空格;有特殊符号时用“双引号“括起来,在已知的环境变量后增加  PATH=$PATH:/home/bin;在现有变量后增加name=“$name”yes或name=${name}yes;在一串命令中,如果需要借助由其他命令提供的信息,可以使用反单引号`cmd`或$cmd。如cd /lib/modules/`name -r`/kernel或cd /lib/modules/$(uname -r)/kernel,先执行name -r,  在执行整个命令

        取消变量时用unset name, env:列出所有环境变量与内容,RANDOM:随机数环境变量,echo $RANDOM,系统随机取出介于0~32767之间一个数,linux下的随机数生成器设备是/dev/random,set:观察所有变量(含环境变量与自定义变量); PS1:shell的提示字符配置;$本次shell的PID,echo $$会输出shell PID;echo $?返回上一个命令的传回值,成功则传回0。locale:影响显示结果的语系变量。export:自定义变量转换成环境变量。

        declare/typeset:定义变量的类型,如果不接参数,则输出所有变量和内容。

declare -aixr variable-a:数组类型-i:整形-x:与export一样,将变量变为环境变量-r:变量为readonly类型默认是字符串类型,所以如果进行数值计算,要将其声明为整形,如下:xlf@xlf-Lenovo:~$ sum=100+300xlf@xlf-Lenovo:~$ echo $sum100+300xlf@xlf-Lenovo:~$ declare -i sum=100+300xlf@xlf-Lenovo:~$ echo $sum400
         ulimit :与文件系统及程序的限制值  ulimit -a:显示当前身份的所有的限制数据数值
         变量的删除与替换:

        

        alias:设置命令别名  alias lm='ls -al | more';   unalias:删除别名  unalias lm

        history:查看历史命令,HISTSIZE环境变量设置了记录的命令数,一般是1000,这些命令是写入~/.bash_history文件中的, history -w:将命令立即写入文件。!number执行第几笔命令,!!:运行上一个命令 , !command,运行以command开头的命令。

       linux命令运行顺序:1 以相对/绝对命令运行命令;2由alias找到的命令;3由bash内建的命令;4通过$PATH路径寻找命令。

      bash的环境配置文件:

      login shell:通过tty1~tty6登录,输入用户名密码;no-login shell:从图形界面直接打开终端,不需要再次输入用户名密码(原来我一直用的这个害羞

     /etc/profile:系统整体配置,login shell读,对所有的用户生效;

     下面的是对个人用户,注意是指登录的时候生效,但是可以用source生效。

     ~/.bash_profile:login shell读,对个人用户,其实依次读取~/.bash_profile, ~/.bash_login, ~/.profile(ubuntu下有):按上面的顺序读,哪个有了就读,然后后面的就不读了。     

      ~/.bashrc:nologin shell读,也就是说我的这个登录的时候只会读取这个配置文件呀。(ubuntu下有)

      source:可以使以上配置生效。

      其他配置文件(ubuntu下):

     /etc/manpath.config:使用man的时候,man pages的路径

     ~/.bash_history: history显示的历史命令

     ~/.bash_logout: 注销bash后,系统做的事情,默认只是清屏

      stty:配置终端,stty -a:显示按键列表。

      常用通配符:

         

        特殊符号:

         

        Linux重导向:

        标准输入:0, 使用<或<<; 标准输出: 1,使用>或>>;   标准错误输出:2使用2>或2>>

       1>:  以覆盖方式将“正确的数据”输出到指定的文件或装置上;

       1>>:  以累加的方式将“正确的数据”输出到指定的文件或装置上;

       2>:  以覆盖方式将“错误的数据”输出到指定的文件或装置上;

       2>>:  以累加的方式将“错误的数据”输出到指定的文件或装置上;

      >与>>的区别就是是将源文件重写还是在尾部增加。

       如果将标准输出与标准错误写入一个文件,需要使用:file 2>&1或&>file, 使用1>file 2>file是错误的,因为两股数据同时写入一个文件会产生错乱,两股数据可能交叉写入。注意两个命令的不同:

       cat food 2>&1  >file: 标准错误重定向到标准输出,这时的标准输出是终端,所以流向终端,而>file表明标准输出重定向到文件。

       cat food >file 2>&1: 标准输出重定向到文件,标准错误又重定向到标准输出,而现在标准输出是到了文件,所以可以实现标准输出与标准错误同时输出到file文件。

      /dev/null:垃圾桶黑洞装置,输出到这个设备的内容全部丢弃。

0 0
原创粉丝点击