Linux-3 命令行-shell-bash特点

Linux-3 命令行-shell-bash特点

bash基本概念

  • 什么是Bash shell(壳):

    Bash shell是一个命令解释器,主要负责用户程序与内核进行交互操作的一种接口,将用户输入的命令翻译给内核,由内核驱动硬件,最终将处理结果输出至Bash shell屏幕终端。

  • 我们如何打开Bash shell呢?

    当我们在使用远程连接工具连接Linux服务,系统则会给打开一个默认的shell,我们可在这个界面执行命令,比如:获取系统的当前时间,创建一个用户等等…

    image-20221207090125402

    翻译用户需要执行的命令

  • Bash shell能干什么?

    使用Shell实现对Linux的大部分管理,例如:

    • 文件管理
    • 权限管理
    • 用户管理
    • 磁盘管理
    • 网络管理
    • 软件管理

    等等… …

  • 平时我们是如何使用Shell?

    • 输入命令——>效率低——>适合少量的工作

    • Shell Script——>效率高——>适合重复性的工作

      例如:创建100个用户,单纯输入命令需要执行100次,而Shell脚本只需要几行命令即可完成100个用户的创建。

bash提示符

  • Bash Shell登陆后的提示符是什么意思?
    • [root@destiny ~]#
      • root:当前登录系统的用户名称(超级管理员)
      • @:分隔符
      • destiny:主机名称(安装系统时设定的,不设定默认为localhost)
      • ~:当前用户的家目录;每个用户都有自己的家目录
      • #:表示当前登录的为超级管理员(),一般不修改该提示符;
      • $:表示当前登录的为普通用户(),一般不修改该提示符;
    • 普通用户和超级用户的区别:
      • 权限:相当于以前的老百姓和帝王的关系;

bash基础语法

  • Bash Shell的基础语法:

    • 命令行bash shell,为用户提供输入,执行命令的界面

    • #命令	      选项	   参数
      command  [-options]  [arguments]
      [root@web ~]# ls				#命令
      [root@web ~]# ls -a				#命令+选项
      [root@web ~]# ls -a /home/		#命令+选项+参数
      
      #命令:整条shell命令的主体
      #选项:用于调节命令的具体功能
      	#以“-”引导短格式选项(单个字符),例如:"-a"
      	#以“--”引导长格式选项(多个字符),例如:"--all"
      	#多个短格式选项可以写在一起,只用一个“-”引导,例如:"-al"
      #参数:命令操作的对象,如文件,目录名等
      #命令必须开头,选项和参数位置可以发生变化
      
      #ls
      	# -l 长格式显示文件列表
      	# -a 显示当前目录下的所有文件,包括隐藏文件
      	#以.开头命名的文件都是隐藏文件
      

bash特性

  • Bash Shell的常用特性:

    牵扯到一些命令,熟练使用;

    1. 命令补全

      当使用Windows查找一个目录特别多的文件时,打开的效率会非常的慢,但如果使用Linux查找一个目录曾特别多的文件时,可以通过tab键快速的补全

      PS:tab键可以实现命令补全,路径补全;在实际生产中tab键补全往往是我们使用最多的,因为可以减少执行命令以及路径出错率。

      #查看ip时忘记了具体的命令
      [root@web ~]# ifcon
      #按下tab键会自动补全
      [root@web ~]# ifconfig
      
      #按一下tab键没有反应,按两下tab键列出所有if开头的命令
      [root@web ~]# if
      if         ifcfg      ifconfig   ifdown     ifenslave  ifstat     ifup 
      
      #Linux目录较深,经常使用tab键补全,如果路径出错是没有办法补全
      [root@web ~]# ls /etc/sysconfig/network-scripts/
      

      注意:

      • No such file or directory :(没有这个文件或目录)路径写错了,文件名称不对;
      • command not found:找不到该命令,要么命令不存在,要么没有安装该命令;
    2. 命令快捷键,快捷键可以帮助我们大大提升工作效率

      Ctrl + a #将命令移动到这一行命令的行首;
      Ctrl + e #将命令移动到这一行命令的行尾;
      Ctrl + l #清屏(对应命令clear);
      Ctrl + c #结束掉当前执行的任何任务,非常常用;
      Ctrl + k #删除光标以后的所有内容;
      Ctrl + u #删除光标以前的所有内容;
      Ctrl + w #按照单词进行向前删除光标以前的内容;
      Ctrl + 左右键 #按照单词进行跳跃;
      Ctrl + d #结束当前的bash shell窗口会话,并不影响服务器运行的后台程序;
      Ctrl + z #将任务暂停,挂至后台
      Ctrl + r #搜索历史命令,利用关键字
      
      #在命令行前面加"#",则该命令不会被执行
      
    3. 历史记录(命令)

      history 追溯之前发生情况

      history -w 保存命令历史到历史文件

      history -c 清空命令历史记录,不会清空文件

      history -d 删除命令历史的第N条记录

      # 使用双!!,可执行上一条执行过的命令
      # 输入!6,执行hiistory命令历史中的第6行命令
      # 使用!cat,调用history命令行历史最近一次执行过的cat命令
      	[root@web ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
      	[root@web ~]# !cat
      	cat /etc/sysconfig/network-scripts/ifcfg-eth0
      
    4. 系统别名

      • 设定别名——alias

        [root@web ~]# alias net='cat /etc/sysconfig/network-scripts/ifcfg-ens32' 
        
      • 取消系统别名——unalias

        [root@web ~]# unalias net
        
      • 假设我们在A窗口设定了别名,那么我们在B窗口是否能使用别名?不能。关掉再次打开也一样。它只是临时生效的。

      • 不能使用,需要将别名定义在文件中,才可以永久使用,无论哪个窗口都可以

        [root@web ~]# echo "alias net='cat /etc/sysconfig/network-scripts/ifcfg-ens32' " >> .bashrc
        # >> 追加符号:往文件中追加内容
        # > 清空
        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

游子无寒衣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值