收藏 分享(赏)

3.1.使用bash管理系统.ppt

上传人:Facebook 文档编号:9293570 上传时间:2019-08-01 格式:PPT 页数:22 大小:355.50KB
下载 相关 举报
3.1.使用bash管理系统.ppt_第1页
第1页 / 共22页
3.1.使用bash管理系统.ppt_第2页
第2页 / 共22页
3.1.使用bash管理系统.ppt_第3页
第3页 / 共22页
3.1.使用bash管理系统.ppt_第4页
第4页 / 共22页
3.1.使用bash管理系统.ppt_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、使用Shell(bash),刘西洋,大纲,1 控制台 1.1 Linux控制台终端 1.2 终端模拟器 2 shell有几种 3 使用bash 4 bash脚本编程 参见Redhat Linux指南:服务器设置与程序设计篇第11章,bash程序设计。,1 控制台,Linux控制台终端 可以使用Alt+F1-F6组合键切换和英文终端。 Linux终端模拟器 图形界面下的终端模拟器。比如,kde的konsole程序和gnome的gnome-terminal,1.1 控制台终端,控制台终端,包含两种设备文件/dev/ttyn, /dev/console。 Linux 中,键盘显示器组合被称为控制台。

2、它仿真了类型为Linux的一种终端,设备文件ttyN与之相关联。第一个在控制台上登录时,使用tty1。 tty1tty6等称为虚拟终端,而tty0则是当前虚拟终端的一个别名,可以使用Alt+F1-F6组合键切换虚拟终端。 /dev/console即控制台,是与操作系统交互的设备,系统将一些信息直接输出到控制台上。只有在单用户模式下,才允许用户登录控制台。 命令ps -ax查看进程与哪个控制终端相连。,1.2 终端模拟器,终端模拟器,图形环境下的控制台终端模拟程序。主要有konsole,gnome-terminal和Xterm三种。 终端模拟器,让我们在不脱离图形环境的情况下使用终端。并且提供更

3、多控制台终端无法提供的附加功能。比如,鼠标操作和复制粘贴操作。提供更便利的功能。,2 Shell有几种,sh, Steve Bourne编写。多见AT&T Unix system csh,Bill Joy编写,多见berkeley Unix system。 bash ,即Bourne Again Shell,Brian Fox编写。 tcsh ,csh的开源版本。与csh有抹不清的关系。 ash, 轻量级sh,kenneth almquist编写,用于netbsd,多用于嵌入式。 ksh,David Korn编写,Unix system V systems 默认shell。AIX默认shell

4、。 zsh,sh的一种克隆版,Mac OS X 曾使用。,3 使用BASH,3.1 Bash 配置文件 3.2 Bash 环境变量 3.3 Bash 内置命令 3.4 Bash 快捷键 3.5 Bash 提示符,3.6 Bash 历史命令 3.7 Bash 命令嵌套 3.8 Bash 命令串接 3.9 Bash 作业管理,3.1 bash配置文件,roothongli # ls al权限 硬链接数 属用户 属组 大小 最后修改日期 文件名 -rw- 1 root root 13650 Apr 2 15:29 .bash_history-rw-r-r- 1 root root 24 Mar 10

5、 18:35 .bash_logout-rw-r-r- 1 root root 191 Mar 10 18:35 .bash_profile-rw-r-r- 1 root root 176 Mar 10 18:35 .bashrc 硬链接数表示当前文件硬链接count值。普通目录硬链接数为:2+子目录数。 /etc/bash_profile 系统为所有用户登录设置环境信息。第一次登录执行 /etc/bashrc 所有用户登录时所执行的脚本。第一次登录执行。 .bash_history 命令执行历史记录 .bash_logout 用户退出登录时执行的脚本,一般内容为clear 清屏命令。 .ba

6、sh_profile bash用户配置文件,包含环境变量声明和一些其他配置 .bashrc 用户登录时,bash执行脚本可以配置命令别名等内容 .bash_profile调用.bashrc /etc/skel 目录,skel是 skeleton 的缩写,每当新建一个用户的时候 (通过 useradd 命令), /etc/skel 目录下的文件,都会原封不动的复制到新建用户的home目录下,3.2 bash 环境变量,变量,用特定名称保存一定值以供程序将来使用。环境变量,具有全局特性的常规变量。 当我们登陆系统首先获得 shell进程再输入的命令都属于这个 shell 的子进程。当获得 shel

7、l 的时候同时也获得一些环境设定。 export通过导出已定义变量,创建环境变量。 export命令指示系统为每个所创建的shell定义该变量的一个副本。新shell也可创建自己独有的环境变量。 环境变量一般在:/.bash_profiles中声明,不可不知的几个变量,$HOME 和 用户主目录 roothongli # echo roothongli # echo $HOME /root /root $SHELL 用户shell类型 roothongli # echo $SHELL /bin/bash $PS1 用户shell提示符格式 roothongli # echo $PS1 uh W

8、$ $PATH 用户执行命令时,系统寻找路径 roothongli # echo $PATH /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin,3.3 bash内置命令,典型命令: cd 切换目录 pwd 显示当前工作目录 test 测试(也有/bin/test这条命令) set unset 变量声明和取消 echo 回显 exit 退出shell history 显示历史执行命令 type 显示命令的位置 fg bg 作业控制,

9、把作业后台和前台轮调 获取方法: linuxlocalhost $ help linuxlocalhost $ man bash linuxlocalhost $ info bash,3.4 Bash快捷键,指针定位 Ctrl+F Character forward 前进一个字符. Ctrl+B Character backward 后退一个字符. Alt+F Word forward 前进一个单词 Alt+B Word backward 后退一个单词 Ctrl+A Beginning of line 定位到行开始 Ctrl+E End of line 定位到行结束 Ctrl+L Clear

10、screen 清屏 行编辑 Ctrl+D Delete current 删除当前字符 Backspace Delete previous 删除前一个字符 Ctrl+T Transpose character 交换当前字符和前一个字符的位置,Alt+T Transpose words 交换当前字符和前一个单词的位置 Alt+U Uppercase word 大写当前单词 Alt+L Lowercase word 小写当前单词 Alt+C Capitalize word 把当前单词写成首字母大写形式 Ctrl+V Insert special character 插入一个特殊字符 例如插入tab,

11、Ctrl+V+Tab. 行剪切和粘贴 Ctrl+K Cut end of line 剪切到行尾的所有字符 Ctrl+U Cut beginning of line 剪切到行首的所有字符. Ctrl+W Cut previous word 剪切指针前的整个单词. Alt+D Cut next word 剪切指针后的整个单词 Ctrl+Y Paste recent text 粘贴最后一次剪切的内容 Alt+Y Paste earlier text 回到上次剪切,然后粘贴 Ctrl+C Delete whole line 删除整行,3.5 bash提示符,linux 提示符即linux等待用户输入时

12、所显示的字符: 默认有PS1 PS2 PS3和PS4四个变量表示 PS1 主提示符变量 PS2 副提示符变量,命令行里较长命令的换行提示信息 PS3 选择提示符变量,用户shell编程里,需要获取用户输入是的提示符。 PS4 shell编程调试时使用。,PS1变量可以使用的参数值(部分):! 历史命令号,为bash_history文件中最大的number# 本次登陆后,输入的有效的命令的个数。$ 提示字符,如果是root时,提示符为:# ,普通用户则为:$W 提示当前工作目录 后跟一些不需要在提示副显示的字符,例如设置颜色。 对应 结束设置 显示反斜杠d 以“星期 月 日”的格式 显示当前日期

13、 h 显示主机名.n 在命令提示符中创建新行。s 显示当前shell名称t 以 “小时 分 秒”的形式显示当前日期u 显示用户名.w 显示当前工作目录的完整成路径 http:/ bash历史命令,!n 调用number为n的命令 ! 直接调用上一条命令 !?string? 从后往前,匹配历史命令中字符为string的命令,然后调用。10 history11 date12 echo $SHELL13 echo $PS114 data -h honlivhongli root$ !?dat? data -h bash: data: command not found,3.7 bash嵌套命令,有时

14、候我们需要将一个命令的输出作为另一个命令的参量,这就需要命令嵌套。 命令嵌套的方式有一下两种方式: $(command)和command 实例:honlivhongli $ echo “there are $(ls -l /etc | grep dr | wc -l) diretcories in /etc.“there are 99 diretcories in /etc.honlivhongli $ echo “there are ls -l /etc | grep dr | wc -l diretcories in /etc.“there are 99 diretcories in /e

15、tc.,3.8 bash命令串接,标准输入输出和错误文件: 标准输入文件stdin,文件描述符为0,默认对应终端的键盘; 标准输出文件stdout,文件描述符为1,默认对应终端的屏幕; 标准错误输出文件stderr,文件描述符为2,默认对应终端的屏幕; 重定向符号: 输出重定向符号 | 管道串接符号 Unix主张:每个命令实现简单的功能,并做好它。复杂的功能由多个命令的结合来实现。,实例:统计/etc目录下所有非隐藏目录个数 方法1honlivhongli $ ls -l /etc etc.txthonlivhongli $ cat etc.txt | moretotal 3088-rw-r-

16、r- 1 root root 2518 Mar 21 20:35 DIR_COLORS-rw-r-r- 1 root root 2420 Mar 21 20:35 DIR_COLORS.xtermdrwxr-xr-x 4 root root 4096 Mar 13 11:39 NetworkManagerhonlivhongli $ grep dr etc.txt | wc -l99 方法2 honlivhongli $ echo /etc 1.txthonlivhongli $ cat 1.txt/etchonlivhongli $ ls -l cat 1.txt | grep dr | w

17、c -l99 方法3 honlivhongli $ ls -l /etc | grep dr | wc -l99,3.9 bash作业管理,bash支持作业管理,背景执行命令。 命令: jobs 显示作业 fg 把作业调到前台运行 bg 把作业调到后台运行 实例: vi执行时,在一般模式下可按ctrl+z暂停进程 roothongli # jobs 1+ Stopped vi install.log 2 Stopped vi install.log.syslog 3- Stopped vi upgrade.log +号表示默认作业,fg不带参数即将带+号的作业作为变量输入。 -号表示再次之的默

18、认作业,要控制一个作业,将其结束或调到前台运行,可以使用%加作业号操作作业 % 指最后放到后台的作业。 %string 指作业命令以string开头的作业,string必须唯一标识一个作业。否则将导致错误 %?string 指在命令任何位置包含string的作业,同样必须唯一标识一个作业 %- 指在最后停止的作业前停止的作业,即倒数第二个停止的作业。实例1 bg命令后台执行挂起的作业find /usr /tmp/allusefiles1roothongli # jobs2 Stopped vi install.log.syslog3- Stopped vi upgrade.log4+ Stop

19、ped find /usr /tmp/allusefiles1roothongli # bg %44+ find /usr /tmp/allusefiles1 &roothongli # jobs2- Stopped vi install.log.syslog3+ Stopped vi upgrade.log4 Done find /usr /tmp/allusefiles1,实例2 通配符匹配的方式调用作业roothongli # jobs1 Stopped find /usr /tmp/allusefiles12 Stopped find /usr /tmp/allu1sefiles3-

20、Stopped find /usr /tmp/allusefiles24+ Stopped find /usr /tmp/allusefiles3roothongli # fg %find-bash: fg: find: ambiguous job spec roothongli # fg %?3find /usr /tmp/allusefiles3roothongli # jobs1 Stopped find /usr /tmp/allusefiles12- Stopped find /usr /tmp/allu1sefiles2+ Stopped find /usr /tmp/allusefiles2roothongli # fg %?files3-bash: fg: %?files3: no such jobroothongli # fg %?files2find /usr /tmp/allusefiles2roothongli # fg %?u1sefind /usr /tmp/allu1sefilesroothongli # fg %findfind /usr /tmp/allusefiles1,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 往来文书

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报