shell一些常识(随时更新。。。)
时间:2009-07-22 来源:sure_priterand
五个脚本文件介绍:
/etc/profile:
此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.
并从/etc/profile.d目录的配置文件中搜集shell的设置.
/etc/bashrc:
为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
~/.bash_profile:
每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该
文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.
~/.bashrc:
该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该
该文件被读取.
~/.bash_logout:
当每次退出系统(退出bash shell)时,执行该文件.
另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定
的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系.
=====================================================
1.目前linux有很多可以使用的shell;可以用 vi /etc/shells 来检查一下其中使用者习惯使用bash
及csh这两个主要的shell,bash是大部分linux预设的shell
2.bash会记录输入的指令;记录的档案在家目录的.bash_history中,不过~/.bash_history中记录的是前
一次登入及以前所执行过的指令至于这次登入所执行的指令被暂时存放到内存中,当成功的注销以后,
这些指令才会被记录到~/.bash_history
3.命名别名alias:eg.alias ll=‘ls -al’
4.type:type -tpa name:搜索后面的名称是来自外部指令(其他非bash套件所提供的指令)或是内建在
bash中的
参数:无:type会显示出那个name是外部指令还是bash的内建指令;
-t:会以file、alias、builtin表示命令是外部的、命令别名的还是bash内建的;
-p:会显示完整的文件名(外部指令)或显示为内建指令;
-a:将有PATH变量定义的路径中,将所有含有name的指令都列出来;
5.指令和参数之间不论有几个空格都视为一个空格;当所输入的指令太长的时候,要用\Enter接到下一行 \和Enter之间不能有其它字符;
6.追加变量内容:"$变量名":eg.PATH="$PATH":/home或者PATH=$PATH:/home
在其它子程序中执行变量:export:eg.export PATH(子程序:在目前这个shell下启动另一个新的 shell,则新的shell就是一个子程序了)
若有空格符等特殊字符则可以用双引号或是单引号将变量的内容结合起来,但是双引号内的特殊可以保 有变量特性;单引号内的特殊字符仅为一般字符;
在一串指令中还需要其它指令提供的信息的时候可以用 quote `command`(``是数字键1左边的按键)
uname -r:提取版本信息;cd /lib/modules/`uname -r`/kernel可以直接进入核心的模块目录;在``之内的指令将被优先执行,就像上面,会先将uname -r执行出来的结果作为外部的输入信息;
locate 这个指令可以列出所有相关档案档名及路径,如果想知道各个档案的权限呢?
比如像知道每个crontab相关档名的权限就可以用 ls -l `locate crontab`列出了;
unset name:可以取消刚设定的name这个变量的内容
7.env(environment的简写):列出所有环境变量
HOME:只用者的家目录
SHELL:目前这个环境使用的SHELL是那种;如bash就是/bin/bash
HISTSIZE:历史指令的个数
MAIL:当我们使用mail这个指令收信的时候,系统会去这个路径读取邮件信箱档案
PATH:是执行文件搜寻的路径,目录与目录间用冒号隔开;
LANG:语系档案;
RANDOM:随机数变量;我们可以透过这个随机数档案相关的变量$RANDOM来随机取得随 机数,这个RANDOM变量的内容介于0~32767之间,所以echo $RANDOM时,系统就会主动随机取出一个0~32767的数值,不过要是想使用0~9之间的数可以使用declare声明数值类型
eg.declare -i number=$RANDOM*10/32767;echo $number
8.set:列出目前shell环境下所有变量,包括自己定义的变量
/etc/profile:
此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.
并从/etc/profile.d目录的配置文件中搜集shell的设置.
/etc/bashrc:
为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
~/.bash_profile:
每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该
文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.
~/.bashrc:
该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该
该文件被读取.
~/.bash_logout:
当每次退出系统(退出bash shell)时,执行该文件.
另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定
的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系.
=====================================================
1.目前linux有很多可以使用的shell;可以用 vi /etc/shells 来检查一下其中使用者习惯使用bash
及csh这两个主要的shell,bash是大部分linux预设的shell
2.bash会记录输入的指令;记录的档案在家目录的.bash_history中,不过~/.bash_history中记录的是前
一次登入及以前所执行过的指令至于这次登入所执行的指令被暂时存放到内存中,当成功的注销以后,
这些指令才会被记录到~/.bash_history
3.命名别名alias:eg.alias ll=‘ls -al’
4.type:type -tpa name:搜索后面的名称是来自外部指令(其他非bash套件所提供的指令)或是内建在
bash中的
参数:无:type会显示出那个name是外部指令还是bash的内建指令;
-t:会以file、alias、builtin表示命令是外部的、命令别名的还是bash内建的;
-p:会显示完整的文件名(外部指令)或显示为内建指令;
-a:将有PATH变量定义的路径中,将所有含有name的指令都列出来;
5.指令和参数之间不论有几个空格都视为一个空格;当所输入的指令太长的时候,要用\Enter接到下一行 \和Enter之间不能有其它字符;
6.追加变量内容:"$变量名":eg.PATH="$PATH":/home或者PATH=$PATH:/home
在其它子程序中执行变量:export:eg.export PATH(子程序:在目前这个shell下启动另一个新的 shell,则新的shell就是一个子程序了)
若有空格符等特殊字符则可以用双引号或是单引号将变量的内容结合起来,但是双引号内的特殊可以保 有变量特性;单引号内的特殊字符仅为一般字符;
在一串指令中还需要其它指令提供的信息的时候可以用 quote `command`(``是数字键1左边的按键)
uname -r:提取版本信息;cd /lib/modules/`uname -r`/kernel可以直接进入核心的模块目录;在``之内的指令将被优先执行,就像上面,会先将uname -r执行出来的结果作为外部的输入信息;
locate 这个指令可以列出所有相关档案档名及路径,如果想知道各个档案的权限呢?
比如像知道每个crontab相关档名的权限就可以用 ls -l `locate crontab`列出了;
unset name:可以取消刚设定的name这个变量的内容
7.env(environment的简写):列出所有环境变量
HOME:只用者的家目录
SHELL:目前这个环境使用的SHELL是那种;如bash就是/bin/bash
HISTSIZE:历史指令的个数
MAIL:当我们使用mail这个指令收信的时候,系统会去这个路径读取邮件信箱档案
PATH:是执行文件搜寻的路径,目录与目录间用冒号隔开;
LANG:语系档案;
RANDOM:随机数变量;我们可以透过这个随机数档案相关的变量$RANDOM来随机取得随 机数,这个RANDOM变量的内容介于0~32767之间,所以echo $RANDOM时,系统就会主动随机取出一个0~32767的数值,不过要是想使用0~9之间的数可以使用declare声明数值类型
eg.declare -i number=$RANDOM*10/32767;echo $number
8.set:列出目前shell环境下所有变量,包括自己定义的变量
相关阅读 更多 +