Linux 挂载与Shell基础(1)

今天打算讲完挂载并初步讲述shell的入门。

上一篇博客我们讲了mount命令,用户挂载外部设备或者硬盘,现在我们讲解虚拟机中硬盘的挂载,真实机也类似。

fdisk分区:用于添加硬盘后将硬盘分区,步骤操作如下:

  • 先添加硬盘到虚拟机中
  • 用 fdisk -l 来查看硬盘情况
  • fdisk /dev/sdb 用命令将硬盘分区,这个/dev/sdb。执行该命令后会进入编辑该硬盘的界面,里面的如何创建分区,给分区分配内存之类的内容大火可以去看看其他大佬写的博客,我就不多说说了
  • partprobe :重新读取分区信息,一般来说不用执行该命令
  • mkfs -t ext4 /dev/sdb1:格式化分区,其中ext4是文件系统名,目前CentOS7的文件系统是xfs,所以我们可以执行mkfs -t xfs /dev/sdb1
  • 挂载分区,普通挂载每次重启后要重新挂载
  • df 或者 mount命令查看是否挂载
    在这里插入图片描述

只是执行了mount命令,下一次重启后会自动失效,要想每次开机后都能自动挂载,即永久挂载,我们要把该挂载命令写入文件:/etc/fstab

在这里插入图片描述

  • 分区设备文件名或UUID(硬盘唯一识别码),Centos7的用户可以通过blkid命令查看UUID,比如
    blkid /dev/sdb1
  • 挂载点
  • 文件系统名称
  • 挂载参数,填默认defaults就可以了
  • 指定分区是否被dump备份,0便是不备份,1表示备份
  • 指定分区是否被fsck检测,0表示不检测,其他数字检测表示优先级,越小优先级越大

比如我想自动挂载/dev/sdb1这个硬盘分区,我可以这样输入:
/dev/sdb1 /mnt/disk1 xfs defaults 0 0

以上就是挂载和硬盘分区的全部内容了,加下来先讲解一些帮助我们更好使用Linux的命令。

history:查看历史命令

在这里插入图片描述

  • history -c:清空历史命令
  • history -w:把缓存中的历史命令写入历史命令保存文件 ~/.bash_histroy

历史命令的调用:

  • 使用“!n”重复执行第n条历史命令
  • 使用“!!”重复执行上一条命令
  • 使用“!字串”重估执行最后一条以该字串开头的命令

加下来我们来说说Linux命令执行的原理,其实Linux的命令都是一个个以该命令命名的可执行shell文件。我们可以做个小实验,执行whereis ls这个命令,就会发现这个命令其实是在执行ls: /usr/bin/ls 这个文件。那存储命令文件的目录就叫系统环境变量。

命令执行也是有前后顺序的,当我们敲了一个命令,系统回逐个到存储目录中寻找同名的可执行文件
命令执行顺序:

  • 1——绝对路径或者相对路径
  • 2——顺位执行别名(alias),后面会讲解
  • 3——顺位执行Bash的内部命令
  • 4——顺位执行$PATH环境变量

系统环境变量:我们所执行命令都是由该命令所命名的可执行文件,比如ls命令,其实就是在执行ls文件。那么这些文件都在哪里呢?其实都在系统的某些目录中,我们通过echo $PATH命令查看那些目录/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin,命令文件就存储在这些目录中,这些也叫做系统变量。

举个例子:假如我想在/tmp中创建一个shell脚本,作用是输出hello shell,我创建完后可以通过绝对路径来执行,也可以通过cp到/bin/中,变成系统变量,当然还可以利用PATH:变量执行路径来实现。假设我的shell在/tmp中,那么我只要在原有的PATH基础上加上/tmp即可,即输入命令:PATH="$PATH":/tmp

命令别名:alias

  • alias:查看有哪些别名在这里插入图片描述
  • alias 别名=‘原命令’:给原命令起别名,比如alias ld=‘ls -d’
  • unalias 别名:删除别名

别名一旦退出登录就会消失,要想永久添加别名,要修改~/.bashrc里面的命令其实这个文件是每次登录都会运行,写入这个文件即每次都自动添加别名,实现永久别名的功能。

Bash常用快捷键:

  • ctrl + A:把光标移动到命令行开头
  • ctrl + E:把光标移动到命令行结尾
  • ctrl + K:删除或剪切光标之后内容
  • ctrl + U:删除或剪切光标之前的内容
  • ctrl + Y:粘贴之前剪切的内容
  • ctrl + D:退出终端
  • ctrl + R:在历史命令中搜索

输入输出重定向:指本应在屏幕上输出的或者用键盘输入的命令和信息,通过其他方式输入输出。举个例子:比如我想将ls命令的结果保存到文件中而不是显示出来,这就是输出重定向。

  • >:输出重定向,且输出的信息会覆盖当前文件,比如ls > abc:将ls命令显示的内容保存到abc文件,文件之前的内容会被覆盖
  • >>:追加到文件中,比如ls >> abc:将ls命令显示的内容保存到abc文件,文件之前的内容不会被覆盖

这些输出重定向是输出正确情况下,那么如果在执行中报错呢?这就要涉及错误输出重定向,很简单,也就是 2>。默认 > 其实是 1> ,你可以理解为正确输出重定向。
在这里插入图片描述

  • 如果当我想返回错误的信息:比如我故意将 ls 命令输错成 lst ,并把错误信息保存到abc文件中,lst 2>> abc:这里的2表示为错误信息输出

一般来说上述的两个命令意义不大,因为我们得先判断命令是否有错才能使用该命令,而很多时候我们会不知道命令是否有错的前提下,通过输出命令结果来判断是否命令出错。

  • 命令 >&:以覆盖的方式将正确输出和错误输出都保存到一个文件中
  • 命令 >>&:以覆盖的方式将正确输出和错误输出都保存到一个文件中
  • 命令 > 文件 2>&1:另一种写法,以覆盖的方式将正确输出和错误输出都保存到一个文件中,这种方式其实原理是把错误信息放入“正确输出”中,再把“正确输出”保存到文件中
  • 命令>>文件A 2>>文件B:把正确的输出追加到文件A中,把错误的输出追加到文件B中,这种写法相当常见,在Linux中,存在这一个文件/dev/null,类似于windows的回收站,所有信息输入进去后都会被清除,我们有时候可以把错误信息 2>>/dev/null中。

输出重定向就比较简单了,一般是将文件的内容导入一个程序或者命令中。

  • 程序A < 文件B:将文件B的内容导入到程序A中,并返回结果到显示屏幕
  • wc -c < 文件A:利用wc命令统计文件A有多少字符
  • wc -l < 文件A:利用wc命令统计文件A有多少行
  • tr ‘:’ ‘ ’ < 文件A:利用tr命令将文件A的冒号:替换成空格

多命令执行

  • 命令1 ; 命令2:命令1与命令2顺序执行,命令之间灭有任何逻辑联系,即使命令1错误,命令2也照样执行
  • 命令1 && 命令2:逻辑与,只有当命令1正确执行,命令2才执行,反之若命令1报错则不会执行命令2
  • 命令1 || 命令2:逻辑或,只有当命令1执行不正确,命令2才执行,当命令1正确执行,命令2则不执行
    常见的骚操作:命令 && echo yes || echo no:当命令执行正确,会输出yes,反之会输入no

管道符:|,比如命令1 | 命令2,命令l1的正确输出作为命令2的操作对象

  • last | wc -l:用last命令查看最近登录的用户,将结果通过管道符给wc命令,统计多少用户(一行表示一个用户,统计行数即同时用户数)。管道符可以连续用下去:命令A | 命令B | 命令C | 命令D

通配符:用来匹配文件名,注意,不要与正则搞混!!!

符号作用
匹配任意一个字符
*匹配0个或任意多个字符
[abc]匹配其中任意一个字符,比如a,b或者c
[a-z]匹配小写字母a到z
[^]逻辑非,比如[^0-9]表示匹配不是数字的字符
’ ’单引号括起来的都是普通字符
" "双引号里面的是特殊字符
$()和反引号``类似,Bash中先执行,然后再赋予变量
#开头注释
$调用变量的值时,要用$
\反斜杠,转义符,表示\后面的特殊字符失去特殊含义
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值