简单理解bash和常规操作

1. 什么是bash?

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

2. Bash能做什么?

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

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

3. Bash的执行方式?

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

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

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

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

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

5. Bash语法:

Command [-options...] [args]

命令 选项 参数

命令:一些具有特定功能的可执行文件(二进制可执行文件、脚本等)

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

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

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

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

ls

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

ls -a

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

ls -l

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

ls -la

5.长格式选项

ls -all

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

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

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

6. Bash shell的特性

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

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

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

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

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

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

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

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

有些常用命令在使用时具有很多参数,输起来略有不便,可以使用alias命令添加别名,如图显示了系统自己创建的别名:

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

执行结果:

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

执行结果:

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

unalias [name]                              #解除某项别名

执行结果:

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

vim /etc/bashrc

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

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

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

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

7. 扩展

给CentOS 7 系统更换国内的源

1.备份系统默认的源:

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
#其实是改名操作

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

3.执行yum makecache生成缓存

yum makecache

原文地址:https://www.cnblogs.com/tea-melon/p/10627692.html

时间: 2024-11-09 02:44:00

简单理解bash和常规操作的相关文章

转 PV操作简单理解

传送门 PV操作简单理解 进程通常分为就绪.运行和阻塞三个工作状态.三种状态在某些条件下可以转换,三者之间的转换关系如下: 进程三个状态之间的转换就是靠PV操作来控制的.PV操作主要就是P操作.V操作和信号量.其中信号量起到了至关重要的作用. 信号量 信号量是最早出现的用来解决进程同步与互斥问题的机制. 信号量(Saphore)由一个值和一个指针组成,指针指向等待该信号量的进程.信号量的值表示相应资源的使用情况.信号量S>=0时,S表示可用资源的数量.执行一次P操作意味着请求分配一个资源,因此S

PV操作的简单理解

 PV操作的简单理解 一.什么是PV操作 在操作系统中,进程是一个很要花时间理解的东西,进程通常分为就绪.运行和阻 塞三个工作状态.三种状态在某些条件下可以转换,三者之间的转换关系如下: 进程三个状态之间的转换就是靠PV操作来控制的.PV操作主要就是P操作.V操作 和信号量.其中信号量起到了至关重要的作用. 1.什么是信号量? 信号量(semaphore),我们有时被称为信号灯,是在多线程环境下使用的一种设 施,是可以用来保证两个或多个关键代码段不被并发调用.信号量的数据结构为一个值 和一个指针

数据库mysql的常规操作

1. 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的建立在计算机存储设备上的仓库. 简单来说是本身可视为电子化的文件柜--存储电子文件的处所,用户可以对文件中的数据进行新增.截取.更新.删除等操作. 严格来说,数据库是长期储存在计算机内.有组织的.可共享的数据集合.数据库中的数据指的是以一定的数据模型组织.描述和储存在一起.具有尽可能小的冗余度.较高的数据独立性和易扩展性的特点并可在一定范围内为多个用户共享. 2.  为什么需要使用数据库? 假设这样一个场景,需

01. Shell基础和使用技巧(工具+常用bash命令加速操作)

Shell脚本介绍和常用工具 Shell脚本 Shell脚本:实际就是windows里的批处理脚本,多条可一次执行的Shell命令集合.Linux上的脚本可以用很多种语言实现,bash shell是比较简单的一种,更高阶的可以用其他脚本语言,比如Python. Shell脚本对系统的管理能力非常强大,甚至可以使用Shell结合php实现Web管理Linux系统功能:可以自己写一个Web页面(示例:基于Php),对系统进行管理,包括查看删除用户,配置网络,发送邮件,重启系统,一键备份,一键搭建服务

php类的封装、继承和多态的简单理解

.面象对向的三大特点:封装性.继承性.多态性 首先简单理解一下抽象: 我们在前面定义一个类的时候,实际上就是把一类事物共有的属性和行为提取出来,形成一个物理模型(模版),这种研究问题的方法称为抽象 一.封装性  封装就是把抽取出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其他部分只有被授权的操作(方法)才能对数据进行操作.  php提供了三种访问控制修饰符  public 表示全局,本类内部,类外部,子类都可以访问  protected 表示受保护的,只有本类或子类可以访问  pr

svn常规操作与相关知识

Svn常规操作与相关知识 一.何谓版本控制 它是一种软件工程籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新,它透过文档控制记录程序各个模块的改动,并为每次改动编上序号,并且编辑错误之后还可以回溯到以前的版本 二.可供我们选择的版本控制系统 1.VCS  (本地版本控制) 2.VSS.CVS(集中版本控制) 3.ClearCase.SVN.Perforce.TFS(集中版本控制) 4.Mercurial(水银/水星).Git(分布式版本控制) 差异: 1.Git和其他版本控制系统的主要

回溯法之八皇后问题简单理解

回溯法,简单理解就是有源可溯.基本思想要借鉴穷举法,但是它不是一味地穷举,当发现某一步不符合条件时,这一步后面的穷举操作就不进行了(俗称“剪枝”),我自己把它叫做动态穷举法.假设第一个步骤可行,那么执行第二个步骤,第三个......如果其中第三个步骤不行,那么我们再回过来(回溯),第二个步骤换一种方法尝试,然后再重新第三个步骤,第四个......直到完成任务要求为止. 这里,以八皇后问题为例.试图把回溯法讲清楚. 注意:递归应该是一种算法结构,回溯法是一种算法思想. 何为八皇后问题? (百度百科

用最基本的EF+MVC+JQ+AJAX+bootstrap实现权限管理的简单实例 之登陆和操作权限

先来一堆关于上篇文章的废话(不喜者点此隐藏) 今天把博客加了个小功能,就是点标题可以隐藏或展示相关内容,做法很傻,就是引用了bootstrap的两个css类和全部的js文件,其实这样的小功能完全应该自己做的,主要还是因为前端差,还有就是懒.请大家不要太过在意命名和前端样式,我并没有进入公司工作,命名没有具体规范,都是随心所欲.前端实在太差,如果你觉得颜色样式太差,只能说明我的审美有问题,咱们主要看功能实现. 上篇文章发布后有一定的推荐量和浏量,对一个初学者来说,自认为还是挺不错的.最主要的是收到

对数据类型封装和数据抽象的简单理解

请特别关注程序设计技术,而不是各种语言特征. --<C++程序设计语言> Bjarne Stroustrup 本文是<C++程序设计语言>(Bjarne Stroustrup )的第二章的读书笔记,例子来源于这本书的第二章. 在程序设计之中,我们倾向于将数据结构(也可以说是数据类型)以及一组对其操作的相关过程组织在一起,在逻辑上可以称将其为模块.此时程序分为一些模块,模块包括一组对数据的操作,数据隐藏于模块之中.以下以栈的设计为例,使用C和C++进行设计,简单理解模块化设计中的数据