Linux学习笔记四Bash Shell

查看某一命令是否是来自于外部命令还是内置于bash中:type [-tpa] name      也可用来查找命令,如:type -p touch 有/bin/touch;type -p vbird无显示

ls    -al     /root

列出/root下面的各文件名称,注意到不论命令与参数之间空几格,都是可以接受的

cp  /var/spool/mail/root   /etc/crontab \(空格,\,Enter,下行会自动输出>)

> /etc/fstab   /root

将3个文件复制到/root目录下。

如果命令太长,可以使用2行来输出,\[Enter]转义,注意中间不能有空格

变量

变量的用途

简化路径名称,如:linux下得目录和文件名一般都都代表这一定的含义,普遍都会很长,不利于去记忆,此时可以设置一变量来代表该路径,直接 cd $myVariable

脚本中常用到存储路径,且每个人的存储路径都会不一样,这样的话修改起来就很麻烦,此时定义一变量,引用该变量,这样只需每个人去修改响应的变量内容即可

变量内容

查看更多变量的方法:man  variable

echo $variable

echo ${variable}

设置和修改某个变量内容,用等号=连接变量和内容。取消变量 unset

通常大写字母为系统默认变量,自行设置的变量可以使用小写字母,便于判断

如:myVariable=PATH

unset myVariable

注:

=号两边不能直接接空格符

变量名称只能是英文字母和数字,但数字不能是开头字符

若有空格符,可用 “ 或 ‘ 。区别:双引号内的特殊字符可以保持变量特性,单引号内的特殊字符则仅位一般字符

必要时转义字符 \ 

如:myVariable=PATH's name(x)

myVariable="PATH's name"

myVariable=PATH\'s\ name

在PATH变量中累加:/home/dmtsail/bin

PATH=$PATH:/home/dmtsail/bin

或PATH="$PATH":/home/dmtsail/bin

如变量为扩展变量内容,双引号及$

如:如果要将变量myVariable的内容多出“yes”:

myVariable=$myVariableyes(x),这样的话,myVariable的内容就是$myVariableyes这个变量

myVariable="$myVariable"yes

myVariable=$(myVariable)yes

如何让刚刚设置的name=PATH可以用在下一个shell程序中

什么是子程序,就是说在当前这个shell的情况下去启用另一个新的shell,那个新的shell就是子程序。一般情况下符程序的自定义变量是无法在子程序内使用的,需通过export将变量编程环境变量,就能够在子程序下应用了

在一串命令中还需要通过其他的命令提供的信息,可以使用 `  (键盘数字键1的左边的那个按键,不是单引号)

如:如何进入到当前核心的模块目录

cd  /lib/modules/`uname -r`/kernel

每个操作系统的核心版本都不相同,uname -r 是获取这个版本的命令

再:想知道每个crontab相关文件的权限

ls -l `locate crontab`

locate列出所有相关文件的文件名,再ls

环境变量

env 列出当前shell环境下所有环境变量及其内容  export命令也可以实现这个功能

set  将环境变量列出来之外,其他自定义变量,所有变量都会列出来

PS1 命令提示符的设置

查看$shell的PID  echo $$

显示上一个执行命令的回传码,一般来说,如果上一命令成功地执行,则返回0,如果执行过程中发生错误,就回传错误代码,通常以非0来替换

自定义变量转换成环境变量 export

查看系统支持的语系   locale

LANG、LC_ALL

当前Linux主机内保存的语系文件位置:/usr/lib/locale/目录中。如果想修改系统的语系支持时,可修改/etc/sysconfig/i18n

读取键盘输入的变量 read

declare/typeset

数组属性 array

ulimit 与文件系统及程序的限制关系

附加的变量设置功能:#、##、%、%%、/、//具体略。

alias、unalias    命令别名设置

alias lm='ls -l|more'

alias rm='rm -i'

history   之前使用过的命令的记录

history 3  显示当前最近使用的3个命令

history -w  默认情况下会将历史记录写入~/.bash_history中

!number   执行历史记录中第number条命令

!command 由最近的命令向前搜索,命令串开头为command的命令,并执行

!!     执行上一条命令

原文地址:https://www.cnblogs.com/perfy/p/2509192.html