shell、bash、vim、shell script

本文介绍了Shell的概念及其作为用户与操作系统之间接口的作用,并详细解析了Bash作为Linux默认Shell的特点和优势,同时简述了shellscript的基础知识及vi编辑器的基本功能。

什么是 Shell?

用户通过一个应用程序『 Shell 』将输入的指令不与 Kernel 沟通(操作系统核心),好让 Kernel 可以控制硬件正确的工作,shell只是提供用户操作系统的一个接口,被称为壳程序。

很多指令,包括 man, chmod, chown, vi, fdisk, mkfs 等等指令,这些指令
都是独立的应用程序, 但是我们可以透过壳程序 (就是指令列模式)来操作这些应用程序,让这些应用程
序呼叫核心来运作所需的工作

(只要能够操作应用程序的接口都能够称为壳程序。狭义的壳程序指的是指
令列方面的软件,包括本章要介绍的 bash 等。 广义的壳程序则包括图形接口的软
件)

什么是 bash?

bash是 Bourne Again SHell 是linux标准的默认shell ,它基于Bourne shell (UNIX标准的默认shell),吸收了C shell和Korn shell的一些特性。bash完全兼容Bourne shell,也就是说用Bourne shell的脚本不加修改可以在bash中执行。

 

 

什么是 shell script (程序化脚本) 呢?

就字面上的意思,我们将他分为两部份。

『 shell 』部分:那是一个文字接口底下讥我们不系统沟通的一个工具接口

『 script 』部分:字面上的意思, script 是『脚本、剧本』的意思。整句话是说, shell script 是
针对 shell 所写的『剧本!』

其实, shell script 是刟用 shell 的功能所写的一个『程序 (program)』,这个程序是使
用纯文本文件,将一些 shell 的语法不指令(吨外部指令)写在里面, 搭配正觃表示法、管线命令不数据
流重导向等功能,以达刡我们所想要的处理目的,所以,简单的说, shell script 就像是早期 DOS 年代的批处理文件 (.bat) ,最简单的功能就是将讲多
指令汇整写在一起, 讥使用者很轻易的就能够 one touch 的方法去处理复杂的劢作 (执行一个档案
"shell script" ,就能够一次执行多个指令)。 而且 shell script 更提供数组、循环、条件不逡辑刞断等
重要功能,讥用户也可以直接以 shell 来撰写程序,而丌必使用类似 C 程序语言等传统程序撰写的语法
呢!

 shell script 可以简单的被看成是批处理文件, 也可以被说成是一个程
序语言,且这个程序语言由亍都是刟用 shell 不相关工具指令, 所以丌需要编译即可执行,且拥有丌错
的除错 (debug) 工具,所以,他可以帮劣系统管理员忚速的管理好主机。

 

什么是 vi?

vi是Linux 在文字接口下的一款文本编辑器。像Window中的word

类似的文本编辑器还要emacs, pico,nano, joe, 与vim 等等

 

 

 

 

 

 

安卓系统下的bash shell,ssh服务器,gcc编译器以及vim文本编辑器等 使用vim编辑多个文件 vim file1 file2 file3 ... :next查看或编辑后一个文档的内容 :prev查看或编辑前一个文档的内容 :first查看或编辑第一个文档的内容 :last查看或编辑最后一个文档的内容 vim -o|-O file1 file2 file3 -o:水平显示多个文件 -O:垂直显示多个文件 Ctrl+w arrow(箭头) 光标移动 Ctrl+w,s讲一个文件水平分屏显示 Ctrl+w,v将一个文件垂直分屏显示 :qa 全部退出 :wa 全部保存 将其他文件中的内容填充到当前文件中 :r (/PATH/TO/SOMEFILE)这是解释 跟shell交互 :!命令(command) 部分另存为 :w(全部保存) :m,nw(从第m行到第n行) :m,+n :.,$w 默认系统中所支持的shell cat /etc/shells bash特性 命令别名:自定义命令 alias:可以用来定义和设置命令的别名 注意:使用alias命令定义的别名其生命周期仅限于当前shell的生命期;如果修改.bashrc配置文件,其中保存的别名并不会立即生效,只有在重新加载该文件内容之后才会生效且永久生效;为了能够保证设置别名有效,通常两种操作都做 撤销别名:unalias . .bashrc:将.bashrc的命令读取 命令历史: bash进程会保存其会话中用户曾经执行的命令,以方便用户重复执行某个命令通过bash提供的历史命令文件来持久保存此前执行过的命令,用户由私有历史文件 登陆shell的时候,bash会自动读取~/.bash_history文件中所记录的所有命令 history命令: -c:清空历史缓冲区中的历史命令; -d OFFSET:删除特定历史命令条目; 重复执行前一个命令的方法: 使用上方向箭头,回车执行 Ctrl+p !-1 !! 重复执行历史缓冲区的命令 !#(#=数字):重复执行历史命令中的编号为#的命令 !(string)字符串:从历史缓冲区中查找最近一次执行过的以string开头的命令并执行 !?string:从历史缓冲区中查找最近一次包含string的命令并执行 !- number:执行历史缓冲区中倒数第number个命令 Ctrl+r:在历史缓冲区中实施搜索,回车执行即可: 重复使用历史命令中的一部分: !$ 、ESC .、ALT+:表示最后一次命令中最后一个参数; !^:第一个位置的参数 !:number:最后一次命令中第number个位置的参数 !number1:number2在历史缓冲区中第number1个命令的第number2个参数 快捷键 C-->Ctrl M-->Alt E-->Esc DEL-->Backspace C-l:clear 清屏 C-a:将光标跳至命令行行首 C-e:将光标跳至命令行行尾 C-k:删除光标所在位置至行尾的命令行信息 C-u:删除光标所在位置至行首的命令行信息 C-c:结束前台进程。取消命令的运行 命令补全机制: 命令本身字符串的补全 参数的补全 使用TAB键可以完成命令补全: 如果给出的字符串不能作为唯一标识,则bash不予补全;再次敲击TAB键,bash会给出参考列表;如果参考列表中的内容过多,bash会询问是否显示该列表;根据提供的参数路径来进行补全,如果参数没有任何提示信息,则默认从工作目录进行查找; 命令行展开: ~:bash会自动将其展开为当前登陆用户的家目录 ~STRING:bash会自动将其展开为以STRING为用户名为用户的家目录 ~+:调用shell变量pwd的值 ~-:调用shell变量oldpwd的值 {}:在花括号中可以填充一个以","分隔的路径列表,bash会将其展开为多个独立的路径; 命令的执行结果 任何以个Linux命令都有两种执行结果: 命令的正常输出结果:跟用户需求相关的返回内容: ``:反向单引号,反引号 $():标准的命令引用格式 wc:统计一个文件中的行数、字数及字节数 -c:只显示字节数 -l:只显示行数 -w:只显示字数 命令的执行状态返回值;跟命令执行成与否相关的返回命令 引用功能: '':强引用 凡是被单引号引用的内容,bash一律将其视为普通字符,即便本身有特殊功能和作用也是如此,但是单引号本身是个例外 "":弱引用 被双引号引用的内容有一些特殊字符仍然会保留器特殊含义 比如:$、\、"" 转义功能:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值