Linux 认识与学习Bash——1

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

命令查找和信息

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

Shell和终端

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

变量管理

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

环境变量

  • 定义环境变量 :export变量名=值或**declare -x 变量名="值"**。
  • 取消环境变量 :declare +x 变量名。
  • 查看环境变量 :env或export命令显示所有环境变量。使用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

bash 复制代码
#!/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:

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

相关推荐
Linux-lucky13 小时前
45-Linux学习之旅之防火墙与WEB加固
linux·前端·网络·学习·ubuntu
禁默13 小时前
启元 Q1 二次开发实践:Ubuntu 部署与仿真验证,从 PrimeConsole 到 ROS 2 Humble + RViz
linux·运维·ubuntu
skywalk816314 小时前
把 去也网站 从 Ubuntu 搬到 FreeBSD:一次 Service Jail + nginx 的部署实录
linux·运维·nginx·ubuntu·freebsd
爱莉希雅&&&16 小时前
GitLab 完整学习笔记
linux·运维·服务器
风笙97816 小时前
[文件系统]文件系统挂载与卸载详解
linux
GeW16 小时前
新质生产力路线图解读:数据库性能优化与Linux调优专场
linux·数据库
陈希12318 小时前
Linux 服务器性能排查手册(2026):CPU、内存、磁盘IO、网络四大瓶颈定位
linux·服务器·网络
测试界的小码农21 小时前
【Linux 命令实战(03):文件创建、复制、移动与删除,掌握 touch、mkdir、cp、mv、rm】
linux·服务器·php
|_⊙21 小时前
网络层协议 IP
服务器·网络·tcp/ip
byte轻骑兵1 天前
实战 1:修改 BlueZ 源码,添加自定义开机日志
linux·aiot·bluez·电脑蓝牙·嵌入式蓝牙