您的位置:首页 > 运维架构 > Shell

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

2018-03-20 20:50 369 查看
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



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux