1.shell概述
  shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动,挂起,停止甚至是编写一些程序;
  shell还是一个功能强大的编程语言,易编写,易调试,灵活性较强。

shell是解释执行的脚本语言,在shell中可以直接调用Linux系统命令;
  用户输入命令,shell讲命令通过ascii码表翻译成二进制给内核,内核调用计算机硬件来处理;同时计算机硬件可以将信息传给内核,然后内核讲信息传递个shell,shell讲   字符显示出来,相当于逆过程;
  Windows有shell吗?其实Windows中不叫shell,图形化界面操作也可以叫做“shell”,只不过不这么叫而已;
2.shell分类
  1.bourne shell基本淘汰,bourne家族主要包括sh,ksh,bash,psh;
  2.c shell,主要包括:csh,tcsh;
     Linux下所有支持的shell都可以在/etc/shells 里面查询;

3.脚本执行方式

1、echo输出命令和脚本执行格式:echo [选项] [输出内容]

选项: -e:支持反斜线控制的字符转换
echo "bols he cangls ni xihuan nayige"
\a - 输出警告音
\b - 退格符
\n - 换行符
\r - 回车键
\t - 制表符,也就是tab键
\v - 垂直制表符
\0nnn - 按照八进制ASCII码输出字符
\xhh - 按照十六进制ASCII表输出字符
echo -e "bols he cangls ni\b xihuan nayige"
echo -e "hell\bo"
echo -e "h\te\tl\nl\to\t"
echo -e "\x68\t\x65\t\x6c\n\x6c\t\x6f"
echo -e "\e[1;31m嫁人就要嫁凤姐\e[0m"
#输出颜色 \e[1;##m - 开启颜色显示; \e[0m - 关闭颜色显示
#30m=黑色,31m=红色,32m=绿色,33m=黄色
#34m=蓝色,35m=洋红,36m=青色,37m=白色

2、脚本执行:
方法1:赋予执行权限,直接运行
   chmod 755 hello.sh
   ./hello.sh(或者绝对路径执行 /root/hello.sh)
方法2:通过Bash调用执行脚本
    bash hello.sh
3、
#!/bin/Bash
  不是注释,它标称下面的内容是linux的标准脚本程序
  如果该脚本使用纯shell语句完成,不加#!/bin/Bash,运行没问题
  但脚本调用了其他语言,就会报错

4.别名和快捷

1、可以通过alias ls='ls --color=never'设置新的别名

alias查看别名,前面为别名,后面为全名

一般是重启,重登录之后,就失效!
如果要长久有效,需要配置文件,配置好

vim比vi功能更强大,可以通过设置 alias vi='vim'的别名来调用,但是重启重登录之后失效

2、将别名写入配置文件:
vi ~/.bashrc #写入配置文件 永久生效
~是指每个用户的目录,每个用户的目录不一样,配置文件不一样,生成的效果也不一样
写完之后,source .bashrc

unalias 别名 #删除别名

3、命令生效的顺序

第一顺位:执行命令用绝对路径或者相对路径执行的命令
第二顺位:执行别名命令
第三顺位:执行Bash内部命令
第四顺位:按照$PATH环境变量定义的目录查找的顺序第一的命令

4、快捷键
Ctrl c 强制终止 
Ctrl l 清屏 
Ctrl u 删除到行首 
Ctrl a 光标移动到行首 
Ctrl e 移动到行尾 
Ctrl z 把命令放到后台 (没有终止,仅仅是放入后台执行)
Ctrl r 在历史记录中搜索

5.历史命令

history 历史命令

  history [选项] [历史命令保存文件]

-c 清空历史命令
-w 把缓存中的历史命令写入历史命令保存文件 ~/.bash_history
#默认保存1000条
HISTSIZE=1000
#vi /etc/profile 环境变量配置文件修改HISTSIZE

基本调用
上下箭头来重复调用
!n 来执行第n条历史命令
!! 重复执行上一条命令
!字符串 重复执行后一个该串开头的命令

Tab键
进行命令(环境变量)和目录补全(操作路径)

6.输出重定向

命令 &> /dev/null 将命令执行信息放到黑洞了或可以理解为垃圾回收站

7.管道符

";"连接命令 顺序执行
"&&"连接命令 逻辑与执行 第一条执行 第二条执行 第一条错误 第二条不执行
"||"连接命令 逻辑或执行 第一条执行 第二条不执行 第一条错误 第二条执行
脚本中的应用:命令 && echo yes || echo no 命令正确yes 错误no
注意&& echo yes || echo no 顺序不能颠倒,不然命令出错的时候会同时输出no yes

"|" 管道符 命令1|命令2 命令1正确的结果 作为命令2的操作对象
例如 ls -l > /etc/ | more “用于分页显示命令执行结果”
netstat -an | grep ESTABLISHED | wc -l "用于查看当前连接本机的客户端 并 统计客户端数量"

8.通配符

       

一:Shell基础的更多相关文章

  1. Shell基础学习小结

    0 shell基础概念 Shell是解释性语言,使用脚本编程语言的好处是,它们多半运行在比编译型语言还高的层级,能够轻易处理文件与目录之类的对象:缺点是它们的效率通常不如编译型语言.Shell命令有本 ...

  2. Shell基础-环境变量配置文件

    Shell基础-环境变量配置文件 source 配置文件 或者 . 配置文件: 把环境变量写入配置文件后,需要用户重新登陆才能生效,而是用source命令,则能直接生效 主要的配置文件: /etc/p ...

  3. shell基础二十篇 一些笔记

    shell基础二十篇 转自 http://bbs.chinaunix.net/thread-452942-1-1.html 研讨:Bash 内建命令 read (read命令更具体的说明见博客收藏的一 ...

  4. shell基础(转)

    shell基础1:文件安全与权限 http://bbs.chinaunix.net/forum/viewtopic.php?t=434579&highlight=wingger 附:Linux ...

  5. Linux实战教学笔记17:精简shell基础

    第十七节 精简shell基础 标签(空格分隔): Linux实战教学笔记 1,前言 1.1 为什么学习shell编程 Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, ...

  6. shell基础及变量

    一 Shell概述 1.Shell的作用——命令解释器,“翻译官” shell作为一个人机接口,用于解释用户输入的命令,将命令解释为Linux内核可以执行的2进制代码,并将执行的结果返回在标准终端上. ...

  7. Shell 基础教程

    一个比较好的shell基础教程: http://www.runoob.com/linux/linux-shell.html

  8. Linux基础学习(10)--Shell基础

    第十章——Shell基础 一.Shell概述 1.Shell是什么: (1)Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来 ...

  9. Linux Shell基础(下)

    Linux Shell基础(下) 目录 一.shell特殊符号cut命令 二.cut.sort.wc.uniq命令 三.tee.tr.split命令 四.简易审计系统 五.fork, exec, so ...

  10. Linux shell基础知识(上)

    Linux shell基础知识(上) 目录 一.shell介绍 二.命令历史 三.命令补全和别名 四.通配符 五.输入输出重定向 六.管道符和作业控制 七.shell变量 八.环境变量配置文件 九.b ...

随机推荐

  1. ios svn无法连接xp或者win7系统svn的解决方法

    找到服务器svn的安装目录,或者直接查找httpd.conf,找到端口号,复制到ios系统的svn端口号,就ok了,如图 这是其他人的解决方法 Subversion有两种不同的配置方式,一种基于它自带 ...

  2. jQuery Flat Shadow – 轻松实现漂亮的长阴影效果

    长阴影其实就是扩展了对象的投影,感觉是一种光线照射下的影子,通常采用角度为 45 度的投影,给对象添加了一份立体感.长阴影快速发展为流行的设计趋势,并经常被应用到扁平设计方案的对象.更详细的介绍可以阅 ...

  3. 充满想象力的 JavaScript 物理和重力实验

    在这个列表中挑选了9个物理和重力实验,用来展示 Javascript 的强大.几年前,所有这些实验都必须使用 Java 或 Flash 才能做.在下面这些惊人的例子中,就个人而言,我比较喜欢仿真布料的 ...

  4. JSON.stringify()、JSON.parse()和eval(string)

    1.JSON.stringify()用于从一个对象解析出字符串,eg: var obj = {"name":"奔跑的蜗牛","age":&q ...

  5. mysql win源码比较大 不需要的文件删除 记录下来

    mysql-5.6.25-win32.zip 从官方下载下来的大小为 343MB,太大了可以删除掉的地方记录一下 docs :全部删除. sql-bench:全部删除. mysql-test :全部删 ...

  6. [应用][js+css3]3D盒子导航[PC端]

    CSS3构建的3D盒子之导航应用 1.在用css3构建的盒子表面,放上iframe,来加载导航页面. 2.鼠标左键按下移动可旋转盒子,寻找想要的网址. 3.左键单机盒子表面,将全屏现实所点盒子表面的网 ...

  7. 劳动节脑洞大开!利用Debug API 获取 加壳客户端的MD5值

    系统 : Windows xp 程序 : 某游戏客户端 程序下载地址 :不提供 要求 : 远程注入 & 获取MD5值 使用工具 : vc++6.0 & OD 案例说明: 该游戏客户端对 ...

  8. tomcat下运行多个项目

    1. tomact下修改端口解决端口冲突 http://jingyan.baidu.com/article/9f63fb91d0f1b8c8400f0e1d.html 打开 servers下面的ser ...

  9. PhpStorm下Laravel代码智能提示

    phpstorm&Laravel PHPstorm是我见过的最好的PHP的IDE,前年用的时候就毫不犹豫的抛弃了zend studio :) ,Laravel是我用过最好的框架,除了做手游后台 ...

  10. Lock同步锁--线程同步

    Lock-同步锁 Lock是java5提供的一个强大的线程同步机制--通过显示定义同步锁对象来实现同步.Lock可以显示的加锁.解锁.每次只能有一个线程对lock对象加锁. Lock有ReadLock ...