1,Shell就是命令行执行器

2,作用:将外层引用程序的例如ls ll等命令进行解释成01表示的二进制代码给内核,从而让硬件执行;硬件的执行结果返回给shell,shell解释成我们能看得懂的代码返回给我们。

3,查看linux支持的shell:vim /etc/shells

4,echo命令

  作用:打印字符串:echo "abc"     回车后输出abc。

      -e:输出转义字符,例如:echo -e "abc\bd"     ==>输出abd   ==》-e的作用就是将\b解释成退格,向左删除一个字符,所以输出abd。

转义字符:

      

5,echo支持颜色高亮输出:echo -e "\e[1;31m abcd \e[0m"   ===》 输出的abcd是红色,在linux中31m表示红色。其他颜色执行尝试或者百度。

6,第一个shell:
  使用vim命令:vim shell_01.sh新建文件==》向里面写入:

      

7,保存后退出,这个时候是不能执行的:

  

没有赋权,这个.sh文件不可执行:使用chmod命令,chmod 755 shell_02.sh进行赋权。

8,不能直接使用shell_01.sh来执行,而必须使用./shell_01.sh来执行或者全路径来执行。

9,也可以使用bash命令来执行:bash shell_02.sh

10,history命令:

  -c:清除历史命令

  -w:把缓存中的历史命令写入历史命令保存文件:~/.bash_history

  进入/etc/profile文件,查找HISTSIZE=1000可以修改历史命令保存条数。

  

  使用!n执行编号的某条命令:

  

  !!:重复执行上一条命令

  !xxx:执行上一条(最近一条)xxx开头的命令

11,命令别名:临时生效方式=》alias xx  xxx    或者   alias xx  ‘xxx   -x’将命令和参数使用单引号包起来。

  例如:alias vi  vim            alias lsa ‘ls -a’    ==>输入lsa的效果和ls -a一样。

  使用alias命令查看所有别名:

    

  永久生效方式=》vim /root/.bashrc修改这个配置文件:

  

  ===》跟着改写就行。

  注意:不要使用别名替代已有命令,否则已有命令失效。

  删除别名:unalias xx   例如:unalias vi

12,vi和vim的区别:

  输入vi /etc/passwd和vim /etc/passwd可以看出基本的区别。

13,命令执行顺序(不做学习-有必要百度):一定要使用路径来执行.sh文件,否则配置环境变量。

  只需注意:echo $PATH查看环境变量,使用whereis 查看命令路径。

14,常用快捷键

  

15,输入输出重定向

  标准输入输出:键盘输入就是标准输入,显示屏输出就是标准输出。

  输入输出重定向:不从键盘输入,不输出到显示屏就是输入输出重定向。

  命令 > 文件:覆盖

  命令 >> 文件:追加

  举例:

  

  如果执行的是错误命令就没办法将错误信息输出到abc文件中,举例:

  

  解决办法:

  命令  2>  文件(覆盖),命令  2>>  文件(追加):注意--》2和>或者>>不能有空格。

  注意:>是覆盖输出重定向,会覆盖之前的内容,尽量使用>>追加重定向符。

  上述的保存输出的方式不实用,因为要做判断是否正确或者错误输出,一般采用下述方式:

  命令  &>  文件或者命令  &>>  文件

  把正确的输出保存到文件1,把错误的输出保存到文件2:命令  >>  文件1 2>> 文件2     举例:

    

  关于输入 重定向,使用wc来举例:

  wc:作用:统计字符,如:

  

  

  wc的几个参数:

    -c:统计字节数

    -w:统计单词数

    -l:统计行数

16,多命令顺序执行与管道符

  多命令顺序各自执行:命令1;命令2;命令3

  

  多命令逻辑与执行:命令1&&命令2&&命令3   :命令1执行正确,执行命令2。。。

  多命令逻辑或执行:命令1||命令2||命令3    :命令1执行错误,执行命令2。。。

  

 逻辑与和逻辑或共同使用案例:命令  &&  echo yes || echo no

  管道符(不重点讲,很简单):|   (单竖线):与逻辑与不同。

  基本使用:ls -a | more 或者ls -a | grep xxxx    :grep命令有些重要的参数,详情百度,比如--color    -i:忽略大小写   -n:输出行号

17,通配符:知道有哪些功能,在使用时去百度

  

  bash中其他特殊符号:明白什么基本功能就行

  

  举个简单例子:

  

  

18,bash变量

  变量命名不能以数字开头。

  linux中默认类型都是 字符串型,如果要进行数值运算,则必须指定变量为类型为数值型。

  如果赋值比如:name=li renhe,值中间有空格,需要使用单引号或者双引号。建议:凡是赋值,都用单引号或者双引号括起来。

  系统变量赋值给自定义变量:使用反引号或者$()命令。建议:使用$(),防止把反引号看成单引号。如:d=$(date)。

  环境变量建议大写,便于区分。

  set:查看系统中所有变量的定义,包括系统中定义好的变量。

  upset:删除变量。例如:

    

  环境变量:变量名称固定,可修改它的值。同时可以用户自定义环境变量。

    设置环境变量:export 变量名=变量值

            env:查询变量

            unset 变量名:删除变量。

    环境变量PATH:指定命令路径。设置(变量叠加)该变量值:PATH="$PATH":/root/xxxxxxxx。

    环境PS1:定义系统提示符的变量。一般用不着,除非是linux系统管理员--》详情百度。

  位置参数变量:一般用不着,除非是linux系统管理员--》详情百度。

  预定义变量:一般用不着,除非是linux系统管理员--》详情百度。

  数值运算与运算符(几乎所有运算符):

    

    以上运算都是字符串类型的拼接,解决办法:

    

    

    使用$(expr $aa + $bb)方式:(expr函数)

    

    推荐:使用双空格方式:不在乎有无空格

    

    在运算符的使用中,如果不知道它们的优先级,统一使用括号(),因为括号的优先级最高。

  

  

Linux从入门到进阶全集——【第十四集:Shell基础命令】的更多相关文章

  1. Linux从入门到进阶全集——【第八集:软件包管理:rpm、tar、yum】

    1,对Linux下软件的了解 源码包:未编译,要编译安装. 二进制包:已编译,可直接安装. 2,centos和ubuntu下的软件包对比: [centos]rpm文件手动安装,使用rpm指令     ...

  2. Linux从入门到进阶全集——【第十四集:Shell编程-export命令】

    参考: https://www.cnblogs.com/guojun-junguo/p/9855356.html 功能说明:设置或显示环境变量. 语 法:export [-fnp][变量名称]=[变量 ...

  3. Linux从入门到进阶全集——【第十五集:安装apache服务器】

    1,查看是否安装了httpd软件包以及其依赖:rpm -qa httpd(rpm -qa | grep httpd),如果没有输出任何信息,表示你没有安装httpd软件包,如果有输出一般是已经安装了: ...

  4. Linux从入门到进阶全集——【第十四集:Shell编程】

    正则表达式(与通配符) 正则表达式:匹配字符串,属于包含匹配[只要包含匹配条件就行],grep,awk,sed等命令支持正则表达式 通配符(*,?,[]):匹配文件名,属于完全匹配[必须是完全匹配条件 ...

  5. Linux Shell系列教程之(十四) Shell Select教程

    本文是Linux Shell系列教程的第(十四)篇,更多Linux Shell教程请看:Linux Shell系列教程 在上一篇文章:Linux Shell系列教程之(十三)Shell分支语句case ...

  6. (转)Linux Shell系列教程之(十四) Shell Select教程

    本文属于<Linux Shell 系列教程>文章系列,该系列共包括以下 18 部分: Linux Shell系列教程之(一)Shell简介 Linux Shell系列教程之(二)第一个Sh ...

  7. 如约而至,Java 10 正式发布! Spring+SpringMVC+MyBatis+easyUI整合进阶篇(十四)Redis缓存正确的使用姿势 努力的孩子运气不会太差,跌宕的人生定当更加精彩 优先队列详解(转载)

    如约而至,Java 10 正式发布!   3 月 20 日,Oracle 宣布 Java 10 正式发布. 官方已提供下载:http://www.oracle.com/technetwork/java ...

  8. SpringBoot进阶教程(六十四)注解大全

    在Spring1.x时代,还没出现注解,需要大量xml配置文件并在内部编写大量bean标签.Java5推出新特性annotation,为spring的更新奠定了基础.从Spring 2.X开始spri ...

  9. 爱,死亡和机器人 第十四集 齐马蓝 中文字幕(Python处理utf8文件获取想要的内容)

    处理代码 file = "a.srt" fi = open(file, mode='r') a = fi.readline() i = 1 while len(str(a)) != ...

随机推荐

  1. 分布式版本控制系统 Git 的安装与使用

    作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 远端库地址:https://github.com/CJL29 ...

  2. mac-redis安装与使用

    安装: brew install redis --------------- 使用: 启动redis-server: sudo redis-server 连接:./redis-cli -h 127.0 ...

  3. 服务器代理+jQuery.ajax实现图片瀑布流

    服务器代理机制破解浏览器的同源策略 瀑布流功能实现分析 具体实现代码及业务实现分析 一.服务器代理机制破解浏览器同源策略 由于浏览器的同源策略无法请求不同域名下的资源,但是服务器的后台程序并不受同源策 ...

  4. 一次多个数据库tnsping及登录单点登录需求

    [环境介绍] 系统环境:Linux + Oracle 11.2.0.4.0 + python 2.7.10 [背景描述] 需求:因为涉及生产数据库较多,业务夸多个数据库使用.当收到业务有些影响时,数据 ...

  5. win-DOS命令整理

    1 md 建 文件夹2 cd 指向文件夹方向cd .. 进入上一级文件夹cd \ 回到根目录3 rd 删除文件夹4 dir 查看文件夹里的文件 dir /a 查看文件夹内全部文件含隐藏文件 5 ren ...

  6. webpack的按需引入配置

    ant.design插件需要less配合,yarn add babel-plugin-import,webpack4.0的babel文件已经配置到webpackconfig.js中,需要eject暴露 ...

  7. 解决axios在ie浏览器下提示promise未定义的问题

    参考链接: https://blog.csdn.net/bhq1711617151/article/details/80266436 在做项目的时候发现在ie11上出现不兼容的问题,对于和后台交互这块 ...

  8. 415 DOM 查找列表框、下拉菜单控件、对表格元素/表单控件进行增删改操作、创建元素并且复制节点与删除、 对表格操作、通用性和标准的事件监听方法(点击后弹窗效果以及去掉效果)

    DOM访问列表框.下拉菜单的常用属性: form.length.options.selectedindex.type       使用options[index]返回具体选项所对应的常用属性:defa ...

  9. 2018-2019-2 20165337《网络对抗技术》Exp2 后门原理与实践

    基础问题回答 (1)例举你能想到的一个后门进入到你系统中的可能方式? 下载破解游戏,盗版电影或安装来历不明的软件,可能被留下后门. (2)例举你知道的后门如何启动起来(win及linux)的方式? w ...

  10. OSL

    1,SimpleColorShader: shader gamma(color cin = color(,,),output color Cout=color(,,)) { Cout = cin; } ...