Linux学习之练习bash

今天上午写了差不多一面左右,然后没写标题,点了保存就退出还以为保存下来了,没想到竟然没有了555
今天上午回顾的是vim操作和bash一些简单命令,type、export、变量命名、echo,说实话学习到这里很是头痛,命令太多了,看书也是稀里糊涂的。
变量命名规则中,
等号两边不能有空格,
变量名称只能由英文字母和数字和下划线组成,开头不能是数字;
如果变量内容含有要表达出来的特殊符号含义,可以使用成对的双引号,
如果仅是表示特殊字符的文本含义可以使用成对的单引号,如name=‘*phitose’
如果要在里面嵌套命令的话可以使用反引号那个键(波浪号键);
如果变量需要增加内容可以使用,变量="$变量"内容;

设定完成之后可以使用unset取消此次变量
PS1设定命令提示符(就是每次输入命令前面的那一堆中括号里面的东西)显示格式:
PS1=’[选项]’,如果是要多个选项一起使用,是不能像命令选项那样-(杠)后面直接接其他选项的,要使用多个\符号,如果是直接在后面接字符,则该选项后面的字符会以文本形式出现;
此次设定完了之后,子shell是不会继承该格式的

上个指令回传值的变量是?,因为是变量,所以要显示内容使用echo $?即可,为0即上个指令成功执行,如果上个指令出现错误则回传错误代码
read 变量,键盘输入变量内容:
-p,后接提示符,提示你输入什么东西;
-t,后接时间,是以秒为单位的。

declare ,显示变量;
-r:把变量变成只读模式,既不能更改也不能删除该变量;我就这么做了,然后就只要关掉这个终端再开启另一个终端就能“删除”这个只读变量;
-a:把变量定义为数组形式,如果你直接declare -a 变量=变量内容的话,那么该内容就是变量[0]的内容;
记住,变量要按变量命名规则来,这里不能直接定义变量[n]的内容,因为变量命名规则中[]是不允许的;
要显示数组内容使用echo ${变量[n]},n是从0开始的,显示数字所有内容的话,n为*,该命令变量前加一个#即可显示该数组有多少元素在里面;
-i:可以把变量定义为整数数字类型,这样就能使用反引号来内嵌命令echo来加减乘除;
-x:把变量变成环境变量,+x可以变回来;

变量内容“删除”,这一部分我一开始看书的时候就是完全看不懂,不知道在说什么,后面看了视频才懂了一点
echo ${变量#删除内容},但是数组变量不知道怎么弄这玩意,
**#**表示从变量内容前面往后找符合删除内容的,一旦找到就删除掉,然后显示出来“删除”之后的变量内容,
**##**表示从变量内容前面往后找符合删除内容的,找到最后一个符合的,就从最前面一直删到此处,
%是从后找头一个满足的
%%是从后往前找最后一个满足的并删除
说是删除,其实不是删除,原变量内容并没有改变,只是显示出来的是删除掉的,这个删除应该是要和后面的数据流重导向还有管线命令相结合使用的;
echo ${变量/旧字符串/新字符串},把原来的字符串替换掉,变量后面的
一个斜杠
表示替换头一个找到的符合字符串;
//两个斜杠
表示变量内容中所有满足的都替换掉。

看了视频才知道变量测试是这么个东西
变量1=${变量2-西瓜}(变量1和2可以是一样的),只有在变量2不存在的时候,西瓜赋予变量1,如果变量2存在(不论是空格还是没有值),则赋予变量2的内容;定义空值和unset是不一样的概念。

变量1=${变量2:-西瓜},加上冒号意思就是变量2不存在或者是空值,西瓜赋予变量1,否则变量2的内容赋予变量1.

设定别名,alias 名字=‘命令 选项’,单引号;
取消别名,unalias 名字。

前面谈到的命令别名、自定义的变量,在你注销 bash 后就会失效,所以你想要保留你的设定, 就得要将这些设定写入配置文件才行

一些快捷键,我目前就是熟悉的Ctrl+c终止
Ctrl + D 输入结束 (EOF),例如邮件结束的时候;
Ctrl + M 就是 Enter 啦!
Ctrl + S 暂停屏幕的输出
Ctrl + Q 恢复屏幕的输出
Ctrl + U 在提示字符下,将整列命令初除
Ctrl + Z 『暂停』目前的命令

通配符
*表示零到无穷,
?表示一定有一个字符,例如ls /etc/??,查看etc文件夹下面两个字母的目录或者文件

[]表示一定有一个在括号内,例如ls /etc/[t]*表示查看etc目录下以t开头的文件或目录
-如果在中括号当中,就表示在编码顺序内的所有字符,例如[0-9]表示0到9,[a-g]表示小写字母a到g;
^如果在中括号第一个字符处,则代表非

数据流重导向>我已经知道了,是把输出结果输入到>后面的东西里去,是替代
而>>是增加;
一般>和>>默认前面没有数字,就是导向正确输出;
而2>和2>>就是错误输出,只有>前面的出错,这个错误信息才能被导向正确;

命令行判断依据
命令1;命令2,不论命令1是否成功执行,命令2都会执行;
命令1&&命令2,如果命令1不成功,则命令2不执行;
命令1||命令2,如果命令1不成功,则执行命令2;如果命令1执行成功,则命令2不执行;
小练习:我不清楚 /tmp/abc 是否存在,但就是要建立 /tmp/abc/hehe 档案
ls /tmp/abc&&touch /tmp/abc/hehe||mkdir /tmp/abc&&touch /tmp/abc/hehe,我写的麻烦了一点了,不过也是对的嘿嘿

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值