linux常用命令

来源:互联网 发布:个人域名转企业域名 编辑:程序博客网 时间:2024/06/06 05:40

来自鸟哥的linux http://linux.vbird.org/linux_basic/0320bash.php#bash_what

第十章 bash

10.1.4 

history命令
在家目录内.bash_history中记录的是前一次登入以前所执行过的指令,而至于这一次登入所执行的指令都被暂存在记忆体中,当你成功的登出系统后,该指令记忆才会记录到.bash_history当中!
②alias
alias 可以查看所有别名
alias lm="ls -al"   将命令重命名

10.1.6

\ +回车   可以将很长的命令分段

10.2.2 变量

取用 echo $PATH  或者  echo ${PATH}   /usr/local/bin.....
设定
[dmtsai@study ~]$ echo ${myname}        <==这里并没有任何资料~因为这个变数尚未被设定!是空的![dmtsai@study ~]$ myname=VBird [dmtsai@study ~]$ echo ${myname} VBird   <==出现了!因为这个变数已经被设定了!
③规则
1>等号两边不能有空格   myname=zhang  ✅  myname = zhang ❌ ,且不能用数字凯欧
2>一旦有空格或者特殊字符如$那么可以用双引号或者单引号,区别
双引号:『var="lang is $LANG"』则『echo $var』可得『lang is zh_TW.UTF-8』
单引号:『var='lang is $LANG'』则『echo $var』可得『lang is $LANG』
还可以用 \ 来将特殊字符进行转义
3>变量扩充变量内容

『PATH="$PATH":/home/bin』或『PATH=${PATH} :/home/bin』

4>使用export来是变数编程环境变量   export PATH
5>取消变量 unset myname
6>以后进入将路径设置一个变量,然后用 cd+变量 来直接进入,不需要输入很长的路径了   cd+${PATH}
例子
范例一:设定一变数name ,且内容为VBird [dmtsai@study ~]$ 12name=VBird bash: 12name=VBird: command not found...   <==萤幕会显示错误!因为不能以数字开头![dmtsai@study ~]$ name = VBird             <==还是错误!因为有空白![dmtsai@study ~]$ name=VBird               <==OK的啦!范例二:承上题,若变数内容为VBird's name呢,就是变数内容含有特殊符号时: [dmtsai@study ~]$ name=VBird's name   # 单引号与双引号必须要成对,在上面的设定中仅有一个单引号,因此当你按下enter后,# 你还可以继续输入变数内容。这与我们所需要的功能不同,失败啦!#记得,失败后要复原请按下[ctrl]-c结束![dmtsai@study ~]$ name="VBird's name"     <==OK的啦!#指令是由左边向右找→,先遇到的引号先有用,因此如上所示,单引号变成一般字元![dmtsai@study ~]$ name='VBird's name'     <==失败的啦!#因为前两个单引号已成对,后面就多了一个不成对的单引号了!因此也就失败了![dmtsai@study ~]$ name=VBird\'s\ name      <==OK的啦!#利用反斜线(\)跳脱特殊字元,例如单引号与空白键,这也是OK的啦!范例三:我要在PATH这个变数当中『累加』:/home/dmtsai/bin这个目录 [dmtsai@study ~]$ PATH=$PATH:/home/dmtsai/bin [dmtsai@study ~]$ PATH=" $PATH":/home/dmtsai/bin [dmtsai@study ~]$ PATH=${PATH}:/home/dmtsai/bin #上面这三种格式在PATH里头的设定都是OK的!但是底下的例子就不见得啰!范例四:承范例三,我要将name的内容多出"yes"呢?[dmtsai@study ~]$ name=$nameyes   #知道了吧?如果没有双引号,那么变数成了啥?name的内容是$nameyes这个变数!#呵呵!我们可没有设定过nameyes这个变数呐!所以,应该是底下这样才对![dmtsai@study ~]$ name="$name"yes [dmtsai@study ~]$ name=${name}yes   <==以此例较佳!范例五:如何让我刚刚设定的name=VBird可以用在下个shell的程序?[dmtsai@study ~]$ name=VBird [dmtsai@study ~]$ bash         <==进入到所谓的子程序 [dmtsai@study ~]$ echo $name   <==子程序:再次的echo一下;       <= =嘿嘿!并没有刚刚设定的内容喔![dmtsai@study ~]$ exit         <==子程序:离开这个子程序 [dmtsai@study ~]$ export name [dmtsai@study ~]$ bash         <==进入到所谓的子程序 [dmtsai@study ~] $ echo $name   <==子程序:在此执行!VBird   <==看吧!出现设定值了![dmtsai@study ~]$ exit         <==子程序:离开这个子程序
7> ? 关于执行指令的
[dmtsai@study ~]$ echo $SHELL /bin/bash                                   <==可顺利显示!没有错误![dmtsai@study ~]$ echo $? 0                                           <==因为没问题,所以回传值为0 [dmtsai@study ~]$ 12name=VBird bash: 12name=VBird: command not found...    <==发生错误了!bash回报有问题 [dmtsai@study ~]$ echo $? 127                                         <==因为有问题,回传错误代码(非为0) #错误代码回传值依据软体而有不同,我们可以利用这个代码来搜寻错误的原因喔![dmtsai@study ~]$ echo $?0# 咦!怎么又变成正确了?这是因为"?" 只与『上一个执行指令』有关,# 所以,我们上一个指令是执行『 echo $? 』,当然没有错误,所以是0 没错!
8>env 显示环境变量
9>父程序、子程序

在父程序定义的变量不会被子程序继承,所有使用export + 变量名 子程序就会继承父程序的变量名

10.2.4


























0 0