linux基础

内容目录

终端以及shell

  • 终端: 终端实际上是指处理用户与主机之间输入输出的一种物理设备,在当前的个人电脑中表现为一个界面程序。

Info

一个主机可能会有多个终端同时工作,也就是多个用户同时使用。与windows不同,win可以有多个用户,但是同一时间只能是一个用户操作。

  • Shell:Shell 实际上是一种在用户输入与终端之间实现动态交互的程序,也被叫做命令解释器,它会将用户输入的命令进行解析,解释为关键字与参数,然后找到能够处理这条命令的程序。

Info

Shell 有很多种,因为其本质上是一个程序,有各种版本。 常见的有 Bash、Zsh、Fish、Csh、Ksh 等。


主机名(Hostname)

设置主机名:

  • hostname NAME 临时生效
  • hostnamectl set-hostname NAME 持久生效

Tip

主机名通常根据不同的使用场景要反应出主机的重要信息。

命令中的 ctl结尾,意味着 controller ,控制设置某些内容。


命令提示符(prompt)

每次输入命令前终端显示的一段提示符,可以使用 echo $PS1 来查看当前的命令提示词构成(通常由转义字符组成),可以进行自定义以便于实际使用。

Info

实用的醒目提示符 (持久生效,对于ubuntu来说是当前用户,对于rocky是所有用户)

# Ubuntu
echo "PS1='\e[31;1m[\u@\h:\w]\$\e[0m '" >> .bashrc
# Rocky
echo "PS1='\e[31;1m[\u@\h \W]\\$ \e[0m'" > /etc/profile.d/env.sh


执行命令

执行命令流程

    flowchart LR
	    A[输入命令] --> B{判断命令是否是<br>别名 alias}
	    B -- 是 --> C[解析别名<br>找到实际命令]
	    C --> D{是否为<br>内部命令}
	    B -- 否 --> D
	    D -- 是 --> Z[执行命令]
	    D -- 否 --> E{是否存在<br>在 hush 中}
	    E -- 是 --> Z
	    E -- 否 --> F{按 PATH 目录查找}
	    F -- 找到命令 --> Z
	    F -- 未找到 --> Y[执行命令失败]

Tip

  • 别名:对于冗长指令的简化定义
  • 内部命令:指shell中自带的命令
  • 外部命令:指存储在文件系统中的可执行文件
  • hash:外部命令通常存储在磁盘上,读取速度慢,当被命中后,会被存入hash缓存表,以便于下一次快速读取


命令格式

标准格式结构

  • COMMAND [OPTIONS…] [ARGUMENTS…]
  • COMMAND [COMMAND] [COMMAND ]

Info

  • []:表示可选
  • … :表示可以有多个选项或参数
  • OPTIONS:选项,通常是命令的修饰符,用于改变命令的行为
  • ARGUMENTS:参数,通常是命令的操作对象,如文件名、目录名等

命令行风格

  • 短选项(UNIX):由-与单个字母组成,如-l,-h,可以直接组合-lh
  • 长选项(GNU):由--与单词组成,如--all,--work,无法组合
  • BSD风格:由单个字母组成,如a,不常见

Tip

多个命令可以用 “;” 符号分开
取消和结束命令执行:Ctrl+c,Ctrl+d


多命令串联

Linux 中多个命令可以使用逻辑操作符组合执行:

操作符含义示例
;顺序执行,不管前一个是否成功mkdir a; cd a
&&前一命令成功才执行下一条命令make && make install
||前一命令失败时才执行下一条命令command || echo "失败"
|管道,将前一命令输出传给下一命令ls -l | grep test

Tip

逻辑操作符是日常脚本与命令行操作中的“粘合剂”。


Linux 常用查询与工具命令

系统信息与操作命令分类表

1. 硬件信息查看
命令功能说明
lscpu查看 CPU 架构信息
cat /proc/cpuinfo查看 CPU 详细参数
free查看内存使用情况
cat /proc/meminfo查看内存详细数据
lsblk查看硬盘和分区情况
cat /proc/partitions查看系统分区表信息

2. 系统版本信息
命令功能说明
arch查看系统架构(如 x86_64)
uname -r查看内核版本
cat /etc/os-release查看操作系统发行版本

3. 日期和时间
命令功能说明
date显示或设置系统时间
clock传统时间管理工具
hwclock访问硬件时钟(BIOS 时间)

4. 关机和重启
命令功能说明
halt立即关机
poweroff关闭电源
shutdown -h now立即关机(支持延迟)
reboot立即重启
init 6切换至运行级别 6(重启)
shutdown -r now立即重启(支持延迟)

5. 用户登录信息
命令功能说明
whoami显示当前用户名
who am i显示当前终端登录信息
who列出所有已登录用户
w显示用户及进程信息

6. 工具类命令
类别命令功能说明
文本编辑geditGNOME 图形界面编辑器
nano命令行简易编辑器
会话管理screen创建持久化会话
tmux终端复用工具
输出信息echo打印文本或变量内容

7.命令定位工具
命令功能说明
which查看外部命令实际路径
type查看命令是内建、别名或路径
commandtype 类似,略有差别

使用辅助

Tab 键补全

  • 点击一次:补全命令或路径(结果唯一时自动完成)
  • 点击两次:列出所有可能的补全选项

如何获取帮助

Shell 内建帮助(Shell Builtin Commands)

命令/语法功能说明使用示例
whatis <command>显示命令简短描述(需先运行 mandb 建立数据库)whatis ls
whereis <command>定位命令的二进制、源码和 man 手册位置whereis python
help <command>查看 Bash 内置命令帮助(如 cd/echo 等)help echo
man bash查阅完整的 Bash 使用手册(包含所有内置命令说明)man bash

外部程序帮助(External Commands)

基础帮助选项
语法说明特点
<command> --help大多数 GNU 工具的标准帮助选项简洁,显示常用参数
<command> -h有些工具的简写帮助选项--help,但可能更少

文档系统(man/info/tldr)
命令功能对比说明
man <command>标准 UNIX 手册系统按章节组织(1=命令,5=配置等)
info <command>GNU 超文本文档系统支持节点跳转,结构更详细
tldr <command>社区简明手册(需安装 tldr提供实用示例,适合快速查询

软件自带本地文档路径(示例)

# 常见文档目录
/usr/share/doc/<package>/
/usr/local/share/doc/
<software_install_path>/README.md