查看某一命令是否是来自于外部命令还是内置于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的命令,并执行
!! 执行上一条命令