Linux(命令行扩展+命令行历史 大白话+图片)

后面也会持续更新,学到新东西会在其中补充。

建议按顺序食用,欢迎批评或者交流!

缺什么东西欢迎评论!我都会及时修改的!

在这里真的很感谢这位老师的教学视频让迷茫的我找到了很好的学习视频

王晓春老师的个人空间-王晓春老师个人主页-哔哩哔哩视频

命令行扩展:``和$ ()

举个栗子:

[root@RockyLinux9 ~]#echo $PATH
/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
[root@RockyLinux9 ~]#echo "$PATH"
/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
[root@RockyLinux9 ~]#echo '$PATH'
$PATH
[root@RockyLinux9 ~]#echo `$PATH`
-bash: /root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin: No such file or directory

可见'' 和 "" 处理变量的方式是不同的

不加$ echo认不出来PATH是变量

[root@RockyLinux9 ~]#echo PATH
PATH

 如果想把$也打印出来 

[root@RockyLinux9 ~]#echo \$PATH
$PATH

\ 是转义符 

功能是把特殊符号的本身它的原有含义给它改变了转换了它的原有含义

 打印\

直接echo不行 

[root@RockyLinux9 ~]#echo \
>

得转义

[root@RockyLinux9 ~]#echo \\
\

单引号可以

[root@RockyLinux9 ~]#echo '\'
\

双引号不行

[root@RockyLinux9 ~]#echo "\"
>

双引号单引号区别

echo "$PATH" #用变量值替换,弱引用
echo '$PATH' #变量不会替换,强引用

"" '' ``三者区别

$hostname

[root@RockyLinux9 ~]#echo "My hostname is $HOSTNAME"
My hostname is RockyLinux9
[root@RockyLinux9 ~]#echo 'My hostname is $HOSTNAME'
My hostname is $HOSTNAME

hostname

[root@RockyLinux9 ~]#echo "My hostname is 'hostname'"
My hostname is 'hostname'
[root@RockyLinux9 ~]#echo "My hostname is `hostname`"
My hostname is RockyLinux9

变量名不能被执行 ``里面必须放命令

[root@RockyLinux9 ~]#echo "My hostname is `$HOSTNAME`"
-bash: RockyLinux9: command not found
My hostname is

双引号是把echo当成字符串(重点理解)

[root@RockyLinux9 ~]#echo "echo $HOSTNAME"
echo RockyLinux9
[root@RockyLinux9 ~]#echo 'echo $HOSTNAME'
echo $HOSTNAME
[root@RockyLinux9 ~]#echo `echo $HOSTNAME`
RockyLinux9
echo `echo $HOSTNAME` == echo `hostname`

结论 :

单引号:六亲不认 来了什么都是字符串,变量和命令都不识别。

双引号:不能识别命令,可以识别变量。

反向单引号:变量和命令都识别,并且将反向单引号内容当成命令进行执行后,再交给调用反向单引号的命令继续

双引号和单引号里面放的可以是普通符号或者变量

 $() == ``

[root@RockyLinux9 ~]#echo `who am i`
root pts/1 2024-11-18 19:11 (192.168.111.1)
[root@RockyLinux9 ~]#echo $(whoami)
root
[root@RockyLinux9 ~]#echo "This system's name is $(hostname)"
This system's name is RockyLinux9

举几个常用的命令

显示当前时间

[root@RockyLinux9 ~]#date +%F
2024-11-18

创建文件时间

[root@RockyLinux9 data]#touch `date +%F`.txt
[root@RockyLinux9 data]#ll
total 0
-rw-r--r--. 1 root root 0 Nov 18 21:53 2024-11-18.txt[root@RockyLinux9 data]#touch $(date +%F).txt
[root@RockyLinux9 data]#ll
total 0
-rw-r--r--. 1 root root 0 Nov 18 21:55 2024-11-18.txt

创建主机名和创建时间文件

[root@RockyLinux9 data]#touch `hostname`-`date +%F`.txt
[root@RockyLinux9 data]#ll
total 0
-rw-r--r--. 1 root root 0 Nov 18 21:55 2024-11-18.txt
-rw-r--r--. 1 root root 0 Nov 18 22:02 RockyLinux9-2024-11-18.txt

将我们创建的文件打印出来

[root@RockyLinux9 data]#touch `date +%F`.txt
[root@RockyLinux9 data]#ll
total 0
-rw-r--r--. 1 root root 0 Nov 18 22:22 2024-11-18.txt[root@RockyLinux9 data]#ll $(echo $(date +%F).txt)
-rw-r--r--. 1 root root 0 Nov 18 22:22 2024-11-18.txt

括号扩展{}

[root@RockyLinux9 data]#echo file{1,3,5}
file1 file3 file5
[root@RockyLinux9 data]#echo file{1..10}
file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
[root@RockyLinux9 data]#echo {20..10}
20 19 18 17 16 15 14 13 12 11 10
[root@RockyLinux9 data]#echo {20..10..2}
20 18 16 14 12 10
[root@RockyLinux9 data]#echo {0000..10..2}
0000 0002 0004 0006 0008 0010
[root@RockyLinux9 data]#echo {0001..10..2}
0001 0003 0005 0007 0009
[root@RockyLinux9 data]#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

倒序输出

[root@RockyLinux9 data]#echo {a..Z}
a ` _ ^ ]  [ Z

 乘法分配律

[root@RockyLinux9 data]#echo file{1..10}.{txt,log}
file1.txt file1.log file2.txt file2.log file3.txt file3.log file4.txt file4.log file5.txt file5.log file6.txt file6.log file7.txt file7.log file8.txt file8.log file9.txt file9.log file10.txt file10.log

tab键补全

[root@RockyLinux9 data]#ll
total 0
-rw-r--r--. 1 root root 0 Nov 18 22:22 2024-11-18.txt
-rw-r--r--. 1 root root 0 Nov 19 09:15 RockyLinux9+2024-11-19.txt
[root@RockyLinux9 data]#ls -l R

按tab补全

[root@RockyLinux9 data]#ls -l RockyLinux9+2024-11-19.txt
-rw-r--r--. 1 root root 0 Nov 19 09:15 RockyLinux9+2024-11-19.txt

后面直接嵌入子命令,由一个命令套另一个子命令实现

子命令里面套子命令

[root@RockyLinux9 data]#nmcli
agent       device      help        networking
connection  general     monitor     radio
[root@RockyLinux9 data]#nmcli connection
add      delete   edit     help     load     modify   reload   up
clone    down     export   import   migrate  monitor  show

要求:必须安装这个软件

[root@RockyLinux9 data]#rpm -qa bash*
bash-completion-2.11-5.el9.noarch

命令行历史

当执行命令后,系统默认在内存记录执行的命令。

当用户正常退出时,会将内存中的命令历史存放对应历史文件中,默认是~/.bash_history

~代表每个用户都有自己的历史文件

登录shell时,会读取命令历史文件中记录下的命令加载到内存中

登录进shell后新执行的命令只会记录在内存缓存中,这些命令会用户正常退出时“追加”至命令历史文件中

利用命令历史,可以用它来重复执行命令,提高输入效率

.bash_history是存在磁盘上history是内存中的

[root@RockyLinux9 ~]#cat .bash_history
vi /etc/sys/sshd_config
...

执行历史命令

  206  ll...
[root@RockyLinux9 ~]#!206
ll
total 4
-rw-------. 1 root root 1177 Nov 14 00:37 anaconda-ks.cfg

执行倒数历史命令 

[root@RockyLinux9 ~]#!-5
echo $HISTSIZE
1000

记录历史的最大值

[root@RockyLinux9 ~]#echo $HISTSIZE
1000

配置历史最大值的文件

[root@RockyLinux9 ~]#vi /etc/profile

 -c 清除历史

密码显示到历史中,可能会被别人看到!不安全了

注意这里清理的是内存里的磁盘文件并没有被清理!

[root@RockyLinux9 ~]#history -c
[root@RockyLinux9 ~]#history1  history

彻底删除真正的历史记录

可以干坏事了(bushi

[root@RockyLinux9 ~]#rm -f .bash_history
[root@RockyLinux9 ~]#history -c
[root@RockyLinux9 ~]#exit

退出登录以后

[root@RockyLinux9 ~]#history1  exit2  history
[root@RockyLinux9 ~]#cat .bash_history
exit

假冒历史-s

[root@RockyLinux9 ~]#history1  exit2  history
[root@RockyLinux9 ~]#history -s rm -rf /*
[root@RockyLinux9 ~]#history1  exit2  history3  cat .bash_history4  rm -rf /afs /bin /boot /data /dev /etc /home /lib /lib64 /media /mnt /opt /proc /root /run /sbin /srv /sys /tmp /usr /var5  history

历史可相信,也不可相信。

 修改历史格式

[root@RockyLinux9 ~]#echo $HISTTIMEFORMAT

 %F 年月日 %T 时分秒

[root@RockyLinux9 ~]#vi .bashrc
export HISTTIMEFORMAT="%F %T "

[root@RockyLinux9 ~]#. .bashrc
[root@RockyLinux9 ~]#history1  2024-11-19 12:23:15 exit2  2024-11-19 12:23:17 history

还可以加上用户信息

export HISTTIMEFORMAT="%F %T `whoami` "
[root@RockyLinux9 ~]#export HISTTIMEFORMAT="%F %T `whoami` "
[root@RockyLinux9 ~]#history1  2024-11-19 16:57:03 root exit2  2024-11-19 16:57:03 root ls -l

永久修改历史格式

[root@RockyLinux9 ~]#vi .bash_profile# User specific environment and startup programsPATH=$PATH:$HOME/binexport PATH
export HISTTIMEFORMAT="%F %T `whoami` "

!d 找到 第一个和d命令相似

[root@RockyLinux9 ~]#date
Tue Nov 19 05:20:06 PM CST 2024
[root@RockyLinux9 ~]#!d
date
Tue Nov 19 05:30:09 PM CST 2024

!?at 包含at

[root@RockyLinux9 ~]#!?at
date
Tue Nov 19 05:32:06 PM CST 2024

!*

[root@RockyLinux9 ~]#cat /etc/redhat-release /etc/hosts
Rocky Linux release 9.4 (Blue Onyx)
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@RockyLinux9 ~]#ll !*
ll /etc/redhat-release /etc/hosts
-rw-r--r--. 1 root root 158 Jun 23  2020 /etc/hosts
lrwxrwxrwx. 1 root root  13 May  1  2024 /etc/redhat-release -> rocky-release

!$

[root@RockyLinux9 ~]#cat /etc/redhat-release /etc/hosts
Rocky Linux release 9.4 (Blue Onyx)
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@RockyLinux9 ~]#ll !$
ll /etc/hosts
-rw-r--r--. 1 root root 158 Jun 23  2020 /etc/hosts

bash的快捷键

ctrl + s 锁定键盘

ctrl + q 解锁键盘

ctrl + l 清屏

Alt + r 删除整行

ctrl + u删除整行前面

ctrl + k删除整行后面

ctrl + a命令移到行首

ctrl + e命令移到行尾

参考文献

1SHELL中各种特殊符号用法和区别详解_哔哩哔哩_bilibili

2命令历史和Linux各种快捷键使用技巧_哔哩哔哩_bilibili

总结

所有命令都需要反复敲来实验来记忆,本人基本上是个人理解加参考其他大佬的肯定有很多问题欢迎指正,我会及时修改。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/476433.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

渗透测试---shell(5)字符串运算符与逻辑运算符

声明:学习素材来自b站up【泷羽Sec】,侵删,若阅读过程中有相关方面的不足,还请指正,本文只做相关技术分享,切莫从事违法等相关行为,本人与泷羽sec团队一律不承担一切后果 目录 一、字符串运算符 创建u.sh文…

06、Spring AOP

在我们接下来聊Spring AOP之前我们先了解一下设计模式中的代理模式。 一、代理模式 代理模式是23种设计模式中的一种,它属于结构型设计模式。 对于代理模式的理解: 程序中对象A与对象B无法直接交互,如:有人要找某个公司的老总得先打前台登记传达程序中某个功能需要在原基…

游戏陪玩系统开发功能需求分析

电竞游戏陪玩系统是一种专门为游戏玩家提供陪伴、指导和互动服务的平台。这类系统通常通过专业的陪玩师(也称为陪练师)为玩家提供一对一或多对一的游戏陪伴服务,帮助玩家提升游戏技能、享受游戏乐趣,甚至解决游戏中的各种问题。电…

【数据库入门】关系型数据库入门及SQL语句的编写

1.数据库的类型: 数据库分为网状数据库,层次数据库,关系型数据库和非关系型数据库四种。 目前市场上比较主流的是:关系型数据库和非关系型数据库。 关系型数据库使用结构化查询语句(SQL)对关系型数据库进行…

【2024亚太杯亚太赛APMCM C题】数学建模竞赛|宠物行业及相关产业的发展分析与策略|建模过程+完整代码论文全解全析

第一个问题是:请基于附件 1 中的数据以及你的团队收集的额外数据,分析过去五年中国宠物行业按宠物类型的发展情况。并分析中国宠物行业发展的因素,预测未来三年中国宠物行业的发展。 第一个问题:分析中国宠物行业按宠物类型的发展…

合法三元数量计算

问题描述 小C、小U 和小R 三个好朋友喜欢做一些数字谜题。这次他们遇到一个问题&#xff0c;给定一个长度为n的数组a&#xff0c;他们想要找出符合特定条件的三元组 (i, j, k)。具体来说&#xff0c;三元组要满足 0 < i < j < k < n&#xff0c;并且 max(a[i], a[…

wsl虚拟机中的dockers容器访问不了物理主机

1 首先保证wsl虚拟机能够访问宿主机IP地址&#xff0c;wsl虚拟机通过vEthernet (WSL)的地址访问&#xff0c;着意味着容器也要通过此IP地址访问物理主机。 2 遇到的问题&#xff1a;wsl虚拟机中安装了docker&#xff0c;用在用到docker容器内的开发环境&#xff0c;但是虚拟机…

深入了解 Linux htop 命令:功能、用法与示例

文章目录 深入了解 Linux htop 命令&#xff1a;功能、用法与示例什么是 htop&#xff1f;htop 的安装htop的基本功能A区&#xff1a;系统资源使用情况B区&#xff1a;系统概览信息C区&#xff1a;进程列表D区&#xff1a;功能键快捷方式 与 top 的对比常见用法与示例实际场景应…

如何删除Kafka中的数据以及删除topic

如何删除Kafka数据已经以及删除topic呢&#xff1f; 1、删除数据 先启动Kafka实例 docker exec -it kafka-0 /bin/bash #进去容器 rm -rf /bitnami/kafka/data/* #删除数据 exit #退出如果删除失败&#xff0c;可能是数据不存在于/bitnami/kafka/data&#xff0c;使用 cd /o…

Easyexcel(4-模板文件)

相关文章链接 Easyexcel&#xff08;1-注解使用&#xff09;Easyexcel&#xff08;2-文件读取&#xff09;Easyexcel&#xff08;3-文件导出&#xff09;Easyexcel&#xff08;4-模板文件&#xff09; 文件导出 获取 resources 目录下的文件&#xff0c;使用 withTemplate 获…

【2024最新】基于springboot+vue的疫情网课管理系统lw+ppt

作者&#xff1a;计算机搬砖家 开发技术&#xff1a;SpringBoot、php、Python、小程序、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;Java精选实战项…

贴代码框架PasteForm特性介绍之image

简介 PasteForm是贴代码推出的 “新一代CRUD” &#xff0c;基于ABPvNext&#xff0c;目的是通过对Dto的特性的标注&#xff0c;从而实现管理端的统一UI&#xff0c;借助于配套的PasteBuilder代码生成器&#xff0c;你可以快速的为自己的项目构建后台管理端&#xff01;目前管…

从 IDC 到云原生:稳定性提升 100%,成本下降 50%,热联集团的数字化转型与未来展望

作者&#xff1a;金峰&#xff08;项良&#xff09;、朱永林、赵世振&#xff08;寰奕&#xff09; 公司简介 杭州热联集团股份有限公司成立于 1997 年 10 月&#xff0c;是隶属杭州市实业投资集团的国有控股公司。公司专业从事国际、国内钢铁贸易黑色大宗商品及产业服务&…

Python Turtle召唤童年:喜羊羊与灰太狼之懒羊羊绘画

Python Turtle召唤童年&#xff1a;喜羊羊与灰太狼之懒羊羊绘画 &#x1f438; 前言 &#x1f438;&#x1f41e;往期绘画&#x1f41e;&#x1f40b; 效果图 &#x1f40b;&#x1f409; 代码 &#x1f409; &#x1f438; 前言 &#x1f438; 小时候&#xff0c;每次打开电视…

SpringBoot学习记录(四)之分页查询

SpringBoot学习记录&#xff08;四&#xff09;之分页查询 一、业务需求1、基本信息2、请求参数3、相应数据 二、传统方式分页三、使用PageHelper分页插件 一、业务需求 根据条件进行员工数据的条件分页查询 1、基本信息 请求路径&#xff1a; /emps 请求方式&#xff1a; …

6. Spring Cloud Gateway网关超详细内容配置解析说明

6. Spring Cloud Gateway网关超详细内容配置解析说明 文章目录 6. Spring Cloud Gateway网关超详细内容配置解析说明前言1 Spring Cloud Gateway 概述1.1 Spring Cloud Gateway网关 的核心功能1.2 Spring Cloud Gateway VS Zuul 的区别1.3 Spring Cloud Gateway 的基本原理1.4 …

远程管理不再难!树莓派5安装Raspberry Pi OS并实现使用VNC异地连接

前言&#xff1a;大家好&#xff01;今天我要教你们如何在树莓派5上安装Raspberry Pi OS&#xff0c;并配置SSH和VNC权限。通过这些步骤&#xff0c;你将能够在Windows电脑上使用VNC Viewer&#xff0c;结合Cpolar内网穿透工具&#xff0c;实现长期的公网远程访问管理本地树莓派…

Centos 8, add repo

Centos repo前言 Centos 8更换在线阿里云创建一键更换repo 自动化脚本 华为Centos 源 , 阿里云Centos 源 华为epel 源 , 阿里云epel 源vim /centos8_repo.sh #!/bin/bash # -*- coding: utf-8 -*- # Author: make.han

【机器学习】回归模型(线性回归+逻辑回归)原理详解

线性回归 Linear Regression 1 概述 线性回归类似高中的线性规划题目。线性回归要做的是就是找到一个数学公式能相对较完美地把所有自变量组合&#xff08;加减乘除&#xff09;起来&#xff0c;得到的结果和目标接近。 线性回归分为一元线性回归和多元线性回归。 2 一元线…

2024年亚太地区数学建模大赛D题-探索量子加速人工智能的前沿领域

量子计算在解决复杂问题和处理大规模数据集方面具有巨大的潜力&#xff0c;远远超过了经典计算机的能力。当与人工智能&#xff08;AI&#xff09;集成时&#xff0c;量子计算可以带来革命性的突破。它的并行处理能力能够在更短的时间内解决更复杂的问题&#xff0c;这对优化和…