Linux操作系统基础操作之shell相关操作

shell是内核kernel的”壳”, 是用来将机器语言和人类语言相互转化而存在的软件层次
是命令语言、命令解释程序及程序设计语言的统称
shell 本身就是一个从文件或终端读取命令、解释这些命令并通常执行其他命令的命令
它的作用是控制内核为用户工作

RHEL5中提供了多种Shell程序可供用户选择
文件Shells中保存了Linux系统中可使用的Shell程序列表
/etc/shells
在某个Shell程序中可通过执行其他的Shell程序改变用户的当前Shell
[teacher@localhost ~]$ bsh
用户默认Shell的设定
用户使用的登录Shell保存在passwd文件的记录中
/etc/passwd

cat /etc/shells
/bin/sh(最初的shell版本,目前已经被bash取代)
/bin/ksh(Korn shell,与bash兼容)
/bin/csh(已经被tcsh取代)
/bin/tcsh(整合了C shell,提供更多的功能)
/bin/bash(linux的默认shell)

shell基本功能

启动指定程序
在完成命令行的解释后,shell就指挥内核从PATH环境变量指定的目录中搜索命令行中指定的可执行文件
输入输出重定向
将指定的输出信息发送到除屏幕外的其他地方去,例如一个指定的文件等
在执行程序前进行输入输出重定向
例如:
cat file1 file2 > file3
gzip -9 –c message > message.gz
管道连接
输入输出重定向的特例,它是将一个指令的输出数据直接作为另一个指令的输入数据
管道也是在调用程序前建立的
eg: who|wc -l
文件名置换
作用:使用较少的字符取代多个字符
例如:ls -al pass*
这里的星号是一个或多字符的替代符号,可以取代一串字符,通常称为通配符
注意:文件名置换是在程序执行以前完成替换
变量维护
变量就是存储数据为将来所用的场所
用等号(=)可以给变量赋值
eg: ]$LOOKUP=/home/user
]$echo $LOOKUP
/home/user
eg: ]$ls -l $LOOKUP/test
在执行ls指令前将LOOKUP变量置换为/home/user,即显示/home/user/test文件的相关信息

Shell编程

shell可以被视为一种编程语言。通过使用流程控制和条件判断来组合指令以及对变量赋值,用户就拥有了一个有力的编程工具

Bash操作

命令记忆

history 显示历史指令
!! 执行上个指令
!22 执行文件~/.bash_history中记载的第22号指令
!vi 执行上一个以vi开头的指令

补全
一次Tab:自动补全
两次Tab:显示所有可用的以指定字符串开头的文件或指令

指令别名
指令的“外号”
可以使用指令本身或者它的别名来调用指令
eg1:]$alias
alias vi=‘vim’
]$vi aa
]$vim aa
eg2: ]$alias cls=‘clear’

前后台控制
使用后台控制可以将当前的工作放到后台执行,也就是说执行过程或结果不再显示在屏幕上,而是在系统中默默的运行着

shell scripts的指令程序功能
用户可以将一串连续的指令写入文件中去,在需要的时候直接调用该文件来完成指令的执行

type命令

type [-tpa] name   查看该指令是否为Bash的内部指令
-t:将指令通过下面的文字显示出它的意义
files:外部指令
alias:该指令为命令别名所设置的名称
builtin:该指令为bash的内置指令

-p:如果后面接的是命令,会显示完整的文件名(外部命令)或显示为内置命令
-a:在PATH变量定义的路径中,列出所有含有name的命令,包含alias

 

posted @ 2019-01-09 11:13  DannyBoy~  阅读(480)  评论(0编辑  收藏  举报