文章目录Linux和Ubuntu命令行界面仿真终端窗口shell基本正则表达式通配符模式shell使用特殊字符Linux命令行语法格式命令行基本用法命令行输入和输出命令行使用vi操作模式打开vi编辑器、编辑文件、保存文件和退出vi的其他全局操作
Linux和Ubuntu Linux起源于UNIX,以可移植操作系统接口标准为框架发展起来的操作系统Linux是内核。 也就是说,提供硬件抽象层、磁盘和文件系统控制、多任务等功能的系统软件Linux包括用户APP应用程序、操作系统服务、Linux内核和硬件系统每层只能与其相邻的层通信,层之间存在自上而下的依赖关系,合格的层依赖于下层,而下层不依赖于上层。 有两种类型的Linux版本:内核版本和发行版本。 内核版本:内核团队开发维护的系统内核版本号,可分为实验版本和产品版本。 内核版本的每个版本号由四个部分组成。 主版本、实验版本、修订版---版本化发行版:是指集成的完整操作系统,包含基本APP应用程序。 Debian是迄今为止完全符合GNU标准的LInux系统,Ubuntu是其改版。 Linux磁盘分区Linux使用单个目录树结构。 某些Linux (称为根目录)使用设备名称和分区编号将分区SCSI磁盘、SATA磁盘标记为sd,并将整个系统只有一个根目录的每个分区挂载到一个目录中逻辑分区从5开始,命令行接口使用模拟终端窗口终端接口的形式。 当前用户名@主机名当前目录命令提示符一般用户登录后,命令提示符以$超级用户身份登录后,命令提示符# Linux是真正的多用户操作系统,多个用户的日志直接登录到Linux计算机(提供访问虚拟控制台的方法,使用户可以从控制台同时登录多次)是http://www.Sina.com/talent, 使用SSH等工具通过网络登录到Linux主机称为控制台登录Linux,用户可以同时打开和操作6个虚拟控制台,而不管当前使用的是哪个虚拟控制台系统信息将全部发送到此控制台,为了安全起见,屏幕上不会显示用户输入的密码。 shell在Linux里面。 shell是shell的含义,是用户和系统交互的界面,接受用户输入的命令并将其发送到内核。 Ubuntu默认情况下使用的shell程序是bash。 命令可以确定当前使用的壳类型。 ~ $ echo $ shell是命令解释器,具有自己的shell命令集的shell是编程语言,用户可以创建由shell命令组成的程序。 通常称为shell脚本(shell脚本)或命令文件Linux shell的主要功能。 解释用户在命令行提示符下输入的命令,以提供自定义的用户环境并创建shell脚本。 实现高级管理功能的正则表达式regularexpression(re )是一个可用于模式匹配和替换的工具壳。 可以使用正则表达式使用一系列特殊字符创建匹配模式,并将其与要比较的字符串或文件进行比较,以执行相应的程序通配符
用于字符串检索、文件名匹配、检索等模式匹配。 常用的有以下六种。
* (星号)表示任意字符串。 例如,*log*是否表示包含log的字符串? )问号) :表示任何单个字符串() (方括号对) :表示字符串,字符串可以直接包含多个字符。 例如,[abc]表示a、b、c之一的字符。 -也是由连接开始字符组成的序列。 除-以外的特殊字符在[]中是普通字符。 (感叹号() ) ) )中的字符串(在[]中使用,表示排除任意字符) :仅在一行开头匹配字符串$ )美元符号)。仅在行末匹配字符串模式的模式表达式包含一个或多个通配符字符串,每个通配符字符串除了上述通配符之外,bash还提供了特定的扩展模式匹配表达式,例如:
*:匹配任意多个模式。 例如,file*(c|.o )与文件file.c、file.o、file.c.o、file等匹配,但与file.h、file.s等不匹配:匹配一个或多个模式。 例如,file(.c|.o )与文件file.c、file.o、file.o.c、file.c.o等匹配,但与file不匹配。匹配模式表中的任何模式。 例如,file? (.c|.o )仅匹配file、file.c、file.o等,不匹配file.c.c、file.c.o等。 @:只与模式表中的一个指定模式匹配。 例如,file@(.c|.o )仅匹配file.c和file.o,但不匹配file、file.c.c、file.c.o等。与指定架构表中除一个架构外的任何其他字符串匹配。 实际使用时,模式表达式可以递归使用。 也就是说,每个表达式可以包含一个或多个模式。 例如,file*(.[CHO]|.sh )是有效的模式表达式。
shell中的特殊字符引号shell中的引号有三种: 也就是说,单引号、双引号和双引号括在单引号'中的字符串包括特殊字符(如空格、$、1和n )括在双引号'中的字符串,除$、l和'外,都被视为常规字符串
"仍作为特殊字符并保留其特殊功能外,其他都视为普通字符对待是转义符,Shell不会对其后面的那个字符进行特殊处理,要将$、、'和"作为普通字符,在其前面加上转义符即可特殊引号是反引号(`)。由反引号括起来的字符串被Shell解释为命令行,在执行时首先执行该命令行,并以它的标准输出结果替代该命令行(反引号括起来的部分,包括反引号) 其他符号 #(注释)(跳转符号,将特殊字符或通配符还原成一般字符)|(分隔两个管道命令);(分隔多个命令)/~(用户的主目录)$(变量前需要加的变量值)&(将该符号前的命令放到后台执行) Linux命令行的使用Linux命令包括内部命令和程序(相当于外部命令)。
内部命令包含在Shell内部,而程序是存放在文件系统中某个目录下的可执行文件。
可使用history命令列出最近用过的所有命令,显示结果中为历史命令加上数字编号,如果要执行其中某一条命令,可输入!编号来执行该编号的历史命令。自动补全命令
bash具有命令自动补全功能,当用户输入了命令、文件名的一部分时,按键就可将剩余部分补全,如果不能补全,再按一次键就可获取与已输入部分匹配的命令或文件名列表,供用户从中选择。一行多条命令和命令行续行
可在一个命令行中使用多个命令,用分号;将各个命令隔开。例如:ls -l;pwd。也可在几个命令行中输入一个命令,用反斜杠将一个命令行持续到下一行。例如ls -l -a 强制中断命令运行
在执行命令的过程中,可使用组合键+强制中断当前运行的命令或程序。获得联机帮助
Linux系统安装有联机手册(Man Pages ),使用命令man显示联机手册,基本用法如下:man [选项] 命令名或配置文件名 命令行输入与输出
与DOS类似,Shell程序通常自动打开3个标准文档:标准输入文档( stdin )、标准输出文档(stdout)和标准错误输出文档(stderr )
其中stdin一般对应终端键盘,stdout和stderr对应终端屏幕。
进程从stdin获取输入内容,将执行结果信息输出到stdout,如果有错误信息,同时输出到stderr。
主要用于改变命令的输入源,让输入不要来自键盘,而来自指定文件。
基本用法:命令 < 文件名输出重定向
主要用于改变命令的输出,让标准输出不要显示在屏幕上,而是写入到指定文件中。
基本用法:命令 > 文件名
如果要写入已有文件,则将该文件重写(覆盖)。要避免重写破坏原有数据,可选择追加功能,将>改为>>
至于标准错误输出的重定向,只需要换一种符号,将>改为2>,将>>改为2>>。将标准输出和标准错误输出重定向到同一文件,则使用符号&>。管道
管道用于将一个命令的输出作为另一个命令的输入,使用符号|来连接命令。可以将多个命令依次连接起来,前一个命令的输出作为后一个命令的输入。
基本用法:命令1|命令2……|命令n命令替换
命令替换与重定向有些类似,不同的是命令替换将一个命令的输出作为另一个命令的参数
常用命令格式如下:命令1 ` 命令2 反引号
其中命令2的输出作为命令1的参数,注意这里的符号是指反引号,被它括起来的内容将作为命令执行,执行的结果作为命令1的参数。 执行Shell脚本 Shell脚本是指使用Shell所提供的语句所编写的命令文件,又称Shell程序。Shell脚本可以包含任意从键盘输入的 Linux命令。Shell脚本最基本的功能就是汇集一些在命令行输入的连续指令,将它们写入脚本中,然后直接执行脚本来启动一连串的命令行指令。执行Shell 脚本最常用的方式是将Shell 脚本的权限设置为可执行,然后在提示符下直接执行它。直接编辑生成的脚本文件没有执行权限,如果要将Shell脚本直接当作命令执行,就需要利用命令chmod将它置为具有执行权限。例如:chmod +x example1 vi编辑器
Linux系统图形界面中编辑文件,通常使用gedit。
作为管理员,往往要在文本模式下操作。vi是一个功能强大的文本模式全屏幕编辑器
Ubuntu提供的版本为vim, vim相当于vi的增强版本。
保存文件和退出vi要进入末行模式才能操作
:w filename:将文件存入指定的文件名filename:wq:将文件以当前文件名保存并退出vi编辑器:w:将文件以当前文件名保存并继续编辑:q:退出vi编辑器q!:不保存文件强行退出vi编辑器qw:保存文件并退出vi编辑器 其他全局性操作在末行模式下还可执行以下操作。
列出行号:输入set nu,按回车键,在文件的每一行前面都会列出行号。跳到某一行:输入数字,再按回车键,就会跳到该数字指定的行。替换字符串:输入范围/字符串1/字符串2/g,将文件中指定范围字符串1替换为字符串2,g表示替换不必确认;如果g改为c,则在替换过程中要求确认是否替换。范围使用m,ns的形式表示从m行到n行,对于整个文件,则可表示为1,$s。多文件操作:要将某个文件内容复制到另一个文件中当前光标处,可在末行模式执行命令: r filename,filename的内容将粘贴进来。要同时打开多个文件,启动vi时加上多个文件名,如vi filename1 filename2。打开多个文件之后,在末行模式下可以执行命令:next和:previous在文件之间切换。