Linux学习笔记8——bash基本概念

news/2024/7/7 20:10:21

一个操作系统的组成中,shell是与用户最接近的部分
shell:外壳,也是一种程序
GUI:Gnome,KDE,Xface
CLI:sh,csh,ksh,bash,tcsh,zsh
Linux中大多使用bash

  • 既然shell也是一种程序,那么shell在什么时候启动?
    当用户登陆时,shell就会被打开。

  • 如果有两个用户同时使用shell,那么需要几个可执行的shell程序?
    程序只有一个,但进程可以有多个。因此进程可以看作程序的副本。
    Linux允许一个用户登录多次,开启多个shell,每个进程互不相干。
    进程:在每个进程看来,当前主机上只存在内核和当前进程。
    进程是程序的副本,进程是程序执行实例

  • 我们可以在shell中打开shell
    shell是一个外部命令,但shell里面自身带有其它很多命令

用户的工作环境:
bash:

shell,子shell:用pstree可以看到
bash——bash
子shell和父shell之间没有任何关系,谁也不会影响谁

bash的特性:
1、支持命令历史
2、支持管道,重定向
3、支持命令别名
4、支持命令行编辑
5、支持命令行展开
6、支持文件名通配
7、支持使用变量
8、支持编程

命令行编辑:

  • 光标跳转:
    Ctrl+a:跳到命令行首
    Ctrl+e:跳到命令行尾
    Ctrl+d:删除
    Ctrl+u: 删除光标至命令行首的内容
    Ctrl+k: 删除光标至命令行尾的内容
    Ctrl+l: 清屏

  • 查看命令历史:history(显示在此执行过的所有命令)
    用户使用过的命令历史在运行时都在内存缓冲区里面!
    -c:清空整个命令历史
    -d n: 删除指定位置的命令(删除第n个命令)
    -d a b:删除第a个命令后的b个命令
    -w:保存命令历史至历史文件中 ls -a (显示隐藏文件)有个.bash_history

  • 环境变量
    PATH:命令查找路径
    HISTSIZE: 命令历史缓冲区大小,可以保存过去多少条命令。

  • 命令历史的使用技巧:
    !n:执行命令历史中的第n条命令;
    !-n:执行命令历史中的倒数第n条命令;
    !!: 执行上一条命令;
    !string:执行命令历史中最近一个以指定字符串开头的命令
    !$:引用前一个命令的最后一个参数;
    Esc, .
    Alt+.

  • 命令补全:【tab】或两下【tab】
  • 路径补全:【tab】或两下【tab】

  • 命令别名:比如Windows清屏为cls,Linux清屏为clear
    alias CMDALIAS=COMMAND [options] 如alias cls=clear
    同时也可以将cd /。。。一些经常用到的文件目录取一个别名!提高效率!!!
    单打一个命令 alias可以显示系统上的所有别名
    在shell中定义的别名仅在当前shell生命周期中有效;别名的有效范围仅为当前shell进程;
    如果想永久有效,可以将这个命令写在bash的配置文件中。
    unalias可以撤销命令别名。
    有些命令的别名与命令本身同名,只不过在后面加了些选项,此时可以用"\COM"使用命令本身。

  • 命令替换:把命令中某个子命令替换为其执行结果的过程
    $(COMMAND) 或者反引号 COMMAND
    比如说:echo the current directory is $(pwd)
    就会打印出一行:the current directory is /root (/root就是所在的目录)
    比如:touch ./file-$(date +%F-%H-%M-%S).txt
    会在当前目录下创建 file-2018-4-15-12-34.txt (以当前时间为固定格式的一个文件)

    *bash支持的引号:
    ``: 命令替换
    " ": 弱引用,可以实现变量替换
    ' ': 强引用,不完成变量替换
  • 文件名通配:globbing
    星号 * : 可以匹配任意长度的任意字符
    ?:匹配任意单个个字符
    [ ] :匹配指定范围内的任意单个字符

    比如在当前目录下有这些文件:a abc a123 ab123 x12 xyz xyz123
    ls a*: a abc  a123 ab123
    ls a*3 : a123 ab123
    ls *b* : abc ab123
    。。。。。。(mkdir一个空目录 在空目录里面touch几个文件自己练一下)

[abc],[a-m],[a-z],[A-Z],[a-zA-Z],[0-9],[0-9a-zA-Z]
[^] : 匹配指定范围之外的任意单个字符
[^0-9]:非数字

  • 空格也可以作为文件名touch 'a b'就可以创建一个有空白字符的文件
    [[:space:]]:空白字符
    [[:punct:]]:标点符号
    [[:lower:]]:小写字母
    [[:digit:]] : 数字
    [[:alnum:]] : 数字和大小写字母
    同时字符集也可以去反比如:[^[alpha]]表非大小写字母集
  • man 7 glob有说明

转载于:https://blog.51cto.com/13691207/2103469


http://lihuaxi.xjx100.cn/news/247409.html

相关文章

Latex公式

1. LaTex的数学公式基本规则 1.1. 转义 以下几个字符: # $ % & ~ _ ^ \ { }有特殊意义,需要表示这些字符时,需要转义,即在每个字符前加上\(转义字符的具体含义下面会解释) \boxed命令给公式加一个方框。\fbox具有…

暑期集训2:ACM基础算法 例2:POJ-2456

2018学校暑期集训第二天——ACM基础算法 例二 —— POJ - 2456 Aggressive cows Farmer John has built a new long barn, with N (2 < N < 100,000) stalls. The stalls are located along a straight line at positions x1,...,xN (0 < xi < 1,000,000,000…

Linux启动流程(二)

//...根据grub内核映像所在路径,读取内核映像&#xff0c;并进行解压缩操作。并调用start_kernel()函数来启动一系列的初始化函数并初始化各种设备&#xff0c;完成Linux核心环境的建立1.start_kernel(init/main.c)中调用一系列初始化函数:(1) 在屏幕上打印出当前的内核版本信息…

TL-WDN3321 Ubuntu 下安装

为什么80%的码农都做不了架构师&#xff1f;>>> The WiFi USB dongles based on the newest RT5572 chip set do not work out of the box on Ubuntu. Unex DNUR-V72, D-Link DWA-160 Rev B and TP-Link TL-WDN3200 dongles are based on this chipset. You will …

C++数值极限numeric_limits

一般来说&#xff0c;数值类型的极值是一个与平台相关的特性。C标准程序库通过template numeric_limits提供这些极值&#xff0c;取代传统C语言所采用的预处理常数。你仍然可以使用后者&#xff0c;其中整数常数定义于<climits>和<limits.h>,浮点常数定义于<cfl…

[异常笔记] spring boot 启动-2018040201

异常 1、编码引发异常 00:59:49.311 [main] DEBUG org.springframework.boot.devtools.settings.DevToolsSettings - Included patterns for restart : [] 00:59:49.318 [main] DEBUG org.springframework.boot.devtools.settings.DevToolsSettings - Excluded patterns for re…

2018牛客暑期ACM多校训练营第二场 - A题

A题是道水题……结果没注意到编译器不支持I64d卡了快俩小时…… 还要注意的是k1时不是特例&#xff0c;因为这时候走跟跑还是不一样的…… A run 输入描述&#xff1a; The first line of input contains 2 integers Q and k.Q is the number of queries.(Q<100000,1<k…

最近做手机端,GPS,微信QQ分享总结的问题

Android端 百度地图&#xff1a; 1.libs包中armeabi下liblocSDK4d.so文件丢失&#xff0c;导致百度定位失效。 微信分享&#xff1a; 1.分享App,app的内容&#xff08;图片加描述&#xff09;不能超过32kb &#xff0c;不然无法分享。&#xff08;直接跳至Oncancel事件中&#…