简单理解bash和常规操作

1. 什么是bash?

Bash shell是一个命令解释器,它是操作系统的外壳程序,负责处理用户命令与操作系统内核之间的交互,当用户输入一个命令并执行时,shell会把命令解释并传递给内核,然后再把内核输出返回给用户,我们通过SSH远程连接linux系统时,Linux系统会自动打开一个默认的shell,如图是CentOS 7系统默认的shell,图中也显示了bash shell的版本信息。

image001.png

2. Bash能做什么?

大部分的Linux系统管理等事务都是在bash里处理

bash shell 可以做:
文件管理
权限管理
用户管理
磁盘管理
网络管理
软件管理...等等

3. Bash的执行方式?

bash 主要有两种命令执行的方式:

1.交互模式,命令以单条交互式执行,如图:

image003.png

2.编写shell脚本文件,通过预编辑好的脚本文件批量执行命令,如图是一个完整的shell脚本可执行文件,图中的脚本可以产生指定名称指定行数的文本文件

image005.png

4. Bash提示符各字段的释义,如图:

image007.png

注: ** *默认情况下,超级管理员(root)的标识符是符号''#'',普通用户为''$'',如果用户更改了环境变量“PS1”**的值的话,其标识符最终显示可能有所不同。*

5. Bash语法:

Command [-options...] [args]
命令- 选项- 参数
命令:一些具有特定功能的可执行文件(二进制可执行文件、脚本等)

选项:执行特定功能和操作所需要用户向命令传递的选项,命令通过此项可实现一些特定的功能

参数:命令所需的其他命令行参数(文件、路径等);如下图展示了‘ls’命令的一些常见用法及选项参数

下面是ls命令的一些常用操作:

1.列出当前目录下的文件

ls

image009.png

2.列出当前目录下的所有文件

ls -a

image011.png

3.列出当前目录下文件的详细信息

ls -l

image013.png

4.可以组合选项的方式执行命令

ls -la										#显示全部文件及详细信息

image015.png

ls -lr										#以文件夹名倒序显示详细信息

day2-ls-lr.png

ls -lt										#以文件修改时间显示详细信息

day2-ls-lt.png

5.长格式选项

ls -all

image017.png

6.显示指定目录下的文件,选项后跟随命令行参数

ls -la /usr										#指定了要查看的目录

image019.png

**注: ** 组合选项并不适用于所有命令;使用长格式选项与短格式选项取决于所使用的命令是否支持长格式选项以及用户的习惯,推荐短格式。方便易记!

6. Bash shell的特性

在输入长参数时,单靠一个词一个词的拼是慢且没效率的,使用TAB键的自动补全功能可以使我们输入参数或命令更快速、便捷!(尤其是遇到文件名很长的时候,这点尤为重要)但通常我们要给它提供足够的线索,补全功能才会生效,如果目录下具有较多类似文件时,按两次TAB键还可列出备选结果,如图:

image021.png

注: ** 如果命令选项无法补全或无法显示备选时,可能时系统没有安装 bash-completion 这个包,可以执行yum install bash-completion -y** 来安装,安装完成重新登陆终端即可!

Bash shell有很多的快捷键,这些快捷键可以使我们的键入速度更快、更准确!如图是一些常用的快捷键:
快捷键 作用
Ctrl+a 光标移到最左侧
Ctrl+e 光标移到最右侧
Ctrl+l 清屏(类似命令clear
Ctrl+u 清除光标前的内容
Ctrl+k 清除光标后的内容
Ctrl+d 登出当前终端,断开会话(logoutexit
Ctrl+c 结束当前运行的任务
Ctrl+w 按单词清除内容
Ctrl+z 挂起当前运行的任务
Ctrl+r 搜索已执行的命令

注: 命令前加''#''号可注释当前命令,回车后是不会执行的;输入一个命令按 ESC 键后按''.''可显示上一条命令的参数。

要查看命令执行的历史纪录,可使用history命令

history										#列出命令执行历史记录

image023.png

!+[numbers]i+[string] 语句可再次执行序号对应的命令

!!可快速执行历史记录最后一条命令

history -w                        	#将历史记录导出到.bash_history文件
history -c                        	#清除命令执行的历史记录
history -d [number]					#删除历史记录里指定行的记录

有些常用命令在使用时具有很多参数或参数较长,输起来略有不便,可以使用alias命令添加别名,如图:

alias pdb='ping www.baidu.com'			#创建了ping www.baidu.com的别名

执行结果:

image027.png

alias									#不加参数执行时可显示系统和用户预定义的别名信息

执行结果:

image025.png

当需要解除某项别名时,可以用unalias命令解除别名。

unalias	[name]								#解除某项别名

执行结果:

image029.png

注: alias命令添加的别名只对当前会话有效,对其他会话无效,用户登出或重启后就失效了,若想使自定义的别名永久生效,可使用vim编辑器编辑/etc/bashrc文件,编辑后,重新登陆生效。

vim /etc/bashrc

image031.png

在不知道命令参数和格式时可用“[command] –help”查询帮助信息;也可用“man [command]”查看命令的完整手册了解命令相关信息,如图:

cat --help										#使用--help查看cat命令帮助

cat-help.png

man ls											#使用man查看ls指令的完整手册

cat-help.png

注: ** *可使用上、下、左、右、空格、回车键移动和翻页,按“q"**可退出。*

7. 其它

给CentOS 7 系统更换国内的源

1.备份系统默认的源:

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

image033.png

2.从任意开源镜像站下载配置文件,或直接用vim新建CentOS-Base.repo文件,将地址更新进去,这里以阿里开源镜像站的源为例:

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#或者使用
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

image035.png

3.执行yum makecache生成缓存

yum makecache

image037.png

posted @ 2019-03-30 15:52  喝茶,吃瓜  阅读(1072)  评论(0编辑  收藏  举报