002. Linux基础二 (命令行/括号拓展、TAB、history)

1. 命令行扩展

1.1 `` 和 $()

$(CMD) OR ` CMD `

比较"" '' `` 三者的区别

结论

  • 单引号:变量和命令都不认识,当做普通字符串
  • 反向单引号:变量和命令都识别,并且会将反向单引号的内容当成命令进行执行后,再交给调用反向单引号的 命令继续
  • 双引号:不能识别命令,可以识别变量
[root@centos7 ~]# echo "echo $HOSTNAME"echo centos7[root@centos7 ~]# echo 'echo $HOSTNAME'echo $HOSTNAME[root@centos7 ~]# echo `echo $HOSTNAME`centos7
[root@centos7 ~]# echo "i'm $(hostname)"i'm centos7[root@centos7 ~]# echo "i'am `whoami`"i'am root[root@centos7 ~]# echo `hostname`-`date  %F`centos7-2020-11-06

$( ) 和 ``

[root@centos7 ~]# touch `date  %F`.txt[root@centos7 ~]# ll-rw-r--r--. 1 root root    0 11月  6 22:06 2020-11-06.log-rw-r--r--. 1 root root    0 11月  6 22:19 2020-11-06.txt[root@centos7 ~]# ll $(echo $(date  %F).txt)-rw-r--r--. 1 root root 0 11月  6 22:17 2020-11-06.txt[root@centos7 ~]# ll `echo $(date  %F).txt`-rw-r--r--. 1 root root 0 11月  6 22:17 2020-11-06.txt[root@centos7 ~]# ll $(echo `date  %F`.txt)-rw-r--r--. 1 root root 0 11月  6 22:17 2020-11-06.txt

2. 括号扩展:{ }

{} 可以实现打印重复字符串的简化形式

[root@centos7 ~]# echo file{1,3,4}file1 file3 file4[root@centos7 ~]# echo {1..10}1 2 3 4 5 6 7 8 9 10[root@centos7 ~]# echo {1..10..2}1 3 5 7 9[root@centos7 ~]# echo {000..10..2}000 002 004 006 008 010[root@centos7 ~]# echo {a..z}a b c d e f g h i j k l m n o p q r s t u v w x y z

3. 双击TAB键

  • command 2Tab 所有子命令或文件补全
  • string2Tab 以string开头命令
  • /2Tab 显示所有根目录下一级目录,包括隐藏目录
  • ./2Tab 当前目录下子目录,包括隐藏目录
  • *2Tab 当前目录下子目录,不包括隐藏目录
  • ~2Tab 所有用户列表
  • $2Tab 所有变量
  • @2Tab /etc/hosts记录 (centos7 不支持)
  • =2Tab 相当于ls –A (centos7不支持)

4. 命令行历史 history

4.1 选项
  • -c: 清空命令历史
  • -d offset: 删除历史中指定的第offset个命令
  • n: 显示最近的n条历史
  • -a: 追加本次会话新执行的命令历史列表至历史文件
  • -r: 读历史文件附加到历史列表
  • -w: 保存历史列表到指定的历史文件
  • -n: 读历史文件中未读过的行到历史列表
  • -p: 展开历史参数成多行,但不存在历史列表中
4.2 命令历史相关环境变量
  • HISTSIZE:命令历史记录的条数
  • HISTFILE:指定历史文件,默认为~/.bash_history HISTFILESIZE:命令历史文件记录历史的条数 HISTTIMEFORMAT="%F %T whoami" 显示时间和用户 HISTIGNORE="str1:str2*:…" 忽略str1命令,str2开头的历史 H
  • ISTCONTROL:控制命令历史的记录方式
4.3 持久保存变量

以上变量可以 export 变量名="值" 形式存放在 /etc/profile 或 ~/.bash_profile

4.4 调用命令行历史
  • 重复前一个命令的方法
    !!
    !-1
    Ctrl p
  • 执行对应序号命令
    !n
  • 执行倒数几行命令
    !-n
  • 打印输出上一条命令的最后一个参数
    !$
  • 打印输出上一条命令的所有参数
    !\*
  • 来在命令历史中搜索命令
    Ctrl-r
  • 从历史搜索模式退出
    Ctrl g

来源:https://www.icode9.com/content-3-752301.html

(0)

相关推荐

  • 一文读懂 Shell 中各种括号的作用

    作者:乌托邦2号 来源:https://reurl.cc/qmMvxg 一.小括号,圆括号() 1.单小括号 () ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本 ...

  • CentOS7 64位安装Mysql教程

    SQL数据库开发 公众号主要分享数据库,大数据,数据分析,Python和Linux等技术内容,后台回复「1024」获取海量学习资源. 348篇原创内容 公众号 从最新版本的Linux系统开始,默认的是 ...

  • Linux基本操作:6w字搞定Linux手把手教程(一)

    Linux是一种开源电脑操作系统内核.它是一个用C语言写成,符合POSIX标准的类Unix操作系统. Linux最早是由芬兰 Linus Torvalds为尝试在英特尔x86架构上提供自由的类Unix ...

  • VMware安装最新版CentOS7图文教程

    安装CentOs 选择-->典型 选择-->稍后安装操作系统 选择-->Linux     版本  CentOs64 选择-->   设置名称 和保存位置 选择--> 设 ...

  • linux centos7 NetworkManager 命令行网络配置工具 nmcli 简介-1

    目录 nmcli命令与配置文件对应关系 修改配置文件的主机名 查看网卡信息 显示具体的网络接口信息 显示所有设配状态 修改配置文件执行生效 显示所有活动连接 删除一个网卡连接 添加一个网卡连接 网络接 ...

  • Linux命令行基础,关于Bash需要知道的一些常识

    介绍 Linux越来越重要,对于开发者来说学习必要的bash技术必不可少,对运维来说更是如此.学习shell可以参考很多学习材料和图书,比如ChinaUnix论坛网中人大哥总结的<Shell十三 ...

  • Linux命令中交互式命令都有哪些?Linux基础

    交互式命令就是在top命令执行过程中使用的一些命令.top命令用于实时地对系统处理器状态进行监控,它能够实时地显示系统中各个进程的资源占用状况.该命令可以按照CPU的使用.内存的使用和执行时间对系统任 ...

  • 久等了!思科CCNA基础配置命令大全(二)整理完毕...

    一.静态路由 Ip route x.x.x.x(网段) x.x.x.x( 子网掩码) x.x.x.x/出接口(下一跳) (尽量用下一跳地址,出接口会产生 ARP  消息) 默认路由: Ip route ...

  • 《Linux 命令行大全》.pdf

    今天跟大家推荐个 Linux 命令行教程:<The Linux Command Line>,中文译名:<Linux 命令行大全>. 该书作者出自自美国一名开发者,兼知名 Lin ...

  • Linux基础命令中,进程相关命令有哪些?

    随着互联网技术的发展,Linux逐步成为了较为热门的职业岗位技术,受到越来越多的企业和个人的喜爱.互联网市场对Linux运维的需求也在增加.Linux命令是Linux运维技能的基础,想要学好Linux ...

  • echo命令有什么参数选项?linux基础命令

    显示一行文本的echo命令是Linux运维必须要学习的Linux基础命令之一.都说Linux命令是学习Linux技术的基础,想要成为优秀的Linux运维人员,Linux命令是必须掌握的.那么如果要显示 ...

  • date命令的参数选项有哪些?linux基础知识

    date命令用于显示当前的系统时间或设置系统时间.date命令是Linux运维工作中会用到的核心命令之一,是运维人员必须要掌握的.那么date命令有哪些相关内容?date命令的参数选项有哪些? dat ...

  • vim命令行模式有哪些参数选项?linux运维

    命令行模式下,vim命令有哪些参数选项?是很多Linux运维初学者需要清楚掌握的知识点.互联网时代发展迅速,Linux运维技术的需求更多推进不少.市场对于Linux运维人才的需求也在逐渐加大.Linu ...