Linux学习笔记--day6(3.20)-----shell(一)

shell 的作用 :命令解释器    

shell作为一个人机接口,用于解释用户输入的命令,将命令解释为Linux内核可以执行的2进制代码,并将执行的结果反悔在标准终端上。

shell在Linux系统中的位置


部分shell基础命令

1,历史命令    history  [-raw] histfiles        默认写入~/.bash_history

默认显示最近的1000条。配置文件在/etc/profile中


n:数字,就是要列出最近的n笔命令行表的意思

-a: 将目前新增的history命令新增如histfiles中,若是灭有加histfiles,则默认写入~/.bash_history

-w:将目前的history记忆内容写入histfiles中。


-a和-w的区别如下:



历史口令的调用

使用“!n”重复执行第n条历史命令
使用“!!”重复执行上一条命令

使用“!字串”重复执行最后一条以该字串开头的命令

命令别名配置功能(alias)

用grep命令做演示


这样改,只是在当前可用,并不是全局可用。若想全局调用,则需要在/etc/profile下

增加 alias grep='grep --color=auto',这里最好是执行一下。


删除别名

unalias 别名


多命令顺序执行

;        命令1;命令2     多个命令顺序执行,命令之间没有任何逻辑联系

&&      逻辑与  命令1&&命令2    当命令1正确执行,则命令2才会执行   当命令1执行不正确,则命令2不回执行

||          命令1||命令2  逻辑或   当命令1执行不正确,则命令2才会执行


如图:没有touch test.sh文件,所以ls不会显示,输出到黑洞,即不正确,那么good就不执行,执行not good


last  可以输出帐号、终端机、来源,日期时间,并且是排列整齐的。

tee

tee [-a] file

-a :  以累加的方式,将数据加入file当中

栗子:

[root@www~]# last | tee last.list| cut -d " " -f1

# 这个范例可以让我们将last 的输出存一份到last.list文件中;
[root@www~]# ls -l /home | tee ~/homefile| more
# 这个范例则是将ls 的数据存一份到~/homefile,同时屏幕也有输出信息!
[root@www~]# ls -l / | tee -a ~/homefile| more
# 要注意!tee 后接的文件会被覆盖,若加上-a 这个选项则能将信息累加。


shell 脚本

#! /bin/bash  是必须的,指出shell的类型


vim datewho.sh


执行这个shell文件,有两种,第一个用sh直接执行,第二个先赋权限。



shell中的变量和符号

变量的打印echo


变量的赋值


最后输出的时候最好加上{}。

变量法则:

1,变量和变量内容以一个等号来连接。如上所示

2,等号两边不能直接空格符。

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

4,变量内容中若有空格符,可使用双引号或者单引号将变量内容结合起来

5,单引号内的特殊字符则仅为一般字符 (纯文本)

6,若该变量需要在其他子程序运行,则需要以 export 来使变量变成环境变量

7,取消变量的方法为使用 unset :『unset 变量名称』例如取消 myname 的配置    unset myname

栗子:如何让我刚刚配置的name=zhangsan可以用在下个shell的程序?


[root@www~]#name=zhangsan

[root@www~]#bash        <==进入到所谓的子程序

[root@www~]#echo $name  <==子程序:再次的echo一下;

       <==嘿嘿!并没有刚刚配置的内容喔!

[root@www~]#exit        <==子程序:离开这个子程序

[root@www~]#exportname

[root@www~]#bash        <==进入到所谓的子程序

[root@www~]#echo $name  <==子程序:在此运行!

zhangsan  <==看吧!出现配置值了!

[root@www~]#exit        <==子程序:离开这个子程序

内部命令

$#     :     传送给shell程序的位置参数的数量

$?     :    最后命令的完成码或者在shell程序内部执行的shell程序(返回值)。0表示没有错误,其他值表示有错

$0     :    shell程序的名称

$*       :     调用shell程序时所传送的全部参数的单字符串, “参数1”“参数2”…形式保存的参数

$@    :   “参数1  参数2”…形式保存的参数

$n       :     第n个参数

$$       :     本程序的PID



猜你喜欢

转载自blog.csdn.net/lvxiaojiahuo/article/details/79622946