Linux 认识与学习Bash——1

embedded/2024/11/15 0:38:29/

在Linux系统中,有多种命令和技巧可以帮助用户与shell交互、管理变量以及执行命令。以下是对您提供的信息的简化和概述:

命令查找和信息

  • which:查找系统路径中的命令位置。
  • whereis:查找命令的二进制文件、源代码和手册页。
  • type:显示一个命令的类型(别名、关键字、函数、内置或磁盘文件)。
  • cal:显示当前月份的日历。
  • date:显示当前日期和时间。
  • 使用分号;:在一行中顺序执行多个命令。

Shell和终端

  • 打开终端会启动一个shell进程,但终端本身不是shell。
  • ~(波浪号)代表当前用户的家目录。

变量管理

  • 定义本地变量变量名=值(等号两边不要有空格)。
  • 显示变量echo $变量名
  • 取消变量unset 变量名
  • 查看进程IDecho $$显示当前shell的进程ID。
  • 本地变量:只在当前shell中有效,不影响子shell。
  • 显示所有变量set命令显示所有变量。

环境变量

  • 定义环境变量export 变量名=值declare -x 变量名="值"
  • 取消环境变量declare +x 变量名
  • 查看环境变量envexport命令显示所有环境变量。使用export命令可以显示所有的环境变量,与env命令的区别是前面会显示declare -x
  • 位置参数:使用set命令设置位置参数,如set aa bb cc dd,然后echo $2显示第二个参数(bb)。
  • 引用多位数位置参数:使用大括号,如echo ${10},以确保正确解析。

set 3 2 3 4 5 6 7 8 9 a b c

echo $10  #这边解析的时候会解析成echo $1,也就是3;然后再把0添加到后面去。所以会显示成30

echo ${10} #如果变量是两位以上的时候,我们用大括弧把它括起来,这样表示一个整体

这些命令和技巧是Linux用户日常工作的基础,它们提供了与系统交互和管理环境的强大工具。通过熟练使用这些命令,用户可以有效地控制和自定义他们的工作环境。

位置变量

  • $0 是程序的名字
  • $# 是参数的个数
  • $* 是程序所有的参数

var.sh

#!/bin/bash
echo "这个程序的名字是: $0"
echo "这个程序的第1个参数是: $1"
echo "这个程序的第2个参数是: $2"
echo "这个程序的第3个参数是: $3"
echo "这个程序的第4个参数是: $4"
echo "这个程序的第5个参数是: $5"
echo "这个程序的第6个参数是: $6"
echo "这个程序一共有$#个参数,分别是:$* "

 history 命令:

这个命令用于显示用户在当前shell会话中执行过的命令历史列表。它可以帮助用户快速查找和重复之前使用过的命令。

echo $HISTFILESIZE:

这个命令显示了环境变量HISTFILESIZE的值,它定义了在.bash_history文件中可以存储的命令历史的最大行数。当达到这个数值时,最旧的命令将会被新命令替换掉。


echo $PS1:

这个命令显示了环境变量PS1的值,它定义了主提示符字符串,即每次你在命令行中输入命令时首先看到的文本。用户可以自定义这个提示符,以显示不同的信息,如用户名、主机名、当前工作目录等。

echo $PS2:

这个命令显示了环境变量PS2的值,它定义了次级提示符字符串,通常在你输入一个多行的命令时出现。当你输入一个不完整的命令,需要继续输入时,PS2定义的提示符将会显示出来。

locale 命令:

这个命令用于显示关于当前区域设置的信息,或者在标准输出上显示所有可用的区域设置。没有参数时,locale命令显示基于控制区域设置的环境变量的当前区域设置的每个类别的信息。

locale -a:

这个命令显示了系统上所有可用的区域设置。这对于查看和选择系统支持的不同语言和字符编码设置非常有用

 


http://www.ppmy.cn/embedded/7902.html

相关文章

mfc140.dll丢失如何修复,分享多种有效的修复方法

在日常操作和使用电脑的过程中,我们可能会遇到一种较为常见的问题,即在尝试启动或运行某个应用程序时,系统突然弹出一个错误提示窗口,明确指出“mfc140.dll文件丢失”。这个mfc140.dll实际上是一个动态链接库文件(DLL&…

Web开发之v-model和model-value区别

v-model 和 model-value 是在处理表单数据绑定时使用的不同概念,它们分别服务于不同的目的和场景。 1、v-model 用于实现组件内部的双向数据绑定,特别适用于表单元素和支持双向绑定的自定义组件。语法简洁,可以直接在组件模板中使用&#x…

每日一题(4.17)

目录 Leecode-16-最接近的三数之和题目示例解题思路代码实现 Leecode-面试题01.07-旋转矩阵题目示例解题思路代码实现 Leecode-16-最接近的三数之和 题目 给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 targe…

时序分解 | Matlab实现TVF-EMD时变滤波器的经验模态分解信号分量可视化

时序分解 | Matlab实现TVF-EMD时变滤波器的经验模态分解信号分量可视化 目录 时序分解 | Matlab实现TVF-EMD时变滤波器的经验模态分解信号分量可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现TVF-EMD(时变滤波器的经验模态分解)可直接替换 Matlab语言 1.…

物联网网关硬件和云端分别实现了哪些功能?-天拓四方

在物联网(IoT)的广阔领域中,物联网网关硬件和云端各自扮演着不可或缺的角色。它们通过一系列功能,共同确保物联网系统的顺畅运行,为各类设备提供稳定、高效的数据传输与处理服务。本文将详细解析物联网网关硬件和云端分…

Elasticsearch进阶篇(三):ik分词器的使用与项目应用

ik分词器的使用 一、下载并安装1.1 已有作者编译后的包文件1.2 只有源代码的版本1.3 安装ik分词插件 二、ik分词器的模式2.1 ik_smart演示2.2 ik_max_word演示2.3 standard演示 三、ik分词器在项目中的使用四、ik配置文件4.1 配置文件的说明4.2 自定义词库 五、参考链接 一、下…

常用的 Spring Boot 注解及其作用

1、常用注解介绍: Spring Boot 提供了许多注解来简化开发,并帮助开发者在 Spring 应用中实现各种功能。以下是一些常用的 Spring Boot 注解及其作用: SpringBootApplication: 作用:用于标识主启动类,通常位…

ExpertPrompting:指导大语言模型成为杰出专家

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 论文标题:ExpertPrompting: Instructing Large Language Models to be Distinguished Experts 论文地址:https://arxiv.org/abs/2305.14688 作者 & 机构:Benfen…