首页 > 系统相关 >Linux学习笔记(7)——认识与学习Bash

Linux学习笔记(7)——认识与学习Bash

时间:2022-11-07 17:14:47浏览次数:43  
标签:bin Shell 变量 admin 学习 Bash Linux mail localhost

认识与学习Bash

一、认识Bash这个Shell

1.1 Shell

操作系统的内核(kernel)管理整个计算机硬件,这个内核需要被保护。用户通过Shell跟内核沟通,使其完成我们所需的任务。

壳程序(Shell)的功能只是提供用户操作系统的一个界面,即只要能够操作应用程序的软件都能够称为壳程序。

  • 狭义的壳程序:命令行方面的软件
  • 广义的壳程序:图形用户界面模式的软件等
[admin@localhost ~]$ cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/tcsh
/bin/csh

用户默认取得哪一个Shell?

[admin@localhost ~]$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
...
admin:x:1000:1000:admin:/home/admin:/bin/bash
...

Bash(Bourne Again Shell),这是Bourne Shell的增强版本,也是基准于GNU架构下发展出来的。

1.2 Bash shell的功能

  • 历史命令(history)
    • .bash_history记录的是前一次登陆以前所执行过的命令,而至于这一次登陆所执行的命令都被缓存在内存中,成功注销系统后才会记录到.bash_history当中。
  • 命令与文件补全功能([Tab]按键)
    • 一串命令第一个字后面,命令补齐
    • 一串命令第二个字后面,文件补齐
    • bash-completion软件,选项/参数补齐
  • 命令别名设置功能(alias)
    • alias lm='ls -al'
  • 任务管理、前台、后台控制:(job control、foreground、background)
  • 程序化脚本:(shell scripts)
  • 通配符:(Wildcard)

1.3 查询命令是否为Bash shell的内置命令:type

[admin@localhost ~]$ type ls
ls is aliased to `ls --color=auto'
[admin@localhost ~]$ type -t ls
alias
[admin@localhost ~]$ type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls
ls is /usr/bin/ls
[admin@localhost ~]$ type cd
cd is a shell builtin

1.4 命令执行与快速编辑按钮

[admin@localhost ~]$ cp /var/spool/mail/root /etc/crontab \
> /etc/fstab /root

注意:[Enter]键紧接着反斜杠(\),两者中间没有其他字符,因为仅转义紧接着的下一个字符而已。

二、Shell的变量功能

2.1 什么是变量?

变量就是以一组文字或符号等,来替换一些设置或一串保留的数据。

2.2 变量的使用与设置:echo、变量设置规则、unset

  • 变量的使用:echo

    [admin@localhost mail]$ echo $PATH
    /usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/admin/.local/bin:/home/admin/bin
    [admin@localhost mail]$ echo $SHELL
    /bin/bash
    [admin@localhost mail]$ echo $HOME
    /home/admin
    [admin@localhost mail]$ echo $MAIL
    /var/spool/mail/admin
    

    注意:在bash当中,当一个变量名称尚未被设置时,默认的内容是【空】

  • 变量的设置规则

    • 变量与变量内容以一个等号【=】来连接
      • myname=Sino
      • 等号两边不能接空格
      • 变量内容若有空格可使用双引号或单引号将变量内容结合起来
    • 双引号内的特殊字符如$等,可以保有原本的特性
      [admin@localhost mail]$ var="lang is $LANG"
      [admin@localhost mail]$ echo $var
      lang is en_US.UTF-8
      
    • 单引号内的特殊字符则仅为一般字符(纯文本)
      [admin@localhost mail]$ var='lang is $LANG'
      [admin@localhost mail]$ echo $var
      lang is $LANG
      
      • 可用转义符【\】将特殊符号(如[Enter]$\空格'等)变成一般字符
        [admin@localhost mail]$ myname=Sino\ Zhao
        [admin@localhost mail]$ echo $myname
        Sino Zhao
        
      • 在一串命令的执行中,还需要借由其他额外的命令所提供的信息时,可以使用反单引号【`命令】或【$(命令)】
        [admin@localhost mail]$ version=$(uname -r)
        [admin@localhost mail]$ echo $version
        3.10.0-1160.el7.x86_64
        [admin@localhost mail]$ version=`uname -r`
        [admin@localhost mail]$ echo $version
        3.10.0-1160.el7.x86_64
        
      • 若该变量为扩增变量内容时,可用"$变量名称"${变量}累加内容
        [admin@localhost mail]$ PATH="$PATH":/home/bin
        [admin@localhost mail]$ PATH=${PATH}:/home/bin
        
      • 若该变量需要在其他子程序执行,则需要以export来使变量变成环境变量
        export PATH
        
        • 子进程:目前这个Shell的情况下,去启用新的一个Shell,新的Shell就是子进程
      • 通常大写字符为系统默认变量,自行设置变量可以使用小写字符,方便判断
      • 取消变量的方法为使用:unset:【unset 变量名称】

标签:bin,Shell,变量,admin,学习,Bash,Linux,mail,localhost
From: https://www.cnblogs.com/I-am-Sino/p/16866613.html

相关文章

  • Spring 学习笔记
    Spring概述Spring是一个轻量级的Java开发框架,框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。Sprin......
  • 设计模式学习(二):单例模式
    设计模式学习(二):单例模式作者:Grey原文地址:博客园:设计模式学习(二):单例模式CSDN:设计模式学习(二):单例模式单例模式单例模式是创建型模式。单例的定义:“一个类只允许创建......
  • 4.深度学习(1) --神经网络编程入门
    前言目前深度学习、AI研究很火爆,它们依赖的最底层就是简单的神经网络,本文将介绍神经网络基础,了解基本的神经网络原理,同时给出样例参考,该样例可以推广到其他的分类、回归问题......
  • linux安装mongodb 并且远程连接
    一、引言​​MongoDB​​是一个由C++语言编写的基于分布式文件存储的数据库,MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关......
  • 【Linux】vim编辑器常用操作命令
     1.进入目录cd路径 2.查看目录下所有文件ls 3.进入文件vim文件名 4.开始编辑i 5.保存:w 6.复制光标当前行yy 7.复制光标当前行及以下n行y数......
  • LINUX定时压缩前天的目录,完事后删除原目录
    增加定时任务,每天凌晨1点执行vi/etc/crontab01***root/bin/bash/root/xxx/xxx/xxx.sh 脚本内容(xxx.sh):#!/bin/bashyesday=$(date-d"2dayago......
  • Markdown学习
    Markdown学习标题三级标题四级标题 字体Hello,Word!Hello,Word!Hello,Word!Hello,Word! 引用走向人生巅峰 分割线 图片 超链接点击跳转到我......
  • VUE学习笔记
    VUE配置切换国内下载源npmconfigsetregistryhttp://registry.npm.taobao.org安装vuenpminstallvue-g安装VUE-CLI快速构建vue项目的工具2.X版本npminstal......
  • django-environ学习
    官方说明:https://django-environ.readthedocs.io/en/latest/index.htmlinstallpipinstalldjango-environquickstartimportenvironimportosenv=environ.Env(......
  • 课程学习进度
    我的课程个人中心里面展示我的课程界面效果src/components/user/Course.vue,代码:<template><divclass="right-containerl"><divclass="right-title">......